Facebook曾经的格言是“快速行动,打破常规”,但随着公司越来越大,代码越来越多,这话可能得变成“快速行动,找出bug”了。为此Facebook,开发了智能工具Infer,它能自动找出移动应用中的漏洞。
现在,这一工具被开源了。 Facebook在近日宣布任何人都能用Infer来调试自己的应用了。据介绍,它能像人类一样查看代码,并作出一些推测。但它的优势是,数分钟就能看完上千行代码。Facebook已经用它修复了八成的漏洞。
多数的调试器都会先运行程序,然后逐行检测代码,但Infer能在不执行程序的情况下分析代码,这一过程被称为“静态程序分析”。
静态分析已经有数十年之久,也有了相应的商业和开源工具,不过它们无法像Infer那样做大规模的深度分析。Infer能将代码分解,小范围分析后再将结果整合在一起,兼顾分析的深度和速度。
其实Infer也属于人工智能的一种,不过它更接近于符号人工智能( symbolic AI )分支,而不是我们所熟知的神经网络技术。
Infer技术最初来自初创公司Monoidics,后来该公司被Facebook收购。