為了幫程序員解決 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 率直線上升。
-
Facebook
+關注
關注
3文章
1432瀏覽量
58948 -
機器學習
+關注
關注
66文章
8554瀏覽量
136981 -
BUG
+關注
關注
0文章
156瀏覽量
16276
原文標題:“安利”一款debug神器:在AI面前,bug都不是事兒
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
簡儀科技走進三所高校開展AI助力測試測量程序開發實操課程
嵌入式軟件測試找bug的常見方法和秘訣
芯盾時代SDP助力企業應對核心機密泄露危機
程序員最常見謊言
遠心鏡頭中的光學畸變和遠心度是什么意思?
軟通國際亮相2025沙中開源與AI科技峰會
奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動圓滿收官
開鴻智谷“以賽促學、以賽選才”|1024程序員節暨開源鴻蒙構建大會圓滿落幕!
廣電計量聯合舉辦有源醫療器械檢驗員實操技術培訓班
程序設計與數據結構
如何在 樹莓派 上編寫和運行 C 語言程序?
零基礎入門:如何在樹莓派上編寫和運行Python程序?
Gemini Vision + Raspberry Pi 化身“數字導盲犬”?
為了幫程序員解決bug問題,Facebook可算是操碎了心!
評論