The Big Questions You Need Answers To
19
TABLE 2.1
The use of testing methods
Technique Can reveal Cannot reveal No. of test cases
Algorithm complexity Complexity, validity, optimality,
and computational limits of an
algorithm, and its effects
Algorithm unsuitability As required
Boundary-value analysis Bugs on boundaries and bugs
related to output domain
Bugs from combinations of
inputs
No. of input and output
equivalence classes + no. of
equivalence class bounds
Feature testing Anything tested for Doesn??™t test all the code
equally, doesn??™t always reflect
use in the field
As required
Cause??“effect graphing Specification ambiguities and
inconsistencies, combinations
of inputs
Some boundary bugs No. of input equivalence
classes + no. of output
equivalence classes
Decision (branch)
coverage
Outcomes of simple decisions Units without decisions,
multiple entry points,
incorrect conditions in
decisions
No. of decision outcomes,
McCabe metric
Decision tables Which conditions should not
affect the decision (but might)?
Logic bugs in the original
decision table
No. of columns in the
decision table
DU paths Incorrect operations or no
operations on variables
Wrong specification At least one per path
Dynamic dataflow Data behavior in a running
program
Total path coverage Code instrumentation as
required plus tools
Equivalence class
partitioning
One representative of each
input class
Bugs from combinations of
inputs, bugs related to output
domain structure, and bugs on
equivalence class boundaries
Number of input
equivalence classes
Executable assertion Correctness of code at
assertion point
Anything unrelated to the
assertion
As many assertions as
required
Execution-time and
resource use analysis
Execution-time, order,
control-flow, wait-time, and
resource use of each module
Faulty execution or resource
use
Not applicable
Fault injection Control-flow errors, inability
to manage illegal data, illegal
data states, and code bugs
It may show bugs in compiled
code, but identifying which
source instructions they refer
to may be too expensive an
exercise to be undertaken
As required
Linear code sequence and
jump
As statement coverage plus
n
paths
As expensive as the number of
jumps covered, requires a tool
to be done inexpensively
As required
Multiple decision
coverage
All outcomes of all conditions
in all decisions in all
combinations
Units without decisions No.
Pages:
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118