Testing coupling relationships in object‐oriented programs

As we move toward developing object‐oriented (OO) programs, the complexity traditionally found in functions and procedures is moving to the connections among components. Different faults occur when components are integrated to form higher‐level structures that aggregate the behavior and state. Consequently, we need to place more effort on testing the connections among components. Although OO technologies provide abstraction mechanisms for building components that can then be integrated to form applications, it also adds new compositional relations that can contain faults. This paper describes techniques for analyzing and testing the polymorphic relationships that occur in OO software. The techniques adapt traditional data flow coverage criteria to consider definitions and uses among state variables of classes, particularly in the presence of inheritance, dynamic binding, and polymorphic overriding of state variables and methods. The application of these techniques can result in an increased ability to find faults and to create an overall higher quality software. Copyright © 2010 John Wiley & Sons, Ltd.

[1]  Gail E. Kaiser,et al.  Adequate testing and object-oriented programming , 1990 .

[2]  David J. Robson,et al.  The state-based testing of object-oriented programs , 1993, 1993 Conference on Software Maintenance.

[3]  S. N. Weiss Comparing test data adequacy criteria , 1989, SOEN.

[4]  Stephen E. Fienberg,et al.  Discrete Multivariate Analysis: Theory and Practice , 1976 .

[5]  Lionel C. Briand,et al.  An Investigation of Graph-Based Class Integration Test Order Strategies , 2003, IEEE Trans. Software Eng..

[6]  Edward V. Berard,et al.  Issues in the testing of object-oriented software , 1994, Proceedings of ELECTRO '94.

[7]  Barbara G. Ryder,et al.  Parameterized object sensitivity for points-to analysis for Java , 2005, TSEM.

[8]  Edward V. Berard,et al.  Testing Object-Oriented Software , 2021, TOOLS.

[9]  Luciano Baresi,et al.  An Introduction to Software Testing , 2006, FoVMT.

[10]  Elaine J. Weyuker,et al.  Axiomatizing software test data adequacy , 1986, IEEE Transactions on Software Engineering.

[11]  Tsong Yueh Chen,et al.  TACCLE: a methodology for object-oriented software testing at the class and cluster levels , 2001, TSEM.

[12]  Phyllis G. Frankl,et al.  Case studies on testing object-oriented programs , 1991, TAV4.

[13]  Hong Zhu,et al.  A Formal Analysis of the Subsume Relation Between Software Test Adequacy Criteria , 1996, IEEE Trans. Software Eng..

[14]  Yong Rae Kwon,et al.  Testing of object-oriented programs based on finite state machines , 1995, Proceedings 1995 Asia Pacific Software Engineering Conference.

[15]  Alessandro Orso Integration Testing of Object-Oriented Software , 1998 .

[16]  Gregg Rothermel,et al.  Performing data flow testing on classes , 1994, SIGSOFT '94.

[17]  Paul C. Jorgensen,et al.  Object-oriented integration testing , 1994, CACM.

[18]  A. Jefferson Offutt,et al.  Analysis techniques for testing polymorphic relationships , 1999, Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278).

[19]  A. Jefferson Offutt,et al.  Integration testing of object‐oriented components using finite state machines , 2006, Softw. Test. Verification Reliab..

[20]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[21]  Meilir Page-Jones,et al.  The practical guide to structured systems design , 1980 .

[22]  Alfred Strohmeier,et al.  The Problematics of Testing Object-Oriented Software , 1970 .

[23]  Bertrand Meyer,et al.  Introduction to the Theory of Programming Languages , 1990 .

[24]  D. J. Robson,et al.  Object-oriented programming-the problems of validation , 1990, Proceedings. Conference on Software Maintenance 1990.

[25]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[26]  Stephen H. Edwards Black-box testing using flowgraphs: an experimental assessment of effectiveness and automation potential , 2000, Softw. Test. Verification Reliab..

[27]  A. Jefferson Offutt,et al.  Criteria for testing polymorphic relationships , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[28]  Roger T. Alexander,et al.  Testing the polymorphic relationships of object-oriented programs , 2001 .

[29]  A. Jefferson Offutt,et al.  Coupling-based Criteria for Integration Testing , 1998, Softw. Test. Verification Reliab..

[30]  Barbara G. Ryder,et al.  Interprocedural Def-Use Associations for C Systems with Single Level Pointers , 1994, IEEE Trans. Software Eng..

[31]  Robert V. Binder,et al.  Testing object‐oriented software: a survey , 1996 .

[32]  David Cordes,et al.  Automated flow graph-based testing of object-oriented software modules , 1993, J. Syst. Softw..

[33]  A. Jefferson Offutt,et al.  A software metric system for module coupling , 1993, J. Syst. Softw..

[34]  Roger T. Alexander Improving the Quality of Object-Oriented Programs , 2001, IEEE Softw..

[35]  James M. Bieman,et al.  Fault detection capabilities of coupling-based OO testing , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[36]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[37]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[38]  Jane Huffman Hayes Testing of Object-Oriented Programming Systems (OOPS): A Fault-Based Approach , 1994, ISOOMS.

[39]  Tsong Yueh Chen,et al.  In black and white: an integrated approach to class-level testing of object-oriented programs , 1998, TSEM.

[40]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[41]  A. Jefferson Offutt,et al.  A fault model for subtype inheritance and polymorphism , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[42]  David Chenho Kung,et al.  A test strategy for object-oriented programs , 1995, Proceedings Nineteenth Annual International Computer Software and Applications Conference (COMPSAC'95).

[43]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[44]  Edward V. Berard,et al.  Essays on object-oriented software engineering (vol. 1) , 1993 .

[45]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[46]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.

[47]  Mei-Hwa Chen,et al.  Testing object-oriented programs - an integrated approach , 1999, Proceedings 10th International Symposium on Software Reliability Engineering (Cat. No.PR00443).