Look for:
- Duplicated tests
- Stale objectives - testing functionality that's retired, or A = A
- Misnamed files
- Stepping stone tests: e.g. "does change A to the plumbing introduce new errors" is redundant; if change A has happened, then the question is "are there errors in the end result", and all tests of that belong together.
The guiding principle is one test file per source file. Exceptions are tests that capture larger processes that span multiple functions.
Look for:
The guiding principle is one test file per source file. Exceptions are tests that capture larger processes that span multiple functions.