AIは速いです。
画面を作る。 APIをつなぐ。 フォームを置く。 テストも書く。
そして言います。
「実装は完了しました」
でも、本番事故はだいたい普通に1回使った場所の外側にいます。
完成したかどうかは、AIの報告ではなく、人間が壊しに行って確かめます。
まず「失敗してほしい場所」で試す
ログイン後に機能が動く。
それは必要です。
でも同じくらい大事なのは、
- 未ログインでは使えない
- 無料ユーザーは有料機能を使えない
- 決済前に高いAPI処理が走らない
- 決済失敗で権限だけ付かない
ことです。
成功する場所だけでなく、止まるべき場所でちゃんと止まるかを見ます。
画面と中の状態が同じかを見る
見た目は「完了」でも、データは処理中のままかもしれません。
支払いは済んだのに有料権限が付いていないこともあります。
エラー後にずっと「処理中」で固まることもあります。
開始。 処理中。 成功。 失敗。 再試行。
それぞれで、画面・保存データ・権限が合っているか見ます。
表札だけ新築で、中は工事中を防ぎます。
変な入力と変な操作をする
利用者は、開発者が想定した通りには触りません。
空欄を送る。 長文を入れる。 絵文字を入れる。 大きなファイルを投げる。 通信が切れる。 途中で戻る。 リロードする。 二重クリックする。
特に二重クリックは強いです。
小学生みたいな連打が、本番の二重課金を発見することがあります。
課金と無料枠は別で試す
AI APIを使うサービスでは、機能が動くかだけでなく、お金の境界も見ます。
無料枠を超えても使えないか。
複数アカウントで簡単に無料枠を回せないか。
APIを呼ぶ前に残量や権限を確認しているか。
エラーなのに料金だけ発生する流れになっていないか。
ここが壊れると、ユーザーより先に運営の財布が泣きます。
スマホで実際に触る
機能が正しくても、主要ボタンが画面の外なら使えません。
エラー文が「INTERNAL_ERROR_42」だけでも困ります。
スマホ幅で、
- 最初に押すボタンが見えるか
- 入力欄が切れないか
- エラー後に次の行動が分かるか
- 戻る操作で壊れないか
を確認します。
最後に「未確認」を残す
全部を試せないこともあります。
その場合は、確認したふりをしません。
確認済み:
- 通常操作
- 未ログイン
- 無料/有料の権限
- スマホ幅
未確認:
- 本番決済
- 実機iPhone
- 通信断
これで次に見る場所が分かります。
AIが速くなるほど、人間は検品係になる
AIにコードを書かせるほど、人間の仕事は「全部自分で実装する」から変わります。
何が正しい状態かを決める。
壊れる条件を考える。
実際に触る。
確認していない場所を残す。
AIの「完成しました」はゴールではありません。検品開始のチャイムです。
普通に1回動いたあとからが確認の本番
新しい機能を開いて、入力して、送信して、結果が出た。ここまで動くと安心したくなります。
でも利用者は、空欄で押す、連打する、戻る、更新する、スマホで開く、権限のない状態で触る、といった動きをします。
だから確認では「成功する道」だけでなく「変な道」を通します。
保存途中で閉じたらどうなるか。二重送信されないか。エラー後にもう一度試せるか。課金が絡むなら、失敗したのに処理済み扱いにならないか。ここまで見て初めて安心できます。
一本道だけ走って「迷路クリアしました」は、入口から出口が見えていた時だけです。
AIが作った機能ほど、作った本人の思い込みを持ち込みにくい第三者目線で触ることが重要です。
