Verification vs Validation

1. Verification

Definition:
The process of checking whether the software is being built correctly as per specifications, without actually running the code.
It’s about reviewing documents, design, and plans to ensure correctness before coding or execution.

Purpose:

  • To make sure the product is designed according to requirements.

  • To catch mistakes early in the development cycle.

Activities include:

  • Requirement Reviews

  • Design Reviews

  • Code Reviews / Walkthroughs

  • Static Analysis

Example:
If the requirement says:

“The system should accept a password of at least 8 characters”
Verification would mean:

  • Reviewing the design document to see if password length is mentioned as ≥ 8.

  • Checking the code logic without running it to confirm it enforces this rule.


2. Validation

Definition:
The process of checking whether the built software actually meets the user’s needs and expectations by running and testing the code.

Purpose:

  • To ensure the product works as intended in the real environment.

  • To confirm that the end product solves the problem for the user.

Activities include:

  • Functional Testing

  • System Testing

  • User Acceptance Testing (UAT)

  • Regression Testing

Example:
Using the same password requirement:

  • Actually entering a 7-character password and checking if the system rejects it.

  • Entering an 8-character password and confirming it is accepted.


Quick Comparison Table

Aspect Verification :memo: Validation :white_check_mark:
Purpose Are we building the product right? Are we building the right product?
Type Static process (no code execution) Dynamic process (code execution)
Focus Specifications, design, and documentation Actual product behavior
Performed by Developers, QA Analysts QA Testers, End Users
Examples Reviews, walkthroughs, inspections Functional testing, UAT

1 Like