RGA: A lightweight and effective regeneration genetic algorithm for coverage-oriented software test data generation

Abstract Context Genetic algorithm (GA) is an important intelligent method in the area of automatic software test data generation. However, existing GAs tend to get trapped in the local optimal solution, leading to population aging, which can significantly reduce the benefits of GA-based software testing and increase cost and effort. Although much attention has been focused on solving this problem by improving chromosome population, genetic operations, and genetic parameters adjustment, the applicability of most of the algorithms proposed is often narrow because of the complex operations involved and nondeterminism inherited from traditional GAs. Objectives This paper proposes a new algorithm called the regenerate genetic algorithm (RGA), which is based on a new simple, stable, and easy-to-implement regeneration strategy that involves judging the population aging process. Methods We propose a new regeneration strategy—called Regenerate Genetic Algorithm (RGA)—that solves these problems easily and effectively. The proposed strategy defines population aging factors and process in order to determine the degree of population aging. Subsequently, when population aging has reached a certain limit, a population regeneration operation is triggered. In contrast to other improved methods, the proposed regeneration strategy for population aging easily achieves a stronger ability to jump out of the local optimal solution, thereby preventing population aging and effectively improving test coverage, without modifying any parameter of the original GA. Results The proposed algorithm is experimentally evaluated by comparing it to the basic GA, Random Testing (RT) and several other methods in terms of both efficiency and effectiveness on the Siemens Suite of test programs and a more complex real program. The results obtained indicate that the proposed algorithm can effectively increase search efficiency, restrain population aging, increase test coverage, and reduce the number of test cases. Conclusion RGA has better optimization ability than the conventional algorithms, especially for large-scale and highly complex programs.

[1]  Zne-Jung Lee,et al.  Genetic algorithm with ant colony optimization (GA-ACO) for multiple sequence alignment , 2008, Appl. Soft Comput..

[2]  Mark Harman,et al.  Test data regeneration: generating new test data from existing test data , 2012, Softw. Test. Verification Reliab..

[3]  Gordon Fraser,et al.  Parameter tuning or default values? An empirical investigation in search-based software engineering , 2013, Empirical Software Engineering.

[4]  Tsong Yueh Chen,et al.  Adaptive random testing through iterative partitioning revisited , 2006, SOQUA '06.

[5]  Roy P. Pargas,et al.  Test‐data generation using genetic algorithms , 1999, Softw. Test. Verification Reliab..

[6]  Michael Luck,et al.  Evolutionary testing of autonomous software agents , 2009, Autonomous Agents and Multi-Agent Systems.

[7]  Ting Yee Lim Structured population genetic algorithms: a literature survey , 2012, Artificial Intelligence Review.

[8]  Bharti Suri,et al.  Regression Test Suite Reduction using an Hybrid Technique Based on BCO And Genetic Algorithm , 2012 .

[9]  Basel A. Mahafzah,et al.  A multiple-population genetic algorithm for branch coverage test data generation , 2011, Software Quality Journal.

[10]  Hui Chen,et al.  A literature survey on smart cities , 2015, Science China Information Sciences.

[11]  James Miller,et al.  Automatic test data generation using genetic algorithm and program dependence graphs , 2006, Inf. Softw. Technol..

[12]  R. Prudêncio,et al.  Search based constrained test case selection using execution effort , 2013, Expert Syst. Appl..

[13]  Andrea Arcuri,et al.  Full Theoretical Runtime Analysis of Alternating Variable Method on the Triangle Classification Problem , 2009, 2009 1st International Symposium on Search Based Software Engineering.

[14]  Lars Grunske,et al.  Test data generation with a Kalman filter-based adaptive genetic algorithm , 2015, J. Syst. Softw..

[15]  D. Jeya Mala,et al.  Automated software test optimisation framework - an artificial bee colony optimisation-based approach , 2010, IET Softw..

[16]  Gordon Fraser,et al.  A Memetic Algorithm for whole test suite generation , 2015, J. Syst. Softw..

[17]  Kamal Z. Zamli,et al.  A Greedy Particle Swarm Optimization Strategy for T-way Software Testing , 2012 .

[18]  Per Kristian Lehre,et al.  Runtime analysis of the (1 + 1) EA on computing unique input output sequences , 2014, Inf. Sci..

[19]  Cláudio F. Lima,et al.  Adaptive Population Sizing Schemes in Genetic Algorithms , 2007, Parameter Setting in Evolutionary Algorithms.

[20]  Per Kristian Lehre,et al.  Runtime analysis of (1+l) EA on computing unique input output sequences , 2007, 2007 IEEE Congress on Evolutionary Computation.

[21]  Marcello Pericoli,et al.  Correlation analysis of financial contagion , 2011 .

[22]  Magdalene Marinaki,et al.  A hybrid genetic - Particle Swarm Optimization Algorithm for the vehicle routing problem , 2010, Expert Syst. Appl..

[23]  Yong Chen,et al.  Automatic Path-Oriented Test Data Generation Using a Multi-population Genetic Algorithm , 2008, 2008 Fourth International Conference on Natural Computation.

[24]  Ruchika Malhotra,et al.  An Adequacy Based Test Data Generation Technique Using Genetic Algorithms , 2011, J. Inf. Process. Syst..

[25]  Hongmei Yu,et al.  A combined genetic algorithm/simulated annealing algorithm for large scale system energy integration , 2000 .

[26]  Prabuddha Sengupta,et al.  Quantifying spatial organization in point-localization superresolution images using pair correlation analysis , 2013, Nature Protocols.

[27]  Tai-hoon Kim,et al.  Application of Genetic Algorithm in Software Testing , 2009 .

[28]  Dave Towey,et al.  A revisit of three studies related to random testing , 2015, Science China Information Sciences.

[29]  Praveen Ranjan Srivastava,et al.  Software Coverage Analysis: Black Box Approach Using ANT System , 2012, Int. J. Appl. Evol. Comput..

[30]  Mario Jino,et al.  Diversity oriented test data generation using metaheuristic search techniques , 2014, Inf. Sci..

[31]  Gregg Rothermel,et al.  Software testing: a research travelogue (2000–2014) , 2014, FOSE.

[32]  Manju Khari,et al.  Heuristic search-based approach for automated test data generation: a survey , 2013, Int. J. Bio Inspired Comput..

[33]  S. Raju Factors Oriented Test Case Prioritization Technique in Regression Testing using Genetic Algorithm , 2012 .

[34]  Xiaojuan Wang,et al.  Test case generation based on adaptive genetic algorithm , 2012, 2012 International Conference on Quality, Reliability, Risk, Maintenance, and Safety Engineering.

[35]  Bharti Suri,et al.  Implementing Ant Colony Optimization for Test Case Selection and Prioritization , 2011 .

[36]  Harmen-Hinrich Sthamer,et al.  The automatic generation of software test data using genetic algorithms , 1995 .