为了帮程序员解决 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 率直线上升。
H3C实验配置步骤:静态路由介绍
小米平板3文案曝光,配置强劲 指纹+磁吸式键盘+8G运存
鼎盛合:“遥遥领先”的***技术
车载操作系统信息安全技术介绍 ARM Trust Zone技术解析
优宝特机器人“萌宠”仿生机器狗
为了帮程序员解决bug问题,Facebook可算是操碎了心!
Kindle Fire今年首季销量下降 iPad领先优势继续增长
晶片湿法刻蚀技术研究
数字化驱动新未来,老板电器数字厨电研究院揭牌成立
苹果iPad是平板王者? 华为M3和三星Tab S3表示不服!
ssrf加metadata的利用方式,其他常规利用方式
这三家公司将携手并肩,深耕并联机器人行业
DK045G东科集成650V/400m GaNHEMT准谐振反激控制AC-DC功率开关芯片
过电流和过负荷电流的区别
MR和AR开辟全新机会,让品牌以新颖的方式与消费者接触
什么是变压器?使用示波器学习变压器
如何解决PCB散热问题,教你10种行之有效的解决方法
一图懂 | 华为智慧屏如何便捷看电视?
Redmi Note 9开启预热 后置四摄造型神似“浴霸”
如何将MAX30003WING心电图AFE与MAX32630FTHR连接