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).