《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 喲,寫B(tài)ug呢?Facebook發(fā)布AI代碼調(diào)試工具SapFix

喲,寫B(tài)ug呢?Facebook發(fā)布AI代碼調(diào)試工具SapFix

2018-09-15

請注意:這不是你寫 Bug 的理由。


調(diào)試代碼是件很無聊的事,但是由 Facebook 工程師創(chuàng)建的新型人工智能混合工具——SapFix 可以大大節(jié)約工程師的時間,同時還加快了新軟件的推出過程。該工具可以為特定 Bug 自動生成修復程序,然后將其提交給工程師批準并部署到生產(chǎn)中。


SapFix 被用來加速向裝有 Facebook Android 應用程序的數(shù)百萬設備傳輸穩(wěn)定代碼更新的過程,這是人工智能測試和調(diào)試工具在此類大規(guī)模生產(chǎn)中的首次應用。Facebook 打算與工程界分享 SapFix,因為這是自動化調(diào)試發(fā)展的下一步,可能為很多公司和研究機構(gòu)促進新代碼的產(chǎn)量和穩(wěn)定性。


SapFix 被設計成一個獨立的工具,無論有或沒有 Sapienz(Facebook 的一款智能自動化軟件測試工具,在 F8 版本時發(fā)布,已部署到生產(chǎn)中),它都可以運行。在目前的概念驗證狀態(tài),SapFix 在部署到生成前專注于修復 Sapienz 發(fā)現(xiàn)的 Bug。此過程從 Sapienz 開始,連同 Facebook 的推斷靜態(tài)分析工具一起,能幫助定位代碼中需要修復的 Bug。一旦 Sapienz 發(fā)現(xiàn)并推斷出與 Bug 相關的特定部分代碼,它就可以將該信息傳遞給 SapFix,后者會自動參考一些策略并生成補丁。

微信圖片_20180915211749.gif

SapFix 是如何 debug 的


上圖說明 SapFix 如何為軟件 Bug 生成補丁。


為了解決高觸發(fā) bug,SapFix 創(chuàng)建的補丁可以完全或部分還原初始代碼。對于更復雜的問題,SapFix 通過從模板修復集合中提取素材生成補丁。這些模板是從人類工程師創(chuàng)建的模板中自動獲取的,而后者則是基于過去的修復庫創(chuàng)建的。


當以前用過的由人類設計的模板不合適時,SapFix 將嘗試基于突變進行修復。為此,它將對導致崩潰的語句的抽象語法樹(AST)執(zhí)行小型代碼修復,調(diào)整補丁,直到找到可能的解決方案。


自主驗證和人工審批


即使 SapFix 找到了特定的補丁,它的工作還遠遠沒有結(jié)束。該工具為每個 Bug 生成多個潛在的補丁,并通過三個問題評價補丁的質(zhì)量。即是否存在編譯錯誤、程序是否仍然會崩潰,以及補丁是否引入了新的沖突?


為了解決最后兩個問題,SapFix 在修復版本上運行已存的、開發(fā)者編寫的測試,同時還會運行由 Sapienz 創(chuàng)建的測試。與之前補丁生成步驟一樣,驗證過程會自動執(zhí)行,且與更大的代碼庫實現(xiàn)分離。SapFix 正在復制目前由人工完成的調(diào)試工作,但它并不是為了將補丁部署到產(chǎn)品代碼中而設計的。


當自動生成的補丁經(jīng)過全面測試后,SapFix 會將它們發(fā)送給人工評審員進行批準。這有些類似于人工生成的報告需要由其他開發(fā)者進行檢查與審批,此外系統(tǒng)除了會自動追蹤評審者的反饋外,它還會接受經(jīng)批準的補丁、清理其它未經(jīng)批準的補丁。在某些情況下,SapFix 可以從多個候選補丁中選擇最佳的解決方案,并向工程師提出建議。

微信圖片_20180915211818.jpg

該工作流展示了 SapFix 如何基于它生成的補丁尋求工程師的反饋。


如果修補方案被拒絕,它將丟棄補丁,如果被接受,則加載。由于 SapFix 的底層技術非常強大,且自動運行節(jié)省了大量時間和精力,因此 SapFix 無法實現(xiàn)自己提出的補丁。工程師通常比較專業(yè),該工具依賴工程師的專業(yè)知識來確認是否應該部署提出的補丁。


由于 SapFix 仍在開發(fā)階段,因此它無法像 Sapienz 那樣投入大規(guī)模使用,Sapienz 現(xiàn)在每月生成數(shù)百個 Bug 報告,精準定位有 Bug 的代碼行,它審核與安卓設備上的 Facebook、Instagram、Workplace 和 Messenger 等 app 相關的代碼。Sapienz 的報告中大約有 3/4 的 bug 是由開發(fā)者修復的。而 Facebook 八月份開始測試 SapFix,該工具可以成功生成能夠被人類工程師接受的補丁,并進入生產(chǎn)階段。


為完全自動化 debug 奠定基礎


Facebook 稱,這標志著機器生成的補丁(經(jīng)過自動化端到端測試和修補)首次部署到 Facebook 規(guī)模的代碼庫。這是 AI 技術的重要里程碑,進一步證明了基于搜索的軟件工程可以減少軟件開發(fā)中的問題。Facebook 開發(fā) SapFix 用于處理不同種類的 bug 和軟件,因此該工具有可能改變代碼生成的速度和質(zhì)量。這不僅適用于大規(guī)模運營的企業(yè),還適用于幾乎所有寫代碼的個人。不管是用于組織還是個體,SapFix 和 Sapienz 都能幫開發(fā)者減少花在 debug 上的時間,把精力用在生成更多的代碼上。


即使有了這項工作,F(xiàn)acebook 仍想鼓勵社區(qū)繼續(xù)研究自動調(diào)整、改進代碼。在這一領域,已經(jīng)有了很多激動人心的研究,包括技術的實證研究、供社區(qū)研究解決的開放性難題與挑戰(zhàn),以及對近期自動改進代碼的調(diào)查。作為在 Facebook 規(guī)模下部署的首個工具,SapFix 將為此挑戰(zhàn)性研究提供新的動力與能量。


Facebook 稱,將在完成額外的工程部分后,開源 Sapienz 和 SapFix。而有關這些工具的反饋會幫助相關研究者,也會幫助更廣泛的 AI 社區(qū)改進自動尋找、修改代碼 Bug 的任務。Facebook 目前聚焦在 SapFix 如何自動制止代碼崩潰,但更長期的應用應該包括如何讓軟件更快、反應更敏捷。這些系統(tǒng)提供了極大的基線收益,開發(fā)者使用它們時效果是多變、寬泛的。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99国产精品99久久久久久粉嫩| 亚洲国产一区二区三区在线播| 国产一区二区三区黄| 欧美日韩国产影院| 久热国产精品视频| 性欧美videos另类喷潮| 9l国产精品久久久久麻豆| 欧美综合77777色婷婷| 国产专区一区| 国产色婷婷国产综合在线理论片a| 欧美日在线观看| 欧美日韩国产限制| 欧美另类变人与禽xxxxx| 欧美国产精品日韩| 免费日韩精品中文字幕视频在线| 久久久精品tv| 久久亚洲国产成人| 久久久久欧美精品| 久久亚洲一区| 久久免费视频这里只有精品| 久久另类ts人妖一区二区| 亚洲欧美日韩区| 狠狠色丁香婷婷综合久久片| 一区二区黄色| 国产日韩精品久久久| 国产精品大片wwwwww| 在线观看欧美精品| 99国产精品一区| 国产日产欧产精品推荐色 | 香蕉国产精品偷在线观看不卡| 这里只有精品视频在线| 制服丝袜激情欧洲亚洲| 亚洲视频中文字幕| 亚洲一区在线免费观看| 欧美亚洲免费在线| 久久国产欧美精品| 亚洲精品欧美极品| 亚洲视频一二三| 午夜视频在线观看一区二区三区 | 久久gogo国模啪啪人体图| 久久精品国产久精国产一老狼| 亚洲第一精品在线| 亚洲精品1区2区| 夜夜嗨av一区二区三区网页| 亚洲淫性视频| 久久久久久久网| 免费看的黄色欧美网站| 欧美人在线视频| 国产欧美日韩免费看aⅴ视频| 国产亚洲精品一区二555| 狠狠色狠狠色综合日日tαg| 亚洲日本理论电影| 亚洲自拍三区| 亚洲国产精品久久人人爱蜜臀| 亚洲免费观看| 欧美亚洲视频一区二区| 榴莲视频成人在线观看| 欧美日韩在线高清| 国产在线日韩| 99亚洲一区二区| 性欧美暴力猛交另类hd| 亚洲欧洲综合另类在线| 午夜精品久久久久久久久 | 欧美吻胸吃奶大尺度电影| 国产日韩欧美高清免费| 亚洲黄色在线看| 亚洲欧美日韩直播| 亚洲三级视频| 久久99在线观看| 欧美精品在线观看播放| 国产欧美一区二区三区久久| 亚洲日本欧美| 亚洲自啪免费| 国产精品久久久免费| 性欧美大战久久久久久久久| 欧美精品一区在线| 亚洲视频一起| 亚洲综合成人在线| 狠狠色2019综合网| 久久九九精品| 亚洲激情影视| 亚洲影院免费| 在线看片一区| 欧美亚男人的天堂| 久久躁狠狠躁夜夜爽| 亚洲天堂免费在线观看视频| 午夜亚洲视频| 亚洲片国产一区一级在线观看| 久久国产色av| 夜夜爽99久久国产综合精品女不卡| 久久成人久久爱| 在线日韩视频| 嫩模写真一区二区三区三州| 欧美一区二区三区在线视频| 亚洲靠逼com| 亚洲成人在线网| 亚洲女同在线| 欧美一区二区三区视频在线 | 久久精品亚洲热| 午夜一区二区三区在线观看| 欧美精品成人在线| 激情综合自拍| 午夜精品美女自拍福到在线| 99国产精品99久久久久久粉嫩| 欧美在线资源| 亚洲精品久久久久| 国产精品影视天天线| 欧美伦理a级免费电影| 欧美一级网站| 亚洲深夜福利视频| 久久国产精品久久久| 亚洲人妖在线| 国户精品久久久久久久久久久不卡| 欧美精品首页| 麻豆精品网站| 欧美亚洲自偷自偷| 午夜精品久久久99热福利| 亚洲精品视频在线看| 亚洲国产一区二区三区青草影视| 亚洲一区综合| 一本一本久久a久久精品综合麻豆| 国产在线欧美| 国产在线乱码一区二区三区| 国产精品入口麻豆原神| 欧美性天天影院| 欧美日韩国产一区二区| 久久亚洲图片| 亚洲欧美国产三级| 久久gogo国模裸体人体| 日韩视频中文字幕| 国产精品99久久99久久久二8| 国产欧美日韩专区发布| 欧美在线看片a免费观看| 久久精品噜噜噜成人av农村| 久久综合色天天久久综合图片| 亚洲午夜精品久久| 亚洲韩国精品一区| 欧美一级大片在线免费观看| 欧美日韩一本到| 亚洲卡通欧美制服中文| 亚洲视频在线看| 欧美日韩一区二区免费在线观看 | 最新高清无码专区| 国产自产精品| 国产一区二区三区无遮挡| 国产一区91精品张津瑜| 久久精品国产久精国产思思| 久久在线视频| 欧美成人精品在线| 欧美激情成人在线| 欧美激情亚洲综合一区| 欧美精品在线播放| 国产精品萝li| 欧美一级成年大片在线观看| 欧美久久久久久久久久| 欧美国产日韩一区二区| 亚洲国产精品传媒在线观看| 亚洲国产精品一区| 欧美aa国产视频| 亚洲国产欧美在线人成| 亚洲精品国产拍免费91在线| 亚洲综合色在线| 国产精品免费福利| 亚洲欧美视频一区| 久久久久久久久久看片| 激情一区二区| 亚洲精品一区在线| 欧美日韩性视频在线| 欧美一区二区黄色| 久久一区二区三区四区五区| 今天的高清视频免费播放成人 | 欧美人与性动交α欧美精品济南到| 亚洲人被黑人高潮完整版| 99精品欧美一区二区三区| 欧美色网一区二区| 亚洲综合丁香| 久久综合色88| 日韩午夜剧场| 欧美影视一区| 136国产福利精品导航| 一本色道久久综合狠狠躁的推荐| 欧美国产成人精品| 精品1区2区3区4区| 亚洲国内精品在线| 欧美日韩国产大片| 亚洲专区欧美专区| 裸体素人女欧美日韩| 日韩午夜av| 欧美在线日韩| 亚洲成色999久久网站| 亚洲图中文字幕| 国产日韩一区在线| 亚洲精品社区| 国产精品欧美日韩一区| 亚洲高清一区二| 欧美激情91| 亚洲成人资源网| 欧美日韩综合网| 亚洲第一黄网| 国产精品xxx在线观看www|