Verification and Validation
Software testing is one of the most complex yet fulfilling tasks involved in the development process. At every stage of development from unit testing through to User Acceptance Testing the same processes and techniques are used. The purpose of software testing is the validation and verification of the software, normally illustrated by using the V-model.
Verification means ensuring that the software has been built correctly. The colloquial definition is “Are we building the product right“.
Validation means ensuring that the software meets the requirements, both the stated and implied. The colloquial definition is “Are we building the right product“.
Verification
Verification differs in one key aspect from Validation. The ISTQB in their Glossary of Terms used in Software Testing define Verification as:
“Confirmation by examination and through provision of objective evidence that specified requirements have been fulfilled.“
The first part of the definition is the same as for Validation, but the second part is the key. This states that “specified requirements have been fulfilled“. The V-model diagram arrows shows that this means that each product that is produced is checked against the products or document that were used to drive the development to see that all aspects have been met. This includes checking that test cases adequately test the stage of development.
A key problem is ensuring that the User Requirements are adequately Verified against what the customer needs. The Business Case is only likely to contain high level functionality, and not the detail about processes that are essential for determining what is required.
Validation
The ISTQB in their Glossary of Terms used in Software Testing define Validation as:
“Confirmation by examination and through provision of objective evidence that the requirements for a specific intended use or application have been fulfilled.“
Validation concentrates on the big picture of whether the software can do what the user wants. The definition states that the focus is on seeing if the software is suitable for a “specific intended use or application“. The Validation diagram shows that at whatever stage of development you are you need to check back to the System Specification, User Requirements and Business Case to see if it meets the purpose. The V-model diagram shows this also includes when tests are developed, because the user is interested in what the software does, and these are the most important tests for them.
However the key problem is have the requirements been specified in sufficient detail for the Validation to take place.
Verification versus Validation
So which is more important, Verification or Validation? Can I only do one of them? The answer is that they are both important. They are not test techniques but are test objectives – they state what it is we want to prove. The definitions and V-model diagrams should be used as a guide to determine if you have checked all testing aspects.
Verification and Validation and Testing
- Types of Testing employed during a project and their relationship to the V-Model.
- From Waterfall model to V-Model - explains how the V-Model is derived from the waterfall model and the advantages of doing so.