An Empirical Evaluation of Data Flow Testing of Java Classes

This paper tackles the problem of structural integration testing of stateful classes. Previous work on structural testing of objectoriented software exploits data flow analysis to derive test requirements for class testing and defines contextual def-use associations to characterize inter-method relations. Non-contextual data flow testing of classes works well for unit testing, but not for integration testing, since it misses definitions and uses when properly encapsulated. Contextual data flow analysis approaches investigated so far either do not focus on state dependent behavior, or have limited applicability due to high complexity. This paper proposes an efficient structural technique based on contextual data flow analysis to test state-dependent behavior of classes that aggregate other classes as part of their state.

[1]  David Lee,et al.  Principles and methods of testing finite state machines-a survey , 1996, Proc. IEEE.

[2]  Ferhat Khendek,et al.  Test Selection Based on Finite State Models , 1991, IEEE Trans. Software Eng..

[3]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

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

[5]  Shaoying Liu,et al.  Criteria for generating specification-based tests , 1999, Proceedings Fifth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'99) (Cat. No.PR00434).

[6]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[7]  István Forgács An exact array reference analysis for data flow testing , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[8]  Alessandro Orso,et al.  Automated Testing of Classes , 2000, ISSTA '00.

[9]  Lionel C. Briand,et al.  Towards Automated Support for Deriving Test Data from UML Statecharts , 2003, UML.

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

[11]  Lori L. Pollock,et al.  The Construction of Contextual Def-Use Associations for Object-Oriented Systems , 2003, IEEE Trans. Software Eng..

[12]  Robert B. France,et al.  Test adequacy criteria for UML design models , 2003, Softw. Test. Verification Reliab..

[13]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[14]  Barbara G. Ryder,et al.  Fragment class analysis for testing of polymorphism in Java software , 2004, IEEE Transactions on Software Engineering.

[15]  Atanas Rountev,et al.  Interprocedural Dataflow Analysis in the Presence of Large Libraries , 2006, CC.

[16]  Gregg Rothermel,et al.  Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and its Potential Impact , 2005, Empirical Software Engineering.

[17]  Richard G. Hamlet,et al.  Exploring dataflow testing of arrays , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[18]  Saurabh Sinha,et al.  Analysis and Testing of Programs with Exception Handling Constructs , 2000, IEEE Trans. Software Eng..

[19]  Barbara G. Ryder,et al.  Data-flow-based Testing of Object-Oriented Libraries , 1999 .

[20]  Barbara G. Ryder,et al.  Points-to analysis for Java using annotated constraints , 2001, OOPSLA '01.

[21]  Jean Hartmann,et al.  UML-Based integration testing , 2000, ISSTA '00.

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

[23]  Phyllis G. Frankl,et al.  The ASTOOT approach to testing object-oriented programs , 1994, TSEM.

[24]  W. Eric Wong,et al.  Coverage testing of Java programs and components , 2005, Sci. Comput. Program..

[25]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[26]  David Chenho Kung,et al.  Developing an object-oriented software testing and maintenance environment , 1995, CACM.

[27]  Mary Lou Soffa,et al.  Efficient computation of interprocedural definition-use chains , 1994, TOPL.

[28]  Massimiliano Di Penta,et al.  Assessing and improving state-based class testing: a series of experiments , 2004, IEEE Transactions on Software Engineering.

[29]  Donglin Liang,et al.  Evaluating the impact of context-sensitivity on Andersen's algorithm for Java programs , 2005, PASTE '05.

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

[31]  Xie Xiao-dong Testing based on sequence diagrams , 2008 .

[32]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

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

[34]  Lionel C. Briand,et al.  Using simulation to empirically investigate test coverage criteria based on statechart , 2004, Proceedings. 26th International Conference on Software Engineering.

[35]  Gregor von Bochmann,et al.  Trace Analysis for Conformance and Arbitration Testing , 1989, IEEE Trans. Software Eng..

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

[37]  Mauro Pezzè,et al.  Software testing and analysis - process, principles and techniques , 2007 .

[38]  Falk Fraikin,et al.  SeDiTeC-testing based on sequence diagrams , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[39]  Donglin Liang,et al.  Extending and evaluating flow-insenstitive and context-insensitive points-to analyses for Java , 2001, PASTE '01.

[40]  Barbara G. Ryder,et al.  Complexity of Points-To Analysis of Java in the Presence of Exceptions , 2001, IEEE Trans. Software Eng..

[41]  Lori L. Pollock,et al.  TATOO: Testing and Analysis Tool for Object- Oriented Software , 2001, TACAS.

[42]  A. Jefferson Offutt,et al.  Using UML Collaboration Diagrams for Static Checking and Test Generation , 2000, UML.