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

Fixing bugs in your sleep: how genetic improvement became an overnight success

Published:15 July 2017Publication History

ABSTRACT

We present a bespoke live system in commercial use with self-improving capability. During daytime business hours it provides an overview and control for many specialists to simultaneously schedule and observe the rehabilitation process for multiple clients. However in the evening, after the last user logs out, it starts a self-analysis based on the day's recorded interactions. It generates test data from the recorded interactions for Genetic Improvement to fix any recorded bugs that have raised exceptions. The system has already been under test for over 6 months and has in that time identified, located, and fixed 22 bugs. No other bugs have been identified by other methods during that time. It demonstrates the effectiveness of simple test data generation and the ability of GI for improving live code.

References

  1. T. Ackling, B. Alexander, and I. Grunert. Evolving Patches for Software Repair. In GECCO'11, 13th annual conference on Genetic and evolutionary computation, pages 1427--1434, Dublin, Ireland, jul 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Arcuri. On the Automation of Fixing Software Bugs. In ICSE Companion '08 Companion of the 30th international conference on Software engineering, pages 1003--1006, Leipzig, Germany, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Arcuri, D. R. White, J. Clark, and X. Yao. Multi-Objective Improvement of Software using Co-evolution and Smart Seeding. In Proceedings of the 7th International Conference on Simulated Evolution and Learning (SEAL'08), pages 1--10, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Beyene and J. H. Andrews. Generating String Test Data for Code Coverage. In 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, pages 270--279. IEEE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. B. R. Bruce. Energy Optimisation via Genetic Improvement A SBSE technique for a new era in Software Development. In Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO Companion '15, pages 819--820, Madrid, Spain, jul 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. B. R. Bruce, J. Petke, and M. Harman. Reducing Energy Consumption Using Genetic Improvement. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO '15, pages 1327--1334, Madrid, Spain, jul 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. N. Burles, J. Swan, A. E. Brownlee, E. Bowles, Z. A. Kocsis, and N. Veerapen. Embedded Dynamic Improvement. In Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO Companion -15, pages 831--832, Madrid, Spain, jul 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. B. H. C. Cheng, et al. Software Engineering for Self-Adaptive Systems: A Research Roadmap. In Software Engineering for SelfAdaptive Systems, volume 5525 of Lecture Notes in Computer Science, pages 1--26. Springer Berlin Heidelberg, Berlin, Heidelberg, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. B. Cody-kenny, E. Galván-lópez, and S. Barrett. locoGP : Improving Performance by Genetic Programming Java Source Code. In Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO Companion '15, pages 811--818, Madrid, Spain, jul 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. de Lemos, et al. Software Engineering for Self-Adaptive Systems: A Second Research Roadmap. In Software Engineering for Self-Adaptive Systems II: International Seminar, Dagstuhl Castle, Germany October 24--29, 2010 Revised Selected and Invited Papers, volume 7475 of Lecture Notes in Computer Science, pages 1--32. Springer Berlin Heidelberg, Berlin, Heidelberg, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Duchon and G. Louchard. Boltzmann Samplers For The Random Generation Of Combinatorial Structures. Combinatorics Probability and Computing, 13(4--5):577--625, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. Feldt and S. Poulding. Finding Test Data with Specific Properties via Meta-heuristic Search. In 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE), pages 350--359. IEEE, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  13. R. Feldt and S. Poulding. Broadening the Search in Search-Based Software Testing: It Need Not Be Evolutionary. Proceedings - 8th International Workshop on Search-Based Software Testing, SBST 2015, pages 1--7, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. O. Haraldsson, R. D. Brynjolfsdottir, J. R. Woodward, K. Siggeirsdottir, and V. Gudnason. The Use of Predictive Models in a Dynamic Planning of Treatment. submitted.Google ScholarGoogle Scholar
  15. S. O. Haraldsson and J. R. Woodward. Automated Design of Algorithms and Genetic Improvement: Contrast and Commonalities. In Proceedings of the 2014 Conference Companion on Genetic and Evolutionary Computation Companion, GECCO Comp '14, pages 1373--1380, Vancouver, Canada, jul 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. O. Haraldsson and J. R. Woodward. Genetic Improvement of Energy Usage is only as Reliable as the Measurements are Accurate. In Proceedings of the 2015 Conference Companion on Genetic and Evolutionary Computation Companion, pages 831--832, Madrid, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. O. Haraldsson, J. R. Woodward, A. E. Brownlee, A. V. Smith, and V. Gudnason. Genetic Improvement of Runtime and its fitness landscape in a Bioinformatics Application. In Proceedings of the 2017 Conference Companion on Genetic and Evolutionary Computation Companion, Berlin, Germany, 2017. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. O. Haraldsson, J. R. Woodward, A. E. I. Brownlee, and D. Cairns. Exploring Fitness and Edit Distance of Mutated Python Programs. In Proceedings of the 17th European Conference on Genetic Programming, EuroGP, Amsterdam, The Netherlands, 2017. Springer Berlin Heidelberg.Google ScholarGoogle ScholarCross RefCross Ref
  19. S. O. Haraldsson, J. R. Woodward, and A. I. E. Brownlee. The Use of Automatic Test Data Generation for Genetic Improvement in a Live System. In 8th International Workshop on Search-Based Software Testing, Buones Aires, 2017. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Harman, E. Burke, J. A. Clark, and X. Yao. Dynamic adaptive search based software engineering. In International Symposium on Empirical Software Engineering and Measurement, pages 1--8, Lund, Sweden, 2012. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Harman, Y. Jia, and W. B. Langdon. Babel Pidgin : SBSE Can Grow and Graft Entirely New Functionality into a Real World System. In Search-Based Software Engineering, volume 8636 of Lecture Notes in Computer Science, pages 247--252, Fortaleza, Brazil, aug 2014. Springer International Publishing.Google ScholarGoogle ScholarCross RefCross Ref
  22. M. Harman, Y. Jia, W. B. Langdon, J. Petke, I. H. Moghadam, S. Yoo, and F. Wu. Genetic Improvement for Adaptive Software Engineering. In G. Engels, editor, SEAMS '14, page Keynote, Hyderabad, India, 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. Harman and B. F. Jones. Search-based software engineering. Information and Software Technology, 43(14):833--839, dec 2001.Google ScholarGoogle ScholarCross RefCross Ref
  24. M. Harman, P. McMinn, J. T. de Souza, and S. Yoo. Search Based Software Engineering: Techniques, Taxonomy, Tutorial. In Empirical Software Engineering and Verification, volume 7007 of Lecture Notes in Computer Science, pages 1--59. Springer Berlin Heidelberg, Berlin, Heidelberg, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Z. A. Kocsis, G. Neumann, J. Swan, M. G. Epitropakis, A. E. I. Brownlee, S. O. Haraldsson, and E. Bowles. Repairing and Optimizing Hadoop hashCode Implementations. In 6th International Symposium, SSBSE 2014, volume 8636 of Lecture Notes in Computer Science, pages 259--264. Springer Berlin Heidelberg, Fortaleza, Brazil, aug 2014.Google ScholarGoogle ScholarCross RefCross Ref
  26. K. Lakhotia, M. Harman, and P. Mcminn. A Multi-objective Approach to Search-based Test Data Generation. In Proceedings of the 9th Annual Conference on Genetic and Evolutionary Computation, GECCO '07, pages 1098--1105, London, England, jul 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. W. B. Langdon. Performance of genetic programming optimised Bowtie2 on genome comparison and analytic testing (GCAT) benchmarks. BioData mining, 8(1):1--7, 2015.Google ScholarGoogle ScholarCross RefCross Ref
  28. W. B. Langdon and M. Harman. Genetically Improved CUDA C++ Software. In Proceedings of the 17th European Conference on Genetic Programming, EuroGP 2014, Lecture Notes in Computer Science, pages 1--12, Granada, Spain, 2014. Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. W. B. Langdon and M. Harman. Grow and Graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation. In Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO Companion '15, pages 805--810, Madrid, Spain, jul 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. W. B. Langdon and M. Harman. Optimising Existing Software with Genetic Programming. IEEE Transactions on Evolutionary Computation, 19(1):118--135, feb 2015.Google ScholarGoogle ScholarCross RefCross Ref
  31. W. B. Langdon, B. Y. H. Lam, J. Petke, and M. Harman. Improving CUDA DNA Analysis Software with Genetic Programming. In GECCO '15: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, GECCO '15, pages 1063--1070, Madrid, jul 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. W. B. Langdon, N. Veerapen, and G. Ochoa. Visualising the Search Landscape of the Triangle Program. In EuroGP 2017, pages 19--21, 2017.Google ScholarGoogle ScholarCross RefCross Ref
  33. W. B. Langdon, A. Vilella, B. Y. H. Lam, J. Petke, and M. Harman. Benchmarking Genetically Improved BarraCUDA on Epigenetic Methylation NGS datasets and nVidia GPUs. In GECCO 2016 Companion - Proceedings of the 2016 Genetic and Evolutionary Computation Conference, pages 1131--1132, Denver, Colorado, USA, 2016. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. C. Le Goues, M. Dewey-Vogt, S. Forrest, and W. Weimer. 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), pages 3--13, Zurich, Swiss, jun 2012. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. C. Le Goues, T. Nguyen, S. Forrest, and W. Weimer. GenProg: A Generic Method for Automatic Software Repair. IEEE Transactions on Software Engineering, 38(1):54--72, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. A. Marginean, E. T. Barr, M. Harman, and Y. Jia. Automated Transplantation of Call Graph and Layout Features into Kate. In Search-Based Software Engineering, volume 9275 of Lecture Notes in Computer Science, pages 262--268, Bergamo, Italy, aug 2015. Springer International Publishing.Google ScholarGoogle ScholarCross RefCross Ref
  37. P. McMinn. Search-based software testing: Past, present and future. In 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops, pages 153--163. IEEE, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. J. Petke, S. O. Haraldsson, M. Harman, W. B. Langdon, D. R. White, and J. R. Woodward. Genetic Improvement of Software: a Comprehensive Survey. IEEE Transactions on Evolutionary Computation, To Appear, 2017.Google ScholarGoogle Scholar
  39. J. Petke, M. Harman, W. B. Langdon, and W. Weimer. Using Genetic Improvement & Code Transplants to Specialise a C++ Program to a Problem Class. In 17th European Conference on Genetic Programming, EuroGP 2014, volume 8599 of Lecture Notes in Computer Science, pages 137--149, Granada, Spain, 2014. Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. J. Petke, W. B. Langdon, and M. Harman. Applying Genetic Improvement to MiniSAT. In 5th International Symposium on Search-Based Software Engineering, volume 8084 of Lecture Notes in Computer Science, pages 257--262, St. Petersburg, Russia, aug 2013. Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. S. Poulding and R. Feldt. Generating structured test data with specific properties using Nested Monte-Carlo Search. In Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation, pages 1279--1286, Vancouver, 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. K. Salvesen, J. P. Galeotti, F. Gross, G. Fraser, and A. Zeller. Using Dynamic Symbolic Execution to Generate Inputs in Search-Based GUI Testing. Proceedings - 8th International Workshop on Search-Based Software Testing, SBST 2015, pages 32--35, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. K. Siggeirsdottir, U. Alfredsdottir, G. Einarsdottir, and B. Y. Jonsson. A new approach in vocational rehabilitation in Iceland: preliminary report. Work, 22(1):3--8, jan 2004.Google ScholarGoogle Scholar
  44. K. Siggeirsdottir, R. D. Brynjolfsdottir, S. O. Haraldsson, S. Vidar, E. G. Gudmundsson, J. H. Brynjolfsson, H. Jonsson, O. Hjaltason, and V. Gudnason. Determinants of outcome of vocational rehabilitation. Work, 55(3):577--583, nov 2016.Google ScholarGoogle ScholarCross RefCross Ref
  45. F. C. M. Souza, M. Papadakis, Y. Le Traon, and M. E. Delamaro. Strong mutation-based test data generation using hill climbing. In Proceedings of the 9th International Workshop on Search-Based Software Testing - SBST '16, pages 45--54, Austin, Texas, 2016. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. J. Swan, M. G. Epitropakis, and J. R. Woodward. Gen-O-Fix: An embeddable framework for Dynamic Adaptive Genetic Improvement Programming. Technical Report CSM-195, Department of Computing Science and Mathematics University of Stirling, Stirling, UK, 2014.Google ScholarGoogle Scholar
  47. D. R. White. An Unsystematic Review of Genetic Improvement. In 45th CREST Open Workshop on Genetic Improvement, London, 2016.Google ScholarGoogle Scholar
  48. D. R. White, A. Arcuri, and J. A. Clark. Evolutionary Improvement of Programs. IEEE Transactions on Evolutionary Computation, 15(4):515--538, aug 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. D. R. White, J. Clark, J. Jacob, and S. M. Poulding. Searching for resource-efficient programs. Proceedings of the 10th annual conference on Genetic and evolutionary computation - GECCO '08, (1):1775, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. F. Wu, W. Weimer, M. Harman, Y. Jia, and J. Krinke. Deep Parameter Optimisation. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO '15, pages 1375--1382, Madrid, Spain, jul 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. K. Yeboah-Antwi and B. Baudry. Embedding Adaptivity in Software Systems using the. In Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, pages 839--844, Madrid, Spain, 2015. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Fixing bugs in your sleep: how genetic improvement became an overnight success

            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 '17: Proceedings of the Genetic and Evolutionary Computation Conference Companion
              July 2017
              1934 pages
              ISBN:9781450349390
              DOI:10.1145/3067695

              Copyright © 2017 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 15 July 2017

              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