One of the largest social media platform Facebook Inc. is trying to speed up the time it takes to roll out new software updates into the market and also to debug any issues which is persisting in them with a new tool which is now called by the name as SapFix that its engineers are building.
SapFix, which is still under development phase as of now, is designed to generate fixes automatically for some of the specific bugs even before sending them to human engineers for approval or any other thing.
Facebook, which announced the tool today ahead of its @Scale conference in San Jose, California, for developers building large-scale systems and applications, which calls SapFix an “AI hybrid tool.” It uses artificial intelligence to automate the creation of fixes for bugs that have been identified by its software testing tool Sapienz, which is already being used in production.
SapFix will eventually be able to operate independently from Sapienz, but for now it’s still a proof-of-concept that relies on the latter tool to pinpoint bugs first of all.
SapFix can fix bugs in a wide ways, which also depends on how complex they are, Facebook engineers Yue Jia, Ke Mao and Mark Harman wrote in a blog post announcing the tools. For simpler bugs, SapFix creates patches that revert the code submission that introduced them. In the case of more complicated bugs, SapFix uses a collection of “templated fixes” that were created by human engineers based on previous bug fixes.
And in case those human-designed template fixes aren’t up to the job, SapFix will then attempt what’s called a “mutation-based fix,” which works by continually making small modifications to the code that caused the software to crash, until a solution is found.
SapFix goes further by even generating multiple potential fixes for each of the bug, then submits these for the evaluation of human. It also performs tests on each of these fixes so engineers can see if they might cause other problems, such as compilation errors and other crashes somewhere else.
You may also like to read: