作者 | 琥珀

出品 | AI科技大本营(公众号ID:rgznai100)

为了帮程序员解决 bug 问题,Facebook 可算是操碎了心!

你可以这么想,如果在开发和测试阶段没有发现 bug 问题,那么 bug 将会随着产品发布,在生产环节触发,其后果将视情况而定。

不久前,一支来自 Facebook 的工程团队斩获了 ACM SIGPLAN POPL 最具影响力论文奖,这是机器学习研究社区最受关注的奖项之一。其获奖论文为“Compositional Shape Analysis by Means of Bi-abduction”,介绍了一款利用机器学习调试 bug 的工具“Project Infer”背后的科学原理。

为了“安利”这款工具,一位名叫 Jesus Rodriguez 的程序员特意撰文详解了 Infer 的工作流程和科学原理。

文中指出,Infer 基于两种新的数学技术:分离逻辑(separation logic)和双向假说推理(bi-abduction)。

传送链接:https://towardsdatascience.com/machine-learning-for-detecting-code-bugs-a79f37f144b7

据悉,Infer 是 Facebook 旗下一款开源的静态分析工具,其前身来自被 Facebook 收购后的 Monoidics。官网介绍,Infer 可以分析 Objective-C,Java 或 C 语言代码,报告潜在的问题。

截止目前,Infer 已在 GitHub 上获得 9300+ Star,并被 AWS、Spotify、Uber 等公司采用。

GitHub 链接:https://github.com/facebook/infer

实际上,此前 AI科技大本营(ID:rgznai100)就曾报道过类似的 bug 检查工具,如 Google 刚刚开源的自动化检测工具 ClusterFuzz,印度小哥 Gaurav Arora 开发的代码测试工具 code-with-ai,以及一键代码修复神器 The fuck。

值得一提的是,从发现 bug 到修复 bug,Facebook 有一套完整的流程。Facebook 去年新推的工具 SapFix,以及已投入大规模使用的 Sapienz,都是与 Infer 相辅相成的:

首先,静态分析工具 Infer,会帮助定位代码中需要修补的点;一旦 Sapienz 和 Infer 精确定位与崩溃相关的特定代码部分之后,就会将该信息传递给 SapFix;最后,SapFix 会参考几种不同的策略,自动生成补丁。

Infer 主要应用基于 Android 和 iOS 的移动应用程序发布之前,检测其代码中的 bug。

温馨提示:程序员们可能习惯了熬夜敲代码,但有人就总结过:不提倡加班写代码,那样会导致 bug 率直线上升。

(本文为AI科技大本营原创文章,转载请微信联系 1092722531)

精彩推荐

推荐阅读:

  • 帅气中国小哥出“大招”,程序员跳槽面试刷题必备

  • 对标Bert?刷屏的GPT 2.0意味着什么

  • 5行代码就能入门爬虫?

  • 只需45秒,Python 给故宫画一组手绘图!

  • “编程不规范,同事两行泪!”

  • 故宫“瘫痪”程序员怎么办?

  • 微服务、Kubernetes和无服务器之后,即将发生的……

  • 打打游戏就能在北京二环买套房?区块链大神说:你能靠VR刷怪升级还房贷!

  • 2月报告:Python逆袭成功?踢馆Java,碾压C++!

点击“阅读原文”,打开CSDN APP 阅读更贴心。

“安利”一款debug神器:在AI面前,bug都不是事儿相关推荐

  1. 5款windows神器吐血推荐!个个都是精品

    分享是快乐之本!今天小编给大家带来了5款Windows神器,经过测试,每一个都非常好用! 一.番茄土豆 番茄土豆是一款商务软件,它可以帮助你计划.管理.执行.记录工作.现在就开始使用番茄土豆,完成了不 ...

  2. 安利一款编辑神器——Markdown

    经常使用word或者那些浏览器自带编辑器的你可能会和我有时候遇到一样的烦恼,调整格式可真是不容易,如果你也有同样的烦恼,不妨可以试一下Markdown,值得你拥有哈. Markdown的使用 1.安装 ...

  3. ios备忘录下载安卓版_安利3款手机实用软件,安卓和ios都有份

    近期公众号改版,请大家"星标"一下公众号.这样才能第一时间收到文章推送,防止错过软件分享.星标方法如图所示: ▌温馨提示 星辰的所有资源全部为免费分享,大部分资源来源于网络,所有资 ...

  4. 这几款数据恢复神器,希望你永远都不要用到

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 不小心误删或者弄丢了重要文件数据怎么办?不要慌不要乱,这里告诉你还有得救!不用找代价高昂的专业数据恢复商 ...

  5. 【好工具】安利一款优秀的图片浏览器

    欢迎大家来到<好工具>专栏,这个专栏面向所有希望获得高效生产力工具的朋友.在这个专栏里,我们会和大家聊聊那些狂拽酷霸炫的生产力工具! 相信大家一定和我一样,茫然于庞大的工具海洋,却仍找不到 ...

  6. 一个令人赞不绝口的代码 Debug 神器

    在编写程序时,无论是对于初学者还是对于专业开发人员,都会花费大量时间来调试或修复源代码错误,也就是 Debug. 这个过程繁琐复杂,包括 Bug 复现和 Bug 定位等环节.如果有了自动化的 Debu ...

  7. 一个令人赞不绝口的代码 Debug 神器!

    这是「进击的Coder」的第 786 篇技术分享 来源:机器之心 " 阅读本文大概需要 5 分钟. " 在编写程序时,无论是对于初学者还是对于专业开发人员,都会花费大量时间来调试或 ...

  8. 【效率】一个令人赞不绝口的代码 Debug 神器!

    来源:机器之心 在编写程序时,无论是对于初学者还是对于专业开发人员,都会花费大量时间来调试或修复源代码错误,也就是 Debug. 这个过程繁琐复杂,包括 Bug 复现和 Bug 定位等环节.如果有了自 ...

  9. 拒绝暴力调参!推荐一个模型Debug神器!

    近些年深度学习在视觉.自然语言处理.语音等各个技术方向都诞生了不少创新应用,如智能识别医疗图像中的病灶,辅助医生做病情诊断:智能判别生产线上有质量问题的产品,减轻人工质检压力:对政务.金融等流程中的证 ...

最新文章

  1. 解决:TypeError: ‘(slice(None, None, None), 1)‘ is an invalid key
  2. 意料之外,也是情理之中 - 我的自由职业之旅
  3. mybatis插入mysql出现中文乱码
  4. css之左边div固定宽度右边div自适应布局
  5. 数据分析工具该如何选择
  6. 自动化设计-框架介绍 TestCase
  7. Linux系统之备份与恢复
  8. 华硕门店点亮系统_6大关键赋能,点亮导购服务力!
  9. Java基础篇——垃圾回收
  10. 今天我们来聊聊递归喝汽水问题
  11. 为什么相关不等于因果
  12. LG Sprite Software Root漏洞
  13. iOS 5 故事板入门(3)
  14. 5月第2周业务风控关注 | 等保2.0将于5月13日正式发布
  15. QTP自动化测试培训大纲
  16. POI之Excel单元格样式
  17. 平面设计学习需要会哪些知识
  18. 实习渗透工程师面试记录
  19. 圆周率π的几种计算方法与分析
  20. Codeforces Round #644(Div. 3) A-H

热门文章

  1. CSS a控制超链接文字样式
  2. 如何把Windows安装的所有打印机列出来
  3. Allan方差分析方法的直观理解
  4. Ubuntu 18.04安装中文输入法
  5. BFS:图的最短路径  Aizu - 0558 ​​​​​​​Cheese
  6. Python3 xml模块的增删改查
  7. js控制使div自动适应居中
  8. Mac环境下svn的使用
  9. ZOJ 3735 dp
  10. JqGridView 1.0.0.0发布