Safeguard
Developer Tools•

What should a smoke test check after a dependency upgrade?

A smoke test after a dependency upgrade proves the app starts and its critical paths work. What to include, what to leave out, and how long it should take.

Safeguard Security Team
4 min read

A smoke test after a dependency upgrade is a short, fast check that the upgraded build starts, accepts a request, and completes your few most important user journeys. It does not prove correctness. It answers one question quickly: is this build so broken that nobody should spend more time on it?

What a smoke test is, and is not

A smoke test is a small set of broad checks. Martin Fowler describes a broad-stack test as one that exercises most of the parts of a large application, and notes that such tests are slower and harder to maintain than component tests, which is why a test pyramid suggests fewer of them. That is the right mental model. Keep the smoke set tiny, and let unit and component tests do the detailed work.

A smoke test is not a regression suite, a security scan, or a load test. If it takes more than a few minutes, people start skipping it, and then it stops protecting you.

What to include

Pick checks that fail loudly when a dependency changes underneath you. The upgrade most often breaks things at the seams: startup, configuration, serialization, authentication and the database driver.

CheckWhy an upgrade breaks it
Process starts and reports healthyChanged defaults, removed config keys, import errors
Login and one authenticated callChanged token or cookie handling in a framework or auth library
One read and one write against a real databaseDriver or ORM behavior changes
One call through each outbound integration, against a sandboxChanged HTTP client, TLS or timeout defaults
One background job runs to completionQueue or scheduler library changes
Main page or API route returns the expected shapeSerialization and templating changes

Add one check for the specific fix. If you upgraded because of an advisory, include a request that would have hit the vulnerable path and confirm it now behaves safely. That turns the smoke test into evidence the patch landed.

What to leave out

Leave out edge cases, long workflows, performance numbers and anything that depends on flaky third parties. Every extra check is another reason for a red build that is not about the upgrade. If a check fails more than once a month for reasons unrelated to code, remove it or fix it.

How to run it

  1. Build the upgraded version exactly as production builds it, from the lockfile, not from a fresh resolve. For npm, npm ci fails if the lockfile and package.json disagree rather than silently updating the lock, which is the behavior you want in a verification run.
  2. Deploy to a throwaway environment with production-like configuration and fake data.
  3. Run the smoke set. Cap it at a few minutes.
  4. If it passes, run the wider suite, then move to a staged rollout. See canary patch rollouts for what to watch after.
  5. If it fails, stop and bisect the change. Do not widen the rollout to "see if it clears up".

Run the same smoke set again after deployment, against production or the canary, using read-only checks. The set that passed in staging should be the set that confirms the release.

Who owns it

Treat the smoke test as part of the service, kept in the same repository and reviewed like code. When a new critical journey ships, adding it is part of done. When a journey is retired, remove its check.

Safeguard can generate the upgrade pull request and run your policy gates on it, but the smoke set should be yours, because just your team knows which journeys are critical. Free scan: gold.safeguard.sh/scan.

Try it yourself

Click through it at your own pace, or open it full screen. Look for where a failing check blocks the merge, which is where your smoke job belongs.

Quick check

How long should a smoke test take?

A few minutes at most. If it runs longer, people skip it, so trim it back to startup, authentication, one read, one write and the one check tied to the fix.

Does a passing smoke test mean the upgrade is safe?

No. It means the build is not obviously broken. You still need the normal test suite and a staged rollout with monitoring.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.