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.
safety-critical
fault injection
fault tolerance
Formal verification