Software Testing Strategies
Software Testing Strategies
6/e
Chapter 13
Software Testing Strategies
copyright 1996, 2001, 2005
Thesecoursewarematerialsaretobeusedinconjunction
Software Testing
Testing is the process of exercising a
program with the specific intent of finding
errors prior to delivery to the end user.
Thesecoursewarematerialsaretobeusedinconjunction
Thesecoursewarematerialsaretobeusedinconjunction
developer
Understands the system
but, will test "gently"
and, is driven by "delivery"
independent tester
Must learn about the system,
but, will attempt to break it
and, is driven by quality
Thesecoursewarematerialsaretobeusedinconjunction
Testing Strategy
unit test
system
test
integration
test
validation
test
Thesecoursewarematerialsaretobeusedinconjunction
Testing Strategy
For OO software
Thesecoursewarematerialsaretobeusedinconjunction
Strategic Issues
Thesecoursewarematerialsaretobeusedinconjunction
Unit Testing
module
to be
tested
results
software
engineer
test cases
Thesecoursewarematerialsaretobeusedinconjunction
Unit Testing
module
to be
tested
interface
local data structures
boundary conditions
independent paths
error handling paths
test cases
Thesecoursewarematerialsaretobeusedinconjunction
Module
boundary conditions
independent paths
error handling paths
stub
stub
test cases
RESULTS
Thesecoursewarematerialsaretobeusedinconjunction
10
Thesecoursewarematerialsaretobeusedinconjunction
11
Thesecoursewarematerialsaretobeusedinconjunction
12
Bottom-Up Integration
A
cluster
Thesecoursewarematerialsaretobeusedinconjunction
13
Sandwich Testing
A
cluster
Thesecoursewarematerialsaretobeusedinconjunction
14
Object-Oriented Testing
15
16
Thesecoursewarematerialsaretobeusedinconjunction
17
OOT Strategy
Thesecoursewarematerialsaretobeusedinconjunction
18
Smoke Testing
A series of tests is designed to expose errors that will keep the build
from properly performing its function.
A build includes all data files, libraries, reusable modules, and engineered
components that are required to implement one or more product
functions.
The intent should be to uncover show stopper errors that have the
highest likelihood of throwing the software project behind schedule.
The build is integrated with other builds and the entire product (in its
current form) is smoke tested daily.
Thesecoursewarematerialsaretobeusedinconjunction
19
Validation testing
System testing
verifies that protection mechanisms built into a system will, in fact, protect it from
improper penetration
Stress testing
forces the software to fail in a variety of ways and verifies that recovery is properly
performed
Security testing
Recovery testing
Alpha/Beta testing
Performance Testing
Thesecoursewarematerialsaretobeusedinconjunction
20
Debugging:
A Diagnostic Process
Thesecoursewarematerialsaretobeusedinconjunction
21
new test
regression cases
tests
suspected
causes
corrections
identified
causes
results
Debugging
Thesecoursewarematerialsaretobeusedinconjunction
22
Debugging Effort
time required
to correct the error
and conduct
regression tests
time required
to diagnose the
symptom and
determine the
cause
Thesecoursewarematerialsaretobeusedinconjunction
23
symptom
cause
Thesecoursewarematerialsaretobeusedinconjunction
24
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.
Thesecoursewarematerialsaretobeusedinconjunction
25
Debugging Techniques
brute force / testing
backtracking
induction
deduction
Thesecoursewarematerialsaretobeusedinconjunction
26
Thesecoursewarematerialsaretobeusedinconjunction
27