As Figure 1-5 illustrates, software problems are 100 to 1,000 times more expensive to find and repair after deployment than beforehand. For this reason, it's important to assess continuously the quality of a system with respect to its functionality, reliability, application performance, and system performance. Figure 1-5. The cost of fixing problems
Verifying a system's functionality ”the bulk of the testing activity ”involves creating tests for each key scenario, each of which represents some aspect of the system's desired behavior. You can assess a system's functionality by asking which scenarios failed and where, as well as which scenarios and corresponding code have not yet been exercised. As you are developing your software iteratively, you test at every iteration, a process of continuous, quantitative assessment. Verifying software quality offers a number of solutions to the root causes of software development problems:
|