What Is Smoke Testing?

Written by Coursera Staff • Updated on

Explore smoke testing, how it can save on unnecessary software testing, and the difference between smoke testing and sanity testing.

[Featured Image] A quality assurance analyst works at her office desk to conduct smoke testing.

Smoke testing, also known as confidence testing and build verification testing, is a software testing process used to determine the stability of a software build. The smoke test allows the quality assurance team to conduct further software testing. 

When you download an application, it usually installs easily onto your device and works properly without glitches. That’s because the application has undergone multiple tests, beginning with smoke testing. If the application discovered bugs during the smoke test, the build would have returned to the software developer for correction. The smoke test is the initial test that looks for any issues in the software so they can be fixed before moving on to the subsequent testing stage, possibly making the testing process more challenging. 

The testing applies to new builds and changes in the build. For example, if the application developer changes how it works, it will require a new build and go through a smoke test and other testing before re-releasing. This testing process ensures the application will function properly and better than the original release. A software update doesn’t need a smoke test; however, a complete application overhaul does. 

Smoke testing saves time and money by avoiding additional testing so regression testing can begin. This article will explain the process of smoke testing and its advantages.

When is smoke testing done?

Smoke testing is performed when new software enhancements and functions are developed and integrated with an existing build in a quality assurance (QA) staging environment. It confirms the critical functionalities are working correctly.

To begin the smoke testing, the development team decides between manual, automated, or hybrid testing types before deploying the build in the QA environment. A subset of test cases is identified, and test/quality assurance engineers test cases on the build targeting the critical functionality. The test cases are developed to expose build errors. The QA team continues with functional testing if the series of test cases passes. Any failures go to the development team for investigation and correction. With each change in the build, the team performs another round of smoke testing.

Sometimes, the test cases are identified during development. This depends on the company or organisation and how it runs its testing. Not all follow the exact testing procedures.  

Smoke testing vs sanity testing

Smoke testing and sanity testing are similar, but they have distinct differences. The smoke test checks for critical functionalities, and the sanity test checks that new functionalities work perfectly. Deep testing is not performed with a sanity check.

Developers and testers perform smoke testing, and only testers perform quick checks. Smoke testing is acceptance testing, and sanity testing is regression testing. A significant difference is smoke testing tests the entire application, and sanity testing only tests the critical components.

Sometimes, the smoke and sanity tests need to be conducted in the software build. If this is the case, smoke testing should be done first. 

Other differences include:

Smoke testingSanity testing
DocumentedNot documented
Comprehensive scope; covers various functions and featuresLimited scope; typically covers subsets of functions
Superficial testing to catch major issuesIn-depth testing to verify specific functions or features
Software builds may be stable or unstableSoftware builds remain relatively stable
Basic testingOne component of regression testing

Who performs smoke testing?

The quality assurance team typically performs smoke testing. The QA team members work closely with software developers and automation teams. It’s not unusual for a developer to conduct a smoke test. Depending on the software development a business or organisation undergoes, many tests may need to be performed, and it can be challenging to keep pace.

Why do smoke testing?

Smoke testing is necessary before automation testing can be performed, as the initial testing occurs in the software development lifecycle. The purpose of the test is to rule out core errors. If errors are found, the build is rejected and returned to the QA team. Smoke testing is not deep but rather a test to catch the mistakes before they become more challenging to correct. The purpose of smoke testing is to save time and resources and avoid being sent back and forth between teams.

Advantages of smoke testing:

  • Locates any initial software bugs

  • Identifies the critical functionalities 

  • Ensures each build is error-free so testing can proceed

  • Can be conducted manually or automated

  • Completed in minutes

  • Provides quick feedback

Smoke testing cycle

Smoke testing should be performed to ensure there are no significant issues that could be costly later. The smoke test steps depend on the configuration of the build tool, but the basic testing steps are the same.

  1. Prepare for the test by doing any necessary setup. You may need to copy files, set up database tables, or install licences.

  2. Gather your files for the smoke test.

  3. Run the test from your build tool with a single script. Be sure to save the report when the test is finished running. Any failures should be reported to the software developers.

  4. Clean the environment by deleting files or emptying the database tables.

  5. If the application passes the smoke test, it will proceed to a regression test and, finally, a system test.

Learn more

To learn more about the career opportunities in software testing, consider a specialisation such as Software Development Lifecycle offered by the University of Minnesota on Coursera. This flexible programme walks you through all stages of the development process. 

You may also be interested in taking the Agile Development Specialisation offered by the University of Virginia on Coursera. This beginner-level course helps you gain in-depth testing knowledge and skills, ranging from usability testing to user experience design to product management, all in about four months.

Consider gaining additional credentials, such as the IBM DevOps and Software Engineering Professional Certificate, also on Coursera. This three-month programme covers topics ranging from test-driven development to Agile software development, helping you gain the in-depth DevOps skills needed to become job-ready.

Keep reading

Updated on
Written by:

Editorial Team

Coursera’s editorial team is comprised of highly experienced professional editors, writers, and fact...

This content has been made available for informational purposes only. Learners are advised to conduct additional research to ensure that courses and other credentials pursued meet their personal, professional, and financial goals.