Learning Resources

Software verification and validation

The terms ‘Verification‘ and ‘Validation‘ are frequently used in the software testing world but the meaning of those terms are mostly vague and debatable. You will encounter (or have encountered) all kinds of usage and interpretations of those terms, and it is our humble attempt here to distinguish between them as clearly as possible.

Criteria Verification Validation
Definition The process of evaluating work-products (not the actual final product) of a development phase to determine whether they meet the specified requirements for that phase. The process of evaluating software during or at the end of the development process to determine whether it satisfies specified business requirements.
Objective To ensure that the product is being built according to the requirements and design specifications. In other words, to ensure that work products meet their specified requirements. To ensure that the product actually meets the user’s needs, and that the specifications were correct in the first place. In other words, to demonstrate that the product fulfills its intended use when placed in its intended environment.
Question Are we building the product right? Are we building the right product?
Evaluation Items Plans, Requirement Specs, Design Specs, Code, Test Cases The actual product/software.
  • Reviews
  • Walkthroughs
  • Inspections
  • Testing

It is entirely possible that a product passes when verified but fails when validated. This can happen when, say, a product is built as per the specifications but the specifications themselves fail to address the user’s needs.

  • Trust but Verify.
  • Verify but also Validate.


An brief comparison between the both is as

Verification Validation

1. Verification represents static testing techniques.

1. Validation represents dynamic testing techniques.

2. Verification ensures that the software documents comply with the organisations standards, it is static analysis technique.

2. Validation ensures that the software operates as planned in the requirements phase by executing it, running predefined test cases and measuring the output with expected results.

3. Verification answers the question “Is the Software build according to the specifications”.

3. Validation answers the question “Did we build the software fit for purpose and does it provides the solution to the problem”.