A software is tested in different ways. Sanity testing and Smoke testing are such type of testing used to test software
Sanity Testing
Sanity testing is a type of software functional testing performed after receiving a product with little changes in the code or its functionality to make sure that the bugs has been fixed in advance to resolve workflow issues.
When a stable product is undergone for small bug fixing or some functionality changes, then the tester will do a quick check of the product build to determine whether the product is eligible for further software testing or not. This is known as sanity testing.

Objective of sanity check are,
- To verify and validate the essential functionalities of the product
- Evaluate any new functionalities or changes made
- Ensure that the new changes don’t affect the existing functionalities
- Test the rational thinking and logic implementation of developers
As it is a quick process of testing an application, scripting of test cases is not required. The process involved in sanity testing are,
- Identify new functionality, features and changes involved in the code if any
- Identified features and functionality are evaluated to verify their intended and proper functionality
- Test all the depended parameters, associated functionality to ensure their appropriate functioning
Smoke Test
Some test is a high-level testing performed during the initial software build to make sure that the critical functionalities of the software or program is working properly. It is done before any detailed functional or regression testing executed on that particular software build. The process of smoke test targets all key features and it is often consider as a cost-effective approach because it is just checking the basic functionalities of the software build. Smoke testing is also known as build verification testing or build acceptance testing.
Smoke testing is done,
- By developers before giving the build to testing team
- By testers they start the detailed testing
- When the new functionalities of software are developed

Difference between Sanity and Smoke Testing
| Smoke Test | Sanity Test |
| Smoke test is done to make sure the critical functionality is working fine | Sanity test is to test the new functionality/ bug have been fixed |
| Objective is to verify the stability in order to proceed with further testing | Objective is to verify the rationality in order to proceed with further testing |
| Performed by both developer and tester | Usually performed by tester |
| Smoke testing is usually documented or scripted | Not documented or scripted |
| It is a subset of acceptance testing | It is a subset of regression testing |
| Smoke testing done to the entire system from end to end | Sanity testing is only done for a particular component of the entire system |
| It is like a general health check up | It is like a specialized health check up |