Facebook曾經(jīng)的格言是“快速行動(dòng),打破常規(guī)”,但隨著公司越來(lái)越大,代碼越來(lái)越多,這話可能得變成“快速行動(dòng),找出bug”了。為此Facebook,開發(fā)了智能工具Infer,它能自動(dòng)找出移動(dòng)應(yīng)用中的漏洞。
現(xiàn)在,這一工具被開源了。Facebook在近日宣布任何人都能用Infer來(lái)調(diào)試自己的應(yīng)用了。據(jù)介紹,它能像人類一樣查看代碼,并作出一些推測(cè)。但它的優(yōu)勢(shì)是,數(shù)分鐘就能看完上千行代碼。Facebook已經(jīng)用它修復(fù)了八成的漏洞。
多數(shù)的調(diào)試器都會(huì)先運(yùn)行程序,然后逐行檢測(cè)代碼,但I(xiàn)nfer能在不執(zhí)行程序的情況下分析代碼,這一過(guò)程被稱為“靜態(tài)程序分析”。
靜態(tài)分析已經(jīng)有數(shù)十年之久,也有了相應(yīng)的商業(yè)和開源工具,不過(guò)它們無(wú)法像Infer那樣做大規(guī)模的深度分析。Infer能將代碼分解,小范圍分析后再將結(jié)果整合在一起,兼顧分析的深度和速度。
其實(shí)Infer也屬于人工智能的一種,不過(guò)它更接近于符號(hào)人工智能(symbolic AI)分支,而不是我們所熟知的神經(jīng)網(wǎng)絡(luò)技術(shù)。
Infer技術(shù)最初來(lái)自初創(chuàng)公司Monoidics,后來(lái)該公司被Facebook收購(gòu)。