Software Testing Coverage and Negligence

In this article, Cem Kaner explores the technical concept of software testing coverage and the legal concept of software negligence. The article discusses the idea of complete coverage and the trade-off that software developers have to make when testing software. The main idea is that complete coverage is a misleading concept. “This “completeness” is measured only relative to a specific population of possible test cases”. You might achieve line coverage, but to achieve path coverage, you must test every path through the program and this is an impossible task. The goal of the software tester is to prioritize among tests in a careful way. This means to select the test strategy that could be rationally considered as the most likely to find the most bugs or the most serious bugs. This article has an appendix that lists 101 coverage measures.