當前位置:
首頁 > 科技 > 「安利」一款debug神器:在AI面前,bug都不是事兒

「安利」一款debug神器:在AI面前,bug都不是事兒

作者 | 琥珀

出品 | AI科技大本營(公眾號ID:rgznai100)

為了幫程序員解決 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 率直線上升。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI科技大本營 的精彩文章:

故宮的首夜,一票難求,網站遭「圍攻」宕機
如何讓AI教機器自己玩俄羅斯方塊?

TAG:AI科技大本營 |