In software project management, software testing, and software engineering, Verification & Validation (V&V) is the process of checking that a software system meets specifications and that it fulfills its intended purpose. In the context of testing, “Verification and Validation” are very widely and commonly used terms. Most of the times, we consider the terms same, but actually the terms are quite different. In this article we will first explore Verification vs. Validation and then move on to its practical application in Software Testing.
Verification vs. Validation
The PMBOK guide, a standard adopted by IEEE, defines them as follows:
“Validation. The assurance that a product, service, or system meets the needs of the customer and other identified stakeholders. It often involves acceptance and suitability with external customers. Contrast with verification.”
“Verification. The evaluation of whether or not a product, service, or system complies with a regulation, requirement, specification, or imposed condition. It is often an internal process. Contrast with validation.”
Software verification and validation is often carried out by a separate group (QA & Testing team) from the development team. In such cases, the process is called “Independent Verification & Validation”, or simply IV&V.
Verification | Are we building the product right?
Producer view of quality, i.e. whether a product, service or system confirms to design standards. In simpler terms – the developers perception of the final product. This is often an internal process.
Verification is intended to check that a product, service, or system (or portion thereof, or set thereof) meets a set of design specifications. It is a process that is used to evaluate whether a product, service, or system complies with regulations, specifications, or conditions imposed at the start of a development phase, i.e. process of evaluating the intermediary work products of a software development lifecycle to check if we are in the right track of creating the final product. Verification can be in development, scale-up, or production.
How? It involves all the static testing techniques. Reviewing the intermediary products, i.e. documents which are produced during the development phases like, requirements specification, design documents, data base table design, ER diagrams, test cases, traceability matrix etc. Reviewing these documents can find out many hidden anomalies that if found or fixed in the later phase of development cycle, can turn out to be costly.
Validation | Are we building the right product?
Consumers view of quality, i.e. whether a product, service or system is fit for use for end-users. In simpler terms – The end-users perception of final product. It often involves acceptance and suitability with external customers.
Validation is intended to ensure a product, service, or system (or portion thereof, or set thereof) results in a product, service, or system (or portion thereof, or set thereof) that meets the operational needs of the user. Or in other words – a process of evaluating the final product to check whether the software meets the business needs. It is a process of establishing evidence that provides a high degree of assurance that a product, service, or system accomplishes its intended requirements.
How? It involves all the dynamic testing techniques. The test execution that we do in our day-to-day life is actually a validation activity which includes functional & non-functional testing, smoke & regression testing, integration & system testing. Etc.
Verification & Validation (V&V) ensures Quality | Not Verification vs. Validation
V&V are independent procedures that are used together for checking that a product, service, or system meets requirements and specifications and that it fulfills its intended purpose. As you might have guessed – generally verification is carried out before validation hence the cost of fixing a bug is relatively less if found during the verification phase. To avoid any confusion, just remember – Verification means the review activities (Static testing) and Validation means the actual test execution activities (Dynamic testing). Both Verification and Validation supplement each other and are essential to deliver a quality product. So practically it’s not Verification vs. Validation but “Verification and Validation”!
If you liked the article, don’t forget to share it with your friends and colleagues. Consider email subscribing to get all new posts in your Inbox for FREE!