Anyone can see a forest fire. Skill lies in sniffing the first smoke.

Robert A. Heinlein

What is Smoke Testing?

Smoke testing is a software testing technique that evaluates whether the software is stable enough to proceed with more rigorous testing.

Smoke testing tests the primary functions of the product. Only when smoke testing confirms that there are no showstoppers does full-fledged testing begins.

The primary purpose of smoke testing is to avoid wasting time testing the product in which some basic features are not working.

Smoke testing can be manual or automated.

What is the significance of "Smoke" in Smoke Testing?

Before thoroughly testing an electronic circuit, testers often switched it on and performed a few basic operations. They checked if there was any smoke. Smoke meant that some component was burnt, which indicated a problem with the design, and there was no need for further testing. If they did not detect any smoke, they proceeded with their testing.

The Motivation behind Smoke Testing

Let us take an example.

After completing unit and integration testing, your development team has prepared the first build of an e-commerce website.

Without performing smoke testing, your QA team starts running system tests and detect hundreds of bugs. Analysis reveals that some of the fundamental functions like adding a product to the shopping cart and checking it out are not working. There was no point in testing the remaining functionality.

You realize that your QA team wasted hundreds of hours because they have to retest the entire system all over again anyway.

To prevent this wastage in the future, you decide to introduce smoke testing.

Now, before the full-scale testing, the QA team will run some tests to test some primary functions like:

  • Adding a product to the shopping cart
  • Updating quantities and removing products from the shopping cart
  • Adding a shipping address
  • Checking out

Now, your QA team is confident that the product is at least of decent quality when full-scale testing begins.

How to do Smoke Testing?

It is important to remember that the point of smoke testing is to provide a quick assessment of software quality, which means the test scenarios should be practical, not comprehensive.

  1. List the essential features of the software.
  2. List the most common end-user paths.
  3. Prepare a test plan
  4. Create test cases
  5. Create test data

Advantages of Smoke Testing

  • It is easy to perform.
  • It doesn't require skilled resources.
  • It detects critical bugs quickly and early.
  • It results in better utilization of QA resources.
  • It improves the QA team's morale by not engaging them in unfruitful pursuits.