Redundancy of some sort is used to detect faults before they
result in failures. Examples include:
coding-based fault detection, and
testing for faults.
Complexity: The general area of
fault detection includes many NP-complete, exponential, and factorial
problems. The complexity of many other such problems, however, is well
within the normal computing capability available today. These issues have to
be addressed on a case-by-case basis.