AI生成コードの検証フロー: 速く作るために、確認を仕組みにする
AIを使うと、実装の初速はかなり上がります。
しかし、AIが生成したコードをそのまま信じると危険です。動きそうに見えても、既存仕様とズレていたり、例外ケースが抜けていたり、不要な依存を追加していたりすることがあります。
AI駆動開発で大切なのは、AIに速く書かせることだけではありません。
AIの出力を安全に確認する流れを作ることです。
AI生成コードは提案として扱う
まず前提として、AIが出したコードは完成品ではありません。
レビュー前のたたき台、または実装案の一つとして扱うのが安全です。
AIの出力には、次のような問題が混ざることがあります。
- 存在しない関数やAPIを使う
- 既存の設計方針と違う実装をする
- エラーケースを無視する
- 型だけ合わせて実際の挙動が違う
- 不要なライブラリを追加する
- セキュリティ上危ない処理を入れる
見た目が自然でも、プロジェクトの文脈に合っているとは限りません。
検証は最後ではなく途中に入れる
AIに大きな実装を一気に任せると、後から確認する範囲が広くなります。
検証を最後にまとめて行うのではなく、途中に挟む方が安全です。
おすすめの流れは次の通りです。
1. 要件整理
2. 影響範囲の洗い出し
3. 実装方針の比較
4. 最小変更で実装
5. テストケース作成
6. 差分レビュー
7. 動作確認
この流れなら、AIがズレた方向に進んだときも早く戻せます。
まず差分を見る
AIがコードを生成したら、最初に見るべきなのはファイル全体ではなく差分です。
確認したいのは、何を変えたかです。
- 変更ファイルは想定どおりか
- 変更量が大きすぎないか
- 関係ないリファクタリングが混ざっていないか
- 既存の命名や構成に合わせているか
- 新しい依存関係を追加していないか
AIは「よりよくする」つもりで、依頼していない箇所まで変えることがあります。
そのため、差分が小さく保たれているかを最初に確認します。
次に仕様との対応を見る
差分が想定範囲に収まっていたら、次に仕様との対応を確認します。
次のように、仕様と実装を対応づけて見ると漏れに気づきやすくなります。
仕様:
メールアドレス重複時は、フォーム下部にエラーメッセージを表示する
実装確認:
- APIエラーをハンドリングしているか
- 重複エラーとその他のエラーを区別しているか
- 入力値が消えないか
- 既存の必須チェック表示を壊していないか
AIにこの対応表を作らせるのも有効です。
今回の変更について、仕様と実装の対応表を作ってください。
未対応の仕様や曖昧な点があれば指摘してください。
テスト観点をAIに出させる
AIに実装させたあと、同じAIにテスト観点も出させると便利です。
ただし、AIが作ったテスト観点もそのまま信じるのではなく、人間が確認します。
依頼例です。
この変更に対して必要なテスト観点を出してください。
正常系、異常系、境界値、既存機能への影響に分けてください。
出てきた観点をもとに、実際に確認する項目を選びます。
最低限、次の分類で確認すると抜け漏れを減らせます。
- 正常系
- 異常系
- 権限・認可
- 既存機能への影響
- UI表示
- データ更新
- ログ・監視
動作確認結果を残す
AI駆動開発では、動作確認した結果を残すことも重要です。
なぜなら、後から「AIが作ったコードだけど、何を確認したのか」が分からなくなりやすいからです。
確認結果は簡単で構いません。
確認環境:
local / Node.js 24 / Chrome
確認したこと:
- 正常登録できる
- メールアドレス重複時にエラー表示される
- 入力値が保持される
- 既存の必須チェックが動く
未確認:
- 本番相当データでの確認
- 旧ブラウザでの表示
plainmark のように記事や実装メモに検証状態を残せる仕組みがある場合は、確認日、確認環境、レビュー期限もセットで残しておくと、あとから見直しやすくなります。
レビューで見るべき観点
AI生成コードのレビューでは、通常のレビューに加えて次の観点を見ます。
- AIが勝手に仕様を補完していないか
- 存在しない前提に依存していないか
- 変更範囲が依頼より広がっていないか
- 一見きれいだが、既存設計と合っていない実装になっていないか
- エラー処理が都合よく省略されていないか
- セキュリティや認可の確認が抜けていないか
AIのコードは、形が整っている分、違和感に気づきにくいことがあります。
そのため、見た目のきれいさよりも、仕様と既存設計に合っているかを優先して確認します。
まとめ
AI駆動開発で重要なのは、AIにコードを書かせることだけではありません。
AIの出力を検証する流れを作り、安心して使える状態にすることです。
差分を見る、仕様との対応を見る、テスト観点を出す、動作確認結果を残す。これらを習慣にすると、AIを使っても品質を落としにくくなります。
AIは開発を速くしてくれますが、最終的な判断は人間が行います。
だからこそ、確認を気合いではなくフローにしておくことが大切です。
この記事は役に立ちましたか?