Let’s talk about the differences between smoke testing, sanity testing, and user acceptance testing (UAT).
Generally, there is some confusion surrounding the topic of smoke testing vs. sanity testing. You might also be confused about why UAT is next to them. We want to clear it all out in this article.
Since all of them are considered quick checks, sometimes they can get mixed up, so let’s go over the basics.
Smoke Testing or tester acceptance testing
Is a subset of acceptance testing executed before any detailed functional or regression tests are done. This software testing technique helps verify if the critical functionalities of a deployed software build are stable or not.
The main objective of smoke testing is to verify that the important functionalities of the system are working as expected. That means we want to detect early major issues to avoid wasting time and resources in the future.
In a nutshell, smoke testing is a simple test used to show if the product is ready for testing or not. This can be done by either manual testing or by using an automation tool, depending on your project’s goals.
- Early detection of major issues.
- Less time and resources are spent on testing.
- Minimal integration risk.
Is a subset of regression testing. You perform sanity testing to ensure the code changes are working properly. More straightforward, sanity testing is executed after the software product has passed the smoke test.
The main objective of sanity testing is to ensure the changes made are working as expected.
- Quickly identify core issues.
- No need for documentation.
- Less time spent on regression testing.
You can do both smoke and sanity testing manually or with the help of an automation tool.
Is the last phase of the software testing process. This type of testing is conducted after the product has undergone Unit, Integration, and System testing, and it’s executed by the end-user or the client.
The main objective of this type of testing is to ensure that the software product is ready for release. An effective UAT should be thorough and reflect the user requirements while identifying potential problems.
- Keep ongoing maintenance costs as low as possible.
- Reduces the risk of defects identified in production.
- Increase end-user happiness.
|Smoke Testing||Sanity Testing||User Acceptance Testing (UAT)|
|It’s performed to check the critical functionalities of the build||It’s performed to check the new functionalities or bugs that have been fixed||It’s performed at the end to check whether the software meets the customer requirements or not|
|It’s performed by developers or testers||It’s performed by testers||It’s performed by the end-user or the client|
|Smoke Testing exercises the entire system from end to end||Sanity Testing exercises only the particular component of the system||UAT exercises the system by using random inputs|
|It’s usually documented and scripted||It’s usually not documented and unscripted||It’s usually documented and scripted|
To summarize, sanity and smoke testing are used to avoid wasting time and resources by quickly identifying whether the software build is too defective to start a rigorous testing process.
In the industry, test cases for sanity testing are typically combined with those for smoke testing to speed up the test execution. As a result, the terms are often confused and used interchangeably.