Categories: Innovation

Researchers Invent Automated Software Patching Technique

Researchers at the Massachusetts Institute of Technology (MIT) say they have built a machine-learning system that creates automatic software patches with a success rate 10 times that of existing automation techniques, a development they say could have a broad impact on software engineering.

In tests, the system, called Prophet, was able to repair between 15 and 18 bugs in a set of programming errors, compared with only one or two using previous automated bug-repair techniques, MIT said.

Engineering implications

MIT professor of electrical engineering and computer science Martin Rinard, whose group developed the new system, said Prophet’s success indicates that correct, working code has properties that can be recognised and used to evaluate any software, something he said could have wider implications for computer engineering.

“This is just the first application of what we hope will be a brand-new, fabulous technique,” Rinard said in a statement released by MIT.

Prophet builds on previous research by MIT graduate student Fan Long, who presented a paper describing the system, co-authored with Rinard, at the Symposium on Principles of Programming Languages last month.

Long had developed an algorithm that guided proposed fixes for buggy code, but it was prohibitively slow to generate a number of such fixes and then test them all. Prophet uses its machine-learning technique to predict which fixes are likely to be correct before beginning time-consuming testing, MIT said.

Machine learning

The system attempts to evaluate whether code is correct or buggy by examining the characteristics of values stored in memory, and determining which combination of these characteristics most consistently predicts the success of a patch.

“Typically, there will be good connections in the correct patches, corresponding to useful or productive program logic,” Long stated. “And there will be bad patterns that mean disconnections in program logic or redundant program logic that are less likely to be successful.”

Researchers tested the system on a set of 69 errors drawn from eight popular open source programs, finding that 19 were able to be fixed using Long’s algorithm, while the other 50 presented more complex problems.

When Prophet was allowed to proceed with its first proposed fix, it was able to repair 15 of the 19 errors, and when it was allowed to spend 12 hours on each problem it repaired a total of 18.

Long said he is now working on a system that can handle more complex errors.

Google said last month that its AlphaGo artificial intelligence had successfully used machine-learning techniques to defeat Europe’s reigning human champion in five consecutive games of Go.

The AI was developed by UK-based DeepMind, acquired by Google in 2014.

Do you know all about Big Data and large-scale analytics? Take our quiz!

Matthew Broersma

Matt Broersma is a long standing tech freelance, who has worked for Ziff-Davis, ZDnet and other leading publications

Recent Posts

Google Consolidates DeepMind And AI Research Teams

AI push sees Alphabet's Google saying it will consolidate its AI teams in its Research…

1 hour ago

Apple Pulls WhatsApp, Threads From China App Store

Beijing orders Apple to pull Meta's WhatsApp and Threads from its Chinese App Store over…

5 hours ago

Intel Foundry Assembles Next Gen Chip Machine From ASML

Key milestone sees Intel Foundry assemble ASML's new “High NA EUV” lithography tool, to begin…

9 hours ago

Creating Deepfake Porn Without Consent To Become A Crime

People who create sexually explicit ‘deepfakes’ of adults will face prosecution under a new law…

1 day ago

Google Fires 28 Staff Over Israel Protest, Undertakes More Layoffs

Protest at cloud contract with Israel results in staff firings, in addition to layoffs of…

1 day ago