Home / Blog /
Smoke Testing vs Sanity Testing

Smoke Testing vs Sanity Testing

by
Mark Bathrick
“All Code is Guilty until Tested”

Development of software applications which will be able to meet the needs of the end users, remain a single-minded concern of several business enterprises.

In doing so, they remain cautious of the fact that they should not compromise on any element of the given software product. However, how do they guarantee this?

The answer lies in Software Testing. Each form of Software Testing helps to meet a different objective, whether it's integration testing, smoke testing, or any other form.

Having said that; the idea of Smoke Testing and Sanity Testing is often confused with each other, with many using the two terms interchangeably. While this might be convenient, it is not technically correct.

Thus, in order to clear the confusion, it is important to delve into the issue of Smoke Testing vs Sanity Testing in its entirety.    

The literature on the issue of Sanity vs Smoke Testing is still not well developed. Accordingly, in this blog, we shall try to take up a comparative analysis of Sanity Testing vs Smoke Testing.

We will look at the differences between the two as well as try to understand their relation with Regression Testing, under the issue of Smoke Testing vs Sanity Testing vs Regression Testing

If you wish to know more on the issue of Sanity Testing, refer to our blog on “What is Sanity Testing?: The Fundamentals

What is Smoke Testing?

Before teams perform smoke testing, they ensure the system's preliminary readiness. Smoke Testing is considered to be a variant of Acceptance Testing and is also known as ‘Confidence Testing’ or ‘Build Verification Testing’.

It is executed in the early stages of the Software Development Life cycle and is carried out on initial builds. The prime objective of Smoke Testing is to guarantee the seamless working of the core functionalities of the software application. It does not involve rigorous testing.

However, by way of investigating the critical areas of an application, Smoke Tests help in identifying poor builds in the primary stages itself. This prevents wastage of time and effort on further testing which will be futile. If the Smoke Test fails, it results in instant rejection of the build.

Smoke Testing

What is Sanity Testing?

A Sanity Test is considered to be a variant of Regression Testing and is also known as ‘Cursory Testing’.

Sanity Testing is carried out after minor bug fixes and changes in its functionality or code. It ensures that the bugs have been fixed, all errors have been addressed, and there is no introduction of new defects.

It is a broad, quick and shallow Software Testing technique, which helps in determining the feasibility of further testing. Sanity Testing is critical in ensuring that the new code changes do not affect the existing functionalities.

Sanity Testing Workflow


Smoke Testing vs Sanity Testing: Similarities

  • Smoke Testing as well as Sanity Testing are useful in determining the feasibility of further testing. It only allows for further evaluation of those software applications whose core functionalities are working properly. 
  • Both these tests can be conducted manually as well as in an automated fashion. 
  • Both these Software Testing Techniques act as important checks against undue wastage of time and resources. If an application is too defective, it will be discarded altogether. 
  • In most cases, both Sanity as well as Smoke Testing is conducted at different stages of a Software Development Lifecycle. Smoke Testing generally precedes Sanity Testing.

Sanity vs Smoke Testing: Differences

In this section of the blog, we shall take up the issue of Smoke vs Sanity Testing by looking at the differences between the two. 

Basis of Comparison Smoke Testing Sanity Testing
Purpose of Testing It is undertaken in order to ensure that the core functionalities of a software application are working properly. It is undertaken in order to ensure that the additional/new functionalities are operating properly and the bugs have been fixed.
Nature Smoke Testing is regarded to be a subset of Acceptance Testing. Sanity Testing is regarded to be a subset of Regression Testing.
Coverage of Testing It has a broad approach which spans over all the parts of an application. It has a narrow approach which only emphasizes upon the most important parts of an application.
Point of Execution Smoke Testing is conducted in the initial stages of SDLC on initial builds. Sanity Testing is conducted towards the end of SDLC on stable builds.
Goal The objective is to verify stability. The objective is to verify rationality.
Executors Smoke Testing can be carried out by developers or testers. Sanity Testing is carried out by testers alone.
Form It is documented and scripted. It is generally undocumented and non-scripted.
Intent Smoke Testing is conducted every time a new software build is released. Sanity Testing is planned and intentional when there is insufficient time to conduct in-depth testing.

Smoke vs Sanity vs Regression Testing

In this section of the blog, we shall conduct a tripartite comparison on the issue of Smoke Testing vs Sanity Testing vs Regression Testing. However, before we proceed with that, let us look at what is Regression Testing. 

Regression Testing

After any change, update or modification has been made to the code, Regression Testing helps in ensuring that the application is still working fine. It is crucial in guaranteeing the functionality and stability of the software builds.

It is usually the last leg in the Software Development Lifecycle and is conducted by the QA testing team after the execution of the Sanity Tests is complete.

They help in checking the detailed functionalities of the software application under scrutiny.

Types of Regression Testing
Smoke Testing Sanity Testing Regression Testing
Focuses on core functionalities of a software application Focuses on additional/new functionalities and bug fixes Focuses on the complete system and bug fixes
Executed on Initial Builds Executed on Stable Builds Executed on Stable Builds
Verifies Stability Verifies Rationality Verifies Functionality
Carried out by Testers or Developers Carried out by Testers Carried out by Testers
Subset of Acceptance Testing Subset of Regression Testing Superset of Smoke and Sanity Testing
Broad and Shallow approach Narrow and Deep approach Broad and Deep approach

Gain Expertise In
Data Analytics
in just 4 months!
Expedite the process of
decision making  by 5x.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Conclusion

It is important to remember that the choice of Software Testing Techniques remain dependent on the needs of testing at hand.

In most cases, both Smoke Testing as well as Sanity Testing is carried out in order to ensure the stability, rationality and functionality of software builds. In such situations, Smoke Testing precedes Sanity Testing.

However, in a number of cases, the test cases for Smoke Test are combined with that of Sanity Tests, which has resulted in their interchangeable usage. This blog seeks to refute that idea by deeply delving into the issue of Smoke Testing vs Sanity Testing.

It is clear that while there are apparent similarities between the two, there are logical differences between the two as well; suggesting that the issue of Sanity vs Smoke Testing is a real one.

sdet automation certification course

Author:
Mark Bathrick
Subscribe to our newsletter
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.