What is Smoke Testing? When do we Perform Smoke Testing?
Tags: smoketesting, softwaretesting, manualsmoketesting, automatedsmoketesting
Published: 2023-07-22 16:37:57

If you have stumbled on this article, its mostly because you are tired and exhausted of all these articles and youtube videos explaining smoke testing to you in a very complicated manner. Well then, you are definitely at the right place! Smoke testing like checking if the engine of a car starts, the lights turn on, and the wheels spin properly before taking it for a full test drive. 

## WHAT IS SMOKE TESTING?

From the above paragraph you might now have a vague idea of smoke testing but it is equally important to know the [smoke testing definition](https://nextsoftwaretesting.com/what-is-smoke-testing/) which would definitely be useful if you are a college student or a fresh graduate who is going for an interview. Smoke testing is a process by which the working of these critical functionalities are checked. 

Smoke testing ensures that the executable build is reliable and stable. Now what is build? Build refers to the process of combining all the modules and components of a software application to create an executable version of it. This testing helps to identify major problems with the software in a short amount of time, allowing the developers to address any major issues before further testing is done. This process helps to save time and money by quickly identifying any potential issues.

## WHEN DO WE PERFORM SMOKE TESTING?

Three scenarios can occur here:

Firstly when the software is at its initial stage. So smoke testing is performed to ensure the basic functionalities are working as intended. This type of testing is usually performed at the beginning of the software development process before any extensive testing is done.

Secondly during integration testing, when all the components or modules are combined, smoke testing is performed to ensure that the system is working as expected after combing all the elements.

Finally, during regression testing, it helps to identify any potential issues that may have been introduced by the changes. This helps to ensure that the changes have not caused any major problems with the system's core functionality.

**WHO PERFORMS SMOKE TESTING?**

You must be thinking that this question is simple. Obviously testers will be performing smoke testing. You must be surprised to know the number of people required for smoke testing. Smoke testing is done by quality assurance engineer/QA lead when the build is released to the QA environment. It is done to check the correctness of the application under testing. In smoke testing, QA team checks for the showstoppers in the application. 

**HOW WILL YOU PERFORM SMOKE TESTING?**

1. **MANUAL SMOKE TESTING:** In manual smoke testing, quality assurance engineers don’t not use automated tools to check the functionality of the software built. It is a hands-on approach that involves manually executing a set of predefined test cases, interacting with the software’s user interface, and validating the expected behavior. Manual smoke testing is performed to quickly assess the stability and usability of the software and identify major issues or showstopper defects early on.

2. **AUTOMATED SMOKE TESTING:**  Once the build is executable, test cases are then run using these automated tools. Automated smoke testing offers several benefits, such as improved efficiency, faster execution, and repeatability. It definitely saves time and is quite handy when software build is complex.

**TYPES**

Functional smoke testing: As the name suggests, it checks whether the basic functions of the software are working as intended. Functional smoke testing is an important part of the software development process. It helps to ensure that the software works as intended and is bug free. 

Build verification smoke testing: The basic premise of this software testing is to ensure that the software built meets the standards and that the critical issues, if any, are resolved before it undergoes testing.

Installation smoke testing: The name itself is pretty self explanatory. This test basically confirms whether the software can be installed on the intended environment without any major issues.
Sanity smoke testing: Sanity testing is a type of software testing that aims to identify problems that are not related to the functionality of a software product. It is a non-exhaustive type of testing that focuses on areas that have been recently changed or areas that are most likely to have problems. 

**CONCLUSION**

In conclusion, smoke testing serves as a valuable and essential part of the software testing process. By quickly validating the core functionalities of the software, it helps identify major issues early on, mitigating risks and saving valuable time and resources. While smoke testing offers advantages such as early defect detection and cost efficiency, it also has limitations, including limited test coverage and the potential for false confidence. Overall, incorporating smoke testing as an initial checkpoint contributes to enhancing software quality and ensuring a stable foundation for further testing and development.