“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.

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.
