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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- M. Harman and B. F. Jones. Search-based software engineering. Information and Software Technology, 43(14):833--839, dec 2001.Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- W. B. Langdon and M. Harman. Optimising Existing Software with Genetic Programming. IEEE Transactions on Evolutionary Computation, 19(1):118--135, feb 2015.Google ScholarCross Ref
- 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 ScholarDigital Library
- W. B. Langdon, N. Veerapen, and G. Ochoa. Visualising the Search Landscape of the Triangle Program. In EuroGP 2017, pages 19--21, 2017.Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- D. R. White. An Unsystematic Review of Genetic Improvement. In 45th CREST Open Workshop on Genetic Improvement, London, 2016.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Fixing bugs in your sleep: how genetic improvement became an overnight success
Recommendations
Utilizing a multi-developer network-based developer recommendation algorithm to fix bugs effectively
SAC '14: Proceedings of the 29th Annual ACM Symposium on Applied ComputingRecently, bug fixing has become an important part of software maintenance. In large-scale projects, developers rely on bug reports to guide any bug-fixing activities. Due to a great number of bug reports submitted into the bug repository, the workload ...
Do bugs lead to unnaturalness of source code?
ESEC/FSE 2022: Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software EngineeringTexts in natural languages are highly repetitive and predictable because of the naturalness of natural languages. Recent research validated that source code in programming languages is also repetitive and predictable, and naturalness is an inherent ...
The use of automatic test data generation for genetic improvement in a live system
SBST '17: Proceedings of the 10th International Workshop on Search-Based Software TestingIn this paper we present a bespoke live system in commercial use that has been implemented with self-improving properties. During business hours it provides overview and control for many specialists to simultaneously schedule and observe the ...
Comments