Identifying Class Integration Test Order Using an Improved Genetic Algorithm-Based Approach

Software testing is a very difficult activity, representing a large part from a software system’s development process. Within the class-based integration testing methodology, determining the order in which the application classes have to be tested is of major importance for reducing the testing time and cost. The Class Integration Test Order (CITO) problem deals with identifying the testing order of classes which minimizes stub creation effort, and subsequently testing cost. In this paper we propose an efficient approach using a genetic algorithm with stochastic acceptance for determining the class integration test order which minimizes the stubbing effort needed during the class-based integration testing. In our proposal, we estimate the stub creation complexity by allocating weights to different types of dependencies between the classes in the software system’s Object Relation Diagram. Four synthetic examples and six software systems often used in the CITO literature are used as case studies for experimentally evaluating our proposal. The effectiveness of our approach is confirmed by the obtained results that outperform the existing related work which provide experimental results on the case studies considered in this paper.

[1]  Aurora Trinidad Ramirez Pozo,et al.  Establishing integration test orders of classes with several coupling measures , 2011, GECCO '11.

[2]  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).

[3]  Aurora Trinidad Ramirez Pozo,et al.  A Pareto Ant Colony Algorithm Applied to the Class Integration and Test Order Problem , 2010, ICTSS.

[4]  A. Jefferson Offutt,et al.  Using Coupling-Based Weights for the Class Integration and Test Order Problem , 2009, Comput. J..

[5]  L. Darrell Whitley,et al.  An overview of evolutionary algorithms: practical issues and common pitfalls , 2001, Inf. Softw. Technol..

[6]  Sangeeta Sabharwal,et al.  An investigation of strategies for finding test order during Integration testing of object Oriented applications , 2009, 2009 Proceeding of International Conference on Methods and Models in Computer Science (ICM2CS).

[7]  Ewan D. Tempero,et al.  An empirical study of cycles among classes in Java , 2007, Empirical Software Engineering.

[8]  Phongphun Kijsanayothin,et al.  Automated Test Order Generation for Software Component Integration Testing , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[9]  Gian Mauricio Fritsche,et al.  A Hyper-Heuristic for the Multi-Objective Integration and Test Order Problem , 2015, GECCO.

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

[11]  Melanie Mitchell,et al.  An introduction to genetic algorithms , 1996 .

[12]  Adam Lipowski,et al.  Roulette-wheel selection via stochastic acceptance , 2011, ArXiv.

[13]  Jean-Marc Jézéquel,et al.  Selecting an Efficient OO Integration Testing Strategy: An Experimental Comparison of Actual Strategies , 2001, ECOOP.

[14]  Chengying Mao,et al.  AICTO: an improved algorithm for planning inter-class test order , 2005, The Fifth International Conference on Computer and Information Technology (CIT'05).

[15]  Shujuan Jiang,et al.  A multi-level feedback approach for the class integration and test order problem , 2017, J. Syst. Softw..

[16]  Peter J. Clarke,et al.  The implementation of an extensible system for comparison and visualization of class ordering methodologies , 2006, J. Syst. Softw..

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

[18]  Barbara Paech,et al.  Integration Test Order Strategies to Consider Test Focus and Simulation Effort , 2009, 2009 First International Conference on Advances in System Testing and Validation Lifecycle.

[19]  Zsuzsanna Marian,et al.  An Improved Approach for Class Test Ordering Optimization using Genetic Algorithms , 2017, ICSOFT.

[20]  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.

[21]  L. Darrell Whitley,et al.  Modeling Simple Genetic Algorithms for Permutation Problems , 1994, FOGA.

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

[23]  Aurora Trinidad Ramirez Pozo,et al.  Grammatical Evolution for the Multi-Objective Integration and Test Order Problem , 2016, GECCO.

[24]  A. Jefferson Offutt,et al.  Coupling-based class integration and test order , 2006, AST '06.

[25]  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..