What is a smoke test, and what is a regression test?

Unit Testing & TDD Fundamentals Basic 1–2 Yrs2–3 Yrs Conceptual 1 min read

Quick Answer

A smoke test is a quick check that the critical paths work at all — “does the app start, can I log in, does the homepage load” — run after a build or deploy to decide whether deeper testing is worth it. A regression test verifies that existing features still work after a change — usually an automated suite run on every commit.

A smoke test is a fast, shallow check that the basics work — the app boots, login succeeds, the main pages load. You run it right after a deploy to decide whether it's even worth running the full test pass. A regression test makes sure something that used to work still works after a code change; the regression suite is the big set of automated tests that runs on every commit, and every time we fix a bug we add a test for it so it can't silently come back.

  • Smoke tests are shallow and broad; they're a go/no-go gate.
  • Regression suites grow over time — every bug fix should add a test so that bug can't come back.
  • Post-deployment smoke tests (hit a few key endpoints in production) are part of a safe release process, alongside health checks.