Let’s supuse you are about to deploy a new software system. Before you put in into production, you need to be sure that it is working, so, you should validate it. But, what exactly is validation? when i was learning programming, one of the very first concepts i have to catch up was validation. Back to those days, validation was only to assure the user input will not affect your program. However, things change.
Validation is the process of checking whether the software product is up to the mark or in other words product has high level requirements. It is the process of checking the validation of product. Validation is the dynamic testing.
Also, you need to verify your system. But, what is different from validation. Well, just as efficiency and effectiveness, they are similar, but not the same. Verification is the process of checking that a software achieves its goal without any bugs. It is the process to ensure whether the product that is developed is right or not. It verifies whether the developed product fulfills the requirements that we have. Verification is static testing.
So, in a few words, Verification is asking your team: Are we building the product right? and validation means: Are we building the right product?
In order to get a better understanding of this concepts, you can read its differences below:
|It does not involve executing the code||It always involves executing the code|
|The verifying process includes checking documents, design, code, and program.||It is a dynamic mechanism of testing and validating the actual product|
|Methods used in verification are reviews, walkthroughs, inspections and desk-checking.||Methods used in validation are Black Box Testing, White Box Testing and non-functional testing.|
|It checks whether the software conforms to specifications or not.||It checks whether the software meets the requirements and expectations of a customer or not.|
|It finds bugs early in the development cycle||It can only find the bugs that could not be found by the verification process.|
|The goal of verification is application and software architecture and specification.||Target is an actual product|
|This is the first step||is the last step|
Since the verification and validation are part of the quality control process, this activities are regulated by international standards, such as ISO 9000. Remember, Validation consist in 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, while verification is the evaluation of whether or not a product, service, or system complies with a regulation, requirement, specification, or imposed condition.
In a perfect world, verification should go before validation and the validation after the verification. Somehow validation is more related to the software engineering, where you check the system is been building right, and the validation, also related to the software engineering, because you have to check wether or not has all the requirements, it is also a developer’s and testers thing. If you wanna learn more about Testing, I recommend you to look for Kent Beck, He is an awesome engineer and he has made a lot of contributions to this beautiful software engineering world.