Software Verification And Validation

Software Quality Tutorial


Software Verification and Validation : Introduction

  • Software verification and validation are the two hands around which a software product is built. 
  • Software verification is a process which ensures that the product has been built according to the requirement and design specifications.

  • It means, “Are we building the System/Product rightly?”.

  • Software validation is a process which ensures that the product meets the user’s requirement and fulfills the need of user.
  • It means, “Are we building the right System/Product?”.


Software Verification and Validation : The Comparison


Software Verification and Validation

Software Verification and Validation


Software Verification and Validation : The V-Model

  • The V-Model is a systematic approach with the help of which verification and validation process can be carried out simultaneously, where the left arm of the model describes the software verification process and right arm describes the software validation process.

  • Since, we want to carry out the development(software verification) and testing(software validation) process in parallel, this model helps us to do the same in order to save time and reduce the cost.


This image describes the architecture of The V-Model used in Software Validation and Verification

The V-Model : Software Validation and Verification


Verification Methods

  1. Walk-through: Walk-through is and informal way of verification which is initiated by the author of software product to their colleagues in order to locate defect or any suggestion for improvements. Walk-through is an unplanned process .

  2. Review: Reviews are more formal than walk-through but less formal than inspection process. It is done to check the change in data and to determine whether the changes are correct or not.

  3. InspectionInspection is a most formal verification process. It is done in a software product  in which every individual line of code is checked in order to:

    • Locate the defects in software programs.

    • Confirmation of standardization.

    • Check for relevant requirement.

Impracticality of Testing All Data

  • For almost every program, it is impossible to make an attempt to test the program with all sets of inputs.

  • The correctness of the output for a particular test input is determined using a testing oracle.

  • A testing oracle is a mechanism that can be used for determining whether a test has pass or failed.

Impracticality of Testing All Paths

  • For almost every program, it is impossible to attempt to test all executable paths through the project because of the number of combination i.e. combination explosion.

  • Developing an algorithm for this purpose is also not possible.