TL;DR
Software developers must be aware that structural code coverage is only one viewpoint at the code. There are many other essential coverages in use. The post is aligned with the Black Box Software Testing Foundations course (BBST) designed by Rebecca Fiedler, Cem Kaner, and James Bach.
Problem with coverage is that programming textbooks only talk about structural code coverage. But there are other essential things for your project that could be tracked. For example:
- Every type of font typeface that program supports
- Every kind of keyboard and keyboard driver
- Function equivalence for mathematical functions.
For 101 examples, see Kaner, Software Negligence, and Testing Coverage.
Here is a heuristic for coverage:
Track coverage of the things that are most important to your project, whether these are standard or not standard coverage measures.
Coverage As A Measurement
We have to be careful about how we use coverage as a measurement because:
People optimize what we measure them against, at the expense of what we do not measure.
You can read more about this problem:
- How To Misuse Code Coverage [source] by Brian Marick
- Measurement And Management Of Performance In Organization by Bob Austin.