臉書(Facebook)周四(9/13)宣布,今年8月起內部已開始測試可自動修補臭蟲的AI工具—SapFix,若搭配已被應用在生產線上的軟體測試工具Sapienz,將可大幅加速程式開發流程,替全自動化的除錯舖路,而Sapienz與SapFix未來都將開源以造福全球的開發人員。

臉書內部的自動化除錯程序始於Sapienz與Infer靜態分析工具,前者個基於AI的自動化軟體測試工具,後者則可判斷讓程式崩潰的特定程式碼,而SapFix現現階的概念性驗證狀態是修補由Sapienz與Infer所發現的臭蟲。

為了解決緊急的臭蟲,SapFix建立了可全部或局部還原導致問題程式碼的修補程式,面對更複雜的程式崩潰問題時,SapFix則會從模板化的修補資料庫中找出可用的修補程式,這些模板是SapFix自工程師過去的修補蒐集而來的。

假如沒有找到適合的模板,SapFix就會針對造成崩潰語句的抽象語法樹進行細微的修改,漸次調整修補程式直至找到潛在的解決方案。

SapFix可產生多款潛在的修補程式,繼之測試這些修補程式以評估它們的品質,再將它們傳遞給工程師進行審核。有時SapFix可選出最佳解決方案並推薦工程師使用。SapFix無法自行部署所提出的修補程式,而是必須由工程師負責審核與部署。

SapFix仍屬開發階段,但臉書已在今年8月展開測試,指出SapFix已能成功產生獲得工程師批准並部署於生產線上的修補程式。

相較於稚嫩的SapFix,Sapienz屬於成熟工具,已被用來檢查Android版的Facebook、Instagram、Workplace與Messenger的行動程式,它每個月可產出數百份臭蟲報告,臉書開發人員大約會修補Sapienz所提出的2/3的臭蟲。

臉書準備讓SapFix成為可獨立使用的工具,亦能搭配Sapienz使用,這兩項工具未來都將成為開源專案。


Advertisement

更多 iThome相關內容