機(jī)器人成功查找錯(cuò)誤并編寫和提交修復(fù)補(bǔ)丁
據(jù)報(bào)道,一位名為“Repairnator”機(jī)器人在 GitHub 上“臥底”數(shù)月,查找錯(cuò)誤并編寫和提交修復(fù)補(bǔ)丁,結(jié)果有多個(gè)補(bǔ)丁成功通過被采納。
現(xiàn)代計(jì)算機(jī)程序非常復(fù)雜,在開發(fā)過程中難免會(huì)出現(xiàn)錯(cuò)誤。查找和修復(fù)補(bǔ)丁是一件需要耗費(fèi)大量資源的事情,雖然研究人員已經(jīng)開發(fā)除了許多流程自動(dòng)化的機(jī)器人,但是它們往往很慢,而且存在編寫的代碼質(zhì)量較低的問題。
Repairnator 是由 KTH 瑞典皇家理工學(xué)院的軟件技術(shù)教授 Martin Monperrus 及其朋友構(gòu)建的機(jī)器人,目前已被證實(shí)可以發(fā)現(xiàn)錯(cuò)誤并編寫高質(zhì)量補(bǔ)丁。MarTIn Monperrus 表示:“這是自動(dòng)修復(fù)程序研究中的里程碑,它擁有和人類開發(fā)者競爭的潛力?!?/p>
據(jù)悉,該團(tuán)隊(duì)將 Repairnator 偽裝成了一個(gè)名為 LucEsape 的 GitHub 用戶,他們給 Luc 上傳頭像并填寫個(gè)人資料,看起來就像是一位渴望在 GitHub 上做貢獻(xiàn)的初級(jí)開發(fā)者。他們共進(jìn)行了兩輪測(cè)試,第一輪是在2017年2月到12月,Repairnator 在 14188 個(gè) GitHub 項(xiàng)目的修復(fù)列表上運(yùn)行并掃描錯(cuò)誤,期間 Repairnator 總共分析了超過 11500 個(gè)失敗的構(gòu)建,其中有 3000 多個(gè)能被重現(xiàn)。然后,Repairnator 生成了針對(duì)其中 15 個(gè)問題的補(bǔ)丁,遺憾的是由于補(bǔ)丁質(zhì)量低、花費(fèi)時(shí)間過長等問題,這些補(bǔ)丁均未被接受。
第二輪測(cè)試是在2018年1月至6月,該團(tuán)隊(duì)沒有具體說明他們對(duì) Repairnator 做了哪些改進(jìn),但 Repairnator 在1月12日成功編寫出了第一個(gè)被人類開發(fā)者接受的補(bǔ)丁。在之后的6個(gè)月里,Repairnator 陸續(xù)又有 5 個(gè)補(bǔ)丁被采納。
有意思的是,Repairnator 在5月12日向名為 “eclipse/ditto” 的項(xiàng)目提交補(bǔ)丁后,收到了開發(fā)者的反饋,“我們只接受來自簽署了 Eclipse FoundaTIon Contributor 許可協(xié)議的用戶的 pull-requests ”。這又引出了一個(gè)新的問題,機(jī)器人要怎么簽署許可協(xié)議?誰擁有機(jī)器人貢獻(xiàn)的知識(shí)產(chǎn)權(quán),操作員亦或是算法設(shè)計(jì)師?在人類和機(jī)器人想要更深入合作之前,這類還問題有待解決。