language-icon Old Web
English
Sign In

Fault injection

Fault injection is a testing technique which aid in understanding how system behaves when stressed in unusual ways. This technique is based on simulation's or experiment's result, thus it is more valid (or closer to reality) compare to statistical methods. Fault injection is a testing technique which aid in understanding how system behaves when stressed in unusual ways. This technique is based on simulation's or experiment's result, thus it is more valid (or closer to reality) compare to statistical methods. In software testing, fault injection is a technique for improving the coverage of a test by introducing faults to test code paths, in particular error handling code paths, that might otherwise rarely be followed. It is often used with stress testing and is widely considered to be an important part of developing robust software. Robustness testing (also known as Syntax Testing, Fuzzing or Fuzz testing) is a type of fault injection commonly used to test for vulnerabilities in communication interfaces such as protocols, command line parameters, or APIs. The propagation of a fault through to an observable failure follows a well defined cycle. When executed, a fault may cause an error, which is an invalid state within a system boundary. An error may cause further errors within the system boundary, therefore each new error acts as a fault, or it may propagate to the system boundary and be observable. When error states are observed at the system boundary they are termed failures. This mechanism is termed the fault-error-failure cycle and is a key mechanism in dependability. Technique of fault injection dates back to the 1970s when it was first used to induce faults at a hardware level. This type of fault injection is called Hardware Implemented Fault Injection (HWIFI) and attempts to simulate hardware failures within a system. The first experiments in hardware fault involved nothing more than shorting connections on circuit boards and observing the effect on the system (bridging faults). It was used primarily as a test of the dependability of the hardware system. Later specialised hardware was developed to extend this technique, such as devices to bombard specific areas of a circuit board with heavy radiation. It was soon found that faults could be induced by software techniques and that aspects of this technique could be useful for assessing software systems. Collectively these techniques are known as Software Implemented Fault Injection (SWIFI).

[ "Fault tolerance", "Software", "Fault (power engineering)", "Differential fault analysis", "General protection fault", "fault injection attack", "Dependability benchmarking", "laser fault injection" ]
Parent Topic
Child Topic
    No Parent Topic