Smoke Testing: What, Why & When

QATestLab
3 min readNov 3, 2020

Testing type, the idea of which is to identify serious problems as early as possible and reject this build (return for revision) at a preliminary stage of testing. Smoke testing helps QA engineers not delve into long and complex checks, thereby not wasting time fixing bugs later. This effective method allows software developers and product owners to find critical bugs earlier and save time and money. Let’s take a closer look at this type of testing.

What is Smoke Testing and Why to Perform it?

Smoke testing is one of a few methods in the software testing domain that possess numerous titles. Intake test, build verification test, or even confidence testing — all these names represent the same essence — smoke testing — a testing technique that checks the readiness of software to go through more rigorous testing. Put differently, this ensures that the critical functions of an application under test are performing as reasonably expected.

There are such advantages of Smoke testing:

  • integration problems are immediately identified;
  • you can reveal problems at an early stage of product development;
  • it provides a certain level of confidence that changes to the software have not adversely affected key areas of the system;
  • a failure in smoke testing results in immediate rejection of that software build.

Smoke tests are performed every time we receive a new build (version) of a project (system) for testing while considering it relatively unstable. At its essence, this is a short cycle of tests, confirming (denying) the fact software runs and performs its main functions. Considering that smoke testing test cases are almost always the same and have rare changes, they can be easy.

Smoke testing VS Re-test, Sanity, and Regression testing

Smoke testing is very close to other testing techniques like re-test, sanity, and regression testing. That’s why both newbies in software testing and even experienced testers very frequently can confuse these concepts. For instance, you can encounter problems with understanding when sanity testing starts, and smoke ends; how much we need to restrict testing a part of the system’s functionality, and etc. Let’s break these terms down.

Sanity testing: used every time we get a relatively stable build to determine performance in detail. In other words, it validates that a critical part of the system’s functionality is performing as required at a low level. Once again, both smoke and sanitary help to avoid wasted time and effort to identify software flaws quickly, as well as whether it deserves to go into a more in-depth and thorough testing phase or not.

Re-test: carried out if a feature/functionality already had defects, and these defects were recently fixed. At the same time, regression tests do exactly what takes the lion’s share of today. Namely, they realize test automation. Automated Regression Testing (AUT) is needed to make sure that new (added) application functions / fixed defects did not affect the already existing functionality, which worked (and was tested) earlier.

To differentiate these testing types, we prepared the table with the needed details.

Of course, the line between these concepts is conditional and remains at your discretion within the project framework. But to grow above yourself in a professional sense, you need to comprehend what you are doing, why, and how correctly you are doing it. For this reason, the table above will come in handy.

Bottom Line

When a new module/functionality is added, or there a fresh build is provided by a developer, there is a need to perform smoke testing. Why is it so important? After all, smoke testing allows to:

  • to detect bugs much earlier;
  • to troubleshoot new and regression bugs much faster;
  • to boost the productivity of the QA team;
  • to save resources for product owners.

As always, if you require help with testing your project, don’t hesitate to. Thanks for reading.

Originally published at https://blog.qatestlab.com on November 3, 2020.

--

--

QATestLab

QATestLab is an international provider of independent QA and testing services with 15 years of cross-industry experience. https://qatestlab.com/