After a small change or a bug fix, you do not need to retest the whole app, you need to confirm that one thing works before you spend time on anything deeper. That quick, focused check is sanity testing. It is the "did this specific fix actually fix it?" pass that saves you from full testing on a build that is already broken.
What is sanity testing?#
Sanity testing is a narrow, focused check that a particular function or bug fix works as expected after a change. It is usually unscripted and fast: verify the new behavior, confirm nothing obvious nearby broke, and decide whether the build is worth deeper testing. If the sanity check fails, you reject the build early instead of wasting a full test cycle on it.
Sanity vs smoke#
They are easy to confuse and often done together. Smoke testing is broad and shallow: does the whole app start and do the critical paths work at all? Sanity testing is narrow and deep: does this one changed feature work correctly? Smoke is the wide sweep across the build; sanity zooms in on what just changed.
Side by side#
| Aspect | Sanity testing | Smoke testing |
|---|---|---|
| Scope | Narrow, one change | Broad, whole build |
| Depth | Deeper on that feature | Shallow across all |
| Goal | Did this fix work? | Is the build stable at all? |
| Typical | After a fix or small change | After every new build |
When to use it#
Run a sanity check right after a targeted change: a bug fix, a small feature tweak, or a config update. It answers one question quickly so you can decide whether to keep going. It is not a substitute for regression testing, which checks that the change did not break anything elsewhere, sanity comes first and is much faster.
Where ObserveOne fits#
Once a fix is verified and shipped, ObserveOne keeps checking it: turn the behavior you sanity-checked into a monitored flow that runs on a schedule, so a future change that quietly breaks it gets caught automatically instead of waiting for the next manual sanity pass.
The short version#
Sanity testing is a quick, narrow check that a specific change or fix actually works before you invest in deeper testing. It is deep but narrow, where smoke testing is broad but shallow. Use it right after a targeted change to reject broken builds early, then follow up with regression testing and ongoing monitoring.