This post over on TestingReflections brings up an interesting point.  Michael answers the question, "What are the useful metrics for software quality" with another question.  He asks, in a roundabout fashion, what is it that we value about the software?  He rightly points out that some of the things we normally associate with software quality may not be what we're looking for in some circumstances.  He suggests these metrics as possibilities:

  • Is it testable?
  • Is it supportable?
  • Is it maintainable?
  • Is it portable?
  • Is it localizable?

These are all great questions that will affect many software projects.  A few more that come to my mind that often matter are:

  • Does it meet the specification?
  • Is it extensible?
  • Is it documented (both the code and for the customer)?
  • Is it deterministic (does it behave the same each time)?

Michael points out that none of his metrics--and really none of mine--are quantifiable.  They are qualitative metrics.  The bind testers often find themselves in is that they are asked by management to produce numbers (pass rates, code coverage, complexity values, bug trends, etc.) to describe quality.  While those are useful pieces of information, they do not accurately describe the state of the program nor of the code.