關閉選單
AI代碼看起來沒問題,直到審查開始

過去一年,軟體團隊一直在處理由人工智慧編碼工具產生的數量不斷增長的拉取請求,一項新的研究用數據證實了許多程式碼審查員在工作上遇到的問題。這項研究來自 CodeRabbit,它對比了數百個開源專案中人工智慧協同編寫的程式碼與人類編寫的程式碼。研究結果追蹤了問題的數量、嚴重程度以及最常出現的問題類型。數據顯示,邏輯、正確性、可讀性和安全性方面存在一些反覆出現的風險,這些風險對安全性和可靠性團隊至關重要

CodeRabbit人工智慧總監David Loker表示:這些發現印證了許多工程團隊在2025年期間的預感,人工智慧編碼工具提高了產出,但同時也帶來了可預測、可衡量的弱點,企業必須積極採取措施來緩解這些弱點

 

每個拉取請求的問題數量更多

該研究分析了使用自動化工具審查的 470 個GitHub pull request,其中,320 個被標記為 AI 共同撰寫,150 個被視為人工撰寫。為了便於比較,研究結果已標準化為每 100 個 pull request 中的問題數。

AI輔助的拉取請求整體上產生了約1.7倍的問題。平均而言,AI輔助的拉取請求包含10.83個發現結果,而人工提交的拉取請求平均包含6.45個。分佈情況也呈現更大的波動,在第90百分位,AI輔助的拉取請求平均每次更改產生26個問題,是人工提交基線值的兩倍以上。

這意味著審核工作量更大,合併前需要花費更多時間進行變更分類。較高的問題數量在整個資料集中反覆出現,而不是集中在少數異常值。

 

嚴重程度隨音量增加而加劇

隨著問題總數的增加,問題的嚴重程度也隨之增加。以每 100 個拉取請求為基準進行標準化後,人工編寫程式碼中的關鍵問題數量從 240 個增加到 AI 協同編寫程式碼中的 341 個,增幅約為 40%。重大問題數量從 257 個攀升至 447 個,增幅約 70%。

細微瑣碎的問題也隨之增多,加重了審核人員的工作量。更多且更嚴重的缺陷意味著,人工智慧輔助修改後需要更嚴格的審查,以防止缺陷進入生產系統

 

邏輯和正確性主導了這一差距

邏輯和正確性問題是差異最大的類別。這些問題包括業務邏輯錯誤、配置錯誤、缺少錯誤處理以及不安全的控制流程,人工智慧參與編寫的拉取請求總體上產生了約 75% 的邏輯和正確性問題。

在人工智慧產生的變更中,演算法和業務邏輯錯誤出現的頻率是之前的兩倍以上,錯誤和異常處理方面的不足也幾乎翻了一番,與錯誤排序、缺失依賴項和併發濫用相關的問題也增加了近一倍。

空指標和類似的解引用風險遵循相同的模式,這些發現與事件風險直接相關,尤其是在具有複雜控制路徑或共享狀態的服務中。

 

AI輔助拉取要求

可讀性和可維護性會拖慢團隊進度

相對增幅最大的是影響程式碼審查速度和長期維護的程式碼品質類別,人工智慧參與編寫的拉取請求中,可讀性問題的出現頻率是人工編寫的三倍多,格式問題的出現頻率幾乎是人工編寫的三倍,命名不一致的情況也增加了近一倍。

這些問題雖然很少導致立即中斷,但卻增加了維修人員和審核人員的認知負擔。隨著時間的推移,它們導致審計難度增加、新用戶入職速度變慢,以及安全審查過程中摩擦增大。

 

安全漏洞在常見弱點類型中均增加

在人工智慧輔助程式碼中,安全相關問題也持續增加。總體而言,安全問題數量增加了約 1.5 倍。密碼處理不當的問題尤其突出,人工智慧輔助代碼的拉取請求中此類問題出現的頻率幾乎是其他代碼的兩倍。這些問題包括硬編碼憑證、不安全的雜湊演算法以及臨時拼湊的身份驗證邏輯。

不安全的物件參考出現頻率幾乎翻了一番,注入式漏洞(包括跨站腳本攻擊)也有所增加。不安全的反序列化漏洞增加了約 80%。

這些弱點與安全團隊熟悉的類別相符。它們在人工智慧生成的程式碼中出現頻率更高,一旦審查未能發現,就會增加其暴露風險。

 

效能問題出現頻率較低,但會突然激增

總體而言,效能問題出現的頻率有所降低,但人工智慧產生的程式碼在某些方面卻出現了顯著增加。人工智慧參與編寫的拉取請求中,過多的輸入輸出操作出現的頻率幾乎是其他程式碼的八倍。例如,重複讀取檔案和不必要的網路呼叫,這些模式會降低系統在負載下的效能,並使容量規劃變得複雜。

 

人類仍然會跌倒的地區
少數類別的問題在人工編寫的程式碼中出現頻率較高,拼字錯誤在人工提交的拉取請求中更常見,這可能反映了人工編寫的程式碼更多地使用了註釋和文件,可測試性問題在人工提交的程式碼中也略微更常見,這些差異並沒有改變正確性、安全性和可維護性的整體趨勢。

資料來源:https://www.helpnetsecurity.com/2025/12/23/coderabbit-ai-assisted-pull-requests-report/
 
CodeRabbit 最新研究顯示,雖然 AI 輔助編碼能提升產出,但 AI 產生的 Pull Request (PR) 存在更多隱憂。研究指出,AI 輔助的 PR 包含的問題數量是人類的 1.7 倍,且在邏輯錯誤、程式碼可讀性及安全弱點(如硬編碼憑證)方面的風險顯著增加。本文深入分析 AI 協作開發對軟體安全性與維護成本的長期影響。