Lecture 25: Testing Strategies/OO Testing: Verification & Validation
Lecture 25: Testing Strategies/OO Testing: Verification & Validation
Engineering
Manish Parashar
[email protected]
Department of Electrical &
Computer Engineering
Rutgers University
Testing strategy
Unit testing
interface
Module
high-order
tests
requirements
integration test
design
unit
test
code
Test cases
driver
independent paths
Module
stub
stub
RESULTS
Test cases
Integration testing
Big
Bang!
incremental
builds
Bottom-up integration
G
stubs are replaced one at
a time, depth first
C
regression
testing
Sandwich testing
A
B
cluster
validation test
z system test
z alpha and beta test
z other specialized testing
z
y performance testing
y usability testing
y ...
software
customer tests
developer site
customer site
Beta test
developer
reviews
developer site
ECE 452 - Introduction to Software Engineering
cluster
High-order testing
customer
tests
software
customer site
y integration
y validation
OOT strategy
z
z
thread-based testing
x integrates
event
z
ya
test
y specific
random testing
xcategorize
Partition testing
attribute-based partitioning
xcategorize
category-based partitioning
xcategorize
Partition testing
reduces the number of test cases required to
test a class in much the same way as
equivalence partitioning for conventional
software
state-based partitioning
user needs
initialization
state changing
queries
termination
Inter-class testing
Inter-class testing
For each operator in the server object (that has been
invoked by messages sent from the client object)
determine the messages that it transmits.
For each of the messages, determine the next level
of operators that are invoked and incorporate these
into the test sequence
xthe
xthe
Executing tests
z
ya
xdescribe
y test
xlist
y test
y count
Class: ResourcePool
method: addAgent
test case: No. 265 - tests exception of the method
result: failed
symptom
cause
ECE 452 - Introduction to Software Engineering