What is smoke testing? Difference between smoke testing and sanity testing

What is smoke testing?

Smoke testing is a testing technique that is performed to check whether the major functionalities of a software application are working fine. The purpose of smoke testing is to ensure that the build is stable enough for the next testing phase.

In simple words, it tests whether the system is stable or not. Smoke testing quickly identifies and fixes any major issues in the software before more detailed testing is performed. It is also known as Build Verification Testing or Confidence testing.

When do we perform smoke testing?

Generally, smoke testing is performed every time a new build is deployed, as it may come with blocker bugs. After all, introducing a new feature or fixing a bug, might have affected a major functionality of the original software.

What is sanity testing?

Sanity Testing is a subset of regression testing. It is performed to assure the bugs have been fixed after the build release. In simple terms, sanity testing is performed to ensure that all the bugs have been removed and no issues were introduced because of these modifications.

It focuses on checking the functionality of the application and not detailed testing. In Sanity testing, the builds are stable, and the testing is conducted on some specific components or functionalities.

When do we perform sanity testing?

Sanity testing is generally performed on a build where the production deployment requires immediate action like fixing a critical. This means whenever there is an improvement in the functionality of the specified software.

Difference smoke testing and sanity testing

Smoke testing

Sanity testing

Smoke testing is done to assure that the build is stable enough to perform further rigorous testing and that the critical functionalities are working fine. 

Sanity testing tests whether the bugs are fixed after the stable build and determines the system’s correctness.

It is a subset of acceptance testing.

It is a subset of regression testing.

First smoke testing is performed on the initial build.

Sanity testing is performed when the build is comparatively stable.

Smoke testing is scripted and can be documented.

Sanity testing is unscripted and cannot be documented.

Smoke testing is considered a wide testing approach where all components of the application are tested.

Sanity is a narrow testing approach in which specific components of the application are tested.

It includes all of the system’s essential functionality. 

It includes only those modules which have undergone code change. 

It includes end-to-end system verification.

It includes testing only the modified or specific component functions.

Smoke testing can be performed both manually and automatically. 

Sanity testing can be performed without using test cases or scripts.

It confirms the successful installation of a software build.

The software is rejected immediately after detecting any issues. Thus it saves time and effort.

Smoke testing measures the stability of the system.

Sanity testing measures the rationality of the system.

Smoke Testing is done by both developers and testers

Sanity Testing is carried out by only testers

Conclusion

Here we have made a comparison between smoke and sanity testing. A beginner in testing must be familiar with the fundamentals of both testing for effective and good Quality Assurance results.

This blog concludes that both smoke and sanity testing are required to test software to avoid wasting time and effort. Both types of testing quickly determine whether an application is too defective to merit any rigorous testing. In industry, test cases for Sanity Testing are often integrated with that for smoke tests, to speed up test execution.

References:

  1. Smoke Testing

  2. What is smoke testing?