Repairnator, an autonomous robot to repair computer bugs
Like Terminator, Repairnator is a robot equipped with an artificial intelligence. The most recent creation of the Spirals* project team, it has been developed within the framework of the technology development initiative ADT LibRepair won in 2016 by post-doctoral researcher Simon Urli. Repairnator is the first repair bot capable of automatically repairing computer bugs on a large scale. In short, effective and autonomous software that saves other software programs from code errors – and an open source solution available to all developers.
Software that automatically repairs computer bugs
Chatbots are on a roll. Facebook, SNCF, Amazon Echo, Google Home...they can be found everywhere."These are conversational robots; software programmed in order to automatically simulate a conversation and interact with the user", Lionel Seinturier, head of the Spirals project team, explains. "Repairnator is not a chatbot, but a repair bot: computer software that offers to automatically repair the bugs of other software programs." "It is aimed at developers and operates on collaborative code sharing platforms like GitHub, which has recently been bought by Microsoft", Simon Urli adds. The robots continuously analyse the computer codes deposited by developers on these platforms, which offer so-called ‘continuous integration’ services. It repairs programming errors, tries to reproduce them locally and proposes automatic repair solutions in the form of ‘patches’ sent by email to the bot's administrators. "Repairnator - which is available in open source - saves the developers time", Simon Urli notes. "Previously, development assistance tools were available to them on their own machines. Repairnator is a remote automatic tool for collaborative platforms, and it has the enormous advantage of capitalising on a whole range of knowledge and data."
Repairnator: developers enter the age of Big Data
Lionel Seinturier explains that the repair bot is"equipped with an artificial intelligence that comes from advanced machine learning techniques. It is capable of correcting the bugs identified at a given moment by searching for - and adapting - solutions that have already previously been used in order to repair similar errors." The idea is to put Big Data within the reach of the developers. "Repairnator offers a database which is unique in the world and is constantly enhanced in order to effectively carry out the automatic repair of software on a large scale", the researcher confirms. To operate, the repair bot uses automatic repair algorithms coded in Java and developed by the Spirals project team as part of four theses defended between 2014 and 2018: those of Matias Martinez, Benoit Cornu, Vincenzo Musco and Thomas Durieux. "None of this would have been possible without their work, Simon Urli's software engineering experience and the initiative of Martin Monperrus, former Spirals researcher who is now at the KTH Royal Institute of Technology in Stockholm." The project team is pursuing its collaboration with Martin Monperrus, specialised in automatic repair, and is working on the development of a computer bug database with the Federal University of Uberlândia in Brazil.
Software which will soon be autonomous in every way
With a first version launched in 2017, Repairnator has recorded almost 40,000 bugs on GitHub. It has succeeded in reproducing around a third of them and, out of around ten solutions proposed, six patches have been integrated by the developers to repair their software. "In comparison to the volume of bugs analysed, the percentage of repairs ultimately carried out is very low", Simon Urli reveals, "because we have to be able to reproduce the errors, find suitable solutions in time - and for the repair patches submitted to be accepted." Lionel Seinturier continues: "what is important to recognise, is that Repairnator has enabled the automatic correction - more quickly than a human developer - of six software bugs identified on GitHub. Our repair bot follows the 80-20 rule: it acts on the 20% of errors that occur 80% of the time." These promising results have been the subject of a paper** presented at ICSE 2018, the biggest conference in the field of software engineering. A new version of the repair bot is expected for September 2018, which marks the end of the ADT LibRepair initiative. "This version will be totally operational and autonomous. There should be more patches generated and they will be sent to the developers directly by the software, without having to pass by the team - which had retained this option in order to validate the functioning of the prototypes."
Possibilities and applications in the public and private sectors
In order to push the boundaries of their tool, the researchers from the Spirals project team are considering partnerships with public laboratories focussing on automatic repair. "The overall objective is to increase the proportion of patches accepted and repairs carried out", Lionel Seinturier remarks. "Repairnator also warrants being developed so that it can be applied to new categories of bugs and other programming languages. Without looking too far ahead, there are still research perspectives for the next five years. " The repair bot could appeal to all public code sharing platforms like GitHub, but also industry and private IT service companies such as IBM and Capgemini, who are working on substantial projects concerning code development and computer programs. "We have already begun talks to integrate Repairnator into Travis CI, the default continuous integration service on GitHub", concludes Simon Urli, who will soon be embarking on a long adventure.
* The Spirals project team, "Self-adaptation for distributed services and large software systems", is a joint team between Inria and the University of Lille. Within UMR 9189, CNRS-Centrale Lille-University of Lille, CRIStAL.
** How to design a program repair bot? Insights from the Repairnator project. Simon Urli, Zhongxing Yu, Lionel Seinturier, Martin Monperrus. ICSE-SEIP 2018, Gothenburg, Sweden.