High-quality programs have automated tests. We need to use everything at our disposal to be sure that our software works. The golden rule is this: to be deliverable, a feature must have an automated unit test. Without an automated unit test, a feature cannot be trusted to work and should not be used. According to Kent Beck, in Extreme Programming Explained:
"Any program feature without an automated test simply doesn't exist."
There are the following two essential points regarding the automated testing of program features:
- Automated: This means that there's no human judgment involved. The testing involves a script that compares actual responses to expected responses.
- Features: Elements of the software are tested in isolation to be sure that they work separately. In some contexts, features are quite broad concepts involving functionality...