Software verification and validation

This is an old revision of this page, as edited by CoderGnome (talk | contribs) at 19:39, 17 August 2006 (Reworded introduction.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In software project management and software engineering, Verification and Validation (V&V) is the process of checking that a software system meets specifications and that it fulfills its intended purpose. It is part of the software testing process of a project.

Definitions

Verification verifies that the final product satisfies or matches the original design (low-level engineering).

Validation validates that the product design satisfies or fits the intended usage (high-level marketing).


According to the Capability Maturity Model (CMMI-SW v1.1), “Verification confirms that work products properly reflect the requirements specified for them. In other words, verification ensures that ‘you built it right‘. Validation confirms that the product, as provided, will fulfill its intended use. In other words, validation ensures that ‘you built the right thing’”.

Both verification and validation are related to the concepts of quality and of software quality assurance. By themselves, verification and validation do not guarantee software quality; planning, traceability, configuration management and other aspects of software engineering are required.

Classification of methods

In mission-critical systems where flawless performance is absolutely necessary, formal methods can be used to ensure the correct operation of a system. However, often-times for non-mission-critical systems, formal methods prove to be very costly and an alternative method of V&V must be sought out. In this case, syntactic methods are often used.

Test cases

Test cases are the method most often miss-associated with V&V. In actuality, test cases can only be used for validation while other methods such as reviews used early in the Software Development Life Cycle provide for verification.

Independent Verification and Validation

Verification and validation often is carried out by a separate group from the development team; in this case, the process is called "independent verification and validation", or IV&V.

External sources

  • E. Tran, Dependable Embedded Systems. Carnegie Mellon University, USA, Spring 1999.
  • T. Menzies, Y. Hu, Data mining for very busy people. IEEE Computer, November 2003, pp. 22–29.