Red Green Repeat Adventures of a Spec Driven Junkie

Journey to TDD - Smoke Tests Unscalable

If you found this article and want to start at the beginning, this series starts here.

Having smoke tests is a tool the business will always recommend engineering do to avoid system errors.

Smoke tests are useful and should be in every software engineer’s toolbelt.

The problem with smoke tests, they do not scale. As the system grows in complexity, there are more paths through the system. More conditions and points of failures.

Smoke tests also require documentation for them. When the system is small and simple, one can communicate the tests verbally.

Just test to make sure the system can (checkout/find/do/etc.) - like other systems.

As a well understood system that is similar to another, the comparisons are easy.

When there is differentiation - now what? What is the expectations?

My recommendation is for smoke tests to be for the happy path (note: path, not paths).

There has to be a way to track unscalable part of smoke tests