Not all coverage is equal. After enough projects, a handful of test shapes have earned a permanent place; the rest I write, learn from, and happily delete.
The keepers
- Contract tests at the edges — what callers actually depend on.
- A few end-to-end paths that exercise the system the way a user does.
- Regression tests pinned to real bugs, each one a small monument to a lesson learned.
What I stop keeping: tests that assert the implementation back to itself, break on every refactor, and never once caught a real defect. Coverage is a means. Confidence is the goal.