Fault Injection

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.

Read more about Fault Injection:  History, Software Implemented Fault Injection, Fault Injection Tools, Application of Fault Injection

Famous quotes containing the word fault:

    A man will teach his wife what is needed to arouse his desires. And there is no reason for a woman to know any more than what her husband is prepared to teach her. If she gets married knowing far too much about what she wants and doesn’t want then she will be ready to find fault with her husband.
    Barbara Cartland (b. 1901)