Smoke Testing
Purpose
Give every build and deploy a fast is-it-alive check: a tiny set of flows that must pass or the release is aborted/rolled back. Not comprehensive — a shallow, wide safety net at the moments things break.
When to Use
- Post-build and post-deploy (staging and production) as a go/no-go gate.
- As a quick local/PR sanity check before deeper suites.
- Not as a substitute for regression or E2E depth — smoke is deliberately shallow.
Inputs
- The critical "must work or we're down" flows across apps (
testing-selection).
- Deploy pipeline + health endpoints (
../../devops/ci-cd, ../../devops/production-readiness, ../../backend/backend-observability).
Discovery Questions
- What proves each app is fundamentally working (backend health/readiness green, web loads + auth, mobile launches + logs in)?
- What runs post-deploy against the real environment as the final gate?
- What's the abort/rollback trigger if smoke fails (
../../devops/rollback-planning)?
Responsibilities
- Define a minimal cross-app smoke set: backend liveness/readiness + one authenticated core request; web app loads + login + primary screen; mobile launch + login + core screen (
maestro-e2e smoke flows).
- Keep it fast and stable — seconds to a couple minutes; flakiness here blocks all deploys, so stability is paramount (
flaky-test-audit).
- Run it at the right moments: after build (artifact sane) and after deploy against the real environment (config/secrets/connectivity actually work — the class of failure unit tests can't catch).
- Wire smoke failure to go/no-go: block promotion, trigger rollback (
../../devops/rollback-planning), alert (../../devops/monitoring-logging).
- Keep it distinct from regression — resist growing smoke into a full suite.
Required Workflow
- Identify the alive-signals per app.
- Script minimal, stable smoke flows (reuse E2E smoke where present).
- Run post-build and post-deploy against real environments.
- Wire failure to abort/rollback + alert.
- Guard against scope creep; keep it fast.
Decision Rules
- Shallow and wide: touch each critical surface once, don't test depth.
- Post-deploy smoke against the real environment is the highest-value run — it catches env/config/secret failures nothing else does.
- If smoke gets slow or flaky, it stops gating deploys — protect speed and stability.
- Smoke failure is a stop signal, not a warning.
Rules
- Smoke stays minimal — depth lives in regression/E2E.
- Post-deploy smoke is mandatory before declaring a deploy healthy.
- Failures gate promotion and can trigger rollback.
Anti-Patterns
- A "smoke" suite that grew into full regression (slow, flaky, ignored).
- Skipping post-deploy smoke and learning from users that config broke.
- Smoke that only runs pre-deploy (misses environment failures).
- Flaky smoke that gets bypassed "to unblock the deploy."
- No rollback trigger wired to smoke failure.
Validation Checklist
Definition of Done
A fast, stable smoke suite proving each app is alive, run post-build and post-deploy against real environments, wired to go/no-go with rollback on failure — and deliberately kept minimal.
Related Skills
maestro-e2e, playwright-e2e, regression-testing, flaky-test-audit, ../../devops/ci-cd, ../../devops/production-readiness, ../../devops/rollback-planning, ../../devops/monitoring-logging, ../../backend/backend-observability.
Related Knowledge
../../../knowledge/ (critical alive-signals per app).
Related References
../../../references/testing/ (smoke patterns, when populated).
Context Loading Guidance
- Requires: critical alive-signals, deploy pipeline + health endpoints.
- Does not require: full test suites, deep flow detail.
- May load:
../../devops/rollback-planning, maestro-e2e.
- Stop when: post-build + post-deploy smoke gates are wired.
Token Efficiency Guidance
The alive-signal list per app is the whole design; keep it short — growth is the anti-pattern.
1---2name: smoke-testing3description: Use to define a minimal, fast smoke suite that proves a build/deploy is fundamentally alive — app starts, health checks pass, auth works, primary flows load — run after every build and post-deploy as a go/no-go gate, distinct from full regression.4---56# Smoke Testing78## Purpose910Give every build and deploy a fast **is-it-alive** check: a tiny set of flows that must pass or the release is aborted/rolled back. Not comprehensive — a shallow, wide safety net at the moments things break.1112## When to Use1314- Post-build and **post-deploy** (staging and production) as a go/no-go gate.15- As a quick local/PR sanity check before deeper suites.16- **Not** as a substitute for regression or E2E depth — smoke is deliberately shallow.1718## Inputs1920- The critical "must work or we're down" flows across apps (`testing-selection`).21- Deploy pipeline + health endpoints (`../../devops/ci-cd`, `../../devops/production-readiness`, `../../backend/backend-observability`).2223## Discovery Questions2425- What proves each app is fundamentally working (backend health/readiness green, web loads + auth, mobile launches + logs in)?26- What runs post-deploy against the real environment as the final gate?27- What's the abort/rollback trigger if smoke fails (`../../devops/rollback-planning`)?2829## Responsibilities3031- Define a **minimal cross-app smoke set**: backend liveness/readiness + one authenticated core request; web app loads + login + primary screen; mobile launch + login + core screen (`maestro-e2e` smoke flows).32- Keep it **fast and stable** — seconds to a couple minutes; flakiness here blocks all deploys, so stability is paramount (`flaky-test-audit`).33- Run it at the right moments: after build (artifact sane) and **after deploy against the real environment** (config/secrets/connectivity actually work — the class of failure unit tests can't catch).34- Wire smoke failure to **go/no-go**: block promotion, trigger rollback (`../../devops/rollback-planning`), alert (`../../devops/monitoring-logging`).35- Keep it distinct from regression — resist growing smoke into a full suite.3637## Required Workflow38391. Identify the alive-signals per app.402. Script minimal, stable smoke flows (reuse E2E smoke where present).413. Run post-build and post-deploy against real environments.424. Wire failure to abort/rollback + alert.435. Guard against scope creep; keep it fast.4445## Decision Rules4647- Shallow and wide: touch each critical surface once, don't test depth.48- Post-deploy smoke against the real environment is the highest-value run — it catches env/config/secret failures nothing else does.49- If smoke gets slow or flaky, it stops gating deploys — protect speed and stability.50- Smoke failure is a stop signal, not a warning.5152## Rules5354- Smoke stays minimal — depth lives in regression/E2E.55- Post-deploy smoke is mandatory before declaring a deploy healthy.56- Failures gate promotion and can trigger rollback.5758## Anti-Patterns5960- A "smoke" suite that grew into full regression (slow, flaky, ignored).61- Skipping post-deploy smoke and learning from users that config broke.62- Smoke that only runs pre-deploy (misses environment failures).63- Flaky smoke that gets bypassed "to unblock the deploy."64- No rollback trigger wired to smoke failure.6566## Validation Checklist6768- [ ] Minimal alive-signals per app defined.69- [ ] Fast, stable smoke flows scripted.70- [ ] Runs post-build **and** post-deploy against real environments.71- [ ] Failure wired to abort/rollback + alert.72- [ ] Kept distinct from regression; scope creep resisted.7374## Definition of Done7576A fast, stable smoke suite proving each app is alive, run post-build and post-deploy against real environments, wired to go/no-go with rollback on failure — and deliberately kept minimal.7778## Related Skills7980`maestro-e2e`, `playwright-e2e`, `regression-testing`, `flaky-test-audit`, `../../devops/ci-cd`, `../../devops/production-readiness`, `../../devops/rollback-planning`, `../../devops/monitoring-logging`, `../../backend/backend-observability`.8182## Related Knowledge8384`../../../knowledge/` (critical alive-signals per app).8586## Related References8788`../../../references/testing/` (smoke patterns, when populated).8990## Context Loading Guidance9192- **Requires:** critical alive-signals, deploy pipeline + health endpoints.93- **Does not require:** full test suites, deep flow detail.94- **May load:** `../../devops/rollback-planning`, `maestro-e2e`.95- **Stop when:** post-build + post-deploy smoke gates are wired.9697## Token Efficiency Guidance9899The alive-signal list per app is the whole design; keep it short — growth is the anti-pattern.