Understand Verification & Validation In Software Testing

Hello Folks,

We testers are always confused with these two terms : Verification & Validation. I will try my best to explain these terms in simple words in this post.

Verification and Validation are different testing activities which are performed during SDLC. We use both words interchangeably and think our all testing activities fall either of them. We must understand when we are performing Verification and Validation in life cycle, which we will see in this post.

Let’s start with a real time example:

You want to apply for a passport. You apply online and upload all asked documents. After that you get an appointment to visit passport office in person.  Passport officer “VERIFIES” all documents mandatory to apply for a passport such as Date of birth proof, Address proof, Identity proof etc. Officer verifies to confirm you have all the required mandatory documents to apply passport. If officer finds absence of any document, they will not allow you to proceed further and ask you to arrange missing documentation first. It will save your time, money and effort. Now suppose, you have all required documents and officer verifies the same. Your passport application with all documents are processed.  Senior officer starts “VALIDATING” your documents. Officer will validate whether you have given original documents not edited. duplicate or fake. Officer will contact documents issuing authorities and confirm. If Officers finds all documents are original , passport will be issued otherwise passport will be rejected.

In above example, making a passport goes through both Verification and Validation at different stage , with different intentions and different processes. Same is applicable for Testing a product or application.

Let’s take another real time example which is more specific to these terms:

Your customer asked you to build a web portal which allows a person to book movie tickets. Now you prepare layout, designs, technologies to be used, all other required stuffs in short “Requirements specifications” which says how product will be look like and how it will be built. Your team start working on it and you verify all work if it is happening as per planned, team is following correct specifications, designing etc. You are verifying whether or not product is being built as per discussed design specifications. This is verification. Product is ready and now you validate that developed product is as per customer’s requirement i.e. Customer should be able to book a movie ticket. This is validation.

As per ISTQB:

Projects aim to deliver software to specification. For the project to deliver what the customer needs requires a correct specification. Additionally, the delivered system must meet the specification. This is known as validation (‘is this the right specification?’) and verification (‘is the system correct to specification?’).

In every development life cycle, a part of testing is focused on verification testing and a part is focused on validation testing. Verification is concerned with evaluating a work product, component or system to determine whether it meets the requirements set. In fact, verification focuses on the question ‘Is the deliverable built according to the specification?’. Validation is concerned with evaluating a work product, component or system to determine whether it meets the user needs and requirements. Validation focuses on the question ‘Is the deliverable fit for purpose, e.g. does it provide a solution to the problem?’.

As per IEEE:

According to the IEEE Standard Glossary of Software Engineering Terminology, verification is defined as “The process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.” Validation, on the other hand, is defined as “The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements.” So verification simply demonstrates whether the output of a phase conforms to the input of a phase as opposed to showing that the output is actually correct. Verification will not detect errors resulting from incorrect input specification and these errors may propagate without detection through later stages in the development cycle. It is not enough to only depend on verification, so validation is necessary to check for problems with the specification and to demonstrate that the system is operational.

Best SDLC model for Verification & Validation:

Verification and Validation both are testing activities and The V&V model (Verification and Validation) is the SDLC model which allows you to perform integration of these testing activities in each phase of life cycle.  In V&V model testing is included in early phase and you will not strange here that Validation starts early in V&V model. Testers understand requirements and can found bugs in requirements itself which is a validation. Generally validation takes place after verification.

Performed By:

Verification steps are done by project team members(Developers, Business analyst and testers) and done against decided specifications. Validation is done by Clients, key users, acceptance testing team etc and done against requirements.

If you have any doubt, feel free to comment below.
If you like my posts, please like, comment, share and subscribe.