What definition of software defect is useful for measuring the efficacy of testing?
A precise measure of the efficacy of testing requires a precise definition of what a software defect is. The usual definitions I find are not very precise about defects that are found early in the process, such as at unit testing or earlier. A typical definition of software defect is: A software defect is any flaw or imperfection in a software work product or software process. A software work product is any artifact created as part of the software process including computer programs, plans procedures, and associated documentation and data. A software process is a set of activities, methods, practices, and transformations that people use to develop and maintain software work products. Using a definition like this, it is unclear if thing like syntax errors or errors in unit tests should be counted as software defects for the purpose of determining the efficacy of testing.