What is Verification in Software Testing?
Verification in Software Testing is a process of checking documents, design, code, and program in order to check if the software has been built according to the requirements or not. The main goal of verification process is to ensure quality of software application, design, architecture etc. The verification process involves activities like reviews, walk-throughs and inspection.
What is Validation in Software Testing?
Validation in Software Engineering is a dynamic mechanism of testing and validating if the software product actually meets the exact needs of the customer or not. The process helps to ensure that the software fulfills the desired use in an appropriate environment. The validation process involves activities like unit testing, integration testing, system testing and user acceptance testing.
- Verification process includes checking of documents, design, code and program whereas Validation process includes testing and validation of the actual product.
- Verification does not involve code execution while Validation involves code execution.
- Verification uses methods like reviews, walkthroughs, inspections and desk-checking whereas Validation uses methods like black box testing, white box testing and non-functional testing.
- Verification checks whether the software confirms a specification whereas Validation checks whether the software meets the requirements and expectations.
- Verification finds the bugs early in the development cycle whereas Validation finds the bugs that verification can not catch.
- Comparing validation and verification in software testing, Verification process targets on software architecture, design, database, etc. while Validation process targets the actual software product.
- Verification is done by the QA team while Validation is done by the involvement of testing team with QA team.
- Comparing Verification vs Validation testing, Verification process comes before validation whereas Validation process comes after verification.
Verification vs Validation: Key Difference
Here is the main difference between verification and validation testing:
|The verifying process includes checking documents, design, code, and program||It is a dynamic mechanism of testing and validating the actual product|
|It does not involve executing the code||It always involves executing the code|
|Verification uses methods like reviews, walkthroughs, inspections, and desk- checking etc.||It uses methods like Black Box Testing, White Box Testing, and non-functional testing|
|Whether the software conforms to specification is checked||It checks whether the software meets the requirements and expectations of a customer|
|It finds bugs early in the development cycle||It can find bugs that the verification process can not catch|
|Target is application and software architecture, specification, complete design, high level, and database design etc.||Target is an actual product|
|QA team does verification and make sure that the software is as per the requirement in the SRS document.||With the involvement of testing team validation is executed on software code.|
|It comes before validation||It comes after verification|
Example of verification and validation
Now, let’s take an example to explain verification and validation planning:
- In Software Engineering, consider the following specification for verification testing and validation testing,
A clickable button with name Submet
- Verification would check the design doc and correcting the spelling mistake.
- Otherwise, the development team will create a button like
- So new specification is
A clickable button with name Submit
- Once the code is ready, Validation is done. A Validation test found –
- Owing to Validation testing, the development team will make the submit button clickable