The fault tolerance of complex software systems can be assessed experimentally using fault injection. To become an effective and systematic testing strategy, fault injection requires a realistic and well-defined failure cause model. However, such failure cause models are frequently incomplete, informal, and implicit or application-dependent. In this paper, we present a formal error model tailored for multi-threaded single-node applications. Based on the community-maintained Common Weakness Enumeration (CWE) database of real world software problems, we derive classes of error states which are either static, i.e., detectable from a snapshot of the system, or dynamic, i.e., dependent on the history of previous states. We then show how to implement our error model so that it becomes executable in our fault injection tool, Hovac.
['Lena Feinbube', 'Daniel Richter', 'Andreas Polze']
An Error Model for Multi-threaded Single-Node Applications, and Its Implementation