A Bot that can patch software so well, it fools even human engineers that it is written by a human

Oct.30.2018

Author :Justin Brunnette

Category: IT News

Bot development used to be the next big thing in the IT industry before the proliferation of AI. Even with all the spotlight hogged by AI, bot development continues to astonish the community. One of the latest developments is a bot that impersonates human developers and patches bugs. In fact, it fixes bugs so well that it is able to fool even veteran developers that it was done as a human.

 

Researchers at the KTH Royal Institute of Technology in Stockholm, Sweden have been working on a bot that can compete along side humans in coding and software development. Though it has been long understood in the field of computer science that an automated process of fixing code is possible, the bot dubbed the “Repairnator’ was a proof of concept that the automated process could work as fast and with the same quality as human developers.

 

The team set out to test the bot on the open source platform Github. Because moderators on Github tend to evaluate human developers and bot submitted code differently, the team needed to disguise it as a human. They created a full profile for the bot with the named “Luc Escape”, with a profile picture to make it look like a junior developer from their team and had it set out to search out code to evaluate and patch.

 

The objective of the project is to automatically synthesize patches that address build failures, and submit them to human moderators for evaluation and try to get them accepted. The bot set out to work on the Travis continuous integrated service and analyzed the list of builds that were committed to Github by developers. After finding a list of failed builds, it would try to reproduce the bugs that caused the failure. This creates a list of bugs that needs to be addressed in which it would set out to synthesize patches for. Once it has created a set of patches, the research team would review and confirms them before submitting them to the original developers.

 

During the project, the “Repairnator" analyzed over 11,500 builds with failure and was able to reproduce bugs in question in over 3,000 cases. It was able to successfully create patches in 15 of these cases. Though it this first set of cases, the bot was either too slow or the quality was too low to be accepted by the human moderators. After a set of adjustments to the bots source code, the bot was able to successfully submit patches for 5 cases, meaning that it was able to produce code in a sufficient amount of time with quality of other human developers.

 

The success of the bot does raise some legal questions as bots are unable to sign licenses, who would take the intellectual property rights of the code contributed by the bot? These could include the bot operator, the bot developer or the developer who improved the original bot code. As humans and bot begin to work side by side in code development, these issues would sure to be ironed out. This is just another case in which humans and automation could work together in software development rather than competing for the same set of jobs.


Original Article: https://www.technologyreview.com/s/612336/a-bot-disguised-as-a-human-software-developer-fixes-bugs/