In software development, the most popular measurement is of the quality attribute. Here we explain why is software quality measurement non-trivial one. The post is aligned with the Black Box Software Testing Foundations course (BBST) designed by Rebecca Fiedler, Cem Kaner, and James Bach.
Let start with a more straightforward example. How to count the number of tennis balls in the picture above? The simple answer is calculating using your fingers. Let’s say that you can not use your fingers for counting. You must count the balls by just looking at them. Counting using fingers is an example of trivial measurement because the relation between the number of balls and measurement instrument (fingers) is straightforward: one ball, one finger, two balls, two fingers. It gets complicated after ten balls when we need to remember a ten. But what is the relation between the number of balls and your counting in the head? It is no more trivial.
Software quality has the same issue, there is no straightforward relationship between quality and measuring instrument. If we count the number of bugs, the number of bugs and software quality does not have a direct link. For example, a low number of bugs does not imply higher quality. What if we missed all the critical bugs?
Another example of non-trivial measurements is the size of the program. Attribute size is not only determined with program size in bytes. What about the number of if statements and loops? This also determines the program size, but this time, the size of its complexity.
Before you start your measurement of some software product attributes, you need to determine the relationship between attribute and measurement instrument. If there is no straightforward relationship, your measurement is not trivial.