Static and Dynamic Verification: - Software Inspections
Static and Dynamic Verification: - Software Inspections
Software inspections
Software testing
Requirements
specification
Prototype
High-level
design
Formal
specification
Detailed
design
Program
Dynamic
validation
V& V goals
V & V confidence
User expectations
Marketing environment
V & V planning
Careful planning is required to get the most
out of testing and inspection processes
Planning should start early in the
development process
The plan should identify the balance
between static verification and testing
Test planning is about defining standards
for the testing process rather than
describing product tests
Software inspections
Inspection success
Program inspections
Formalized approach to document reviews
Intended explicitly for defect
DETECTION (not correction)
Defects may be logical errors, anomalies in
the code that might indicate an erroneous
condition (e.g. an uninitialized variable) or
non-compliance with standards
Inspection pre-conditions
10
11
Planning
Overview
Follow-up
Individual
preparation
Rework
Inspection
meeting
12
Inspection procedure
System overview presented to inspection
team
Code and associated documents are
distributed to inspection team in advance
Inspection takes place and discovered
errors are noted
Modifications are made to repair
discovered errors
Re-inspection may or may not be required
13
Inspection teams
Made up of at least 4 members
Author of the code being inspected
Inspector who finds errors,
omissions and inconsistencies
Reader who reads the code to the
team
Moderator who chairs the meeting
and notes discovered errors
14
Inspection checklists
Checklist of common errors should be used
to drive the inspection
Error checklist is programming language
dependent
The 'weaker' the type checking, the larger
the checklist
Examples: Initialization, loop termination,
array bounds, etc.
Inspection checks
Fault class
Data faults
Inspection check
Are all program variables initialised before their values
are u sed?
Have all co nstan ts been named?
Should the lower bound of arrays be 0, 1, or somethin g
else?
Should the upper bound of arrays be equal to the size of
the a rray or Size -1?
If character strin gs are used, is a delimiter exp licitly
as signed?
Control faults
For each conditional statement, is the condition correct?
Is each loop certain to terminate?
Are compound s tatements correctly bracketed?
In case s tatements, are all possible cases accounted for?
Input/output faults
Are all input variables used?
Fault class
Inspection
check
Are
all output
variables assigned a value before they are
Data faults
Are all program variables initialised before their values
output?
are uall
sed?
Interface faults
Do
function and proced ure calls have the correct
Have allofcoparameters?
nstan ts been named?
number
Should
theand
lower
bound
of arrays
be 0,match?
1, or somethin g
Do
formal
actual
p arameter
types
else?the parameters in the right order?
Are
Should
the upper
bound
of arrays
be equal
to the
size the
of
If
components
access
shared
memory,
do they
have
the a rray
orlSize
same
mode
of the-1?
shared memory s tructure?
If acharacter
strin
gs are
used, is, a delimiter
exp licitly
Storage management If
linked s tru
cture
is modified
have all links
been
as signed?reassigned?
faults
correctly
Control faults
For
conditional
the condition
correct?
If
dyeach
namic
storage isstatement,
u sed, has is
space
been allocated
Is each loop certain to terminate?
correctly?
Are
compound
s tatements
correctly
Is
s pace
explicitly
d e-allocated
after bracketed?
it
is no longer
In case s tatements, are all possible cases accounted for?
required?
Input/output faults
Are allallinput
variables
used? ns been taken
Exception
Have
possible
error conditio
into
Are all output variables assigned a value before they are
management fau lts
account?
output?
Interface faults
Do all function and proced ure calls have the correct
number of parameters?
Do formal and actual p arameter types match?
Are the parameters in the right order?
If components access shared memory, do they have the
same mode l of the shared memory s tructure?
Storage management If a linked s tru cture is modified , have all links been
faults
correctly reassigned?
If dy namic storage is u sed, has space been allocated
correctly?
Is s pace explicitly d e-allocated after it
is no longer
required?
Exception
Have all possible error conditio ns been taken
into
management fau lts
account?
Inspection checks
17
Inspection rate
500 statements/hour during overview
125 source statement/hour during
individual preparation
90-125 statements/hour can be inspected
Inspection is therefore an expensive
process
Inspecting 500 lines costs about 40 man/
hours
effort = $$
18
19
20
10
21
11
23
12