Sanity Testing vs Smoke Testing
By Sanghita Ganguly, Community Contributor - February 6, 2023
Smoke Testing is a kind of testing that assures the major functionalities of a software/system is working fine. It is necessary to test all system functionalities, including the front-end and back-end. In simple words, it declares whether the system is stable or not.
On the other side, Sanity Testing assures the bugs have been fixed after the build release. Generally, the builds are stable, and the testing will be done on some specific components or functionalities.
Both are types of functional testing but are technically different from each other. Thus we will focus on smoke vs sanity testing in our next section.
Smoke vs Sanity testing: Core Differences
|Smoke Testing||Sanity Testing|
|The goal of this testing is to confirm that the recently made build is steady enough to perform further rigorous testing and can the basic functionalities are working properly.||The goal is to test whether the bugs are fixed after the stable build and determine the system’s correctness. It just includes the module on which code changes take place.|
|This testing can be performed by two ways- manually and automatically.||This testing can be done without any test cases and scripts.|
|The software can be stable or unstable in smoke testing. This testing is done after releasing every new build, including an end-to-end system verification. So, in-depth testing is necessary for this.||For this test, the software should be comparatively stable. It is done for specific component verification, like a newly introduced feature. So, in-depth testing is not possible for this.|
|Executing smoke testing helps to ensure that the issues fixed on the previous build are not bothering the vital functionalities of the application.||Executing sanity testing helps to save unnecessary testing effort and time because it’s only performed on some specific functionalities.|
|Test documents and scripts are made for future reference.||There is no test document or test script needed for this testing. So, no future reference will be available.|
|It is assumed as a subset of acceptance testing.||Assumed as a subset of regression testing|
Smoke and Sanity Testing (with Examples)
Smoke Testing Example
Let’s take an example of the LinkedIn app. The following features will be tested-
1. Launch the app.
2. Log into the account with valid credentials.
3. Go to the ‘home’ and check the newsfeed-
- The news is shown properly.
- All the reactions are working by clicking on the ‘like’ button.
- Other fields like ‘comment’, ‘repost’, and ‘send’ are also working.
4. The ‘Search’ menu is working well.
5. The ‘Messaging’ section is working. Messages can be sent and received in the right way.
6. Then go to ‘My Network’ –
Check the ‘Manage my network’ section. There are subsections like- Connections, People I follow, Groups, Pages, Events, Newsletters, and Hashtags. Verify their quantities are shown on the right-hand side.
- Check the ‘Invitations’ field. Verify if any new connection requests and the pending connection request are there.
- ‘Show more’ option is visible.
- ‘People you may know’ section is available.
7. Go to the ‘Post’-
- Create a post.
- Verify the ‘Post’ button is working.
8. Verify all the notifications appear in the ‘Notifications’.
9. ‘Search jobs’ menu is available in the ‘Jobs’.
10.Search for a job and apply.
11. Sign out from LinkedIn by clicking on ‘Sign out’.
So, from the above example, it is easily understood that smoke testing is a kind of end-to-end testing.
Sanity Testing example
Here is an example of sanity testing, which will state some features of a cab booking application. They are-
- Sign-up for the app with a username and password.
- Log into the app.
- Only the users who sign-up will be acceptable for the login.
- Search for a cab.
- Only logged-in users can search for a cab.
- Book a cab
Only these six features will be tested. QA will be responsible for these features testing. So, developers will be involved in the modification of these features if required. Again sanity testing will be conducted on the modified features. No other features will be taken for this purpose.
Read More: How to ensure Maximum Test Coverage?
Tools for Smoke and Sanity Testing
- Selenium: Selenium is a widely used automation tool for software testing. You can run both smoke and sanity testing on Selenium. It can manage to execute huge numbers of test cases simultaneously. Tests can be recorded (videos, screen captures) and replayed later.
- Phantom JS: It’s a popular automation tool for smoke testing. Also, it supports manual testing. By using this tool, you can smoke testing on web applications. Furthermore, you can decrease testing time by two-thirds using this tool.
- Cypress: Cypress is a well-known automation tool for sanity and smoke testing. It provides algorithm-based test scenarios for web applications. It also provides screen recording features as well.
Advantages of Smoke testing and Sanity Testing
|Smoke Testing||Sanity Testing|
|1. It helps to detect bugs in the early stages.|
2. It also helps to confirm the successful installation of a software build.
3. It recovers the quality of the software and decreases the risk of failures.
4. Also, it helps to find out issues at the integration level which become unnoticed by the development team.
|1. Verify small functionalities of the software and only focus on them instead through testing.|
2. If an issue is identified in sanity testing, the software will be rejected immediately. Thus it saves time and effort in regression testing.
3. It helps in rapid problem detection.
4. It becomes valuable when the testing time is limited.
Difficulties in Smoke Testing and Sanity Testing
|Smoke Testing||Sanity Testing|
|1. It is not equal to complete functional testing. It’s just an early version of functional testing. So, there is a chance to find a showstopper bug after smoke testing has passed.|
2. This testing is helpful for automation testing. But it becomes time-consuming for manual testing.
|1. Does not cover the design level of the software. Thus it’s difficult for the developers to find and fix the issues.|
2. This test is on a few functionalities. So, there is a huge chance to overlook issues in other functionalities. They will not recover.
How does BrowserStack assist?
BrowserStack Live and App Live run quick sanity and smoke testing on real devices (Android, iOS, Windows, and macOS) and OS-browser combinations.
BrowserStack also gives access to a Selenium Grid, which helps to faster execution of test cases. You can perform functional testing and regression testing. So, it is also fruitful for sanity and smoke testing.