1.2 Verification, Validation, and Debugging

Key Takeaways

  • Verification checks whether a work product meets specified requirements (building the product right).
  • Validation checks whether the product satisfies user needs and intended use in its operational context (building the right product).
  • Testing and debugging are separate activities with different goals: testing can reveal a failure, while debugging finds, analyzes, and fixes its cause.
  • Debugging is typically a development activity; testing of the fix (confirmation testing) is a testing activity.
  • Exam questions use the object being checked (specification versus user need versus the cause of a failure) to separate these concepts.
Last updated: June 2026

Verification Versus Validation

Verification and validation are a classic CTFL distinction. The syllabus defines them precisely:

  • Verification provides objective evidence that a work product meets its specified requirements — design, standards, or other documented conditions. The shorthand is did we build the product right?
  • Validation provides objective evidence that the product satisfies user needs and intended use in its real or expected operational environment. The shorthand is did we build the right product?

A feature can pass verification and still fail validation. Imagine a requirement that states a password-reset email must be sent within five seconds. A test measuring delivery time against that requirement supports verification. But a usability session showing that real users cannot understand the reset flow supports validation, because the problem is fitness for use, not compliance with a written rule. The requirement itself was correctly implemented yet failed to capture what users actually need.

ConceptCore questionTypical evidence
VerificationDid we meet the specification?Requirement review, design review, test against acceptance criteria
ValidationDoes it meet user needs and intended use?User acceptance testing, beta feedback, operational scenario testing
TestingWhat evidence can we gather about quality?Static analysis, review findings, executed test results
DebuggingWhat caused the failure and how is it fixed?Fault localization, code change, confirmation run

Testing Is Not Debugging

The syllabus is explicit that testing and debugging are different activities. Dynamic testing can show that a failure is caused by a defect. Debugging is the development activity that finds, analyzes, and fixes such defects. The classic sequence in CTFL v4.0 is:

  1. Reproduce the failure reliably.
  2. Diagnose — locate the defect that is the root cause (fault localization).
  3. Fix the cause by changing the code or work product.

A tester may execute a test and observe that a search function returns the wrong record. That activity reveals a failure and records evidence — it is testing. A developer then reproduces the failure, inspects logs, traces the code, identifies a faulty query condition, and changes the code — that is debugging.

How The Two Interact

The activities feed one another. Testing can trigger debugging by exposing a failure. Once a fix is made, the team checks that the original failure no longer occurs; in CTFL terms this is confirmation testing, which is a testing activity, not debugging. The team should also run regression testing to ensure the fix did not break anything else. The same person may perform both testing and debugging in agile or small projects, but the purpose still differs — CTFL questions focus on the activity, not the job title.

Note the boundary carefully: in dynamic testing, the tester observes a failure caused by a defect; debugging then locates and removes that defect. After the fix, re-running the test to confirm the failure is gone is testing once more.

An Exam Method

Identify the object and the question:

  • If the object is a requirement, design, or code compared against a specified expectation, the answer is likely verification.
  • If the object is the user's real problem, business outcome, workflow, or operational need, the answer is likely validation.
  • If the activity is locating and correcting the cause of a failure, the answer is debugging.
  • If the activity is gathering evidence about behavior or quality, the answer is testing.

Avoid options that merge the terms too loosely. Testing may support both verification and validation, but those terms are not synonyms for testing. Debugging may be followed by confirmation testing, but finding and fixing the cause remains the defining debugging activity.

Verification and Validation Across the Lifecycle

Verification and validation are not single events; they recur throughout the lifecycle. Early verification happens when a design is reviewed against requirements, or when a unit test checks code against its specification. Early validation can happen too — for instance, when a prototype is shown to users to confirm the team is solving the right problem before much code is written. Both contribute to the broader idea of quality control. ). Whenever an option mentions comparing against documented criteria, lean toward verification; whenever it mentions real usage, business outcomes, or operational scenarios, lean toward validation.

Roles, Mindset, and the Cost of Confusing the Terms

In many teams, developers do most debugging because they understand the internal code, while testers concentrate on designing and executing tests that expose failures. However, the syllabus is careful to define activities by purpose, not by who performs them: in an agile team a single engineer may write code, debug it, and test it in one sitting, yet each of those remains a distinct activity with a distinct goal. Confusing the terms has real consequences. A team that treats every failed test as something the tester must fix has misunderstood debugging — fixing is a development responsibility.

A team that assumes a verified feature must also be valid may ship a product that meets the spec but fails real users. Keeping the four concepts crisp — verification, validation, testing, debugging — protects both the exam answer and the project.

Worked Example

Consider a tax-filing app. A unit test confirms the app computes a deduction exactly as the formula in the requirements states: that is verification. A pilot run where real accountants use the app on actual returns and report that the workflow does not match how they file: that is validation feedback. A tester executing a scripted scenario and logging that the refund total is wrong: that is testing, which reveals a failure. A developer tracing the wrong total to a rounding error, fixing it, and rebuilding: that is debugging.

The tester re-running the scenario to confirm the refund is now correct: that is confirmation testing. Each step maps cleanly to one concept, which is exactly the kind of mapping CTFL questions reward.

Test Your Knowledge

A team checks whether a completed feature satisfies the acceptance criteria written for a user story. Which concept is most directly involved?

A
B
C
D
Test Your Knowledge

After a fix, a developer locates a faulty calculation, changes the code, and rebuilds the component, and then a tester re-runs the failing test to confirm the failure no longer occurs. Which activity is the tester's re-run?

A
B
C
D
Test Your KnowledgeMulti-Select

Which activities are examples of debugging rather than testing?

Select all that apply

Using a stack trace to locate the code path that caused a failure.
Changing a faulty calculation and rebuilding the component.
Executing a planned test case and recording that actual behavior differs from expected behavior.
Analyzing logs to identify the condition that triggered the defect.