Smoke Testing Vs Sanity Testing: What’s the difference?

difference between smoke and sanity testing

Smoke testing vs sanity testing! which one hail? To be frank, each process is important and the situation and requirement demand which one to choose from.

However, the comparison depicted here in this blog will help you understand more about smoke and sanity testing.

Smoke Testing

Smoke Technique is one of the testing types that’s instigated from hardware testing.

This technique comes into the scenario at the time of attaining build software from the development team.

The main reason to go for the smoke testing is to find out whether the software which is built is testable or not.

It is usually done at the point where the software is built.  This process has been given another name as well. It is actually called “Day 0″.

The smoke Testing process is counted as the best one because it is a time-saving one.

The most astounding feature about the process is that the time consumed is less since the testing is only done when the main functions of the application are not properly working or if certain major bugs are not sorted till that moment.

The main emphasis of Smoke Testing is on the working of the major features and primary functions of the application.

Going for the test is the basic and important feature of an application before one goes for the deep, accurate testing (before understanding all probable positive and negative values) is referred to as smoke testing.

The whole emphasis while going for the smoke testing is on the productive flow of the claim and it possesses only the verified data, not the unacceptable one.

In smoke testing,  the process confirms every build is testable or not; hence it is called Build Verification Testing.

When smoke testing is being conducted then one can look for the blocker bug at the initial period only so that the test engineer just doesn’t have to sit idle, or they can go on further and do the analysis of the independent testable modules.

Which test comes first smoke or sanity?

Smoke testing is usually performed on a new build/feature.  The main motto behind smoke testing is to ensure that the software is ready to be tested.

Sanity testing is performed when time is not at the disposal of the dev team. Smoke testing is done first and then the application goes through quick regression or sanity testing

What is the process for conducting smoke testing

The process to Conduct Smoke Testing:

For Smoke testing, there is no requirement to create test cases. In this, the only requirement is to pick the required test cases from the already created test cases.

As stated before too, Smoke Testing emphasis the workflow of core applications so that choosing test case suits that cover the main functionality of the application is done.

It is vital to bring down the number of test cases as much as possible and the time of implementation should not be more than half an hour.

When smoke testing is performed

Usually when the new build is implemented then one round of smoke testing is conducted because there are chances of blocker bugs in the latest one which is created.

However, there can be a certain change that might have wrecked a major feature that as fixing the bug or adding a new function which can affect a major piece of the original software, or the smoke testing is done where the installation is taking place.

When the stable build is all installed then smoke testing is conducted to find the blocker bug.

Why is smoke testing done?

There are certain reasons because of which smoke testing is conducted. Stated below are the important ones.

  • The smoke testing is basically done to make sure that the product is testable.
  • The smoke testing is done in the beginning so that the bugs which are there in the basic features could be detected and further can be sent to the development team so that the development team gets a lot of time to get rid of the bug.
  • Smoke testing is done to ensure that the application is installed in the approved manner.

Types of Smoke Testing

The Smoke testing is further divided into two types:

 Formal smoke testing

In this, kind of testing the application is sent to the Test Lead by the development team.

Further, the test lead will divide the task of testing the app among respective tests along with reports which state the whole scenario after going through the smoke testing.

Once the testing team is over with smoke testing, they will report for the testing done to the test lead.

 Informal smoke testing

Here, the Test lead notifies that the application is all set for further testing.

The test leads do not give any specific instructions to perform the smoke testing, but still, the testing team begins with the testing procedure of the application by going for the smoke testing.

Example for smoke testing

A detailed explanation about smoke testing and example for the process is given in this blog, please go through

Sanity Testing

Sanity Testing is a division of regression testing. Sanity testing is usually done to make sure that the code changes which are being done are carried out properly.

Sanity testing is a general strike to note down that the testing for the build can further go on or not.

The main emphasis of the team while doing the sanity testing process is to confirm the functioning of the application and not about the detailed testing.

Sanity testing is usually carried out on build where the production deployment is essential right away similar to a critical bug fix.

The functionality of Sanity Testing:

The main reason for which sanity testing is conducted is to know about the changes or the projected functionality is being done in the same order as it was mentioned.

If the sanity test fails, the software product is declined by the testing team to stay on a safer side in terms of time and money.

It is carried out once the software product has carried out the smoke test and the Quality Assurance team has acknowledged for the further testing.

Features of Sanity Testing:

  • Division of Regression Testing:

Sanity testing is further a division of regression testing and emphasizes the smaller part of the application.

  • No script required

There is no such script available for sanity testing most of the time.

  • No documentation

There is no documentation required for the sanity testing so it is undocumented.

  • Narrow and extensive

Sanity testing is narrow but at the same time it is an extensive approach of testing where limited functionalities are covered in depth.

  • Carried out by testers

Usually, sanity testing is carried out by the testers only.

Advantages of Sanity Testing:

  • Sanity testing is a great aid when it is about quick identification of the defects in the main area of functionality.
  • It can be further performed in a lesser time as there is no need for any kind of documentation for performing the sanity testing.
  • During the sanity testing if there are defects found then the project is further declined and this is a great way to save out on time which can be further utilized to carry out regression tests.

Example for Sanity Testing

  • For instance, build 2 has a multitude of feature which are tested and fixed accordingly.
  • Now build 3 with added features and integration has again come for testing
  • To make sure that the new features haven’t affected the existing ones, smoke testing will be performed
  • Once that’s done a high-level analysis of the entire software will be carried out to ensure no new bugs have surfaced.

Sanity Testing Process

The main reason for which the sanity test is performed is to know about the incorrect outcomes or faults which are not accessible in the constituent process.

Even it is done to make sure that the newly added features do not disturb the functionalities of ongoing features.

Further, three steps are implemented in the sanity testing process that is Identification, Evaluation, and Testing

First step- Identification

In the sanity testing process, the first step is the Identification one where one finds out the newly added constituents and features along with the adjustment there in the code while going for the process of fixing the bug.

Second step- Evaluation

Once the identification step is completed, one needs to analyze the recently implemented constituents, characteristics and further change them so as to verify their proposed and suitable working as mentioned in the stated requirements.

Third step- Testing

After performing the identification and evaluation step one needs to go further to the third step which is testing.

In this step, we examine and evaluate all the connected constraints, constituents, and fundamentals of all the above analyzed attributed and change them so as to ensure that all of it is working properly.

Once all the above-stated steps are going in the right manner, the build can be made to undergo more exhaustive and strenuous testing, and the release can be carried further for the thorough testing process.

Comparison of Smoke Testing and Sanity Testing

Thus both the tests have their own unique traits which make them required for the software processes.

Smoke testing vs sanity testing

                               Smoke Testing                  Sanity Testing
Used for checking critical functionalities of a software The focus will be on a particular area or minor functionalities
Performed to check the stability Used to verify the rationality
Both manual and automated test cases can be used Generally, sanity testing does not have a test script or test cases
Usually performed before passing the build to the testing team Executed before UAT and regression
Carried over by developers Performed by testers
A subset of acceptance testing A subset of regression testing

Some testing vs sanity testing


Hope you got to know the difference between sanity testing and smoke testing and are able to understand, smoke testing vs sanity testing has no meaning to it as both processes have equal importance.