Skip to main content

Error

An error is a mistake a person makes — a developer misreading a requirement, mistyping a variable, or misunderstanding an edge case — that gets introduced into the code. An error becomes a fault once it's sitting in the codebase, and a failure once that fault actually produces wrong behavior a user or tester can observe.

The error → fault → failure chain is one of the more useful mental models in testing, because it separates three things people often collapse into one word ("bug"). The error is human and happens during development. The fault is the resulting flaw in the code — it can sit dormant for a long time if the flawed code path is never triggered. The failure is what a tester or user actually sees when that fault gets triggered under the right (or wrong) conditions.

Root cause analysis on a defect report is really tracing backward through this chain: starting from the observed failure, finding the fault that caused it, and understanding the original error that introduced the fault — the last step being what actually prevents it from happening again.