Concurrently searching branches in software tests generation through multitask evolution

Multitask evolutionary computation (MT-EC) has been recently identified as a potentially useful paradigm for significant real-world domains. One such domain is the field of software testing. Although a number of evolutionary approaches exist already, there is a lack of strategies that can leverage knowledge from different sources to enhance the search process. In this work, we focus on branch testing and explore the capability of MT-EC to guide the search by exploiting inter-branch information. To the best of our knowledge, this is the first application of MT-EC to real-world problems with more than two tasks. Precisely, we evince that selection, together with the preference relation used to compare individuals, form a mechanism capable of achieving a concurrent search for the branches while exploiting inter-branch knowledge in the process. Further, we demonstrate that the intensity of the transfer can be altered with the implemented selection. The experimental results on benchmark programs suggest that MT-EC can be specially useful in situations where the budget for the search process is limited.

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

[2]  Mark Harman,et al.  Input Domain Reduction through Irrelevant Variable Removal and Its Effect on Local, Global, and Hybrid Search-Based Structural Test Data Generation , 2012, IEEE Transactions on Software Engineering.

[3]  Elaine J. Weyuker,et al.  A Formal Analysis of the Fault-Detecting Ability of Testing Methods , 1993, IEEE Trans. Software Eng..

[4]  N. E. Fenton The structral complexity of flowgraphs , 1985 .

[5]  Yuanyuan Zhang,et al.  Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications , 2009 .

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

[7]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

[8]  W. Marsden I and J , 2012 .

[9]  F. A. Seiler,et al.  Numerical Recipes in C: The Art of Scientific Computing , 1989 .

[10]  Albert Endres,et al.  A handbook of software and systems engineering - empirical observations, laws and theories , 2003, The Fraunhofer IESE series on software engineering.

[11]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

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

[13]  William H. Press,et al.  Numerical recipes in C , 2002 .

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

[15]  Yew-Soon Ong,et al.  Multifactorial Evolution: Toward Evolutionary Multitasking , 2016, IEEE Transactions on Evolutionary Computation.

[16]  Alex Groce,et al.  Guidelines for Coverage-Based Comparisons of Non-Adequate Test Suites , 2015, ACM Trans. Softw. Eng. Methodol..

[17]  Iñaki Inza,et al.  Assisting in search heuristics selection through multidimensional supervised classification: A case study on software testing , 2014, Inf. Sci..

[18]  Yuanyuan Zhang,et al.  Achievements, Open Problems and Challenges for Search Based Software Testing , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[19]  John A. Clark,et al.  An automated framework for structural test-data generation , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).