Proponents of a context-driven approach[1] consider much of the writing about software testing to be doctrine, while others believe this contradicts the IEEE 829 documentation standard.
The seminal work in this area is often regarded as Testing Computer Software by Cem Kaner.
[5] Instead of the assumption that testers have full access to source code and complete specifications, these writers, including Kaner and James Bach, argued that testers must learn to work under conditions of uncertainty and constant change.
The agile testing movement, which includes but is not limited to testing methods practiced on agile development projects, is popular mainly in commercial circles, whereas CMM was embraced by government and military software providers.
Furthermore, providing positive evidence of defects may either indicate that you have found the tip of a much larger problem, or that you have exhausted all possibilities.
Both sides have continued to debate the merits of their approaches, but the true measure lies in assessing delivery quality.
Testing systematically without broader focus can be ineffective, while finding numerous errors does not necessarily mean Agile methods were the cause; it may simply indicate poor initial work.
One principle in software testing is summed up by the classical Latin question posed by Juvenal: Quis Custodiet Ipsos Custodes (Who watches the watchmen?
), or is alternatively referred informally, as the "Heisenbug" concept (a common misconception that confuses Heisenberg's uncertainty principle with observer effect).
By measuring how many bugs are found and comparing them to predicted numbers (based on past experience with similar projects), certain assumptions regarding the effectiveness of testing can be made.
While not an absolute measurement of quality, if a project is halfway complete and there have been no defects found, then changes may be needed to the procedures being employed by QA.