ABSTRACT
Genetic Improvement (GI) focuses on the development of evolutionary methods to automate software engineering tasks, such as performance improvement or software bugs removal. Concerning the latter, one of the earliest and most well-known methods in this area is the Genetic Program Repair (GenProg), a variant of Genetic Programming (GP). However, most GI systems encounter problems that are derived from the fact that they operate directly at source code level. These problems include highly neutral fitness landscapes and loss of diversity during the search, which are always undesirable in search and optimization tasks. This paper explores the use of Novelty Search (NS) with GenProg, since it can allow a search process to overcome these type of issues. While NS has been combined with GP before, and recently used with other GI systems, in the area of automatic bug repair NS has not been used until this work. Results show that GenProg with NS outperforms the original algorithm in some cases, based on an extensive experimental evaluation.
- F. Y. Assiri and J. M. Bieman. 2014. An Assessment of the Quality of Automated Program Operator Repair. In Verification and Validation 2014 IEEE Seventh International Conference on Software Testing. 273--282. Google ScholarDigital Library
- Mark Gabel and Zhendong Su. 2010. A study of the uniqueness of source code. In Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering (FSE '10). Association for Computing Machinery, Santa Fe, New Mexico, USA, 147--156. Google ScholarDigital Library
- C. Le Goues, M. Dewey-Vogt, S. Forrest, and W. Weimer. 2012. A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. In 2012 34th International Conference on Software Engineering (ICSE). 3--13. Google ScholarCross Ref
- C. Le Goues, N. Holtschulte, E. K. Smith, Y. Brun, P. Devanbu, S. Forrest, and W. Weimer. 2015. The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs. IEEE Transactions on Software Engineering 41, 12 (Dec. 2015), 1236--1256. Google ScholarDigital Library
- C. Le Goues, T. Nguyen, S. Forrest, and W. Weimer. 2012. GenProg: A Generic Method for Automatic Software Repair. IEEE Transactions on Software Engineering 38, 1 (Jan. 2012), 54--72. Google ScholarDigital Library
- Saemundur O. Haraldsson, John R. Woodward, Alexander E. I. Brownlee, and Kristin Siggeirsdottir. 2017. Fixing bugs in your sleep: how genetic improvement became an overnight success. In Proceedings of the Genetic and Evolutionary Computation Conference Companion on - GECCO '17. ACM Press, Berlin, Germany, 1513--1520. Google ScholarDigital Library
- José Romero, Aurora Ramírez, and Christopher Simons. 2019. Looking for novelty in SBSE problems. In ISGB: Ingeniería del Software Guiada por Búsqueda. Sistedes. https://biblioteca.sistedes.es/articulo/looking-for-novelty-in-sbse-problems/Google Scholar
- Jonathan Gregory Kelly. 2019. Investigating genetic programming with novelty and domain knowledge for program synthesis. Thesis. Massachusetts Institute of Technology. https://dspace.mit.edu/handle/1721.1/123034Google Scholar
- John R. Koza. 1994. Genetic programming as a means for programming computers by natural selection. Statistics and Computing 4, 2 (June 1994), 87--112. Google ScholarCross Ref
- William B Langdon and Mark Harman. [n. d.]. Optimising Existing Software with Genetic Programming. IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION ([n. d.]), 18.Google Scholar
- William B. Langdon and Ronny Lorenz. 2019. Evolving AVX512 Parallel C Code Using GP. In Genetic Programming (Lecture Notes in Computer Science), Lukas Sekanina, Ting Hu, Nuno Lourenço, Hendrik Richter, and Pablo García-Sánchez (Eds.). Springer International Publishing, Cham, 245--261. Google ScholarDigital Library
- Claire Le Goues, Stephanie Forrest, and Westley Weimer. 2013. Current challenges in automatic software repair. Software Quality Journal 21, 3 (Sept. 2013), 421--443. Google ScholarDigital Library
- Joel Lehman and Kenneth O Stanley. 2008. Exploiting Open-Endedness to Solve Problems Through the Search for Novelty. (2008), 8.Google Scholar
- Joel Lehman and Kenneth O. Stanley. 2010. Efficiently evolving programs through the search for novelty. In Proceedings of the 12th annual conference on Genetic and evolutionary computation (GECCO '10). Association for Computing Machinery, Portland, Oregon, USA, 837--844. Google ScholarDigital Library
- Joel Lehman and Kenneth O. Stanley. 2010. Revising the evolutionary computation abstraction: minimal criteria novelty search. In Proceedings of the 12th annual conference on Genetic and evolutionary computation (GECCO '10). Association for Computing Machinery, Portland, Oregon, USA, 103--110. Google ScholarDigital Library
- J. Lehman and K. O. Stanley. 2011. Abandoning Objectives: Evolution Through the Search for Novelty Alone. Evolutionary Computation 19, 2 (June 2011), 189--223. Google ScholarDigital Library
- Joel Lehman and Kenneth O. Stanley. 2011. Evolving a diversity of virtual creatures through novelty search and local competition. In Proceedings of the 13th annual conference on Genetic and evolutionary computation (GECCO '11). Association for Computing Machinery, Dublin, Ireland, 211--218. Google ScholarDigital Library
- Víctor R. López-López, Leonardo Trujillo, and Pierrick Legrand. 2018. Novelty Search for Software Improvement of a SLAM System. In Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO '18). ACM, New York, NY, USA, 1598--1605. Google ScholarDigital Library
- Ke Mao, Mark Harman, and Yue Jia. 2016. Sapienz: multi-objective automated testing for Android applications. In Proceedings of the 25th International Symposium on Software Testing and Analysis - ISSTA 2016. ACM Press, Saarbrücken, Germany, 94--105. Google ScholarDigital Library
- Y. Martínez, E. Naredo, L. Trujillo, and E. Galván-López. 2013. Searching for novel regression functions. In 2013 IEEE Congress on Evolutionary Computation. 16--23. Google ScholarCross Ref
- Enrique Naredo, Miguel Aurelio Duarte Villaseñor, Manuel de Jesús García Ortega, Carlos E. Vázquez López, Leonardo Trujillo, and Oscar S. Siordia. 2016. Novelty Search for the Synthesis of Current Followers. Computación y Sistemas 20, 4 (Dec. 2016). Google ScholarCross Ref
- Enrique Naredo and Leonardo Trujillo. 2013. Searching for Novel Clustering Programs. In Proceedings of the 15th Annual Conference on Genetic and Evolutionary Computation (GECCO '13). ACM, New York, NY, USA, 1093--1100. Google ScholarDigital Library
- Enrique Naredo, Leonardo Trujillo, Pierrick Legrand, Sara Silva, and Luis Muñoz. 2016. Evolving genetic programming classifiers with novelty search. Information Sciences 369 (Nov. 2016), 347--367. Google ScholarDigital Library
- Enrique Naredo, Leonardo Trujillo, and Yuliana Martínez. 2013. Searching for Novel Classifiers. In Genetic Programming (Lecture Notes in Computer Science), Krzysztof Krawiec, Alberto Moraglio, Ting Hu, A. Şima Etaner-Uyar, and Bin Hu (Eds.). Springer Berlin Heidelberg, 145--156.Google Scholar
- Enrique Naredo, Paulo Urbano, and Leonardo Trujillo. 2017. The training set and generalization in grammatical evolution for autonomous agent navigation. Soft Computing 21, 15 (Aug. 2017), 4399--4416. Google ScholarCross Ref
- Enrique Naredo, Paulo Urbano, and Leonardo Trujillo. 2017. The training set and generalization in grammatical evolution for autonomous agent navigation. Soft Computing 21, 15 (Aug. 2017), 4399--4416. Google ScholarCross Ref
- J. Petke, S. O. Haraldsson, M. Harman, W. B. Langdon, D. R. White, and J. R. Woodward. 2018. Genetic Improvement of Software: A Comprehensive Survey. IEEE Transactions on Evolutionary Computation 22, 3 (June 2018), 415--432. Google Scholar
- Christopher Timperley, Susan Stepney, and Claire Le Goues. 2018. Poster: BugZoo - A Platform for Studying Software Bugs. In International Conference on Software Engineering (ICSE '18). To appear.Google Scholar
- Christopher Steven Timperley, Susan Stepney, and Claire Le Goues. 2018. Poster: BugZoo - A Platform for Studying Software Bugs. In 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion). 446--447. ISSN: 2574-1934.Google Scholar
- Paulo Urbano, Enrique Naredo, and Leonardo Trujillo. 2014. Generalization in Maze Navigation Using Grammatical Evolution and Novelty Search. In Theory and Practice of Natural Computing (Lecture Notes in Computer Science), Adrian-Horia Dediu, Manuel Lozano, and Carlos Martín-Vide (Eds.). Springer International Publishing, Cham, 35--46. Google ScholarCross Ref
Index Terms
- Novelty search for automatic bug repair
Recommendations
Constrained novelty search: A study on game content generation
Novelty search is a recent algorithm geared toward exploring search spaces without regard to objectives. When the presence of constraints divides a search space into feasible space and infeasible space, interesting implications arise regarding how ...
Avoiding convergence in cooperative coevolution with novelty search
AAMAS '14: Proceedings of the 2014 international conference on Autonomous agents and multi-agent systemsCooperative coevolution is an approach for evolving solutions composed of coadapted components. Previous research has shown, however, that cooperative coevolutionary algorithms are biased towards stability: they tend to converge prematurely to ...
Devising Effective Novelty Search Algorithms: A Comprehensive Empirical Study
GECCO '15: Proceedings of the 2015 Annual Conference on Genetic and Evolutionary ComputationNovelty search is a state-of-the-art evolutionary approach that promotes behavioural novelty instead of pursuing a static objective. Along with a large number of successful applications, many different variants of novelty search have been proposed. It ...
Comments