The implementation of an extensible system for comparison and visualization of class ordering methodologies

In this paper we present the design and implementation of a system that exploits well-known design patterns to facilitate construction of an extensible system for comparison and visualization of ordering methodologies for class-based testing of C++ applications. Using our implementation, we present a comparative study and evaluation of two advanced ordering methodologies: the edge based approach by Briand et al., and the Class Ordering System (COS) introduced in this paper. We compare two variations of the approach by Briand and three variations of the COS system and draw conclusions about the number of edges removed, and therefore the number of stubs that must be constructed, using each approach. We also compare the run-time efficiency of each approach and raise some interesting questions about edge type considerations for removal in the presence of cycles in the ORD. Using the design patterns together with the dot tool from the Graphviz package, we incorporate visualization of the ORD and the edge removals into our system. We present details and graphical visualization of the edge removal process.

[1]  Peter J. Clarke,et al.  A parameterized cost model to order classes for class-based testing of C++ applications , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[2]  Jean-Marc Jézéquel,et al.  Efficient object-oriented integration and regression testing , 2000, IEEE Trans. Reliab..

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

[4]  Lionel C. Briand,et al.  Revisiting strategies for ordering class integration testing in the presence of dependency cycles , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[5]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[6]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[7]  Mary Jean Harrold,et al.  Testing: a roadmap , 2000, ICSE '00.

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

[9]  Gregg Rothermel,et al.  An empirical comparison of dynamic impact analysis algorithms , 2004, Proceedings. 26th International Conference on Software Engineering.

[10]  Raymond E. Miller,et al.  Complexity of Computer Computations , 1972 .

[11]  Yvan Labiche,et al.  Testing levels for object-oriented software , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[12]  Lionel C. Briand,et al.  Using genetic algorithms and coupling measures to devise optimal integration test orders , 2002, SEKE '02.

[13]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[14]  K. C. Tai,et al.  Measuring the effectiveness of method test sequences derived from sequencing constraints , 1999, Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278).

[15]  Peter J. Clarke,et al.  Reveal: a tool to reverse engineer class diagrams , 2002 .

[16]  Mads Torgersen,et al.  The c# programming language, third edition , 2008 .

[17]  Gregg Rothermel,et al.  Infrastructure support for controlled experimentation with software testing and regression testing techniques , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[18]  Brian A. Malloy,et al.  Decorating tokens to facilitate recognition of ambiguous language constructs , 2003, Softw. Pract. Exp..

[19]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[20]  Brian A. Malloy,et al.  A Study of Test Coverage Adequacy In the Presence of Stubs , 2005, J. Object Technol..

[21]  Kuo-Chung Tai,et al.  Test order for inter-class integration testing of object-oriented software , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[22]  Gregory Tassey,et al.  Prepared for what , 2007 .

[23]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

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

[25]  William C. Chu,et al.  Integrating diverse paradigms in evolution and maintenance by an XML-based unified model , 2003, J. Softw. Maintenance Res. Pract..