Skip to content

Fault Induction

Mitigating known faults and testing for Misbehaviours is accepted as good software development practice. However, if we are to trust software, we must have a method for exposing undetected Misbehaviours, as well as for identifying faults in our implemented mitigations and tests. These flaws in the software and its tests can be exposed by intentionally breaking or stressing the system. In RAFIA, the set of techniques used for this purpose are called fault inductions.

For example: ​

  • Introduce software errors and misconfigurations into the target software
  • Introduce workload stresses to starve resources or overload the system
  • Cause software processes to terminate abnormally
  • Trigger known component Misbehaviours
  • Run software processes that deliberately misbehave

These techniques are used to:

  • Demonstrate that tests react correctly to Misbehaviours
  • Demonstrate that mitigations prevent Misbehaviours, or react as expected
  • Expose Misbehaviours that we have not already identified or anticipated
  • Catch unintended effects in later system changes, including integration of the software in a new system context

Misbehaviours, and the role of Fault Induction in identifying them, are further discussed in this section.