FACEBOOK曾经的座右铭是“move fast and break things”( 行动迅速并打破常规),相反,他们现在尝试着“move fast and fix things”(行动迅速并修复缺陷)。--这是歪果仁的幽默吧!~
为此,他们开发了一款基于AI的静态代码扫描工具,infer。它可以在移动APP真正交给用户之前就发现其中潜在的漏洞。现在他们希望大家都能够在测试自己的软件过程中应用起该工具来。
现在infer已经完全开源了,免费供任何公司或者独立开发者来使用,并且进行一些定定制化的应用。
Infer的共同创始人彼得•奥赫恩(Peter O'Hearn)表示:“它也许会像人类用的方式那样,y研究程序代码,并对程序进行猜测或假设”
与人类相比它的优势在于,可以在短短几分钟内读取数千行代码,以发现潜在的bug。 Face book声称其修复率约为80%,对于这样一个自动化系统来说是非常难得的。
大多数调试器的工作是运行一个程序,并逐行逐行地检查代码,查找错误。 Infer能够分析代码并在没有实际执行的情况下查找问题,也就是“静态程序分析”。
静态分析已经存在了几十年,并且有基于这个概念的商业和开源测试工具。但O'Hearn表示,这些工具无法以Infer的规模进行深度代码分析。 与其他工具不同,Infer能够分解大型的代码库,分析较小的部分,然后将结果拼接在一起,从而避免在深度和速度之间的权衡。
O'Hearn说:“我认为它是AI,尽管他说这个领域的象征性人工智能分支比Face book的其他研究人员开拓更多的大脑启发式神经网络技术更为接近。
“我认为它是人工智能,”O'Hearn说,尽管他说它比Face book上其他研究人员所做的开拓更多的大脑启发式神经网络技术更接近于人工智能。
开源
Infer早期存在于O'Hearn学术研究中,由John Reynolds开始,他开发了一种叫做分离逻辑的计算机科学概念。后来,当O'Hearn意识到他可以将一种被称为“诱导推理”的概念应用于静态分析时,下一个突破就出现了。
在伦敦的Queen Mary大学, O'Hearn与他的博士生Cristiano Calcagno及研究助理Dino Distefano合作,Calcagno和Distefano继续进行研究,但他们最终发现自己想要对学术界以外的软件开发领域产生影响。他们决定成立一家名为Monoidics的创业公司,并请O'Hearn加入他们的团队。
最初的计划是基于他们的工作建立一个商业产品。不过,当Face book提出收购该公司的提议时,O'Hearn表示,团队意识到,他们在这一平台上的影响力将超过作为一家小型初创公司的影响力。现在,该团队可以免费提供整个平台。他说:“做这一决定花了一些时间,但这总的来说还是理想的情况。”
o'hearn表示,希望通过使Infer开源,团队可以帮助其他公司,从他们那里收集反馈,并吸引学术界的学者。
他说:“静态代码分析领域已经有很多伟大的想法,但也有很多未解决的问题。”“我们希望这能促进工业界和学术界的合作,让研究可以向双向发展。”
参考:
Infer git 地址: https://github.com/facebook/infer.git
文章:《infer使用的浅谈简析》
{测试窝原创译文,译者:亚然}
译者简介:亚然,测试爱好者,长期从事软件测试工作