Fault propagation is both boon and curse. For programs undergoing V&V, propagation is boon, since fault detection is the goal. After software deployment, particularly for safety critical applications, propagation can result in hazardous outputs, which are a curse. Methods to decrease fault propagation for deployed systems are warranted, and we have provided just such a technique in this paper. Fault-tolerant mechanisms are more or less effective depending on where they are placed in a program. This paper combines two different techniques in order to find places where fault-tolerant mechanisms are most likely to defend against hazards. The two techniques are: (1) dynamic fault-injection to estimate the likelihood that anomalies will lead to hazards, and (2) a static analysis that predicts (via a heuristic) the likelihood that program state anomalies ("corruptions'') will propagate to subsequent program states during execution.
Index Terms:
fault, propagation, hazard, fault-tolerance, static error flow analysis, software safety, assertions
Citation:
Jeffrey M. Voas, Keith W. Miller, "The Avalanche Paradigm: An Experimental Software Programming Technique for Improving Fault-tolerance," ecbs, pp.142, IEEE Symposium and Workshop on Engineering of Computer Based Systems (ECBS'96), 1996