Smoke testing is a type of software testing which ensures that the major functionalities of the application are working fine. This testing is also known as ‘Build Verification testing. It is a non exhaustive testing with very limited test cases to ensure that the important features are working fine and we are good to proceed with the detailed testing.
The term ‘smoke’ testing originated from the hardware testing, where a device when first switched on is tested for the smoke or fire from its components. This ensures that the hardware’s basic components are working fine and no serious failures are found.
Similarly, when we do smoke testing of an application then this means that we are trying to ensure that there should NOT be any major failures before giving the build for exhaustive testing.
- The purpose of the smoke testing is to ensure that the critical functionalities of an application are working fine.
- This is a non-exhaustive testing with a very limited number of test cases.
- It is also known as Build verification testing where the build is verified by testing the important features of the application and then declaring it as good to go for further detailed testing.
- Smoke testing can be done by developers before releasing the build to the testers and post this it is also tested by the testing team to ensure that the build is stable enough to perform the detailed testing.
- Usually smoke testing is performed with positive scenarios and with valid data.
- It is a type of shallow and wide testing because it covers all the basic and important functionalities of an application.
- Usually the smoke testing is documented.
- Smoke testing is like a normal health check up of the build of an application.
Examples for Smoke Testing
Let us assume that there is an application like ‘Student Network’ which has 15 modules. Among them, there are 4 important components like Login page, Adding student details, Updating it and Deleting it. As a part of smoke testing we will test the login page with valid input. After login we will test the addition, updating and deletion of records. If all the 4 critical components work fine then the build is stable enough to proceed with detailed testing. This is known as Smoke testing.
How smoke testing works
Quality assurance (QA) testers perform smoke testing after the developers deliver every new build of an application. If the code passes the smoke, the software build moves on to more rigorous tests, such as unit and integration tests. If the smoke test fails, then the testers have discovered a major flaw that halts all further tests. QA then asks developers to send another build. This one broad initial test is a more effective strategy to improve software code than if the team conducted specific and rigorous tests early in the development process.
Smoke testing is also performed from the perspective of user experience (UX). This approach includes testing key functionalities, such as if the build is accessible or if the user interface (UI) and login mechanism function. Other key functionalities include if an action selection correlates with the intended action. For example, if a user adds an item to a shopping cart in an e-commerce web application, does the item appear in the cart?
When to use smoke testing
Smoke testing is used in the following scenarios:
- It is done by developers before giving build to the testing team.
- It is done by the testers before they start the detailed testing.
- Smoke testing is done to ensure that the basic functionalities of the application are working fine.
Advantages of Smoke testing
- It helps in finding the bugs in the early stage of testing.
- It helps in finding the issues that got introduced by the integration of components.
- It helps in verifying the issues fixed in the previous build are NOT impacting the major functionalities of the application.
- Very limited number of test cases is required to do the smoke testing.
- Smoke testing can be carried out in a small time.
Disadvantages of Smoke testing
- Smoke testing does not cover the detailed testing.
- It’s non-exhaustive testing with a small number of test cases because of which we are not able to find the other critical issues.
Smoke testing is not performed with negative scenarios and with invalid data.
Features of Smoke Testing
- Identifying the business-critical functionalities that a product must satisfy.
- Designing and executing the basic functionalities of the application.
- Ensuring that the smoke test passes each and every build in order to proceed with the testing.
- Smoke Tests enables uncovering obvious errors which saves time and effort of test team.
- Smoke Tests can be manual or automated.