Skip to content

Testing Strategy — Notes#

Speed targets#

  • Unit suite: < 30 s on local laptop.
  • Component suite: < 2 min.
  • Integration suite (per service): < 5 min.
  • E2E smoke: < 10 min.

Flake budget#

  • Aim for < 0.1% flake rate.
  • Quarantine flaky tests; either fix in 1 week or delete.

Test data#

  • Each test seeds its own fixtures; never depend on global state.
  • Use builders or factories (UserBuilder.aUser().withEmail(...)).
  • Teardown via transaction rollback (faster than DELETE).

CI strategy#

  • Pyramid bottom on every PR.
  • Pyramid top on merge to main + nightly.
  • Performance + chaos on a schedule, not per-PR.

Refs#

  • Test-Driven Development by Example — Kent Beck.
  • xUnit Test Patterns — Gerard Meszaros.
  • Growing Object-Oriented Software, Guided by Tests — Freeman & Pryce.
  • Martin Fowler: "Test Pyramid", "Test Doubles" articles.
  • Pact docs (pact.io).