开发者新福利!脸书测试可自动修补bug的AI工具

脸书(Facebook)周四(9/13)宣布,今年8月起内部已开始测试可自动修补bug的AI工具—SapFix,若搭配已被应用在生产线上的软件测试工具Sapienz,将可大幅加速程序开发流程,替全自动化的调试铺路,而Sapienz与SapFix未来都将开源以造福全球的开发人员。

脸书内部的自动化调试程序始于Sapienz与Infer静态分析工具,前者个基于AI的自动化软件测试工具,后者则可判断让程序崩溃的特定程序代码,而SapFix现现阶的概念性验证状态是修补由Sapienz与Infer所发现的bug。

为了解决紧急的bug,SapFix创建了可全部或局部还原导致问题程序代码的修补程序,面对更复杂的程序崩溃问题时,SapFix则会从模板化的修补数据库中找出可用的修补程序,这些模板是SapFix自工程师过去的修补搜集而来的。

假如没有找到适合的模板,SapFix就会针对造成崩溃语句的抽象语法树进行细微的修改,渐次调整修补程序直至找到潜在的解决方案。

SapFix可产生多款潜在的修补程序,之后测试这些修补程序以评估它们的品质,再将它们传递给工程师进行审核。有时SapFix可选出最佳解决方案并推荐工程师使用。 SapFix无法自行部署所提出的修补程序,而是必须由工程师负责审核与部署。

SapFix仍属开发阶段,但脸书已在今年8月展开测试,指出SapFix已能成功产生获得工程师批准并部署于生产线上的修补程序。

相较于稚嫩的SapFix,Sapienz属于成熟工具,已被用来检查Android版的Facebook、Instagram、Workplace与Messenger的移动程序,它每个月可产出数百份bug报告,脸书开发人员大约会修补Sapienz所提出的2/3的bug。

脸书准备让SapFix成为可独立使用的工具,也能搭配Sapienz使用,这两项工具未来都将成为开源项目。