Sanity testing is a type of software testing that aims to quickly evaluate whether the basic functionality of a new software build is working correctly or not. It is a basic test to quickly evaluate whether a claim or the result of a calculation can possibly be true. Sanity testing is usually performed on a stable build of the software, and it is a subset of regression testing. The purpose of sanity testing is to quickly identify any major issues that would prevent the software from being used, rather than to uncover every possible error or bug in the system. Sanity testing may include verifying the user interface, data input and output, and other key elements of the software.
Sanity testing is often performed prior to a more exhaustive round of testing. It is performed to ensure that the code changes that are made are working properly and to check whether testing for the build can proceed or not. The focus of the team during sanity testing process is to validate the functionality of the application and not detailed testing. Sanity testing is generally performed on build where the production deployment is required immediately like a critical bug fix. If sanity test fails, the build is rejected to save the time and costs involved in a more rigorous testing.
Sanity testing is different from smoke testing, which is performed to verify that the critical functionalities of the system are working fine. Smoke testing is performed to ensure that the most important functionality or component of the system is working fine. Sanity testing is performed once the smoke test has been cleared and accepted by the Quality Assurance team.
In summary, sanity testing is a quick and basic test to ensure that the code changes made are working properly without any bugs. It is a subset of regression testing and is usually executed after the software product has passed the smoke test. The main objective of sanity testing is to verify that the changes or the proposed functionality are working according to plan.