The smoke and sanity testing are techniques work as a part of the integration and regression testing respectively. The significant difference between the smoke and sanity testing is that the smoke test is employed in the unstable product while the sanity testing is applied to the more stable products. The smoke testing can be said to be shallow testing as it just tests for the vital requisite, but sanity testing examines each of the modules of the software at the end, for checking whether the applied changes works well.
Content: Smoke Testing Vs Sanity Testing
|Basis for comparison||Smoke Testing||Sanity Testing|
|Basic||Smoke testing evaluates and tests for the essential functions.||Sanity testing checks the software modules deeply.|
|Test cases||Can be written or automated test.||Unscripted|
|Approach||Shallow and wide||Narrow and deep|
|Prominence||Chief purpose is to cover every part of the application swiftly.||Emphasis on the functioning of the modules (software parts) of the software.|
|Acted upon||Every build||Only on the stable build.|
Definition of Smoke Testing
The Smoke testing is mainly originated from the integration testing approach. It usually starts before full-scale testing which covers a broad part of the software but not more complex and detailed aspects of it. Smoke testing is considered as the non-exhaustive testing where the working of the most crucial features of the product is checked.
The activities performed in the smoke testing are:
- Firstly, it converts the software modules into the code and collaborates it into a “build”. A build is consist of the data files, reusable modules, libraries, and engineered components which are needed to employ one or more functions.
- A series of test cases are planned to discover errors for making sure the functions perform appropriately.
- The multiple builds are then integrated into a single product, and the whole product is smoke tested repeatedly.
- The testing process is continued only until the results comply with the fundamental requirement of the product, but if the results do not match to the basic requirements, the product is returned to the development team for the essential changes.
Advantages of Smoke Testing
- Risk minimisation by detecting and rectifying the defects earlier.
- Repeated inspection improves the quality of the system.
- Simplified error determination and correction
- Progress is easily evaluated
Definition of Sanity Testing
The Sanity testing is a way to test the build entirely after applying the small alterations in the code and the functionality. It primarily checks whether the product is working correctly after alterations and the bugs have been fixed or not. The sanity testing is the subgroup of the regression testing and performed before the launching of the product. If the proposed functionality does not work according to expectations, the composed build is discarded to eliminate the time and cost needed in the rigorous testing.
The software needs to go through the other testing before undergoing to the sanity testing. This type of test is deeper in sense, means that it considers the detailed aspects of the software.
Advantages of Sanity Testing
- Good time utilization as the focus is on one or few areas of the functionality.
- Assures the proper working of the application after the implication of the slight changes in the code.
- Discovers the dependent missing objects.
Key Differences Between Smoke and Sanity Testing
- The Smoke testing is instigated on the build in the beginning and inspects for the most fundamental functions. On the other hand, sanity testing evaluates the software builds profoundly.
- Documentation in smoke testing is done through the written set of tests or automated tests while in sanity testing no scripting is done.
- The smoke testing technique is shallow and wide which means it involves every build in the testing but does not go at a very extreme level. As against, sanity testing uses a narrow and deep approach where the single build is thoroughly tested.
- The primary intention of the smoke testing is to cover every part of the software quickly. Conversely, sanity testing focus on the functioning of each module of the software.
- A developer is responsible for performing the smoke testing whereas the sanity test is carried out by the tester.
- Smoke testing is like checking for the number of documents in a document verification process. In contrast, sanity testing includes the complete evaluation of a single document.
The prior objective of the smoke testing is to confirm the stability of the product while sanity testing ensures the rationality of the product.