SMOKE TESTING, also called as “Build Verification Testing”, is a kind of software testing that contains of a non-exhaustive set of tests that ensure the most significant functions work. In other words, smoke testing is the preliminary check of the software after a build and before a release. This kind of testing discovers fundamental and critical issues in an application before critical testing is implemented. The consequence of this testing is used to decide that if a build is stable enough to proceed with further testing. In other words, It is performed to ascertain that the critical functionalities of the program is working fine.
This testing is generally performed by testers after every build is given for
checking the build is in testable condition. This kind of testing is relevant in the Integration Testing, System Testing and Acceptance Testing levels.
Advantages of Smoke testing
● It helps to discover issues introduced in integration of modules.
● It helps to discover issues in the early phase of testing.
● It helps to get certainty to tester that fixes in the past builds not breaking
significant features (off course, only features exercised by smoke testing).
Importance of Smoke Testing
● Save Time
● Save Effort
● Save Cost
● Integration Risk
● Quality Improvement
● Progress Assessment
How to implement smoke Testing
To implement smoke testing, the testing team develop a set of test cases that are run any time a new release is provided from the development team. These set of test cases are used to test the major functional areas of the system. It will be increasingly profitable and productive if the smoke test suite is automated or it can be a combination of manual and automated testing.
Process of Smoke Testing
● Identify Smoke Test Cases
● Create Smoke Test Cases
● Run and Analyze the Results
Type of Smoke Testing
Smoke tests can be classified as functional tests and unit tests:
● Functional Tests utilize the complete program with various inputs.
● Unit Tests utilize individual functions, subroutines and object methods.
Techniques of Smoke Testing
1) Manual Approach
In this approach the smoke test cases are run physically. Manual approach is fundamentally utilized where the product is developed from the scratch and is unstable. Since during each development cycle new features/functionality is added to the product so utilizing automation for this situation will be very expensive affair, As a lot of effort that will required on each build to maintain the scripts. For each recently included feature, we may need to update the scripts or create new scripts. So for a new and unstable product, it is smarter to utilize the manual approach.
2) Automation Approach
In this approach the smoke test cases are automated and run with the help of some automation tools. In some situation the smoke scripts can be integrated with the automated build creation tools similar like Jenkins so that whenever a new build is deployed, the smoke suite automatically start execution without manual intervention and without wasting any time. In this, smoke test cases are utilized in those conditions where the product has become stable or product is the customization of some base product.
3) Hybrid Approach
Hybrid approach is the combination of manual and automation approaches.