In standard IEEE terminology, a
failure is an external, incorrect behavior of a program (an incorrect output or a runtime
failure).
Failures in the software are detected when test cases are executed against the original program. The tester must decide whether the output of the program on each test case is correct. If the output is correct, the process continues as described above. If the output is incorrect, then a
failure has been found and the process stops until the associated
fault can be corrected.