The cause-effect chain
A person makes an error (mistake), which introduces a defect (bug) into the software. When that defect is executed, it can produce a failure: an observable behavior different from the expected one. Distinguishing these three terms is one of the fundamentals of the QA vocabulary.
| Term | What it is | Example |
|---|---|---|
| Error (mistake) | Incorrect human action | The programmer writes '+' instead of '-' |
| Defect (bug) | Imperfection in the artifact | The calculation code is incorrect |
| Failure | Incorrect observable behavior | The invoice shows a wrong total |
Not every defect produces a failure: a defect only causes a failure if the faulty code runs under the right conditions. That is why 'not having seen a failure' does not mean 'there are no defects'.
The user sees a wrong total on screen. Is it an error, defect or failure?
The incorrect code that lives inside the system is called…