Verification vs Validation

Reading Time: 2 minutes

What is Verification?

Verification is testing that your product meets the specifications / requirements you have written. “Did I build what I said I would?”.

What is Validation?

Validation tests how well you addressed the business needs that caused you to write those requirements. It is also sometimes called acceptance or business testing. “Did I build what I need?”

V&V together make sure that your software has delivered on its purpose in an error-free (ideally) way.

Verification vs Validation: Key Difference

 Verification Validation
  • 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

Verification and validation in waterfall vs agile

In a more traditional Waterfall process, with Specifications and Requirements defined at the start, Validation is often performed at the end of the testing cycle. You spend tons of time defining a product, build it, make sure your software was bug-free, and then do user acceptance testing, or submit it to a client / users, perhaps even a Beta release.

In an Agile development process, ideally both verification and validation activities occur as close to simultaneously as possible. This is because you are always updating and refining your User Stories, necessitating constant small V&V loops to enable this continual feedback.