What is the difference between verification and validation in software testing?

Verification answers the question, “Did we build the right software?*” while validations addresses, “Did we build the software right?*”

Verification versus validation (V&V) – definitions & objectives

Verification in software testing – a definition
Verification is the process the project deliverable is evaluated in the development phase to find out whether it meets identified and approved requirement specifications

Validation in software testing – a definition

Validation is the process in which the project deliverable is evaluated at the end of the development life cycle to determine whether it meets the stakeholder expectations and requirements or not.

Software testing

In software testing both Validation and Verification are the parts of V model in which the development & testing activity is started based on the identified and confirmed requirement specifications. The verification process always comes before the validation process.

Verification versus validation (V&V) – actions and deliverables explained

Verification Validation
Evaluation of whether a specific project deliverable complies with the identified requirement specifications Assurance that the project deliverable meets the needs of the identified stakeholders
Evaluates the project deliverables of a particular phase to check whether it meets the identified requirement specifications Evaluates the final project deliverable to check whether it meets the stakeholder’s expectations
Verification is concerned with whether the project deliverable meet the developer’s expectation (Confirmation of the requirement specifications) Validation is concerned with checking that the project deliverable will meet the customer expectation and actual needs (Fit for use)
Verification may or may not involve the project deliverable of a particular phase itself Validation always involves the actual project deliverable
Examples of typical verification activities are the review of documents that are produced during the development phase (e.g., requirements specification, traceability matrix, flow charts, code review, test plan review. Examples of typical validation activities are the execution and completion of functional testing, system testing, and user acceptance testing.
Verification is the process of checking that the software meets the specification Validation is the process of checking whether the
specification captures the stakeholder’s needs.
Verification does not involve code execution Validation involves code execution
Examples of verification methods are review, audits, inspections, and/or desk research Examples of validation methods are functional testing,
script-testing, non-functional testing, and/or regression testing
Verification checks whether the deliverable confirms a specification Validation checks whether the deliverable meets the requirements and expectations
Verification process targets on architecture, design, and requirements Validation process targets on the actual project deliverable (final software product)

References:
* Barry Boehm, Software Engineering Economics, 1981