Getafix: How Facebook tools learn to fix bugs automatically - Facebook Code


16 bookmarks. First posted by krzak 13 days ago.


Facebook has built a tool called Getafix that automatically finds fixes for bugs and offers them to engineers to approve. This allows engineers to work more…
IFTTT  Instapaper 
yesterday by broderboy
RT : Getafix: How tools learn to fix bugs automatically by Satish Chand…
from twitter
9 days ago by noahsussman
なるほどなー、まず継続的なコード解析システムがあってその上に成り立っているわけか。
debug  analysis  facebook 
10 days ago by summerwind
Facebook has built a tool called Getafix that automatically finds fixes for bugs and offers them to engineers to approve. This allows engineers to work more…
from instapaper
13 days ago by kevinold
Johannes Bader, Satish Chandra, Eric Lippert and Andrew Scott:
<p>Modern production codebases are extremely complex and are updated constantly. To create a system that can automatically find fixes for bugs — without help from engineers — we built a tool that learns from engineers’ previous changes to the codebase. It finds hidden patterns and uses them to identify the most likely remediations for new bugs.

This tool, called Getafix, has been deployed to production at Facebook, where it now contributes to the stability of apps that billions of people use. Getafix works in conjunction with two other Facebook tools, though the technology can be used to address code issues from any source. It currently suggests fixes for bugs found by Infer, our static analysis tool that identifies issues such as null pointer exceptions in Android and Java code. It also suggests fixes — via SapFix — for bugs detected by Sapienz, our intelligent automated testing system for our apps. Having previously given an overview of SapFix and Sapienz, we are now offering a deep dive into how Getafix learns how to fix bugs (using the term broadly to refer to any code issues, not just those that will cause an app to crash).

The goal of Getafix is to let computers take care of the routine work, albeit under the watchful eye of a human, who must decide when a bug requires a complex, nonroutine remediation. The tool works by applying a new method of hierarchical clustering to many thousands of past code changes that human engineers made, looking at both the change itself and also the context around the code change. This method allows it to detect the underlying patterns in bugs and the corresponding fixes that previous auto-fix tools couldn’t.</p>


This is amazing.
facebook  code  fix  debug 
13 days ago by charlesarthur