Difference between Verification vs. Validation

The whole process of the quality achievement in the software product, revolves around two concepts, verification and validation.

In the field of software engineering, the term verification, generally refers to the assessment and evaluation of the process or approach, which is carried out towards the development of the software product, to build the desired product, whereas validation is all about, examination of the developed software product, to ensure the fulfilment of the pre-defined and specified requirements, such as software requirement specification (SRS), by the software product.

The notable points, which make verification and validation, different from each other, may be seen as under:

SNO. Verification Validation
1. Evaluates the on-going development phase and the software product, under development, at each level, on regular basis, against the specified requirements. Involves the examination of finally developed software product, with respect to pre-defined specified requirements.
2. The motive, is to check the path and progress of the software development, at each stage of the life cycle, to ensure the incorporation of all the requirements, in the software product, under development. The purpose of carrying out the validation process, is to determine, whether the finally achieved software product, stands on the requirements, that were stated, prior to the development, or it may needs improvement.
3. It is performed, over software product, which is under the development stage. It takes on final software product, produced, after the completion of the development process.
4. Answerable for "Are we building the software product, right?" Accountable for "Are we building the right product?"
5. It is a type of static testing, which does not perform execution of the software product or programming code, rather it considers documented artifacts, for the purpose of evaluation. A form of dynamic testing that involves the execution of the code or actual and final developed software product.
6. Carried out, for preventing defects in the software product. Responsible for tracing and removing the defects, that were missed or unavoidable, by the verification process.

Techniques to perform verification includes static activities, such as

  • Reviews
  • Inspections
  • Walkthroughs
  • Meetings

It covers all the actual and dynamic testing techniques, such as

  • Black-Box testing
  • White-Box testing
  • Grey-Box testing
  • Acceptance testing
8. The job is done by the QA team. Requires specific and dedicated testing team.
9. A type of low level activity. A form of high level exercise.
10. Performed, only manually. May be manual or automated or both.
11. Cost effective and less time-taken activity. Costly and time-consuming process.
12. Does not guarantees the quality achievement in the software product. Ensures the maximum quality of the software product.