Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Hybrid analysis techniques for software fault detection

Thesis/Dissertation ·
OSTI ID:6090995

Since the question Does program P obey specification S' can not be decided in general, every practical software validation technique must compromise accuracy in some way. Testing techniques admit the possibility that a fault will be undetected, as the price for quitting after a finite number of test cases. Formal verification admits the possibility that a proof will not be found for a valid assertion, as the price for quitting after a finite amount of proof effort. No technique so dominates others that a wise validation strategy consists of applying that technique alone; rather, effective validation requires applying several techniques. This dissertation contributes to the understanding of synergistic combinations of fault detection techniques. A framework for comparing techniques and considering their combinations is developed. Techniques that fold a state space depend critically on leaving out the right details to make the space smaller or more regular. One often wishes to argue that simplifications will not hide any of the errors a technique is designed to detect. This claim is formalized as a relation between models of execution, and sufficient conditions for establishing the relation with respect to specification formulas expressed in temporal logic are proved. The framework and theory are applied to two problems in reachability analysis of concurrent software. A method for limiting combinatorial explosion by parceling the analysis of large systems is described. It is justified by showing that analysis of each parcel is an error-preserving abstraction of the global analysis. To ameliorate the problem of spurious error reports, a technique combining reachability analysis with symbolic execution is devised. Soundness of the hybrid technique is established by showing that reachability analysis is an error-preserving abstraction of symbolic execution. A prototype implementation of tools to support analysis of concurrent software is described.

Research Organization:
California Univ., Irvine, CA (United States)
OSTI ID:
6090995
Country of Publication:
United States
Language:
English

Similar Records

Structure design for fault tolerant distributed programs
Thesis/Dissertation · Tue Dec 31 23:00:00 EST 1985 · OSTI ID:6742437

Combining static analysis and state transition graphs for verification of event-condition-action systems in the RERS 2012 and 2013 challenges
Journal Article · Tue Aug 05 00:00:00 EDT 2014 · International Journal on Software Tools for Technology Transfer · OSTI ID:1658682

Proceedings of the third international IEEE conference on Ada applications and environments
Conference · Thu Dec 31 23:00:00 EST 1987 · OSTI ID:5865435