Smoke and sanity are the two most confused forms of testing and often used interchangeably. In this post we will see that fine difference between the two.
Smoke testing got its name from hardware/electrical device testing practices wherein a new device was used to checked/operated to see if it doesn't smoke. In software testing, smoke testing is done to ensure that normal functionalities are working fine and if the release is stable enough to be tested.
Sanity testing is software testing technique in which a particular functionality of software is verified for its correctness instead of performing regression on complete build. In this way, we can say that sanity testing is subset of regression testing with the intend of saving time.
|#||Smoke Testing||Sanity Testing|
|1.||Smoke testing is a shallow and wide approach of testing||Sanity testing is a narrow and deep approach of testing|
|2.||Smoke testing is done to ensure that the build is good enough to be considered for carrying on full-fledged testing||Sanity testing is done to ensure that after a new fix the particular component is working fine|
|3.||We usually have documented smoke tests i.e. there are some tests identified as smoke tests. These are tests are usually(preferably) automated||Sanity tests are generally not automated or even documented as test cases|
|4.||Smoke checks the overall components of the system||Sanity checks the specific functionality of the system|