近日,中國科學院軟件研究所軟件發展研究部智能化軟件系統工程團隊與中國科學院大學等單位研究人員合作,在代碼審查意見自動生成方法研究方面取得進展。該研究提出了基於代碼審查標記和預訓練模型的代碼審查意見自動生成方法,能夠高效地對代碼片段自動生成有意義的代碼審查意見,幫助開發人員提高代碼質量,緩解現有軟件開發過程中嚴重依賴少數高水平程序員進行代碼審查的難題,為提升軟件開發過程中代碼審查自動化能力起到重要支撐作用。
代碼審查是保障軟件質量的重要過程,然而在實際軟件開發中,該過程往往嚴重依賴少數高水平程序員才能完成,一方面這可能造成多個軟件(如被審查者和審查者正在參與開發的軟件)開發過程中斷並延遲,另一方面,即使是高水平程序員經驗也是有限的,他們需要花費大量的時間進行代碼審查,而且並不能保證審查出所有的代碼錯誤或壞味。
針對此問題,研究團隊提出一種基於代碼審查標記和預訓練模型的代碼審查意見自動生成方法AUGER。他們從多個著名的Java項目中收集實際代碼審查數據,通過代碼審查標記嵌入技術構建了一個高質量數據集,利用T5預訓練模型進行多策略多階段訓練。實驗表明,該方法的ROUGE-L值相比於目前最好的方法提升了37.38%,而且整個模型推理過程平均可在20秒內完成。
相關成果以AUGER: Automatically Generating Review Comments withPre-training Models為題被軟件工程領域學術會議ESEC/FSE 2022錄用。該研究獲國家重點研發計劃、中科院戰略性先導科技專項(A類)等項目支持。
基於代碼審查標記和預訓練模型的代碼審查意見自動生成方法框架
對比實驗結果
來源:中國科學院軟件研究所
溫馨提示:近期,微信公眾號信息流改版。每個用戶可以設置 常讀訂閱號,這些訂閱號將以大卡片的形式展示。因此,如果不想錯過「中科院之聲」的文章,你一定要進行以下操作:進入「中科院之聲」公眾號 → 點擊右上角的 ··· 菜單 → 選擇「設為星標」