Smoke Testing
A quick pass to confirm the build is worth testing. Walk the most critical paths — load, navigate, submit. If smoke fails, stop and send the build back.
What it is
Smoke testing is a shallow, wide test pass that checks whether the most critical functions of a build work at all. The name comes from hardware: plug in the circuit, see if it smokes. If it does, don’t do any more testing — go back and fix it.
The goal isn’t thorough testing — it’s a fast decision: is this build good enough to test? If smoke passes, deeper testing begins. If smoke fails, the build is returned immediately.
What to cover in a smoke test
- Application launches and loads without errors
- Core navigation works (menus, links, page transitions)
- Primary user journeys complete end-to-end (login, main action, logout)
- Critical integrations respond (database connects, APIs return data)
- No crash-level errors in the browser console or server logs
Time target: 15–30 minutes maximum. If your smoke test takes longer, it’s too broad.
Real-world NZ Example: Trade Me
Imagine you're testing the latest build of the Trade Me iOS app. A smoke test suite would include:
- Does the app open to the Home screen?
- Can I search for "Tent"?
- Does the "Watchlist" load my saved items?
- Does the "Sell" button open the listing flow?
Smoke testing in CI/CD
In modern pipelines, smoke tests are automated and run on every deployment. They gate whether a build proceeds to further testing or gets rolled back automatically. A failing smoke in CI/CD means the deploy is blocked — no human decision required.
As a tester, you should be able to identify which tests belong in the smoke suite: high value, fast to run, deterministic.
Smoke vs sanity testing
| Dimension | Smoke Test | Sanity Test |
|---|---|---|
| Scope | Wide — covers the whole application shallowly | Narrow — focuses on a specific changed area |
| Depth | Shallow — happy paths only | Moderate — verifies specific functionality |
| When run | After every build deployment | After a specific bug fix or change |
| Goal | Is the build worth testing? | Did the fix actually work? |
| Scripted? | Usually (stable script, rerun each build) | Often ad hoc (targeted at the fix) |
What smoke testing doesn't cover
Smoke testing is deliberately shallow. It does not:
- Test edge cases, error states, or boundary values
- Validate business rules or complex logic
- Test performance, security, or accessibility
- Confirm all features work correctly
Common mistake: treating a passed smoke test as proof the application is ready to release. Smoke tests only confirm the build is stable enough to test further — not that it’s production-ready.
Practice this technique: Try Grad Practice 01 — Typos & wording, Grad Practice 05 — Navigation & footer.
Try It — Build a smoke test suite
A new NZ council rates portal has just been deployed to the test environment. You have 20 minutes for a smoke test before the team begins deeper testing. Which of the following tests belong in your smoke suite? Tick all that apply.
Smoke suite answer
| Test | In smoke suite? | Why |
|---|---|---|
| Home page loads | Yes | Vital sign #1 — application is alive. |
| Login with RealMe succeeds | Yes | Core authentication — blocks all other testing if broken. |
| Rural rate calculation accuracy | No | Too deep — this is business logic testing, not smoke. Add to regression suite. |
| Payment page loads | Yes | Critical path milestone — confirms the payment flow is reachable. |
| 15-digit credit card rejected | No | Edge case validation — not smoke. Goes in functional testing. |
| Confirmation page after test payment | Yes | End-to-end critical path completion — confirms the whole flow works. |
| PDF receipt downloads | No | Nice to have feature, not a blocker. Add to functional suite. |
| Session timeout at exactly 20 min | No | Specific timeout value testing — too detailed for smoke. Functional/security testing. |
| Navigation links work | Yes | Core navigation — if menus are broken the portal is untestable. |
| No JS errors on home page | Yes | Fast check, catches silent errors that will affect everything downstream. |
Smoke suite = 6 tests. Total time: ~10 minutes. This confirms the build is stable enough to proceed. Tests 3, 5, 7, and 8 are valuable — just not smoke tests.