1. the complete title of one (or more) paper(s) published in the open literature describing the work that the author claims describes a human-competitive result; Saemundur O. Haraldsson, John R. Woodward and Alexander I.E. Brownlee. The Use of Automatic Test Data Generation for Genetic Improvement in a Live System. In SBST 2017, p.28-31, Buenos Aires, Argentina,May 2017, IEEE, doi>10.1109/SBST.2017..10 Haraldsson, S.O., Woodward, J.R., Brownlee, A. E. I. & Siggeirsdottir, K. Fixing Bugs in Your Sleep: How Genetic Improvement Became an Overnight Success. Genetic Improvement Workshop in: Companion Proc. of the Genetic and Evolutionary Computation Conference 2017, Berlin, Germany. 2. the name, complete physical mailing address, e-mail address, and phone number of EACH author of EACH paper(s); Saemundur O. Haraldsson soh@cs.stir.ac.uk The School of Computing Science and Mathematics, University of Stirling, FK9 4LA Scotland United Kingdom (44) 07454829063 Alexander E.I. Brownlee. sbr@cs.stir.ac.uk The School of Computing Science and Mathematics, University of Stirling, FK9 4LA Scotland United Kingdom +44 1786 46 7462 John Woodward The School of Computing Science and Mathematics, University of Stirling, FK9 4LA Scotland United Kingdom john.r.woodward@gmail.com (44) 07544033975 3. the name of the corresponding author (i.e., the author to whom notices will be sent concerning the competition); Saemundur O. Haraldsson 4. the abstract of the paper(s); Abstract 1 In 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 rehabilitation process for multiple clients. However in the evening, after the last user logs out, it starts a self-analysis based on the daybs recorded interactions and the self-improving process. It uses Search Based Software Testing (SBST) techniques to generate test data for Genetic Improvement (GI) to fix any bugs if exceptions have been recorded. The system has already been under testing for 4 months and demonstrates the effectiveness of simple test data generation and the power of GI for improving live code. Abstract 2 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 5. a list containing one or more of the eight letters (A, B, C, D, E, F, G, or H) that correspond to the criteria (see above) that the author claims that the work satisfies; (E) The result is equal to or better than the most recent human-created solution to a long-standing problem for which there has been a succession of increasingly better human-created solutions. (G) The result solves a problem of indisputable difficulty in its field. 6. a statement stating why the result satisfies the criteria that the contestant claims (see examples of statements of human-competitiveness as a guide to aid in constructing this part of the submission); Criterion G Software maintenance is well established as being at least as demanding as the original development of the software. While there are systematic approaches for human developers to follow, there is still surprisingly little automation in this area. The process of tracking down the cause of a bug, then developing a fix, is time-consuming and labour-intensive - in this sense it is indisputably difficult (criterion G). Criterion E With our approach, test cases to reproduce the bug are automatically generated, and corresponding bug fixes are automatically developed and suggested by the system. These bug fixes are human-readable and human-understandable. This is important as a software engineer has the choice of accepting the suggested fix or not into the live software. In the 4 months since its launch, 22 bugs have been reported. Each one of the bugs was fixed by the following morning. In 20 cases, the bug fix was accepted without change: that is, results equal to or better than the most recent human-created solution (Criterion E). In the other 2 cases, the bug fix (which fixed the reported problem) prompted the software engineer to fix a more general bug. This bug fixing system is operating in a live software environment and therefore delivering valuable impact in a clinical software package. 7. a full citation of the paper (that is, author names; publication date; name of journal, conference, technical report, thesis, book, or book chapter; name of editors, if applicable, of the journal or edited book; publisher name; publisher city; page numbers, if applicable); Haraldsson, S.O., Woodward, J.R. and Brownlee, A.E.I. The Use of Automatic Test Data Generation for Genetic Improvement in a Live System. Search-Based Software Testing Workshop in: IEEE/ACM International Conference on Software Engineering 2017, Buenos Aires, Argentina. pp28-31 8. a statement either that "any prize money, if any, is to be divided equally among the co-authors" OR a specific percentage breakdown as to how the prize money, if any, is to be divided among the co-authors; Divide equally 9. a statement stating why the authors expect that their entry would be the "bestb This is the first example of an embedded deployment of (Search Based Software Engineering) SBSE in the real world. While the improvements generated by SBSE have found their way into existing publicly available software, there are no other examples of a semi-autonomous SBSE system being deployed in a live system like this. The system is already functioning in a live software system and has already been adopted, showing the need for this type of research beyond the academic context in which it was developed. Fixing software bugs is hard; sometimes the consequences are a minor annoyance, but in the worst cases can prove very costly. Therefore bug fixing is an important problem. However fixing bugs is often fiddly, and takes programmers away from more creative tasks. Our approach operates overnight while the users are asleep. This approach makes use of hardware which is normally sitting idle outside normal working hours. If a user was to unexpectedly log-on overnight, our bug fixing software goes into hibernation until the user(s) log-off again. Our approach can be applied to almost any programming language with little adaptation, and is therefore set to have widescale impact both in industry and academia. Just as with a word-processor, a spell checker suggests correctly spelt words, our system suggest edits which fix the reported bugs. It is then the choice of the programmer to accept or reject the suggested edit. It should be a human programmer who has the final decision and is responsible for the quality of the software. Theoretically we can never know if an edit does indeed fix a bug without introducing another. In summary, the approach is tackling a difficult, real world problem that impacts all of us as software developers. Despite our profession being targeted at reducing human effort through automation, bug fixing remains a largely manual task. This represents a tangible step to a time when the majority of bug fixing tasks could be supported automatically. 10. An indication of the general type of genetic or evolutionary computation used, such as GA (genetic algorithms), GP (genetic programming), ES (evolution strategies), EP (evolutionary programming), LCS (learning classifier systems), GE (grammatical evolution), GEP (gene expression programming), DE (differential evolution), etc. GA (genetic algorithms) The representation is a linear variable length list of edits to apply to a program. The search mechanism is population based, but we only use mutation and have not yet investigated the effectiveness of crossover. Some may argue it is GP as ultimately it is programs that are evaluated against a set of test cases.