Symbolic Fault Injection
Report, 2006

Computer systems that are dependable in the presence of faults are increasingly in demand. Among available fault tolerance mechanisms, software-implemented hardware fault tolerance (SIHFT) is constantly gaining in popularity, because of its cost efficiency and flexibility. Fault tolerance mechanisms are often validated using fault injection, comprising a variety of techniques for introducing faults into a system. Traditional fault injection techniques, however, suffer from a number of drawbacks, notably lack of coverage (impossibility to exhaust all test cases) and the failure to activate enough injected faults. In this paper we present a new approach called symbolic fault injection which is targeted at validation of SIHFT mechanisms and is based on the concept of symbolic execution of programs. It can be seen as the extension of a formal technique for formal program verification that makes it possible to evaluate the consequences of all possible faults (of a certain kind) in given memory locations for all possible system inputs. This makes it possible to formally prove properties of fault tolerance mechanisms. The new method for symbolic fault injection has been prototypically implemented on the basis of an industrial-strength formal verification system and we demonstrate its viability by proving that a CRC implementation detects all possible single bit-flips.


fault injection

fault tolerance

Formal verification


Daniel Larsson

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

Reiner Hähnle

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

Subject Categories

Computer Science

Technical report - Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University: 06-17

More information