skip to main content
10.1145/3377930.3389845acmconferencesArticle/Chapter ViewAbstractPublication PagesgeccoConference Proceedingsconference-collections
research-article

Novelty search for automatic bug repair

Authors Info & Claims
Published:26 June 2020Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarCross RefCross Ref
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarCross RefCross Ref
  10. William B Langdon and Mark Harman. [n. d.]. Optimising Existing Software with Genetic Programming. IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION ([n. d.]), 18.Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. Joel Lehman and Kenneth O Stanley. 2008. Exploiting Open-Endedness to Solve Problems Through the Search for Novelty. (2008), 8.Google ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarCross RefCross Ref
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle Scholar
  25. 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 ScholarGoogle ScholarCross RefCross Ref
  26. 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 ScholarGoogle ScholarCross RefCross Ref
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle Scholar
  30. 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 ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Novelty search for automatic bug repair

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      GECCO '20: Proceedings of the 2020 Genetic and Evolutionary Computation Conference
      June 2020
      1349 pages
      ISBN:9781450371285
      DOI:10.1145/3377930

      Copyright © 2020 ACM

      © 2020 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 26 June 2020

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate1,669of4,410submissions,38%

      Upcoming Conference

      GECCO '24
      Genetic and Evolutionary Computation Conference
      July 14 - 18, 2024
      Melbourne , VIC , Australia

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader