Facebook发布AI代码调试工具SapFix
极客时间编辑部
讲述:丁婵大小:1.11M时长:02:26
最近,Facebook 发布了一个新型人工智能混合工具——SapFix,可以大大节约工程师调试代码的时间,同时还加快了新软件的推出过程。该工具可以为特定的 Bug 自动生成修复程序,然后将其提交给工程师批准并部署到生产中。
SapFix 被设计成一个独立的工具,无论有没有 Sapienz(Facebook 的一款智能自动化软件测试工具,在 F8 版本时发布,已部署到生产中),它都可以运行。在目前的概念验证状态,SapFix 在部署到生成前,专注于修复 Sapienz 发现的 Bug,这个过程能够帮助定位代码中需要修复的 Bug。一旦 Sapienz 发现并推断出与 Bug 相关的特定部分代码,它就可以将该信息传递给 SapFix,后者会自动参考一些策略并生成补丁。
为了解决高触发 Bug,SapFix 创建的补丁可以完全或部分还原初始代码。对于更复杂的问题,SapFix 通过从模板修复集合中提取素材生成补丁。这些模板是从人类工程师创建的模板中自动获取的,而后者则是基于过去的修复库创建的。
当以前用过的由人类设计的模板不合适时,SapFix 将尝试基于突变进行修复。为此,它将对导致崩溃的语句的抽象语法树(AST)执行小型代码修复,调整补丁,直到找到可能的解决方案。
然而,即使 SapFix 找到了特定的补丁,它的工作还远远没有结束。该工具为每个 Bug 生成多个潜在的补丁,并通过三个问题评价补丁的质量。也就是是否存在编译错误、程序是否仍然会崩溃,以及补丁是否引入了新的冲突?
为了解决后两个问题,SapFix 在修复版本上运行已存的、开发者编写的测试,同时,还会运行由 Sapienz 创建的测试。与之前补丁生成步骤一样,验证过程会自动执行,且与更大的代码库实现分离。
据称,Facebook 开发的 SapFix,不仅适用于大规模运营的企业,还适用于几乎所有写代码的个人。不管是用于组织还是个体,SapFix 和 Sapienz 都能够帮助开发者减少花在 debug 上的时间,把精力用在生成更多的代码上。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 保密bug制造机会把精力用在生产更多的bug上😄
- 四两晚上下一个
收起评论