Wednesday December 2, 2015
The terms "verification" and "validation" are commonly used in software engineering, but the terms refer to two different types of analysis.
What is Verification?
Verification is a process that determines the quality of the software. Verification includes all the activities associated with producing high quality software, i.e.: testing, inspection, design analysis, specification analysis, and so on. Verification is a relatively objective process, in that if the various processes and documents are expressed precisely enough, no subjective judgement should be needed in order to verify software.
Advantages of Software:
- Verification helps in lowering the number of the defects that may be encountered in the later stages of development.
- Verifying the product at the starting phase of the development will help in understanding the product in a more comprehensive way.
- Verification reduces the chances of failures in the software application or product.
- Verification helps in building the product as per the customer specifications and needs.
What is Validation?
Validation is a process in which the requirements of the customer are actually met by the software functionality. Validation is done at the end of the development process and takes place after verifications are completed.
Advantages of Verification:
- During verification if some defects are missed, then during the validation process they can be caught as failures.
- If during verification some specification is misunderstood and development has already occurred then during the validation process the difference between the actual result and expected result can be identified and corrective action taken.
- Validation is done during testing like feature testing, integration testing, system testing, load testing, compatibility testing, stress testing, etc.
- Validation helps in building the right product as per the customer’s requirement which in turn will satisfy their business process needs.
How Do Verification and Validation Differ?
The distinction between the two terms is largely due to the role of specifications. Validation is the process of checking whether the specification captures the customer’s requirements, while verification is the process of checking that the software meets specifications.
Verification includes all the activities associated with the producing high quality software. It is a relatively objective process in that no subjective judgement should be needed in order to verify software.
In contrast, validation is an extremely subjective process. It involves making subjective assessments of how well the (proposed) system addresses a real-world need. Validation includes activities such as requirements modelling, prototyping and user evaluation.