AI code looks fine until the review starts
2025/12/23 HelpNetSecurity — ソフトウェア・チームが発表したのは、AI コーディング・ツールにより生成されるプルリクエストの増加を精査するという、この1年間にわたる調査の結果である。この新たなレポートにより、数多くのレビュー担当者が日常業務の中で感じてきた状況が、数値として裏付けられた。この調査は CodeRabbit が実施したものであり、数百のオープンソース・プロジェクトを対象に、AI が共同作成したコードと人間が作成したコードを比較している。そこで追跡されたのは、問題の件数/深刻度/発生頻度の高い問題カテゴリなどである。結果として示されたのは、ロジック/正確性/可読性/セキュリティで繰り返し発生するリスクが、セキュリティ/信頼性を重視するチームに直接的な影響を与えていることである。

CodeRabbit の AI Director である David Loker は、「これらの調査結果は、2025年を通して多くのエンジニアリング・チームが感じていたことを裏付けるものだ。AI コーディング・ツールは生産性を向上させるが、同時に予測/測定が可能な弱点も生み出すため、組織は積極的に軽減する必要がある」と述べている。
1つのプルリクエストあたりの問題数
この調査で分析されたのは、自動化ツールによりレビューされた 470 件の GitHub プルリクエストである。そのうちの 320件は AI 作成、150件は人間作成として分類され、比較の一貫性を確保するために、100 件のプルリクエストあたりの問題数を正規化している。
平均値の分析においては、AI プルリクエストに 10.83件の問題が含まれたのに対して、人間によるプルリクエストでは 6.45 件だった。つまり、AI によるプルリクエストは、人間によるプルリクエストの約 1.7 倍の問題を生成した。
分布も大きく変動し、90 パーセンタイルでは AI プルリクエスト問題が 26 件に達し、人間ベースラインの2倍以上となった。
それが示すのは、レビューの負荷を増大させ、マージ前の変更のトリアージにも時間を要するという結果である。問題数は外れ値に集中するのではなく、データセット全体で広く発生している。
件数の増加に伴い深刻度も高まる
発見された問題の増加に伴い、深刻度も高まる。100件あたりに正規化すると、重大な問題の発生率は、人間作成コードは 240 件から 341 件へと約 40% 増加した。AI 作成コードは 257件 から 447 件へと約 70% 増加した。
発見された問題の増加と深刻度の上昇により、AI によるコードの変更においては、不具合が本番システムに到達することを防ぐために、より綿密な検査が不可欠になった。軽微な問題も増加しているため、レビュー担当者の作業負荷が押し上げられている。
ロジックと正確性の問題が大きな差を形成
ロジックと正確性の問題が、最も大きな差異となっている。それらの問題に関連するのは、ビジネスロジック・エラー/ミスコンフィグ/エラー処理不足/安全でない制御フローなどの領域である。AI 作成プルリクエストでは、ロジックと正確性に関する問題が全体で約 75% 増加している。
AI が生成した変更では、アルゴリズムおよびビジネスロジック・エラーが、人間と比較して2倍以上となった。エラー処理および例外処理の不足も、ほぼ2倍である。また、シーケンス誤り/依存関係不足/コンカレント処理の誤用に関連する問題も2倍ほど増加した。
NULL ポインタや類似の参照解除リスクも、同様の傾向を示している。特に複雑な制御パスや共有状態を持つサービスでは、インシデント・リスクに直結する。
可読性と保守性の低下
レビュー速度および長期的な保守性に影響する、コード品質カテゴリが最も増加している。可読性の問題は AI 作成プルリクエストで3倍以上、フォーマット問題は3倍ほど、命名の不一致も約2倍となった。
これらの問題は、メンテナーやレビュアーの認知負荷を増加させる。即時的な障害を引き起こすことは少ないが、監査強化/オンボーディング遅延/セキュリティレビュー時の摩擦の増大に直結する。
一般的な脆弱性カテゴリでセキュリティ問題が増加
AI 支援コードでは、セキュリティ・カテゴリの問題も着実に増加している。全体的なセキュリティ問題は約 1.5 倍であり、不適切なパスワード処理は2倍ほどであった。それらの問題の原因として挙げられるのは、ハードコードされた認証情報/安全でないハッシュ選択/即席の認証ロジックなどである。
安全でないオブジェクト参照も2倍ほどになり、クロスサイト・スクリプティングなどインジェクション型の脆弱性も増加した。安全でないデシリアライゼーションは約 80% 増加した。
これらは、セキュリティ・チームに馴染みの深いカテゴリであるが、AI 生成コードでは頻度が高まるため、レビューで見落とした場合のリスクが高まる。
パフォーマンス問題は減少したが急増するパターンも確認
パフォーマンス問題の発生率は、全体として低下したが、AI 生成コードでは特定のパターンが急増した。過剰な入出力操作は約8倍となった。具体的な例として挙げられるのは、ファイル読み取りの繰り返しや、不要なネットワーク呼び出しなどである。
それらは、負荷時のシステム動作を悪化させ、高キャパシティ・プランニングを複雑化させる要因となる。
依然として人間がつまずく領域
いくつかのカテゴリでは、人間が作成したコードの方が問題の発生率が高かった。人間によるプルリクエストではスペルミスが頻繁に確認されたが、その原因として考えられるのは、コメントやドキュメントの多用である。また、テスト・コードの記述や対応 においても、人間の場合の方が問題が多かった。
AI が作成するコードを、CodeRabbit が調査した結果が紹介されています。この問題の原因は、AI が効率的にコードを生成できる一方で、プログラムの背景にある複雑なロジックや、システム全体の正確性を判断する能力が、まだ十分ではない点にあります。AI は過去の膨大なデータを学習していますが、個別のビジネス・ルールや例外的なエラー処理、安全な接続の維持といった、細かい配慮が必要な部分においてミスを犯しやすい傾向があります。その結果、人間が書くよりも多くの問題が取り込まれてしまい、セキュリティの面で確認の手間が増えています。ツールの便利さを活かしながら、最終的な品質を守るための丁寧なダブルチェックが、これまで以上に重要になっているようです。よろしければ、カテゴリー AI/ML も、ご参照ください。

You must be logged in to post a comment.