Verification and Validation

Steven Zeil

Last modified: Sep 14, 2017
Contents:

Abstract

Verification & Validation: any activities that seek to assure that a software system meets the users’ needs.

The principle objectives are

The most familiar form of V&V is testing.

Through the rest of this module, we will indeed be taking a close look at testing, unit testing in particular. Before doing that, however, it’s worth noting that testing is not the only way to do V&V.

We will look at various forms of

as alternatives or, more often, supplements to testing.

1 The Process


Verification & Validation


Testing


What Can We Find?

Industry figures of 1-3 faults per 100 statements are quite common.

2 Non-Testing V&V


Static Verification

Verifying the conformance of a software system and its specification without executing the code


Static verification effectiveness

It has been claimed that

2.1 Code Review

Inspecting the code in an effort to detect errors

2.1.1 Desk Checking

2.1.2 Inspection


Inspection pre-conditions


Inspection procedure

  1. System overview presented to inspection team

Inspection teams


Inspection rate


Inspection checklists


Inspection checks

What kinds of faults would appear in a checklist?

2.2 Mathematically-based verification


Program proving


Program verification arguments


Model Checking

2.3 Static analysis tools


Static analysis checks

What kinds of faults can be detected by static analysis?


Stages of static analysis

2.4 Cleanroom software development

The name is derived from the ‘Cleanroom’ process in semiconductor fabrication. The philosophy is defect avoidance rather than defect removal.

 


Cleanroom process teams

Specification team.

Responsible for developing and maintaining the system specification

Development team.

Responsible for developing and verifying the software. The software is NOT executed during this process

Certification team.

Responsible for developing a set of statistical tests to exercise the software after development.

Reliability growth models used to determine when reliability is acceptable