Fault Injection (FI) is an experimental technique used to evaluate system behavior under faults. It provides a significant speed-up over natural fault occurrence, condensing years of real-world operation into weeks. Nevertheless, the large number of parameters in a FI campaign, e.g., injection location, time, and fault model, creates a large domain space and increases campaign time. Injecting failures instead of faults, i.e., directly inject the outcome of the fault and not just the fault or the error, is used in chaos engineering to test error detection and fault handling mechanisms, but it can also be used to accelerate FI. However there is little hard-data about its representativeness. This paper conducts a comparison between injecting faults and failure models on a virtualized setup equipped with a fault tolerance mechanism. The results show that injecting failures can be an effective approach to evaluate the performance of fault tolerance mechanisms, however it is not a good alternative for evaluating the dependability of a system or for designing fault tolerance and failure prediction mechanisms.
No takes yet. Share an insight, caveat, or question.
Graça et al. (2024) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: