每日最新頭條.有趣資訊

機器人在 GitHub 修複 bug、與人不相上下

這個名為Repairnator的自動程式員編寫的補丁好得足以騙過真正的人類工程師。

1789年本傑明?富蘭克林寫道:“在這個世界上,除了死亡和稅收外,沒有什麽可以說是確定無疑的。”但如果富蘭克林生活在現代,他可能會另外添加“軟體bug”這一項。

現代電腦程式非常複雜,開發過程中難免會出現各種各樣的bug(缺陷)。這就是為什麽找到缺陷並編寫修複它們的補丁是任何軟體開發計劃的一項常規工作。確實,像Travis這樣的公司在向廣大開發人員提供這項服務。

但是,查找和修複補丁是一件很費時的差事,耗用大量資源。眾多研究人員開發出了使這個過程自動化的機器人,但是它們往往不是速度慢,就是編寫的代碼差強人意,過不了關。因此,開發人員非常希望能夠依賴一種速度快、品質高的機器人來查找代碼中的錯誤,然後編寫補丁來修複錯誤。

今天開發人員終於夢想成真了,這歸功於瑞典斯德哥爾摩KTH皇家理工學院的馬丁?蒙佩盧斯(Martin Monperrus)及其同仁所做的工作。這些研究人員最終開發出了一款機器人,它在尋找缺陷並編寫高品質的補丁方面與人類開發人員相比毫不遜色。

這些人稱這款機器人為Repairnator,已成功地進行了測試,讓它可與人類開發人員一較高下、找到修複程式。他們說:“這是程式自動修複方面的軟體工程研究界取得的重大裡程碑,做到了能夠與人類相競爭。”

電腦科學家們早就知道,可以使編寫補丁的過程實現自動化。但目前尚不清楚機器人能不能與人類一樣快速地完成這項工作,並獲得相同的品質。

因此蒙佩盧斯和同仁對此進行了測試,他們將Repairnator偽裝成人類開發人員,讓它可以與人類一較高下,開發放在GitHub(面向軟體開發人員的版本控制網站)上的補丁。蒙佩盧斯和同仁說:“Repairnator的關鍵設計想法是,自動生成修複構建錯誤的補丁,然後將補丁拿給人類開發人員過目,最終看看那些人類開發人員會不會接受這些補丁,視作代碼庫的有效貢獻。”

該團隊創建了一個名為Luc Esape的GitHub用戶,他似乎是他們研究實驗室的一名軟體工程師。他們說:“Luc有一張個人資料照片,看起來像是一名初級開發人員,渴望在GitHub上貢獻開源代碼。”

鏈接:https://github.com/lucesape

但Luc實際上是偽裝的Repairnator。這種欺騙很有必要,因為人類版主往往以不同的視角或標準來評估機器人的工作和人類的工作。蒙佩盧斯和同仁說:“為了測試與人類相競爭的科學假設,這種偽裝必不可少。”他們現在已向相關人員告知了真相。

該團隊進行了兩次測試Repairnator。第一趟測試是在2017年2月至12月,當時團隊針對14188個GitHub項目的固定列表運行了Repairnator,以尋找錯誤。他們說:“我們發現,我們的原型每天能夠執行大約30次修複。”

在此期間,Repairnator分析了11500多個有缺陷的構建項目。其中,它能夠重現3000多個項目中的缺陷。然後它又針對15個項目開發了補丁。

然而,這些補丁沒有一個得到接受、成為構建項目的一部分,因為Repairnator花了太長的時間來開發,或者編寫了無法接受的低品質補丁。

第二次實驗的結果比較成功。這一回,該團隊讓Luc在2018年1月至6月期間在Travis持續集成衣務上運行。雖然團隊沒有具體表明他們對Repairnator做了哪些改進,但是在1月12日,該機器人編寫了得到人類版主接受、成為構建項目一部分的補丁。“換句話說,Repairnator第一次可以與人類相競爭。”

在接下來的六個月裡,Repairnator繼續編寫了人類版主接受的五個補丁。

這項出色的工作為新一代軟體開發奠定了基礎。它還提出了一些值得關注的問題。

蒙佩盧斯和同仁提到了Repairnator在5月12日為一個名為“eclipse/ditto”的GitHub項目開發的補丁。

然後,該團隊收到了其中一位開發人員發來的下列消息:“我們只能接受來自簽署了Eclipse基金會貢獻者許可證協定的用戶的合並請求(pull-request)。”

這引發了一個棘手的問題,因為機器人無法實際簽署許可證協定。蒙佩盧斯和同仁問道: “誰擁有機器人貢獻的代碼的知識產權,並承擔相應責任:是機器人操作者、機器人實施者還是修複算法設計師?”

在人類和機器人可以更深入細致地合作之前,必須解決這類問題。不過蒙佩盧斯和同仁頗為樂觀。他們說:“我們認為,Repairnator預示著軟體開發的美好未來,到時機器人和人類將在軟體開發上順暢協作,甚至通力合作。”

富蘭克林這位以創造性聞名的發明家本人若在世的話,肯定也會大為驚歎。

論文《用Repairnator自動修複程式,編寫出與人類不相上下的補丁》

鏈接:https://arxiv.org/pdf/1810.05806.pdf

獲得更多的PTT最新消息
按讚加入粉絲團