軟件所提出代碼審查意見自動生成新方法
文章來源: | 發布時間:2022-06-21 | 【打印】 【關閉】
近日,軟件所軟件發展研究部智能化軟件系統工程團隊在代碼審查意見自動生成方法研究方面取得進展。該研究提出了基于代碼審查標記和預訓練模型的代碼審查意見自動生成方法,能夠高效地對代碼片段自動生成有意義的代碼審查意見,幫助開發人員提高代碼質量,緩解現有軟件開發過程中嚴重依賴少數高水平程序員進行代碼審查的難題,為提升軟件開發過程中代碼審查自動化能力起到重要支撐作用。
代碼審查是保障軟件質量的重要過程,然而在實際軟件開發中,該過程往往嚴重依賴少數高水平程序員才能完成,一方面這可能造成多個軟件(如被審查者和審查者正在參與開發的軟件)開發過程中斷并延遲,另一方面,即使是高水平程序員經驗也是有限的,他們需要花費大量的時間進行代碼審查,而且并不能保證審查出所有的代碼錯誤或壞味。
針對此問題,團隊提出一種基于代碼審查標記和預訓練模型的代碼審查意見自動生成方法AUGER,首先從多個著名的 Java 項目中收集實際代碼審查數據,然后通過代碼審查標記嵌入技術構建了一個高質量數據集,最后利用 T5預訓練模型進行多策略多階段訓練。實驗表明,該方法的ROUGE-L值比目前最好的方法提升了37.38%,而且整個模型推理過程平均可在20 秒內完成。
相關成果以“AUGER: Automatically Generating Review Comments withPre-training Models”為題被軟件工程領域頂級學術會議ESEC/FSE 2022錄用。該論文的第一作者為碩士生李凌偉,通訊作者為高級工程師楊立,合作單位包括中國科學院大學、武漢大學、中科軟科技股份有限公司。該研究獲國家重點研發計劃、中國科學院戰略性先導A類專項等項目支持。
基于代碼審查標記和預訓練模型的代碼審查意見自動生成方法框架
對比實驗結果