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.
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
|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)|
* Barry Boehm, Software Engineering Economics, 1981