1.2 Verification, Validation, and Debugging
Key Takeaways
- Verification asks whether the work product correctly implements specified requirements or design.
- Validation asks whether the product satisfies user needs and intended use in its operational context.
- Testing and debugging are related but separate activities with different goals and typical owners.
- A test may reveal a failure, while debugging identifies, analyzes, and fixes the cause.
- Exam questions often use requirements, user needs, and fix activities to separate these concepts.
Verification and Validation
Verification and validation are classic CTFL distinction questions. Verification asks whether a work product meets specified requirements, design, or other documented conditions. In plain terms, it asks whether the team built the product right according to the agreed specification.
Validation asks whether the product satisfies user needs and intended use in its real or expected context. It asks whether the team built the right product. A feature can be verified against a requirement and still fail validation if the requirement did not capture what users actually need.
For example, a requirement may say a password reset email must be sent within five seconds. A test that measures delivery time against that requirement supports verification. A usability session showing that users cannot understand the reset flow supports validation, because the issue is fit for use, not only compliance with a written rule.
| Concept | Core question | Example evidence |
|---|---|---|
| Verification | Did we meet the specification? | Requirement review, design review, test against acceptance criteria |
| Validation | Does it meet user needs? | User acceptance testing, beta feedback, operational scenario testing |
| Testing | What evidence can we gather? | Static analysis, review findings, executed test results |
| Debugging | What caused the problem and how is it fixed? | Fault localization, code change, confirmation run |
Debugging is not the same as testing. A tester may execute a test and observe that a search function returns the wrong record. That activity reveals a failure and records evidence. A developer may then reproduce the failure, inspect logs, trace the code, identify a faulty query condition, change the code, and run checks. That is debugging.
The activities interact. Testing can trigger debugging by showing a failure. Debugging can produce a fix that needs confirmation testing. The same person may perform both activities in some teams, especially in agile or small projects, but the purpose still differs. CTFL questions focus on the activity, not only the job title.
A useful exam method is to identify the object and the question. If the object is a requirement, design, or code compared with a specified expectation, verification is likely. If the object is the user's real problem, business outcome, workflow, or operational need, validation is likely. If the activity is locating and correcting the cause of a failure, debugging is likely.
Avoid answers that merge the terms too loosely. Testing may support verification and validation, but those terms are not synonyms. Debugging may include retesting after a fix, but finding and fixing the cause is still the defining debugging activity.
A team checks whether a completed feature satisfies the acceptance criteria written for a user story. Which concept is most directly involved?
Which activities are examples of debugging rather than testing?
Select all that apply