Sanity testing is a subset of Regression testing which is performed to verify whether the minor bug fixes or minor changes (which are done on the stable software) are working fine, by only verifying the changed or related functionalities in depth. Sanity testing is generally performed when the minor changes or fixes are done on a stable software and the testers want to accept or reject the builds in less time. i.e. Testers will perform the Sanity testing and won’t accept the builds when the bug fixes and changed functionalities are not working on the newly provided build.
Though both smoke testing and sanity testing takes very less time to test, they are different in their approach. Smoke testing checks whether the major or critical functionalities of the application are working fine before performing in detailed testing on the application. Whereas Sanity testing is performed after the newly provided build has passed the smoke testing and is accepted for further testing, to check whether the small section of the software is working after minor fix or change. Smoke testing is wider and shallow (i.e. Testing all the critical areas in the application at a high level). Whereas Sanity testing is narrow and deep (i.e. Testing only the changed functionalities and related functionalities in depth).
Finally to conclude, Smoke testing is like general health check verifying all the basic/ major/critical functionalities are working fine. Sanity testing is like specialized health checkup verifying the specific affected functionality in depth. Smoke testing is generally performed on the newly provided build, whereas Sanity testing is performed on the build where small changes are done on the perfectly working and complete regression testing certified software. As part of Sanity testing, we only test the functionalities (in detailed testing) which have the chances to get affected due to minor changes/fixes.
Please leave your questions/comments/feedback below.
Happy Learning 🙂
Arun Motoori (www.QAFox.com)