Terminology

 [Previous Chapter]  [Previous Page]  [Contents]  [Next Page]  [Next Chapter]

Following terms were first formally defined by Flaviu Cristian in 1985 (in the context of robustness and dependability) and later adopted by other authors. Here are some informal definitions:

*Failure: A program behaves differently as required by the specification.
 
*Error: The internal state of a program is invalid (e.g. a precondition, postcondition, or invariant is violated, dangling pointers or references, undefined pointers etc).
 
*Fault: A static cause which allows errors to occur (e.g. bugs, design faults, hardware or system faults).
 

Faults are static and can lead to error states under some dynamic circumstances. Errors, in turn, can cause failures which are observable from the black-box perspective.

Tests try to detect failures. During debugging, error states are observed that are tracked down to faults which are to be removed.

 [Previous Chapter]  [Previous Page]  [Contents]  [Next Page]  [Next Chapter]
Copyright © 2001, 2002 Andreas Borchert, converted to HTML on February 11, 2002