1
Fundamentals
What is the difference between verification and validation?
Verification asks "are we building the product right?" — checking documents and code against the spec. Validation asks "are we building the right product?" — running the software to confirm it meets real user needs.
Why it exists:
Teams can build exactly what the spec says and still ship something users hate or that doesn't solve their problem. Separating the two checks ensures you both follow the spec correctly (verification) and confirm the spec itself was the right thing to build (validation).
Walked-through example:
``
Real-world QA use case:
A QA engineer reviews the requirements document for a bank transfer feature before testing begins (verification — catching an ambiguous rounding rule on paper). Later she runs the actual transfer scenarios end-to-end (validation — confirming the feature solves the customer's real need). Catching the rounding rule in the document saved a week of rework that would have happened if she'd only validated.
Rule of thumb: verify on paper first, then validate by running — catching mistakes in documents is ten times cheaper than catching them in working code.
Why it exists:
Teams can build exactly what the spec says and still ship something users hate or that doesn't solve their problem. Separating the two checks ensures you both follow the spec correctly (verification) and confirm the spec itself was the right thing to build (validation).
Walked-through example:
``
text
Requirement: "Lock the account after 3 failed login attempts."
Verification (before running):
Review the design doc → "lock after 3 attempts" is written in ✓
Code review → the counter logic increments correctly ✓
No software is run; you're checking the artefacts.
Validation (running the software):
Enter wrong password once → account still active ✓
Enter wrong password twice → still active ✓
Enter wrong password third time → account locked ✓
Attempt to log in with correct password → still blocked ✓
``Real-world QA use case:
A QA engineer reviews the requirements document for a bank transfer feature before testing begins (verification — catching an ambiguous rounding rule on paper). Later she runs the actual transfer scenarios end-to-end (validation — confirming the feature solves the customer's real need). Catching the rounding rule in the document saved a week of rework that would have happened if she'd only validated.
Rule of thumb: verify on paper first, then validate by running — catching mistakes in documents is ten times cheaper than catching them in working code.
💡 Plain English: Building a house from blueprints. Verification is checking the blueprint measurements and confirming the walls match the drawings. Validation is the family finally walking through and confirming it's the home they actually wanted to live in — not just the one that was drawn.