AI生成コードをどう安全に使うか――決定論的検証とAutoFixで築く品質保証ワークフロー

2026年9月15日〜16日に開催された「インプレス AI Days 2026」より、テクマトリックスのセッションレポートを紹介する。

木村 慎治

6:30

Sponsored by:

提供:テクマトリックス株式会社

生成AIによるコーディングが広がる一方、AIが生成したコードの脆弱性や品質、OSS(オープンソースソフトウェア)ライセンスへの対応が課題となっている。「インプレス AI Days 2026」に登壇したテクマトリックスの奥村和生氏は、MCP(Model Context Protocol)を活用したAutoFixの仕組みや、AIによる自動修正後も人が最終判断を担う実践的な開発ワークフローを紹介し、AIと決定論的な検証ツールを組み合わせる品質保証の考え方を解説した。

AIでコード作成は高速化するが、そのまま本番環境では使えない

AIの普及に伴い、ソフトウェア開発現場の様相は大きく変化している。AIやLLMの利用が本格化した2022年以降も、主要なプログラミング言語の開発者数は減少するどころか増加傾向にある。IPA(情報処理推進機構)の「2025年度ソフトウェア動向調査」によれば、生成AIを全社または部署単位で導入済みの企業は60%強に上り、試験利用まで含めると80%弱に達している。

「AIは人を置き換える存在ではなく、需要増加と開発の高度化を背景に、現場の生産性を支える不可欠な技術になりつつあります」(奥村氏)

写真:テクマトリックス株式会社 ソフトウェアエンジニアリング事業部 ソフトウェアエンジニアリング技術第1部1課 奥村 和生氏

一方で、AIにコードを書かせればそれだけで開発が完了するわけではない。複数言語のコーディングタスクにおいてAI生成コードの45%にセキュリティ上の欠陥が含まれていたとする調査や、別の研究でも生成コードの約40%が安全でないコードだったという結果が報告されている。SQLインジェクションやクロスサイトスクリプティングなど、AIの生成コードにも深刻な脆弱性が入り込む可能性があり、そのまま本番環境に投入できるとは限らない(図1)。

図1:AIでコード作成は高速化する一方、レビュー・解析・テスト・OSS管理の重要性は高まる

コード品質やライセンスコンプライアンスに関しても課題は多い。主要LLMによる生成コードの約1〜2%において既存OSSと同一性の高いコードが確認され、開発者が気付かずに利用すれば意図せぬライセンス違反を引き起こすリスクがある。さらに、AI活用の拡大に伴い開発者当たりのバグ発生数は2025年の9%増から2026年には54%増へと加速度的に悪化しているとの調査や、AI起因の問題が修正数より新たに生じる数の方が多く、最新コードに残存してしまう傾向を示す研究も存在する。

こうした状況は開発者のタスクの比重も変えていく。AIによってコーディングや調査などの定型的・単純作業は大幅に効率化される。その半面、大量に生成されたコードの妥当性を確認するための人手によるレビュー、コーディング規約をチェックする静的解析、網羅性を確保する動的解析、OSSリスク管理といった検証作業の重要性はますます高まる。

「コード作成自体は格段に効率が上がります。一方で、レビューや解析、テスト、OSS管理といった作業は、むしろ増えていくと考えています」(奥村氏)

コード作成が高速化・大量化するからこそ、その生成物をどう検証し、安全なソフトウェアとして品質を確保するかが重要になる。

なぜAIにAI生成コードの品質保証を任せられないのか

では、AIはソフトウェア開発のどの領域までを担えるのか。ドキュメント生成やテストコード作成、コード補完といった定型作業はAIが力を発揮しやすい。一方で、アーキテクチャの構造設計やハードウェア依存のタイミング設計、安全設計など、重大な判断を伴う領域には不向きである。

「基本的にはAIでコードを書き、設計とテストは人間が担うという方向性が主流になっていくと考えています」(奥村氏)

テストコード作成自体はAIで効率化できても、生成コードが品質基準を満たしているかという検証までAI任せにすべきではない。その理由はAIが持つ「非決定論性」にある。AIはプロンプトや学習データなどコンテキストの揺らぎによって出力結果が変動する。

「検証プロセスは、繰り返し実行しても常に同じ結論が得られることが大前提です。再現性が担保できない以上、AIによる検証プロセスを主体にはできません」(奥村氏)

非決定論的なAIでは一貫した品質保証ができず、課題を排除しきれない。また、AIだけで検証を繰り返せば実行ごとにトークンを消費しコスト課題も膨らむ。これに対し、人や静的・動的解析ツールによる検証は「決定論的」なプロセスである。同じコードに対し常に同一の判定ロジックで結果を返すため、一定の基準に従って課題を排除でき、一貫性のある品質確認が可能となる(図2)。

図2:非決定論的なAIだけに検証を任せず、決定論的なツールで品質を確認する

そこで求められるのが、AIによるコード生成・修正と、決定論的な検証ツールを組み合わせるハイブリッドなアプローチである。AIと従来の検証手法を明確に役割分担させることが、これからの現実的なワークフローとなる。

AIと決定論的ツールを組み合わせる「品質ゲート」型ワークフロー

実践的な運用方法として示されたのが、開発プロセス上に複数の「品質ゲート」を設け、問題を検出するたびに修正と再検証を繰り返すハイブリッドワークフローである。AIや人間が生成・編集したソースコードに対し、必ずツールによる解析・検証のゲートを通すプロセスを構築する。

フローの最初に行うのがOSSの検出である。利用中のコードにライセンス上の問題やOSS由来の脆弱性がないかを確認し、問題があれば品質ゲートで処理を止めて開発者へフィードバックする。通過後は静的解析によって脆弱性やバグ、コーディング規約への準拠を確認する。さらにソースコードをビルドし、動的解析として単体テストやカバレッジ計測を実施して問題がないことを検証する(図3)。

図3:OSS検出や解析を品質ゲートとし、問題があればAIで修正して再検証する

「各品質ゲートで問題がレポートされた場合は、開発者がAIを用いて問題を修正し、再度一連のフローを実行します」(奥村氏)

重要なのは、AIによる修正をそのまま正解とは見なさないことである。問題が見つかれば人間がAIを利用してコードやテストを修正し、もう一度決定論的なツールによる検証を実行する。すべての品質ゲートを通過し品質が担保されるまで、生成、分析、修正、再検証のフィードバックループを継続的に回す。これらの検証フローは、CIツールと連携させて自動化するのが効果的だ。

品質ゲートを構成する具体的なソリューションとして、C/C++向けの「C/C++test」とC#/VB.NET向けの「dotTEST」は、静的解析による脆弱性やバグ検出などに利用できる。機能安全規格の準拠を支援する動的解析ツール「C/C++test CT」は、GoogleTestなどのユニットテストフレームワークと連携したコードカバレッジ計測や要件テストの管理をサポートする。OSS管理ツール「FossID」は、ソースコードをスキャンしてOSSやスニペットを検出し、意図せぬライセンス違反や脆弱性の混入を防ぐ役割を担う。

ここまでのワークフローでは、フィードバックを受けてAIを活用し修正を行う主体はあくまで「人間」であった。このプロセスをさらに自動化するステップとして、AIエージェントが修正プロセス自体を自律的に担う「AutoFix」のワークフローが存在する。

MCPで検証結果をAIに連携し、AutoFixによる修正ループを構築

AutoFixのワークフローにおいて鍵となるのが、検証ツールとAIエージェントをシームレスにつなぐMCP(Model Context Protocol)サーバーの存在である(図4)。

図4:MCPを介してAIが自動修正し、人のレビューと品質ゲートを経てマージする

「C/C++test」や「dotTEST」、「C/C++test CT」などに搭載されているMCPサーバーは、解析レポートやルールの詳細情報、カバレッジデータなどをAIエージェントに直接提供する。AIは定義されたSkills(指示)に従い、これらの確実なデータをコンテキストとして参照しながら、特定違反に適したルール提案を行ったり、コード修正やテストケース追加を自律的に行ったりする。非決定論的なAIに対し、決定論的ツールが出力した情報を渡すことでコンテキストの揺らぎを抑え、意図に沿った精度の高い修正を実現する仕組みである。

デモでは、プルリクエストを契機に静的解析が実行され、14件の違反検出により自動品質ゲートがマージをブロックする様子が披露された。その後、AIエージェントが修正用の新規ブランチを作成し、違反解消と再解析のフィードバックループを自律的に繰り返す。すべての違反が解消された段階で、AIから元のブランチに向けて修正内容のプルリクエストが作成される。

ただし、AIが自動修正したコードが無条件で採用されるわけではない。担当開発者がAIから提出された修正内容とその説明をレビューし、承認するか却下するかを最終判断する。デモでも、人間が承認した後に静的解析が再実行され、違反がないことを確認したうえでマスターブランチへのマージが許可された。

「AIにすべてを任せるというよりも、開発者の責任を免除することなく、作業効率を上げていくことが根源的な考え方になります」(奥村氏)

問題修正プロセスまでをAIで自動化したとしても、最終的な品質判定や承認までAI任せにすることはない。決定論的なツールによる再現性のある品質保証プロセスの中でAIを活用し、最後は必ず人間がレビューして判断を下す。AIによる自律的な自動化と、ツールによる一貫した品質保証、そして人間の開発者による責任を適切に組み合わせることこそが、安全で実践的な品質保証ワークフローの姿である。

【問い合わせ先】
テクマトリックス株式会社
Webサイト:https://www.techmatrix.co.jp/product/quality.html 

Sponsored by:

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored