V&V - Testing
V&V - Testing
V&V - Testing
Validation
By:
Sunmeet Sethi
Bhavin kansara
Outline
Introduction to Verification and Validation
What is Verification
What is Validation
Verification and Validation Techniques
* Static Techniques (Inspection)
* Dynamic Techniques (Testing)
Independent Verification and Validation
References
Introduction
Verification & Validation : It is the process of
checking that a software system meets specifications
and that it fulfills its intended purpose
It involves checking the software against its
specifications.
It is used to describe ways of achieving quality
software.
Verification is done during the project development
life cycle where as validation is done after the
product is ready.
Introduction
Verification:
Are we building the product right?
The software should conform to its specification
Validation:
Are we building the right product?
The software should do what the user really requires
Example
Assume we have to develop an adder which
should add only two integer and floating point
numbers and should generate an error if string
is given as an input.
Dynamic Techniques
Software Testing
(requires executable program)
What is Inspection
An inspection is a formal review of a work product
by the work product owner and a team of peers
looking for errors, omissions, inconsistencies, and
areas of confusion in the work product.
Involve people examining the source representation
with the aim of discovering anomalies and defects
Do not require execution of a system so may be used
before implementation
May be applied to any representation of the system
(requirements, design, test data, etc.)
Very effective technique for discovering errors if
done properly
Inspection pre-conditions
A precise specification must be available.
Team members must be familiar with the
organisation standards.
Syntactically correct code or other system
representations must be available.
An error checklist should be prepared.
Management must accept that inspection will
increase costs early in the software process.
Management should not use inspections for staff
appraisal ie finding out who makes mistakes.
The Inspection Team – at least 4
members
Author: This is usually the person who originally constructed
the work product
Moderator: responsible for ensuring that the inspection
procedures are performed through out the entire inspection
process.
Reader: Leads the inspection and who reads the code to the
team.
Recorder: will document all defects that arise from the
inspection meeting.
Inspector: All of the Inspection Team individuals are also
considered to play the Inspector role. The Inspector role is
responsible for analyzing and detecting defects within the
work product.
Inspection Types
Requirement Inspection
Design Inspection
Code Inspection
Test Inspection
Tested Subsystem
Subsystem Unit
Code Test
All tests by developer
Unit Testing
Unit testing is a procedure used to validate that individual
units of source code are working properly.
Unit testing involves only those characteristics that are vital
to the performance of the unit under test. This encourages
developers to modify the source code without immediate
concerns about how such changes might affect the
functioning of other units or the program as a whole.
Once all of the units in a program have been found to be
working in the most efficient and error-free manner possible,
larger components of the program can be evaluated by means
of integration testing.
Integration Testing
It is a software development process, in which
program units are combined and tested as groups in
multiple ways.
The objective of integration testing is to find bugs
related to interfaces between modules as they are
integrated together.
There are two major ways of carrying out an
integration test
bottom-up method
top-down method
Top Down Method
Strategy
Start with subsystems in top layer of call
hierarchy
Include subsystems that are called by the
previously tested subsystems
Repeat until all subsystems are included
Top Down Method
M1
M2 M3 M4
M5 M6 M7
M8
Bottom Up Method
Strategy
Start with subsystems in lowest layer of
call hierarchy
Test subsystems that call the previously
tested subsystems
Repeat until all subsystems are included
Bottom Up Method
Mc
Ma Mb
D1 D2 D3
System Testing
Testing that attempts to discover defects that are
properties of the entire system rather than of its
individual components.
The purpose of system testing is to identify defects
that will only surface when a complete system is
assembled. That is, defects that cannot be attributed
to individual components or the interaction between
two components.
System testing includes testing of performance,
security, startup and recovery from failure modes.
Black Box Testing