What tests does production software need?
Test each layer for what it uniquely catches:
- Unit / property-based: calculations, date/time rules, state-machine transitions, validation edge cases
- Integration / database: transactions, lock behaviour, RLS, unique keys, migrations, replica assumptions
- Contract: external APIs and webhooks, breaking changes, error semantics
- End-to-end: high-value journeys, role access and mobile responsiveness
- Performance: peak RPS, latency tails, memory/DB pressure and cache-miss scenarios
- Resilience: dependency failures, queue replays, retry storms and restore drills
- Security: negative permissions, secret scanning, vulnerabilities and supply chain
Passing unit tests is not enough while authorization, recovery and peak traffic remain untested.