Introduction
If you have heard the terms validation and verification used interchangeably, then you are not alone. Incomplete and unclear requirements can be frustrating for software developers, and if they(developers) can not get the required information correctly, they just make interpretations that are not always correct. Understanding the difference between these two (verification and validation) and how to use them during the development helps reduce the cost, increase efficiency, and deliver the product that better fits the user's requirements.
Now we will learn about Requirement verification and validation in detail.
Requirement Verification
Software verification comes first, followed by validation. Verification tests ensure the program is built according to the stated requirements. Verification is the process of checking whether a software achieves its goal without any bugs.
The verification process includes the following :
- Inspections
- Reviewing the code
- Walkthroughs
- Desk Checking
Invalid (or missing) requirements can be discovered during this phase, which can also minimize the risk of rework(extra work) and the cost associated with overruns. It's far more effective to fix a small bug upfront than in the future when you have to identify the bug in hundreds of lines of code, and it needs to be corrected.
Example
Let's take an example of verification, imagine that you are driving to a new destination from your car. You might mark your destination into your GPS, which helps you to provide directions and the freeway exit number. If you're looking for exit 10 and just passed exit 1, you quickly know you have nine more exits to go. Using the GPS, you can check your existing path against the directions, similar to the verification phase.
Requirement Validation
Validation is a process of checking whether the software product is up to the mark. Validation ensures that the requirements have met the needs of any relevant stakeholders and achieved the business objectives, and are clearly understood by developers.
Software validation addresses the following:
- It correctly fulfills the user’s requirements.
- Validation is the process of evaluating software during or at the end of the development process
- It can be modified as per requirements.
- It is easily linked to system requirements like designs, codes, and tests.
Validation is the dynamic process, or we can say that it is dynamic testing.
Example
Let's take an example to understand requirement validation; suppose a man is traveling in his car and tracking the landmarks, such as exit numbers. Let's say his goal is to arrive at a hiking trail. The following is the list of questions that can be asked after your arrival:
- Does the hiking trail look as expected?
- Does the location meet my expectations?
- Can I see a marked trail or any trailhead sign?
Validation is the dynamic process, or we can say that it is dynamic testing.
This concludes our topic software requirement verification and validation. Now, let's move on to FAQs.
Also see, V Model in Software Engineering and Introduction to Software Engineering.
FAQs
-
What is requirement verification?
Verification is a process of checking whether a software achieves its goal without any bugs. Verification tests ensure the program is built according to the stated requirements. Invalid (or missing) requirements can be discovered during the verification phase, which can also minimize the risk of extra work or rework and the cost associated with overruns.
-
What is requirement validation?
Validation is a process of checking whether the software product is up to the mark or, in other words, the product has high-level requirements. Validation ensures that the requirements have met the needs of any relevant stakeholders and achieved the business objectives, and are clearly understood by developers.
-
List some activities involved in the validation.
Black box testing
White-box testing
Unit testing
Integration testing
-
What are the checks required to test in the requirement validation process?
The following are some checks that are required to test in the requirement validation process:
Completeness checks
Consistency checks
Validity checks
Realism checks
Ambiguity checks
Verifiability
-
What is the difference between software requirement verification and validation?
The major difference between software requirement verification and validation is that the verification includes checking the documents, design, code, and program. In contrast, validation is the dynamic process of checking whether the software product is up to the mark or, in other words, the product has high-level requirements.
The verification process does not include any code, while the validation process includes executing relevant codes.
Verification is focused on the design, software architecture, and database. On the other hand, validation focuses on the actual software product.