The goal of software testing is to provide development team members, project managers, and stakeholders a pulse on the quality of a software system. By extension, software testing aims to find the greatest number of defects with a manageable amount of effort applied over a realistic time span.
Roger S. Pressman notes the following points in his textbook regarding the measurement of software quality:
Measuring Quality
- Correctness - the degree to which a program operates according to specification
- Maintainability - the degree to which a program is amenable to change
- Integrity - the degree to which a program is impervious to outside attack
- Usability - the degree to which a program is easy to use
Many in the academic and business research space argue that the Defect Removal Efficiency or DRE should be the key quality indicator for most software projects:
Defect Removal Efficiency (DRE) = (errors) / (errors + defects)
where:
errors = problems found before release
defects = problems found after release
Given that most organizations use some form of defect tracking, the above metric can easily be calculated and tracked over time to see how the DRE changes. This metric, in my opinion, is useful only in the context of other metrics such as project sizing (KLOC), code coverage, test suite count, etc.