Test coverage
Improving coverage through simple design:
One way to improve test coverage is to write more code, which accounts for the enormous difference between the number of tests written by test-driven developers and professional testers. (Chapter 32 gives a concrete example: for the same problem, I wrote 6 tests while a professional tester wrote 65.)
Another way to improve test coverage is to simplify the program’s logic while keeping the number of tests the same. The refactoring phase often has this effect. Conditionals become messages (see Conditionals to polymorphism) or disappear altogether. In Phlip’s words, “Instead of increasing test coverage by considering every possible input, we keep the tests and reduce the code, so that the same tests cover more cases.” —p157, Test-Driven Development: By Example