Sanity Testing is one of the useful testing methodologies which is performed to ensure the fixation of previously detected bugs and simultaneously to make sure that any sort of minor or major changes or modifications introduced in the code or functionalities or module does not leads to existence of any new defect i.e. alteration produced in the software applications does not impact and affects the existing core functionalities and working of the application.
The primary purpose of sanity tests is to verify and validate the veracity of essential functionalities of software after regression testing as during the course of regression testing phase, fixation of bugs or any modification in the code or module might produce impact on or deviation in the intended functionalities of the software application. Sanity test are basic general tests which are used to evaluate any new functionalities added to or any sort of changes produced in the application and to ensure their introduction or existence does not impact the existing & intended functioning of the software product.
In sanity testing, rational thinking & logic implementations of developers are being tested through their developed application (build) i.e. if the developer had applied basic rationalities correctly while developing applications or not.
If the build fails to execute basic and normal functions and operations properly, then the build is considered deemed unfit for thorough and rigorous testing activities. A fail in the sanity test places the build in the suspended list of software builds, deferred for further thorough & rigorous testing until the build passes the sanity test. Thus, sanity tests are useful in saving time and efforts of testing team to work on comparatively unstable build.
You can also check our next article on Sanity Testing vs. Smoke testing here.
There is no hard and fast rule to carry out the process of sanity tests execution. Sanity testing is a speedy and quick process of testing the application as it does not involves the scripting of the test cases. In sanity testing, primarily two aspects or elements are considered and tested:
So, following steps in a sequential manner may be considered and executed during sanity testing.
Regression Testing does not allow testers to execute testing activities in a lesser time. Further, it increases the budget of the project due to its requirement of more manpower and time to execute complete test cases.
Coming to sanity testing, it is basically a subset of regression testing. It is a kind of surface level testing that ensures the expected working of specific functionalities of the software after multiple regressions. It provides benefits of carrying out testing in a limited time period. In addition, it does not affect the project cost due to lesser requirement of manpower and time to execute limited number of test cases/ non-complete test cases in comparison to regression testing.
Besides, a testing methodology, sanity testing may be seen as a time-management tool in software development life cycle(SDLC) that provides software acceptability for more thorough and rigorous testing in a quick time so as to avoid and save tester's precious time and efforts on examining defected software build.