What is a smoke test?
A smoke test is a form of testing that checks fundamental and/or important features first to determine if the build or release is stable enough for further testing. It’s a way to “fail fast”, so resources aren’t wasted on running the full battery of tests when critical functionality is broken.
Where does the term smoke testing come from?
In the book Lessons Learned in Software Testing by Bret Pettichord, Cem Kaner, and James Bach, they explain that the phrase smoke testing comes from electronic hardware testing. Where engineers would plug in and power up a new board and if it were to show signs of smoke, the test was done.
When should you do smoke testing?
Smoke testing will typically happen when functionality has been designed, developed, and integrated into the overall system. This type of testing can also act as a phase gate or the step before more formal functional or user acceptance testing happens.
If issues are found during smoke testing, the build is sent back to developers to address the issues and must go through the smoke test again to ensure it is ready for the next stages of testing.
Who does smoke testing?
Ideally, smoke tests should be automated, so they can be run by developers in their development environments as they work. It’s also common to see them incorporated into CI/CD pipelines. Smoke testing is also commonly performed by QA engineers or testers.