Software-Testing-Unit-5
Software-Testing-Unit-5
1
Software Testing
2
Testability
Operability—it operates cleanly
Observability—the results of each test case are
readily observed
Controllability—the degree to which testing can be
automated and optimized
Decomposability—testing can be targeted
Simplicity—reduce complex architecture and logic
to simplify tests
Stability—few changes are requested during testing
Understandability—of the design
3
What Testing Shows
errors
requirements conformance
performance
an indication
of quality
4
Who Tests the Software?
5
Exhaustive Testing
loop < 20 X
14
There are 10 possible paths! If we execute one
test per millisecond, it would take 3,170 years to
test this program!!
6
Selective Testing
Selected path
loop < 20 X
7
Test Case Design
"Bugs lurk in corners
and congregate at
boundaries ..."
Boris Beizer
8
White-Box Testing
9
Why Cover?
logic errors and incorrect assumptions
are inversely proportional to a path's
execution probability
10
Basis Path Testing
First, we compute the cyclomatic
complexity:
or
11
Cyclomatic Complexity
A number of industry studies have indicated
that the higher V(G), the higher the probability
or errors.
modules
V(G)
12
Basis Path Testing
Next, we derive the
independent paths:
1
Since V(G) = 4,
2 there are four paths
3 Path 1: 1,2,3,6,7,8
4
5 6 Path 2: 1,2,3,5,7,8
Path 3: 1,2,4,7,8
Path 4: 1,2,4,7,2,4,...7,8
7
Finally, we derive test
cases to exercise these
8
paths.
13
Basis Path Testing Notes
14
Loop Testing
Simple
loop
Nested
Loops
Concatenated
Loops Unstructured
Loops
15
Loop Testing: Simple Loops
Minimum conditions—Simple Loops
• Skip the loop entirely: Test the scenario where the loop's body
does not execute at all.
• Only one pass through the loop: Test the scenario where the
loop's body executes exactly once.
• Two passes through the loop: Test the scenario where the loop's
body executes exactly twice.
• m passes through the loop (m < n): Test the scenario where the
loop executes m times, which is fewer than the maximum
allowable passes.
• (n-1), n, and (n+1) passes through the loop: Test scenarios where
the loop executes one less than the maximum (n-1), exactly the
maximum (n), and one more than the maximum allowable passes
(n+1).
16
Loop Testing: Nested Loops
Nested Loops
Start at the innermost loop. Set all outer loops to their
minimum iteration parameter values.
Test the min+1, typical, max-1 and max for the
innermost loop, while holding the outer loops at their
minimum values.
Move out one loop and set it up as in step 2, holding all
other loops at typical values. Continue this step until
the outermost loop has been tested.
Concatenated Loops
If the loops are independent of one another
then treat each as a simple loop
else* treat as nested loops
endif*
for example, the final loop counter value of loop 1 is
used to initialize loop 2.
17
Black-Box Testing
requirements
output
input events
18
Equivalence Partitioning:
Sample Equivalence
Classes
Valid data
user supplied commands
responses to system prompts
file names
computational data
physical parameters
bounding values
initiation values
output data formatting
responses to error messages
graphical data (e.g., mouse picks)
Invalid data
data outside bounds of the program
physically impossible data
proper value supplied in wrong place
19
Software Testing Strategies
20
Testing Strategy
unit test integration
test
system validation
test test
21
Unit Testing
module
to be
tested
results
software
engineer test cases
22
Unit Testing
module
to be
tested
interface
local data structures
boundary conditions
independent paths
error handling paths
test cases
23
Unit Test Environment
driver
interface
local data structures
Module boundary conditions
independent paths
error handling paths
stub stub
test cases
RESULTS
24
Integration Testing Strategies
Options:
• the “big bang” approach
• an incremental construction strategy
25
Top Down Integration
A
top module is tested with
stubs
B F G
26
Bottom-Up Integration
A
B F G
cluster
27
Sandwich Testing
A
Top modules are
tested with stubs
B F G
cluster
28
High Order Testing
validation test
system test
29
Debugging:
A Diagnostic Process
30
The Debugging Process
test cases
31
Debugging Effort
time required
to diagnose the
time required symptom and
to correct the error determine the
and conduct cause
regression tests
32
Symptoms & Causes
symptom and cause may be
geographically separated
33
Consequences of Bugs
infectious
damage
catastrophic
extreme
serious
disturbing
annoying
mild
Bug Type
Bug Categories: function-related bugs,
system-related bugs, data bugs, coding bugs,
design bugs, documentation bugs, standards
violations, etc.
34
Debugging Techniques
35
Debugging: Final Thoughts
36
Thank You
37