Q6 of 38 · Manual & exploratory
Define smoke testing, sanity testing, and regression testing.
Short answer
Short answer: Smoke verifies the build is stable enough to test further (does it boot, does login work). Sanity verifies a specific change works at a shallow level. Regression verifies nothing else broke.
Detail
Smoke testing is wide-and-shallow, run very early in a test cycle. The purpose is gatekeeping: if smoke fails, no further testing happens until the build is fixed. Examples: app launches, home page renders, user can log in, payment page loads. Often automated as the first job in CI.
Sanity testing is narrow-and-shallow, run after a small change or hotfix. The purpose is "did this specific change behave as intended" without re-running the full suite. Often manual and ad-hoc.
Regression testing is wide-and-deep — re-running existing test cases (usually automated, sometimes manual) after a change to verify no previously-working behaviour has broken. Regression suites are the backbone of release confidence.
The boundary between sanity and smoke confuses many candidates because some teams use them interchangeably. The crisp distinction in interviews: smoke runs to greenlight further testing; sanity runs to confirm a fix; regression runs to confirm nothing else regressed.