Smoke Testing

Tram Ho

1. What is Smoke Testing?

Smoke testing is a type of software testing that helps to ensure that the main functions of an application are working properly. This type of testing is also known as “Build Verification testing”. It is an incomplete type of testing with very limited test cases that cover the most important functionality or system components to ensure critical features work properly and ready for detailed testing.

Smoke testing is performed “before” any functional or detailed regression testing performed on the software build. The purpose is to deny a severely damaged application, so that the QA team won’t spend a lot of time installing and testing the software application

A typical Smoke test would be: Verify that the application ran successfully, Check if the GUI is responsive … etc

Smoke Testing Lifecycle

The diagram below explains the life cycle of Smoke testing. Every time a build is released for QA, the basic life cycle is:

  • If the smoke test pass, the build will be accepted by the QA team for further testing,
  • If the smoke test fails, the build will be rejected until the reporting problems are fixed.

3. Who does the Smoke testing?

Whenever there is a new build, the QA team determines the main functionality in the application to perform Smoke Testing. The QA team checks the relevant entries in the application that are being tested. However, not the whole team participates in this kind of experiment to avoid wasting all QA’s time.

The smoke test is ideally done by the QA lead who decides on the build pass to test further or reject it. Or in the event that the QA lead is absent, the QAs can perform smoke testing themselves.

Sometimes, when a project is large-scale, a QA group may perform this type of test. But this is not true of SCRUM because SCRUM is a structure without LEAD or Manager and each QA has its own responsibility for stories. Therefore, QA personally will do this test for their stories.

4. When to use Smoke testing?

Smoke tests are used in the following scenarios:

  • It is implemented by developers before submitting builds to the QA team
  • It is done by QA before they do more detailed tests
  • Smoke testing is done to ensure that the basic features of the application work as expected

5. Why do we do Smoke testing?

Smoke Testing plays an important role in software development because it ensures the accuracy of the system in the early stages. In this way, we can optimize the effectiveness of our tests. As a result, the Smoke Testing put the system in good condition. Once we finish Smoke Testing, then we just have to start testing the functionality.

  • All knots that appear in the build will be detected by performing Smoke testing.
  • Smoke testing is performed after the build has been released to QA. With the help of Smoke testing, most issues were identified at an early stage in the software development process.
  • With Smoke testing we make it easier to detect and correct major errors.
  • Using Smoke testing, the QA team can find issues to the functionality of the application that may be faced in the new code.
  • Smoke testing found important bugs.

Example 1: of login window: Can be moved to next window with valid user / pass when click submit button.

Example 2: The user cannot log out of the web.

6. Advantages and disadvantages of Smoke testing

6.1. Advantages

  • Easy to perform testing
  • Errors will be detected at an early stage of testing
  • Detect issues when integrating into stool
  • Verify that the corrected issues do not affect major system functions
  • Risk reduction
  • Runs fast if running automation
  • Save effort, time and money
  • Improve the quality of the entire system

6.2. Defect:

  • Smoke test is not a substitute for detailed testing
  • Even after the smoke test pass, you can still find serious bugs
  • This type of testing is best suited if you can automate the time spent manually testing test cases, especially large projects with 700-800 test cases.


Smoke Testing is done on each build, it helps to find bugs in early stages. Smoke Testing is the last step before software build goes into the system stage. Smoke testing must be performed on every build that is passed to testing.

Before doing Smoke Testing, the QA team must ensure the correct version of the build of the application under test. It is a simple process that optimizes application stability testing.

Smoke Tests can optimize test performance, and can improve the quality of the application. Smoke Testing can be done not only manually but also automation, depending on the client and the organization.


Share the news now

Source : Viblo