Today's software world has agreed that tests are crucial to working software. But what makes a good software test? What software components do we have to test? And, more importantly, how can we develop well-crafted tests?
In general, tests should fulfill the following requirements:
- Predictability
- Isolation
- Reliability
- Fast execution
- Automation
- Maintainability
The following describes these requirements.