Towards Migrating Genetic Algorithms for Test Data Generation to the Cloud

Search-Based Software Testing is a well-established research area, whose goal is to apply meta-heuristic approaches, like Genetic Algorithms, to address optimization problems in the testing domain. Even if many interesting results have been achieved in this field, the heavy computational resources required by these approaches are limiting their practical application in the industrial domain. In this chapter, the authors propose the migration of Search-Based Software Testing techniques to the Cloud aiming to improve their performance and scalability. Moreover, they show how the use of the MapReduce paradigm can support the parallelization of Genetic Algorithms for test data generation and their migration in the Cloud, thus relieving software company from the management and maintenance of the overall IT infrastructure and developers from handling the communication and synchronization of parallel tasks. Some preliminary results are reported, gathered by a proof-of-concept developed on the Google’s Cloud Infrastructure.

[1]  Paolo Tonella,et al.  Evolutionary testing of classes , 2004, ISSTA '04.

[2]  Lionel C. Briand,et al.  Stress testing real-time systems with genetic algorithms , 2005, GECCO '05.

[3]  Joachim Wegener,et al.  Evolutionary test environment for automatic structural testing , 2001, Inf. Softw. Technol..

[4]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[5]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[6]  Izzat Alsmadi How Much Automation can be Done in Testing , 2012 .

[7]  Mark Harman,et al.  A Theoretical and Empirical Study of Search-Based Testing: Local, Global, and Hybrid Search , 2010, IEEE Transactions on Software Engineering.

[8]  Mark Harman,et al.  Search Algorithms for Regression Test Case Prioritization , 2007, IEEE Transactions on Software Engineering.

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

[10]  Lionel C. Briand,et al.  A Systematic Review of the Application and Empirical Investigation of Search-Based Test Case Generation , 2010, IEEE Transactions on Software Engineering.

[11]  Xavier Llorà,et al.  Scaling Genetic Algorithms Using MapReduce , 2009, 2009 Ninth International Conference on Intelligent Systems Design and Applications.

[12]  John A. Clark,et al.  Search-based mutation testing for Simulink models , 2005, GECCO '05.

[13]  Giuliano Antoniol,et al.  Detecting buffer overflow via automatic test input data generation , 2008, Comput. Oper. Res..

[14]  Stephan Faßbender,et al.  A Pattern-Based and Tool-Supported Risk Analysis Method Compliant to ISO 27001 for Cloud Systems , 2015, Int. J. Secur. Softw. Eng..

[15]  Mark Harman,et al.  Pareto efficient multi-objective test case selection , 2007, ISSTA '07.

[16]  John A. Clark,et al.  Automated test‐data generation for exception conditions , 2000 .

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

[18]  Mark Harman,et al.  Automated Test Data Generation for Coverage: Haven't We Solved This Problem Yet? , 2009, 2009 Testing: Academic and Industrial Conference - Practice and Research Techniques.

[19]  Frank Leymann,et al.  CMotion: A framework for migration of applications into and between clouds , 2011, 2011 IEEE International Conference on Service-Oriented Computing and Applications (SOCA).

[20]  Radu Prodan,et al.  Evaluating High-Performance Computing on Google App Engine , 2012, IEEE Software.

[21]  Phil McMinn,et al.  Search‐based software test data generation: a survey , 2004, Softw. Test. Verification Reliab..

[22]  Bogdan Korel,et al.  Dynamic method for software test data generation , 1992, Softw. Test. Verification Reliab..

[23]  Isaac Woungang,et al.  Software Security Engineering – Part I: Security Requirements and Risk Analysis , 2015 .

[24]  Scott R. Tilley,et al.  When to Migrate Software Testing to the Cloud? , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

[25]  Enrique Alba,et al.  Observations in using parallel and sequential evolutionary algorithms for automatic software testing , 2008, Comput. Oper. Res..

[26]  Noor Zaman,et al.  Software Development Techniques for Constructive Information Systems Design , 2013 .

[27]  Mark Harman,et al.  Search-based software engineering , 2001, Inf. Softw. Technol..

[28]  Antonia Bertolino,et al.  Software Testing Research: Achievements, Challenges, Dreams , 2007, Future of Software Engineering (FOSE '07).

[29]  Glenford J. Myers,et al.  The art of software testing (2. ed.) , 2004 .

[30]  David A. Maltz,et al.  Cloudward bound: planning for beneficial migration of enterprise applications to the cloud , 2010, SIGCOMM 2010.

[31]  Claus-Peter Rückemann,et al.  Integrated Information and Computing Systems for Natural, Spatial, and Social Sciences , 2012 .

[32]  Shuichiro Yamamoto,et al.  A New Method for Writing Assurance Cases , 2013, Int. J. Secur. Softw. Eng..

[33]  Rami Bahsoon,et al.  Empirical comparison of regression test selection algorithms , 2001, J. Syst. Softw..

[34]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[35]  David L. Spooner,et al.  Automatic Generation of Floating-Point Test Data , 1976, IEEE Transactions on Software Engineering.

[36]  Linda Di Geronimo,et al.  A Parallel Genetic Algorithm Based on Hadoop MapReduce for the Automatic Generation of JUnit Test Suites , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[37]  Roy P. Pargas,et al.  Test‐data generation using genetic algorithms , 1999 .

[38]  Mark Harman,et al.  Highly Scalable Multi Objective Test Suite Minimisation Using Graphics Cards , 2011, SSBSE.

[39]  Manuel Oriol,et al.  YETI on the Cloud , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

[40]  Bogdan Korel,et al.  Automated Software Test Data Generation , 1990, IEEE Trans. Software Eng..

[41]  Anees Shaikh,et al.  Are clouds ready for large distributed applications? , 2010, OPSR.

[42]  Kees van Slooten Optimal Information Modeling Techniques , 2002 .

[43]  Gary McGraw,et al.  Generating Software Test Data by Evolution , 2001, IEEE Trans. Software Eng..

[44]  Mark Harman,et al.  An Analysis and Survey of the Development of Mutation Testing , 2011, IEEE Transactions on Software Engineering.

[45]  Charles Severance Using Google App Engine , 2009 .

[46]  Sybren de Kinderen,et al.  EA Anamnesis: An Approach for Decision Making Analysis in Enterprise Architecture , 2014, Int. J. Inf. Syst. Model. Des..

[47]  Ossi Taipale,et al.  Software Testing as an Online Service: Observations from Practice , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

[48]  Bogdan Korel,et al.  Automated test data generation for programs with procedures , 1996, ISSTA '96.

[49]  Kevin Lee,et al.  Size Estimation of Cloud Migration Projects with Cloud Migration Point (CMP) , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[50]  Dan Sanderson Programming Google App Engine , 2012 .

[51]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[52]  Ossi Taipale,et al.  Testing in the Cloud: Exploring the Practice , 2012, IEEE Software.

[53]  Bogdan Korel,et al.  Assertion-oriented automated test data generation , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[54]  Izzat Alsmadi Advanced Automated Software Testing: Frameworks for Refined Practice , 2012 .