As we’ve already discussed, agile software development has dramatically changed software construction through the widespread adoption of automated testing and refactoring. We looked at refactoring in Refactoring; in this section, we’ll cover testing.
There’s more to effective automated testing than simply automating your tests. To achieve maximum benefit, your tests need to satisfy the following goals:
Each test outputs a single bit—pass or fail. No shades of gray, no qualitative output, no interpretation required. Just a simple yes or no.
No setup should be required before running a test. Before it runs, it sets up whatever environment it needs automatically, ...