Facebook开发Getafix :查找bug修复方案
极客时间编辑部
讲述:杜力大小:1.10M时长:02:24
最近,Facebook 开发了一款名为 Getafix 的工具,可以自动查找出 bug 的修复方案,并提供给工程师审批,这极大提高了工程师的工作效率和整体代码质量。
Getafix 的目标是让计算机处理日常工作,不过是在人类的监督下,一个 bug 是否需要复杂的修复,仍然需要由人类做出决定。这个工具将一种新的层次聚类方法,应用于之前的数千个代码变更上,同时检查代码变更本身及其上下文。它可以检测 bug 的基础模式,并提供之前的自动修复工具无法检测到的修复方案。
另外,Getafix 还能够在 bug 的修复过程中,显著缩小程序可能需要更改的具体空间,从而更快地选择适当的修复手段。此外,其不再像以往暴力破解及基于逻辑型技术那样,对计算时间提出极高的要求,这种更为高效的方法使得 Getafix 被成功部署到生产环境当中。
与此同时,由于 Getafix 能够以以往的代码变化为基础进行学习,因此,足以产生让人类工程师更容易理解的修复结论。
目前,Getafix 是第一款被大规模部署到 Facebook 生产环境中的自动修复工具,它进一步提升了 Facebook 拥有数十亿用户的应用程序的稳定性和性能。负责为 Infer 报告的 null 解引用 bug 提供自动修复建议。
其中,Infer 是 Facebook 的一款统计分析工具,负责为 Sapienz 发现的、与 null 解引用相关的崩溃 bug 提供修复建议,用以处理 Sapienz 检测到的崩溃问题。过去几个月以来,SapFix 所采用的修复方法中,有约半数都是来自 Getafix 的,并且实际有效(通过全部测试)。而在 Getafix 提供给 SapFix 的全部修复建议中,约 80% 通过了全部测试。
开发团队注意到,Getafix 所挖掘出的修复模式不仅仅在响应 Infer 报告的 bug,实际上,其同时也能够针对手动代码检查结果给出修复建议。这种额外的修复模式源将给自动重复代码审查带来令人兴奋的可能性。换句话说,未来有可能会将代码库中,曾经被多次标记及修复的 bug,直接交给自动化工具处理,而不再需要任何人工筛查。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- kevenxi好,这个bug修复工具帮助开发人员定位问题,还能提供修复建议
收起评论