Definition

Smoke Testing

Quick testing of critical functionality to verify the build is stable enough for further testing.

Full Definition

Smoke testing (also called build verification testing) is a preliminary test that checks whether the most critical functions of the software work. It's the first line of defense after a new build is deployed, answering one simple question: "Is this build stable enough to invest more testing time in?" The term comes from hardware testing — if you plug in a device and it literally starts smoking, you don't need to run the full test suite to know something is wrong.


Characteristics of effective smoke tests:

  • Fast: Usually 15-30 minutes for manual execution, seconds to minutes for automated runs
  • Critical Path Only: Covers the most essential user journeys, not edge cases or rare scenarios
  • Shallow and Broad: Surface-level verification across many areas rather than deep testing of one area
  • Go/No-Go Decision: The primary output is binary — proceed with more testing, or reject the build
  • Stable: Smoke tests should almost never fail due to test issues — only due to real problems
  • Automated When Possible: Ideally triggered automatically on every deployment
  • Independent: Each smoke test should stand on its own without complex dependencies


If smoke tests fail, the build is rejected and sent back to development for fixes. Further testing is halted until a stable build is available. This prevents the common waste scenario where testers spend hours executing detailed test cases against a build that has fundamental issues — like the app won't even start, or the database connection is broken, or a critical dependency is missing. Finding these problems quickly saves everyone time.


A common misconception is that smoke testing and sanity testing are the same thing. While related, they serve different purposes. Smoke testing is broader — it checks whether the whole build is stable enough for testing. Sanity testing is narrower — it checks whether a specific bug fix or feature change works as expected before investing in full regression testing. In practice, many teams blur this distinction, but the conceptual difference matters when planning your testing approach.


The biggest mistake teams make with smoke tests is letting the suite grow too large. A smoke suite should be ruthlessly curated. If it takes more than 30 minutes to run, it's no longer serving its purpose as a quick stability check — it's become a mini regression suite. When team members suggest adding tests to the smoke suite, ask: "Would this test's failure mean the build is fundamentally unstable?" If the answer is no, it belongs in the regression suite, not the smoke suite. Another mistake is having smoke tests that are too environment-dependent or flaky. A smoke test that fails intermittently trains the team to ignore smoke test failures, which defeats the entire purpose. If a smoke test is flaky, fix it or remove it — there's no middle ground.


In practice, mature teams integrate smoke tests into their CI/CD pipeline so they run automatically after every deployment. The typical flow is: code is merged, the CI builds and deploys to the test environment, smoke tests run automatically, and the team is notified of the result. If smoke tests pass, the build is marked as eligible for further testing. If they fail, the build is automatically rolled back or flagged, and the team investigates immediately. Some teams run different levels of smoke tests: a minimal 5-test suite after every commit, a broader 20-test suite after deployment to staging, and a pre-production verification before the final go-live. This tiered approach provides fast feedback at every stage without overloading any single checkpoint.

Examples

  • 1.Verify the application starts without errors and the landing page loads within 3 seconds — covers basic infrastructure and deployment health
  • 2.Verify user can log in with valid credentials and reach the dashboard — confirms authentication, database connectivity, and session management are working
  • 3.Verify main navigation works and all primary sections load — clicking through the top-level menu items confirms routing and basic page rendering
  • 4.Verify the primary business transaction completes end-to-end — for an e-commerce site, this means searching for a product, adding it to cart, and completing checkout with a test credit card
  • 5.Verify the application's health check endpoint returns 200 OK with valid service status for all dependencies (database, cache, external APIs)
  • 6.Verify a newly registered user receives the confirmation email and can activate their account — tests the critical onboarding flow and email service integration
  • 7.Verify the API returns valid responses for the three most-used endpoints — confirms the backend services are running and responding correctly

In BesTest

BesTest makes smoke testing effortless with Smart Collections — define a rule like "Tag = smoke AND Priority = Critical" and the collection automatically maintains your smoke suite. When new critical tests are added with the smoke tag, they appear in the collection instantly. Run the smoke cycle after deployments and track results on the real-time dashboard.

See Smoke Testing in Action

Experience professional test management with BesTest. Free for up to 10 users.

Try BesTest Free