Emulation of Software Faults: A Field Data Study and a Practical Approach



The injection of faults has been widely used to evaluate fault tolerance mechanisms and to assess the impact of faults in computer systems. However, the injection of software faults is not as well understood as other classes of faults (e.g., hardware faults). In this paper we analyze how software faults can be injected (emulated) in source-code independent manner. We specifically address important emulation requirements such as fault representativeness and emulation accuracy. We start with the analysis of an extensive collection of real software faults. We observed that a large percentage of faults falls into well-defined classes and can be characterized in a very precise way, allowing accurate emulation of software faults through a small set of emulation operators. A new software fault injection technique (G-SWFIT) based on emulation operators derived from the field study is proposed. This technique consists of finding key programming structures at the machine code-level where high-level software faults can be emulated. The fault-emulation accuracy of this technique is shown. This work also includes a study on the key aspects that may impact the technique accuracy. The portability of the technique is also discussed and it is shown that a high degree of portability can be achieved.


Fault Injection, Software Faults, Software Reliability


Fault Injection

Related Project

DBench - Dependability Benchmarking


IEEE Transactions on Software Engineering, Vol. 32, #11, pp. 849-867, IEEE, November 2006

Cited by

Year 2009 : 1 citations

 Kai Pan, Sunghun Kim, and E. James Whitehead, Jr. "Toward Understanding of Bug Fix Patterns." Empirical Software Engineering, 14(3):286-315, June 2009.

Year 2008 : 4 citations

 Raul Barbosa, "Layared Fault Tolerance for Distributed Embedded Systems?, tese de doutoramento, Chalmers University, Suécia, 2008.

 Andreas Johansson, "Robustness Evaluation of Operating Systems?, PhD thesis, Darmstadt University, 2008

 Gabriella Carrozza, "Software Faults Diagnosis in Complex, OTS-Based, Critical Systems?, PhD Thesis, "FEDERICO II? University of Naples, Naples, Italy, November, 2008.

 Ang Jin, Jianhui Jiang, Jiawei Hu, Jungang Lou, "A PIN-Based Dynamic Software Fault Injection System", The 9th International Conference for Young Computer Scientists, ICYCS 2008, pp.2160-2167, 18-21 November, 2008.