Sunday, June 10, 2007

Software Verification and Validation

Software Verification & Validation

Verification: This is the process of checking that the object we are designing is consistent with the requirements we have identified.

Verification typically involves reviews and meetings to evaluate documents, plans, code, requirements, and specifications. This can be done with checklist; issue lists walkthroughs and inspection meetings.

Verification (testing done during design and coding phase) is process to see that something –software which are making meets its specifications.

It is the process of assessing/evaluating the system or component to determine whether the results of a given phase satisfy the conditions imposed at the start of the phase. In other words making sure each design step does what it was supposed to do.

Software verification examines the products of each development activity to determine if the software development outputs meet the requirements established at the beginning of the activity.

Validation and verification should go on throughout the development process:

Validation: (testing done during the testing phase) is the process of confirming that s/w meets user’s requirements.

Validation typically involves actual testing and takes place after verifications are completed.

Validation is directly related to the purpose/use of the system from the users and owners point of view, while verification is more of a means to achieve quality by ensuring correspondence between the descriptions developed at various stages in the systems engineering process.

It is the process of assessing/evaluating the system or component at the end of the development process to determine whether it satisfies specified requirements. In other words it is making sure the end result satisfies requirements.

Validation includes:

  • Unit Testing.

  • Module Testing.

  • Component Testing.

  • Subsystem Testing.

  • Integration Testing.

  • System Testing.

  • Acceptance Testing.

Verification includes:
  • Walk-Throughs.

  • Inspections.

  • Reviews.

  • Proof-of-correctness.

  • Simulation.

Example of Software Verification & Validation

Let us say you have a web app that is supposed to show the local time on every page of the app.

Some verification activities one might expect are:

  • Use a requirement traceability process to track the requirement through documents to the code intended to provide the feature, and/or

  • A code walk-through where one of the walk-through items involves checking to see that the developer addressed the time item – and hopefully if previously developed and put in a library, it was referenced/reused rather than the developer writing yet another time display function.

  • Can be traced to tests – if the tests have been developed yet (see below)

… Just to name a few verification methods of many.

Some validation activities one might expect are:

** Testing to prove the time:

  • Appears in the correct place

  • Is local time,

  • Is formatted properly

  • Addresses local preferences (month, day, year, etc.)

  • Is refreshed properly,

  • Doesn’t occlude other items on a page,

  • Works with specified/supported browsers at specified text sizes and resolutions,
… and so on.

You can find most of the information on Software Verification & Validation on Google. But do try reading the below mentioned very useful links on Software Verification & Validation.

V&V - 1 - p159-adrion.pdf

V&V - 2 - PSS0510.pdf

V&V - 3 - vvpaper.pdf

V&V - 4 - (This is a .ps file. If you don’t have ps viewer, go to and view this file. Just type the URL in the first field and click on view.

V&V - 7 - cs8263.htm

Also See:
Verification Methods
Verification & Validation Definition
Verification & Validation Questions