Pepelen
Software Testing (QA) from Scratch

Lesson

Error, defect, failure — and the QA role

Learner can correctly use the error→defect→failure chain, distinguish verification from validation, and describe the QA role realistically.

1 / 6

From human mistake to user impact: the chain

From human mistake to user impact: the chain

ISTQB defines three terms that testers use precisely: error, defect, and failure. An error is a human mistake — a developer misreads a requirement and writes the wrong condition. That mistake produces a defect (also called a bug or fault) — a flaw embedded in the code, document, or other work product. If the software is executed and that defect is triggered, the system produces an incorrect result: that is a failure. For example: a developer misunderstands the spec and writes 'if age > 18' instead of 'if age >= 18' (error). The wrong condition now lives in the source code (defect). A user who is exactly 18 years old is incorrectly blocked from accessing the service (failure). Two more critical concepts: verification asks 'are we building the product right?' — checking that each work product conforms to its specification (e.g., does the code match the design document?). Validation asks 'are we building the right product?' — checking that the final system actually meets the user's real needs. You can pass verification but still fail validation if the specification itself was wrong. As for the QA role itself: a QA engineer is not just someone who clicks through an app looking for broken buttons. The job involves reading requirements critically, designing test cases, exploring the system creatively, collaborating closely with developers and product managers, and communicating risk clearly to stakeholders. It is analytical and collaborative work that requires curiosity and structured thinking.
Lesson notes
From human mistake to user impact: the chain
ISTQB defines three terms that testers use precisely: error, defect, and failure. An error is a human mistake — a developer misreads a requirement and writes the wrong condition. That mistake produces a defect (also called a bug or fault) — a flaw embedded in the code, document, or other work product. If the software is executed and that defect is triggered, the system produces an incorrect result: that is a failure. For example: a developer misunderstands the spec and writes 'if age > 18' instead of 'if age >= 18' (error). The wrong condition now lives in the source code (defect). A user who is exactly 18 years old is incorrectly blocked from accessing the service (failure). Two more critical concepts: verification asks 'are we building the product right?' — checking that each work product conforms to its specification (e.g., does the code match the design document?). Validation asks 'are we building the right product?' — checking that the final system actually meets the user's real needs. You can pass verification but still fail validation if the specification itself was wrong. As for the QA role itself: a QA engineer is not just someone who clicks through an app looking for broken buttons. The job involves reading requirements critically, designing test cases, exploring the system creatively, collaborating closely with developers and product managers, and communicating risk clearly to stakeholders. It is analytical and collaborative work that requires curiosity and structured thinking.
Error, defect, failure — and the QA role — Software Testing (QA) from Scratch