Michal Young and Richard N. Taylor. Rethinking the taxonomy of fault detection techniques . Fault detection techniques can be classified as dynamic analysis or static analysis. Static analysis consists of code walk throughs, and inspection of requirements and specification documents to find flaws in the implementation. The presence of faults is generally an undecidable property.
Every practical technique incorporates a compromise between accuracy and effort.
Michal Young and Richard N. Taylor. Rethinking the Taxonomy of Fault Detection Techniques . Technical report, Software Engineering Research Center, Purdue University, September 1991.