Smoke Testing
A quick, preliminary test that checks whether the most critical functions of a software build work before deeper testing begins.
What Is Smoke Testing?
Smoke testing is a shallow but broad type of software testing designed to verify that the most essential functions of an application work after a new build or deployment. The name comes from hardware testing, where engineers would power on a circuit board and check if it literally started smoking. In software, the idea is the same: before investing time in detailed testing, you confirm the build does not fall apart at the seams.
A typical smoke test covers core workflows such as logging in, loading the main dashboard, submitting a form, and completing a primary transaction. If any of these fundamental operations fail, the build is rejected and sent back to development. This saves significant time by preventing QA teams from running exhaustive test cases on a build that is fundamentally broken.
How Smoke Testing Fits Into the Testing Process
Smoke testing usually happens immediately after a new build is deployed to a test environment or staging environment. It acts as a gatekeeper: only builds that pass the smoke test move on to more rigorous testing phases like regression testing or functional testing.
In teams that practice continuous integration, smoke tests are often automated and triggered with every code merge. This tight integration with CI pipelines means broken builds are caught within minutes rather than hours. Automated smoke tests typically run in under five minutes and cover between ten and twenty critical paths through the application.
For teams exploring the differences between hands-on and automated approaches, our guide on manual vs automated testing provides a helpful comparison. Many teams use a combination: automated smoke tests for speed, supplemented by quick manual checks for visual or UX issues.
Writing Effective Smoke Tests
A good smoke test suite is small, fast, and focused on high-impact functionality. Start by identifying the features that, if broken, would make the application unusable. These are your smoke test candidates. Document each one as a concise test case with clear pass/fail criteria.
Avoid the temptation to expand your smoke suite into a comprehensive regression suite. The value of smoke testing lies in its speed. If it takes more than fifteen minutes to run, it is too large. Keep it lean, review it regularly, and update it when core features change.