Object Oriented Testing: by Maj Nicko Petchiny
Object Oriented Testing: by Maj Nicko Petchiny
INTEGRATION TESTING
POLYMORPHISM
UNIT TESTING
ENCAPSULATION
REFERENCES
Developing an OO Software Testing and Maintenance Environment (King, Gao, Hsia, et-al) Incremental Testing of OO Class Structures (Harrold, McGregor) OO Integration Testing (Jorgensen, Ericksen) OO Software Testing, A Hierarchical Approach (Siegel)
OUTLINE
TRADITIONAL VS OO SW DEVELOPMENT AND TESTING OO CONCEPTS/EFFECT ON TESTING PROPOSED OO INTEGRATION TESTING APPROACH EXAMPLE USING TEST APPROACH CONCLUSION
DETAILED DESIGN
UNIT TESTING
TRADITIONAL TESTING
SYSTEM
VERIFY SW SATISFIES ALL SW REQRS
INTEGRATION
BASED ON STRUCTURE OF DESIGN TOP DOWN OR BOTTOM UP APPROACH
UNIT
ENCAPSULATES FUNCTIONALITY
UNIT
TWO COMMON STRUCTURES USED
METHOD* CLASS
F METHOD
E METHOD
B METHOD
D METHOD
METHOD
F METHOD
E METHOD
B METHOD
C METHOD
D METHOD
OO INTEGRATION TESTING
MAIN PROGRAM IS MINIMIZED MOST COMPLICATED PART OF OO TESTING TESTING BASED ON COMPOSITION IN BOTTOM UP APPROACH USE OF CLUSTERS ORD - CLASS DEPENDENCIES BBD OR DIRECTED GRAPHS - SHOWS METHOD DEPENDENCIES
Class 3
Class 2
meth1
3
meth3
MM-Path
Message
meth2
OO CONCEPTS/EFFECTS ON TESTING
ENCAPSULATION POLYMORPHISM INHERITANCE
ENCAPSULATION
CLASS STRUCTURE INTERFACE DEFINED BY PUBLIC METHODS BEHAVIOR DEFINED BY METHODS THAT OPERATE ON ITS INSTANCE DATA (IN CONVENTIONAL SEPARATE) HELPS ENFORCE INFO HIDING
CLASS A METHOD
CLASS C METHOD
USES
POLYMORPHISM
AN ATTRIBUTE MAY HAVE MORE THAN ONE SET OF VALUES AN OPERATION MAY BE IMPLEMENTED BY MORE THAN ONE METHOD ( e.g GRAPHICS ) OVERLOADING (type or number of variables) DYNAMIC BINDING
OO TESTING ISSUES
POLYMORPHISM
DO YOU TEST ONE VARIANT ? DO YOU TEST ALL VARIATIONS ? IF ALL, DO YOU TEST ALL VARIANTS AT ALL LEVELS
UNIT INTEGRATION OR SYSTEM LEVEL
INHERITANCE STRUCTURES
SINGLE MULTIPLE MULTIPLE LEVELS
BASE
BASE
BASE
BASE
SUBCLASS
INHERITANCE
RESULT CLASS
INHERITANCE
B A C B B A + M1 C + M2 A + M1 C B + M2
INHERITANCE MODIFIERS
NONE (ONLY INHERITED ATTRIBUTE) ADD NEW ATTRIBUTE(S) REDEFINE PARENTS ATTRIBUTE(S) VIRTUAL ATTRIBUTE (THREADS IN JAVA)
OO TESTING ISSUES
INHERITANCE
DO YOU COMPLETELY TEST ALL BASE CLASSES AND THEIR SUB-CLASSES ? DO YOU COMPLETELY TEST ALL BASE CLASSES AND ONLY TEST THE CHANGES OR MODIFICATIONS IN THEIR SUBCLASSES ? AT WHAT LEVELS DO YOU TEST? IN WHICH ORDER DO YOU TEST?
INHERITED TESTING
SCENARIO
NONE NEW REDEFINED VIRTUAL (COMPLETED BY SUBCLASS) VIRTUAL ( NOT COMPLETED) X X X UNIT INTEGRATION X? X? X X?
OO TESTING METHODOLOGY
JORGENSEN AND ERICKSEN PROPOSE 5 LEVELS A METHOD MESSAGE QUIESCENCE EVENT QUIESCENCE THREAD TESTING THREAD INTERACTION - UNIT TESTING - INTEGRATION - INTEGRATION -SYSTEM -SYSTEM
CONSTRUCT DEFINITIONS
MM-PATH (METHOD MESSAGE PATH) [MESSAGE QUIESCENCE]
SEQUENCE OF EXECUTIONS LINKED BY MESSAGES. STARTS WITH METHOD AND ENDS WITH A METHOD THAT DOESNT PRODUCE A MESSAGE
CONSTRUCT DEFINITIONS
ASF (ATOMIC SYSTEM FUNCTION) [EVENT QUIESCENCE]
REPRESENTS AN INPUT EVENT FOLLOWED BY A SET OF MM-PATHS TERMINATED BY AN OUPUT EVENT
Class 3
Class 2
meth1
3
meth3
MM-Path
Message
meth2
CARDSLOT
BANK
SCREEN SECURITY
SpecialKeypad
Keypad
NumKeypad
Screen showMessage
Key pushers
CONCLUSION
OO TESTING LEVELS- UNIT &SYSTEM SAME AS TRADITIONAL LEVELS OO INTEGRATION TESTING IS DIFFERENT AND MORE COMPLEX OPTIMAL TEST ORDER SAVES TOOLS REQUIRED TO SCALE UP OO TESTING LIMIT DESIGNERS TO STRAIGHT INHERITANCE (NO REDEFINING)