AIにコードを書かせた後、誰が安全を確認しますか?現役SEが残す「公開前のチェック」7つ

AIにコードを書かせた後、誰が安全を確認しますか?現役SEが残す「公開前のチェック」7つ

記事
IT・テクノロジー
ChatGPT、Claude Code、Cursorでコードは作れます。

でも「動いた」と「公開して大丈夫」は、まったく別です。

画面が開いた。ボタンも押せた。だから本番へ出す。ここを一気に進むと、利用者が増えた瞬間に問題が出ます。

私も生成AIを使って実装やコードレビューを進めますが、最後に見るのはコードのきれいさだけではありません。データ、権限、同時利用、再実行、ログ、画面操作、更新後の確認まで見ます。

生成されたコードが悪いという話ではないんですよね。確認せず公開する流れが危ない、という話です。

1人の動作確認では見えない、本番の条件


ローカル環境で1人が使うと正常でも、サーバーで複数人が使うと状況は変わります。

実際、結果画面を開いている間、同じAPIへ何度もアクセスしているように見えるケースがありました。1回の処理は軽くても、複数人が同時に使えば呼び出しは積み上がります。

ほかにも、ブラウザ操作のE2Eテストでは、対象が見えているのにクリックがタイムアウトすることがあります。画面上の重なり、読み込み中の状態、対象要素の揺れ。コードだけ眺めても分からない問題です。

はい。「自分のPCでは動きました」は、公開許可証ではありません。

公開前に残す7つのチェック


1つ目は、入力値。

空欄、長すぎる文字、想定外の記号、0件、最大件数を試します。正常なサンプル1件だけで通すと、現場のデータに負けます。

2つ目は、権限。

ログインしていない人が画面やAPIへ直接アクセスできないか。一般ユーザーが管理機能を実行できないか。画面上でボタンを隠すだけでは足りません。

3つ目は、機密情報。

APIキー、パスワード、接続先、個人情報がソース、ログ、ブラウザの通信内容へ出ていないかを確認します。エラー表示へ接続情報をそのまま出すのも避けます。

4つ目は、二重実行。

ボタンを連打したとき、通信を再送したとき、処理途中で画面を閉じたときに、同じデータが二重登録されないかを見ます。

私は取込処理や外部連携では、処理済みを識別できる状態を重視しています。再実行できない仕組みは、失敗した瞬間に担当者を詰ませます。

5つ目は、同時利用。

2人が同じデータを更新したとき、後から保存した人が前の変更を消さないか。重い処理が人数分同時に走らないか。ロックの範囲やタイムアウトも確認します。

6つ目は、失敗時の記録。

利用者には分かる言葉で案内し、管理側には原因を追えるログを残します。「エラーが発生しました」だけでは、直す側もクッッッソ困ります。

7つ目は、更新後の確認。

1箇所直したことで別機能が壊れていないか。自動テスト、静的解析、フォーマット確認、実画面の操作を組み合わせます。

以前、検証スクリプトを回した際、75ファイルは問題なくてもE2Eテスト用の1ファイルがフォーマット違反で止まりました。別の検証ではブラウザのstrict modeやWindows権限で失敗したこともあります。

テストが落ちるのは面倒ですけど、本番利用者より先に落ちてくれたと思えば、かなり親切です。

ChatGPTへ任せる確認、人が持つ判断


ChatGPTやClaude Codeは、次の作業と相性が良いです。

・変更差分のレビュー
・重複処理や未使用コードの確認
・テストケースのたたき台
・入力チェックの抜け探し
・エラー処理の候補出し

一方、人が持つべき判断もあります。

・このデータを外部へ送ってよいか
・業務上、どこまでの誤差を許容するか
・失敗時に処理を継続するか止めるか
・誰にどの権限を与えるか
・本番公開の責任を誰が持つか

100件のテストケースを自動で作っても、重要な5件が抜けていれば安心できません。数で殴ったあとに言うのもなんですが、ケース数だけ増えて確認できなくなったら終わってます。

公開ボタンの前に置く、小さな関門


大げさな審査会を作る必要はありません。

最低限、公開前に次の記録を残します。

・何を変更したか
・影響する画面や処理
・実施したテスト
・確認できていないこと
・問題時の戻し方

特に「確認できていないこと」を残すのが大切です。全部安全だと装うより、未確認の範囲が分かるほうが判断できます。

AI生成コードを、安心して使えるコードへ


生成AIで実装速度は上がりました。

だからこそ、確認も同じ速度で飛ばしたくなります。私も画面が動くと、早く次へ進みたくなるんですよね(分かっているのに毎回うれしい)。

でも、本番で必要なのは「作れた」ではなく、「問題が起きても追えて、止められて、戻せる」です。

あなたは今ここまで読んでますよね?

ChatGPT、Claude Code、Cursorで途中まで作ったツールについて、公開前のコードレビュー、テスト追加、エラー原因調査、既存コードの引き継ぎに対応しています。何を確認すべきか分からない状態でも、ソースと現在の困りごとから優先順位を整理します。



サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す