It has long been a dream of software testers to have an artificial intelligence bot that can identify software bugs and subsequently create patches faster and better than a human coder. Well, as of October, researchers at KTH Royal Institute of Technology in Sweden and University of Lille in France claim to be one step closer to this dream. According to a recent article in MIT Technology Review, one such bot dubbed Repairnator has been able to successfully uncover coding errors and write patches.
Disguised as a human GitHub user named Luc Esape, Repairnator spent months working on errors and submitting patches.
Imitating a human user ensured Repairnator’s patches were accepted or rejected without bias. Then, as described in The Register, it achieved the ultimate artificial intelligence pinnacle on January 12, 2018 – human acceptance. Software patches submitted by GitHub users require a human developer to accept and merge the patch, which is exactly what happened for Repairnator on that day.
What makes Repairnator different than its code-fixing robot predecessors is its ability to develop unique solutions. In the past, automated systems have successfully repaired code using patches that were previously developed by human coders. Repairnator, on the other hand, is able to build its own fixes.
“How to Design a Program Repair Bot? Insights from the Repairnator Project” was published by the research team prior to Repairnator having one of its patches accepted for the 40th International Conference on Software Engineering. In the paper, the team discusses the challenges of developing a highly effective code repairing bot. Ultimately, their goal is to help developers save time and money by eliminating the need to manually patch software bugs.
While the technology has a long way to go, the results from Repairnator are promising. Repair bots offer a glimpse into a future where program repairs can be implemented automatically to improve the efficiency and efficacy of software development.