Hello everyone. I want to talk a bit about Validation and Verification, which I have been focusing on for a while. These terms, which are quality terms, are used frequently, but are also terms that are often confused.
To put it simply, Verification and Validation consists of these two definitions of Barry Boehm:
Verification: Are we building the product right?
Validation: Are we building the right product?
Let me explain with an example. You are about to prepare a software product and you have a Software Requirements Specification (SRS) document about the product. You have started writing code within a plan and in every phase of the code (could be a microservice, step, module, part), you review the SRS document and check whether you have done that phase correctly. This is called verification.
In verification, you check documents, code, design and product using some methods like review, walkthroughs, inspections and desk-checking while you are building a product. You can review anything like software requirements specification, schedules, design documents, code, test plans, defect reports. These are called static analysis activities. Verification is aimed at ensuring that the software is completed correctly. Verification finds bugs early. It is performed before the execution of software validation.
Then you’ve completed the development of the product and you want to check if it meets customer requests. You use some software tests to check it. You use some testing methods like Black-Box testing, White-Box testing and non-functional testing. This is called validation.
In validation, it is important customer needs and expectations. Validation deals with the whole product not with the parts of it. It checks the product with code execution. It’s done after verification and it can catch errors that validation can not catch.
Finally, I will conclude with a real-life example. Let’s imagine you go to an ice cream shop and order an ice cream with chocolate, pistachio and raspberry sauce. When you receive your order, you check type of the ice cream and the sauce on it and you think:
— Is this the ice cream I ordered?
— Is the sauce on it the sauce I want?
— Has the ice cream arrived in sufficient quantity?
This is Verification. You review it with your eyes and check your order if it is what you want. After reviewing, you eat the icecream and check if it is the right product that you ordered. This is Validation.
Thank you for reading :)
James S. Collofell, Introduction to Software Verification and Validation,Arizona State University- Software Engineering Institute
Dirk Beyer, Software Verification with Validation of Results, 2017