In software testing, we should not only check the program for errors, whether the program is consistent with the design specification of the software product, but also check whether the correct function is required by the customer or the user, these two activities constitute a complete test activity. This is the famous V & V in software testing, namely verification and validation. In fact, verification and validation exist every moment throughout the software development lifecycle.
1. Verify -- Verification
Verification, translated as "Verification", can also be translated as "test", that is, to verify or verify that the software has correctly implemented the system functions and features defined in the Product Specification. The verification process provides evidence that software-related products and all lifecycle activities (requirement analysis, design, programming, testing, etc.) are required (such as correctness, integrity, consistency, accuracy, etc).
Verify that the standards, practices, and conventions in the lifecycle process are met; verify that a new benchmark is established to determine whether each lifecycle activity has been completed and whether other lifecycle activities can be started.
In ISO9000, the strict definition of "Verification" is: verification is the recognition that the provision requirements have been met by checking and providing objective evidence. "Verification" emphasizes "specification requirements"
2. Validation of effectiveness-Validation
Validation, translated as "validation", but more accurate translation should be "validation of effectiveness", which requires higher validation requirements, ensure that the software produced can be traced back to a series of activities required by the user. The validation process provides evidence to indicate whether the software meets the customer's needs (the system requirements assigned to the software) and solves the corresponding problems.
In ISO9000, the strict definition of "validation" is: validation: recognition that meets certain requirements for a specific intended use by checking and providing objective evidence. "Validation" emphasizes "Requirements for intended use"
3. Differences and connections between the two
In order to better understand the differences between the two test activities, we can conclude that Verification is used to verify the consistency of the developed software products and design specifications, that is, whether it meets the production requirements of software vendors. However, the design specification may be faulty or incorrect. Even if the implementation result of a function in the software product is exactly the same as that in the design specification, the designed function is not required by the user, it is still a serious software defect. Because the design specification is likely to have a wrong understanding of a user's needs from the very beginning, it is still inadequate to perform Verification tests only, so a progressive Validation test is required. Validation is to verify the effectiveness of product functions, that is, whether the product meets the real needs of users.
This is BOEHM's most famous and simplest explanation of V & V.
· Verification: Are we building the product right? Is the software correctly constructed? Verify that the development process complies with the predefined content.
· Validation: Are we building the right product? Have you constructed the correct software? That is, whether the user is actually doing what the user really needs.
We can also provide differences and connections in terms of purpose, object, participants, and timing.
Purpose:
· The purpose of verification is to confirm whether the design stage outputs ensure the design stage input requirements;
· The purpose of validation is to confirm whether the design meets the use requirements through the product.
Object:
· The verification objects are design output files, computation books or samples;
· The final product (sample) is the object of validation ).
Participants:
· Verification participants are usually design departments;
· Confirmed participants must include users or persons who can represent the use requirements.
Timing:
· The timing of verification is the appropriate design stage, typically when the design stage outputs the result;
The timing of validation is successful after design verification, generally for the final product, can also be confirmed in stages.