Software Testing
Reliability Testing Tutorial: What is, Methods, Tools, Example
Reliability Testing Reliability Testing is a software testing process that checks whether the...
Smoke and Sanity testing difference is the most misunderstood topic in Software Testing. There is an enormous amount of literature on the subject, but most of them are confusing. The following article makes an attempt to address the confusion.
The key differences between Smoke Testing and Sanity Testing can be learned with the help of the following diagram -
Smoke Testing vs Sanity Testing
To appreciate the above diagram lets first understand -
If you are developing a simple computer program which consists of only one source code file, you merely need to compile and link this one file, to produce an executable file. This process is very simple.
Usually, this is not the case. A typical Software Project consists of hundreds or even thousands of source code files. Creating an executable program from these source files is a complicated and time-consuming task.
You need to use "build" software to create an executable program and the process is called " Software Build"
Smoke Testing is a software testing technique performed post software build to verify that the critical functionalities of software are working fine. It is executed before any detailed functional or regression tests are executed. The main purpose of smoke testing is to reject a software application with defects so that QA team does not waste time testing broken software application.
In Smoke Testing, the test cases chose to cover the most important functionality or component of the system. The objective is not to perform exhaustive testing, but to verify that the critical functionalities of the system are working fine.
For Example, a typical smoke test would be - Verify that the application launches successfully, Check that the GUI is responsive ... etc.
Sanity testing is a kind of Software Testing performed after receiving a software build, with minor changes in code, or functionality, to ascertain that the bugs have been fixed and no further issues are introduced due to these changes. The goal is to determine that the proposed functionality works roughly as expected. If sanity test fails, the build is rejected to save the time and costs involved in a more rigorous testing.
The objective is "not" to verify thoroughly the new functionality but to determine that the developer has applied some rationality (sanity) while producing the software. For instance, if your scientific calculator gives the result of 2 + 2 =5! Then, there is no point testing the advanced functionalities like sin 30 + cos 50.
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 |
Click here if the video is not accessible
Read more about Smoke Testing in software engineering
Reliability Testing Reliability Testing is a software testing process that checks whether the...
Payment Gateway Testing Payment Gateway Testing is a testing of Payment Gateway in a system for...
Following are frequently asked questions in interviews for freshers as well experienced QA...
What is The Waterfall Model? WATERFALL MODEL is a sequential model that divides software...
Code coverage testing is an important measure that quantifies the degree to which the source code...
To understand Cyclomatic Complexity, lets first understand - What is Software Metric? Measurement is...