top of page

What is the difference between Verification and Validation?


ISTQB definition:

Verification - confirmation by examination and through the provision of objective evidence that specified requirements have been fulfilled.

Validation - confirmation by examination and through the provision of objective evidence that the requirements for a specific intended use or application have been fulfilled.

Human language:

Before getting the main key differences between verification and validation, let's consider each of these definitions separately.


Verification - is a process of checking documents, design, code, and program in order to check if the software has been built according to the requirements and specifications or not. It tests the requirements, architecture, design, and code which are produced during the development phases of the software product such as Requirements specification, design documents, database table design, ER diagrams, test cases, traceability matrix, etc.


Checking against a specification is certainly part of testing, where we are asking the question: Have we built the system correctly? Depending on the complexity and scope of the software application, the software testing team uses different methods of verification including inspection, code reviews, technical reviews, and walkthroughs. Verification is a continuous process that begins well in advance of validation processes and runs until the software application is validated and released.


But just conforming to a specification is not sufficient testing, we also need to test to see if the delivered software and system will meet user and stakeholder needs and expectations in its operational environment. This kind of testing is called validation.


Validation - is a process of ensuring that the product meets the needs and expectations of stakeholders, users, and business needs. Here we are asking the question: Have we built the right system? Validation is all forms of testing that involve working with the product and putting it to the test. Software teams often use a wide range of validation methods, including white-box testing and black-box testing.


Validation physically ensures that the system operates according to a plan by executing the system functions through a series of tests that can be observed and evaluated. The process helps to ensure that the software fulfills the desired use in an appropriate environment. It checks if the client gets the product they are expecting. Validation focuses only on the output, it does not concern itself with the internal processes and technical intricacies of the development process. Validation is a one-time process that starts only after verifications are completed.


In the context of testing, “Verification and Validation” are the two widely and commonly used terms. In every development life cycle, a part of testing is focused on verification testing, and a part is focused on validation testing. Different project management and software development methods use verification and validation in different ways. For instance, both verification and validation happen simultaneously in agile development methodology due to the need for continuous refinement of the system based on end-user feedback.


Let's consider the main key differences between these terms:


The difference between Verification and Validation are:


Life example:

Let's take a look at the example of the verification and validation processes.

Imagine that our development team builds a website. Our task is to develop functionalities - A basket page. As you remember, developers write code based on the requirement specification and design, so our customers provide corresponding documents and our development team starts with writing code. After development is done, the QA team verifies whether our developed function meets the required specification and design or not, for example, developers perform an inspection of the code before passing it to QA Engineers, then QA Engineers verify whether the elements of our developed page are as per design or not.

All this is our verification process, during which we do not check how our product works as a whole, whether it meets the requirements of the business and end users or not, the main goal is compliance with the requirements set during development.


Let's imagine that we have fulfilled all the requirements given to us by the customer, but is this enough to say that our testing is complete? That is obviously not true. As you remember, It is often possible that a product passes through the verification but fails in the validation phase. In our case, we need to check whether our developed page meets the needs of consumers and businesses as well, for example:

  • Are the elements conveniently located on the page?

  • How does our page look on different devices?

  • How does our page behave when there are 10,000 users on it at the same time?

  • How our page behaves if you add 100 items to the cart?

  • Are all the necessary elements on the page for convenient use?

  • How our page interacts with other components of our site, etc.

Checking all of these things is our validation process, during which we ensure that the product meets the needs and expectations of stakeholders, users, and businesses needs.

Conclusion:

So, if you are asked at an interview: What is the difference between verification and validation? The best way to answer is: The difference between Verification and Validation are:

  • Verification evaluates the products to check whether it meets the specific requirements of the particular phase VS Validation evaluates the final product to check whether it meets the business and user's needs;

  • Verification does not involve code execution - part of static testing VS Validation involves code execution - dynamic testing;

  • The goal of verification is an application and software architecture and specification VS The goal of validation is an actual product;

  • Verification is a part of the QA process VS Validation Is part of the QC process;

  • Verification tests the requirements, architecture, design, and code of the software product VS Validation tests the usability, functionalities, and reliability of the end product;

  • Verification Involves all the static testing techniques like reviews, walkthroughs, and inspections VS Validation Includes all the dynamic testing techniques: functional, non-functional, and change-related;

  • Verification It finds bugs early in the development cycle VS Validation It can find bugs that the verification process can not catch;

  • Verification checks “Are we building the product right”? VS Validation checks “Are we building the right product”?;

  • Verification performs before validation VS Validation performs after verification.

354 views

Recent Posts

See All
bottom of page