Smoke testing: fast verification of core functionality after a build. "Does the basic stuff work?"
- 5-15 minute test suite.
- Critical paths only.
- Run after every build / deploy.
- Pass / fail quickly.
Sanity testing: verification of specific feature after a fix or change. "Does this specific thing work?"
- Targeted to recent changes.
- More detail than smoke.
- After fix or feature.
Exploratory testing: unscripted exploration to discover unexpected issues. "What if I do this?"
- No predefined script.
- Tester explores intuitively.
- Catches issues automation misses.
- Hard to systematise.
When to use:
- Smoke: every build, automatically.
- Sanity: when verifying specific changes.
- Exploratory: throughout, especially for new features.
Comparison:
- Smoke / sanity = automation-friendly.
- Exploratory = manual; human creativity.
Senior insight: all three matter. Exploratory finds the bugs automation misses; smoke catches breakage; sanity verifies fixes.
