It appears Facebook has a tool for automatically suggesting bug fixes.
- 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 effectively, and it promotes better overall code quality.
- We believe Getafix is the first tool of its kind to be deployed to production at Facebook scale, contributing to the stability and performance of apps that billions of people use.
- Getafix powers Sapfix, which suggests fixes for bugs that our Sapienz testing tool finds. Getafix also provides fixes for bugs found by Infer, our static testing tool.
- Because Getafix learns from engineers’ past code fixes, its recommendations are intuitive for engineers to review.
- Getafix improves upon previous auto-fix technology by using more powerful techniques for learning fix patterns from past code changes. Getafix uses a more powerful clustering algorithm and also analyzes the context around the particular lines of problematic code to find more appropriate fixes.
I wonder how easy it is to start accepting fixes without properly examining them. I wonder if the time saved in actually coding the fix is irrelevant compared with the time you would otherwise take to find the correct fix.
It will easily fix the obvious symptoms of a bug without addressing the real problem. The illusion of productivity.
(Score: 2) by acid andy on Saturday December 22 2018, @01:12AM (1 child)
I imagine if it screws with the code just enough so that the automated tests pass, there could be quite a risk of turning an obvious bug into a far subtler, harder to detect, bug, liable to bite developers on the ass at a later date, if there are any left! Is this a stepping stone to fully automated AI code generation? Robot developers? From Farcebook? Sounds like the stuff of nightmares!
Merry Winter Solstice!
If a cat has kittens, does a rat have rittens, a bat bittens and a mat mittens?
(Score: 2) by JoeMerchant on Saturday December 22 2018, @02:00AM
If it is mostly dependent on the automated tests, then the art has moved from specifying instructions to specifying automated tests - TDD has finally arrived.
If I were to develop a tool like this, I'd also look for syntax morphology of common bugs and revise to well recognized / reliable implementations instead. The coding standard Nazi from Hell [goo.gl].
🌻🌻 [google.com]