The Ten Principles of Good Software Testing

Y2K testing did not start in a vacuum. Several groups of computer professionals realized the need to develop a full repertoire of software testing techniques by the mid-1980s. By the 1990s, software testing whitepapers, seminars, and journal articles began to appear. This indicates that the groups of the 1980s were able to gain practical experience with their testing techniques.

Although Y2K testing did represent a very specifi c kind of defect detection and correction, a surprising number of more general testing techniques were appropriate for retesting the remediated (Y2K-corrected) programs. Thus, the Y2K testing frenzy directed a spotlight on the larger issues, processes, and strategies for full development life cycle software testing. These principles are an amalgam of the professional testing experience from the 1980s and 1990s and the Y2K experience to yield the following underlying software testing principles.

Principles of good testing

  • Business risk can be reduced by finding defects.
  • Positive and negative testing contribute to risk reduction.
  • Static and execution testing contribute to risk reduction.
  • Automated test tools can substantially contribute to risk reduction.
  • Make the highest risks the first testing priority.
  • Make the most frequent business activities (the 80/20 rule) the second testing priority.
  • Statistical analyses of defect arrival patterns and other defect characteristics are a very effective way to forecast testing completion.
  • Test the system the way customers will use it.
  • Assume that defects are the result of process and not personality.
  • Testing for defects is an investment as well as a cost.