11Internals of Fault Injection Techniques
11.1 Introduction
The computer industry appears to be experiencing a fairly strong shift away from the performance‐focused paradigm to a service‐based paradigm that promises high dependability, such that users can justifiably trust a delivered service.
One of the trends shaping system dependability research has been the changes in failure rates and the dominant sources of failures, both hardware and software [1]. Hardware failure rates are going down, while the relative contribution of software is showing an upward trend. The concern for soft errors, however, is increasing as device sizes shrink and complexity increases. At the same time, the number of end users has grown by an order of magnitude, further reducing systems’ tolerance of failures.
To achieve high dependability, systems are designed with fault‐tolerance features to detect errors and then mask or recover from the effects of those errors. Thus, the testing of those fault‐tolerance features is extremely important to understand how dependable a system with incorporated fault‐tolerance mechanisms is, and to gain insight into the success and behavior of error detection and recovery. Fault/error injection can be applied to conduct detailed studies of the complex interactions between faults/errors and the fault‐tolerance features designed to handle them. For more than three decades, fault injection has been recognized as a means of effectively testing and stressing fault‐tolerance ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access