Smoke Testing
Hello friends! today we will be studying smoke testing. It is one of the most confusing terms in software testing. That is why it is also the most commonly asked question in testing interviews. In this tutorial, we will get to know about smoke testing, its features, and its advantages.
Content
Smoke testing definition
It is a type of testing in which we execute the most crucial tests to make sure that the application can be considered for further exhaustive testing or not. It is also known as build verification testing.
It is performed right after the testing team receives the build. A subset of test cases is run over the build covering the most important functionalities. The functionality covered by the smoke tests is crucial, failing which results in the rejection of the build.
Example
Let’s understand this with the help of an example. Suppose, we have a large web application to test with thousands of test cases. Now, if we receive a build with a new feature or some bug-fixes, one way of testing would be to start the complete test execution cycle. The complete test execution cycle will take a good amount of time and resources.
This seems all good if the build is stable or has minor issues. But the real problem arises when the build is not stable and the core functionalities are not working. In this case, we wasted the testing team’s time. Also, we made the whole development team and the stakeholders wait regarding the stability of the build.
In order to handle cases like these, smoke testing was introduced. In this approach, we will not start with the execution of the complete regression testing cycle or the complete test cases. Instead, we will just ask the testing team (or only some members of the testing team) to check only the core functionalities.
In this way, if the build is stable, we can quickly switch to exhaustive testing. In case the build is not stable, the development team is quickly notified about the instability of the build.
Some smoke tests for applications like Gmail can include test cases that are very critical to the app. For example-
– The user should be able to log in to the application.
– The inbox should be populated with received mail.
– The user should be able to compose and send mail, etc.
Why it is called ‘Smoke’ testing?
Smoke testing got its name from the testing of electrical appliances. In the past, the first thing to do while testing an electrical device was to plug it to a power outlet and see if it emits smoke or not. If there is no smoke then it means that the electrical circuits are not faulty and the device can be tested for its functionality.
The same is the case with software, we check that if the bare minimum functionality is working or not, in order to make a choice as to whether thorough testing needs to be done or not.
Features of Smoke testing
- Build verification testing – It is also known as build verification testing or build acceptance testing.
- Shallow and wide – It is the shallow and wide approach of testing, we cover wider functionality but only the most common/basic use cases.
- Documented – Most of the time smoke tests are documented and often automated as well.
Advantages of Smoke testing
- It helps in quickly identifying issues in crucial functionality.
- In case of issues found during smoke tests, a lot of time gets saved as the build is rejected and the testing team doesn’t perform complete test execution in the faulty build.
- Integration issues can be identified quickly using smoke testing.
Recommended reading
- Sanity testing – its features and advantages
- Difference between smoke and sanity testing
- Software Testing Tutorial – Complete Guide