Smoke Testing

Sanity Testing Vs Smoke Testing: Introduction and Differences

The difference between smoke and sanity testing is one of the most misunderstood topics in software testing. On the subject, there is an enormous amount of literature available, but the majority of it is confusing. Attempts are made in the following article to clear up the misunderstanding.
The following diagram will assist you in understanding the primary differences between Smoke Testing and Sanity Testing –

What is a Software Build?

If you are developing a simple computer programme that consists of only one source code file, you will only need to compile and link this one file in order to produce an executable file. If you are developing a complex computer programme that consists of multiple source code files, you will need to compile and link each individual file. This is a very straightforward procedure.

Generally speaking, this is not the case. A typical Software Project consists of hundreds or even thousands of source code files, depending on the size of the project. Creating an executable programme from these source files is a complicated and time-consuming process that takes considerable effort and patience.

In order to create an executable programme, you must first use “build” software, which is referred to as the “Software Build” process.

Smoke Testing

After a software build has been completed, a technique known as smoke testing is used to ensure that all of the software’s critical functionalities are functioning properly. It is performed prior to the execution of any detailed functional or regression tests, if any. The primary goal of smoke testing is to reject a software application that contains defects so that the quality assurance team does not have to waste time testing a faulty application.

Smoke Testing is a technique in which test cases are selected to cover the most critical functionality or component of the system. The goal is not to carry out exhaustive testing, but rather to ensure that the system’s critical functions are functioning properly.

Examples of typical smoke tests would be: ensuring that an application launches successfully, checking for responsiveness of the graphical user interface, and so on.

What is Sanity Testing?

Sanity testing is a type of Software Testing that is performed after receiving a software build that has minor changes in code or functionality to ensure that the bugs have been fixed and that no new issues have been introduced as a result of the changes. It is performed to ensure that the bugs have been fixed and that no new issues have been introduced as a result of the changes. The objective is to determine whether or not the proposed functionality performs approximately as expected. If the sanity test fails, the build is rejected in order to save the time and money that would be required for more thorough testing.

Smoke Testing Vs Sanity Testing – Key Differences

Following is the difference between Sanity and Smoke testing:

Smoke Testing Sanity Testing
Smoke Testing is performed to ascertain that the critical functionalities of the program is working fine Sanity Testing is done to check the new functionality/bugs have been fixed
The objective of this testing is to verify the “stability” of the system in order to proceed with more rigorous testing The objective of the testing is to verify the “rationality” of the system in order to proceed with more rigorous testing
This testing is performed by the developers or testers Sanity testing in software testing is usually performed by testers
Smoke testing is usually documented or scripted Sanity testing is usually not documented and is unscripted
Smoke testing is a subset of Acceptance testing Sanity testing is a subset of Regression Testing
Smoke testing exercises the entire system from end to end Sanity testing exercises only the particular component of the entire system
Smoke testing is like General Health Check Up Sanity Testing is like specialized health check up

The goal is “not” to thoroughly test the new functionality, but rather to determine whether or not the developer used reasonable judgement (sanity) in the development of the software. For example, if your scientific calculator produces the result 2 + 2 = 5, you should be concerned. Consequently, testing advanced functionalities such as sin 30 + cos 50 is pointless at this point.

Points to note.

In order to avoid wasting time and effort, both Sanity testing and Smoke testing are methods of quickly determining whether an application is too flawed to be subjected to any rigorous testing.

Tester acceptance testing (also known as smoke testing) is another term for this process.

The process of performing smoke testing on a specific build is referred to as a build verification test.

Conducting a Daily build and smoke test in software projects is considered to be one of the best industry practises.

It is possible to perform both smoke and sanity tests by hand or with the help of an automation tool. The tests are frequently initiated by a process that is part of the same process that generates the build itself when automated tools are used.

You may be required to run both Sanity and Smoke Tests in the software build, depending on the requirements of the testing process. In such cases, you will first conduct Smoke tests before moving on to Sanity Testing and so on. In industry, test cases for Sanity Testing are frequently combined with test cases for smoke tests in order to expedite the execution of the tests. Thus, it is common for the terms to be confused and used interchangeably, as is the case here.