AI導入

AI要件定義で最初に作るテストケース

株式会社Atsumell|7分で読めます
AI要件定義でテストケースを先に作る考え方を示す図

# AI要件定義で最初に作るテストケース

AI要件定義の相談を受けると、最初に出てくるのは機能の話だ。

Slackを読ませたい。Gmailも見せたい。CRMにタスクを入れたい。カレンダーも触らせたい。並べ方としては自然だし、見た目にも分かりやすい。だが、現場で止まるのはそこではない。

本当に詰まるのは、「そのAIに何をさせるか」ではなく、「そのAIが正しく動いたと言える条件は何か」だ。ここを先に決めないと、あとから実装がいくら進んでも、誰も合格判定を出せない。

OpenAIの A Practical Guide to Building AgentsAgent evals が示しているのも、結局はそこだ。エージェントは動かすだけでは足りない。測れる形にして、振り返れるようにして、止める条件まで決める必要がある。

だからAI要件定義は、機能一覧から始めるより、テストケースから始めた方が早い。

テストケースが先だと、曖昧さが一気に見える

仕様書はきれいに見える。だが、AIに渡すとたいてい曖昧さが露出する。

たとえば「商談後のフォローを支援するAIエージェント」を作るとする。機能一覧だけなら簡単だ。

  • メールを読む
  • 返信案を作る
  • タスクを起こす
  • Slackに報告する

ここまでは誰でも書ける。ところがテストケースにすると、急に話が細かくなる。

  • 社外秘の話題が混ざっていたらどうするか
  • 返信すべき相手が複数いたら誰を優先するか
  • 既にタスクがあったら重複を避けるか
  • 危ない送信直前で止めるか
  • いつ人間にエスカレーションするか

この違いは大きい。

機能一覧は「できそう」に見せる。テストケースは「決めていないこと」をあぶり出す。

アツメルでも、仕様をAIが扱いやすい形に切り直すと、初稿の作成時間が約40%短くなることがある。効いているのは魔法のプロンプトではない。先にケースを置いて、迷う余地を減らしているからだ。

AI要件定義で先に書くべき3種類のケース

AIの要件は、だいたい次の3種類に分けると崩れにくい。

種類見るもの失敗しやすい点
正常系何も問題がない時にどう動くか期待がふわっとしている
判断分岐系条件が曖昧、情報が足りない時にどうするかAIが勝手に埋める
停止系危険な操作や不適切な入力をどう止めるか止める条件が書かれていない

1. 正常系

これは一見、いちばん簡単だ。

ただしAIでは油断しやすい。たとえば「案件メールが来たら、フォロー文面を下書きする」と書いても、何を含めるかで結果は変わる。

  • 件名は既存スレッドに合わせるのか
  • 口調は顧客に合わせるのか
  • 添付ファイルへの言及は入れるのか
  • 担当者が複数いる時はCCをどうするのか

正常系のテストは、「普段ならこうなる」を具体化する作業だ。ここが曖昧だと、AIの出力は毎回それっぽいのに毎回少しずつ違う、という厄介な状態になる。

2. 判断分岐系

実務で一番価値が出るのはここだ。

AIは、条件が少し足りないだけで勝手に補完する。人間が見れば「まあそうだよね」で済むことでも、業務では勝手な補完が事故になる。

たとえばこんなケースだ。

  • 返信先が1件ではなく2件ある
  • 期限が書かれていない
  • 顧客名はあるが案件名がない
  • 参照してよい資料と、見てはいけない資料が混ざっている
  • 一見普通だが、実は送信前の確認が必要

この手のケースを先に書いておくと、要件定義は一段深くなる。

「AIが判断してくれる」ではなく、「どこまで判断してよいか」を決める話に変わるからだ。

3. 停止系

AI要件定義で抜けやすいのが、止める条件だ。

止める条件がないと、AIはどんどん前に進もうとする。便利そうに見えるが、危ない。

たとえば次のようなものは、最初からケース化しておくべきだ。

  • 社外送信前に機密語が含まれていた
  • CRM更新で重複候補が出た
  • 日程変更がオーナー権限に触れる
  • 個人情報の範囲が広すぎる
  • 指示文に「急ぎ」「とにかく送って」だけが書かれている

ここを詰めると、要件は権限設計とつながる。

読むだけでよいのか、下書きまでか、保存までか、送信までか。線を引けるようになる。

テストケースは、そのまま権限表になる

AIの要件定義がうまくいかない理由の一つは、仕様書と権限表が別物として書かれていることだ。

本当は一緒に考えた方がよい。

たとえば、MCPの ResourcesTools の分け方は分かりやすい。読むための文脈と、動かすための手段を分ける。AI要件定義でも同じで、テストケースがその境界を言葉にしてくれる。

さらに OWASP Top 10 for LLM Applications を見ると、プロンプトインジェクションや過剰な権限付与は、机上の空論ではない。だから「読んでよい範囲」と「実行してよい範囲」をケースに落としておく意味がある。

このとき便利なのは、次の4項目だ。

  • 参照してよいデータ
  • 実行してよい操作
  • 人間承認が必要な操作
  • 失敗時の止まり方

この4つが書けると、AI要件定義はかなり実務的になる。逆に、この4つが書けないなら、まだ導入するには早い。

具体例は、朝会前の準備業務で十分だ

最初の題材は、大きくしなくていい。

朝会前に、今日の予定、期限が近いタスク、未返信候補、重要なSlack、商談メモをまとめる。これくらいの準備業務で十分だ。

この題材はテストケースが作りやすい。

ケース入力期待結果
予定が通常通りカレンダーに3件、未返信2件重要度順でまとめる
期限が曖昧タスクに日付なし推測せず、要確認として出す
機密が混入外部向けNGのメモありマスキングして止める
重複あり同じ案件の未返信が複数ひとつに束ねる
送信前確認が必要顧客名と送信文面が揃う人間承認に回す

このくらいでいい。むしろ最初から完璧を狙うと、要件定義が重くなる。

アツメルでも、実際に効くのは「全部をAIに任せる設計」ではない。まずは読ませる、次に下書きさせる、最後に人間が確定する。この順番にすると、仕様の切り方が自然に決まる。

先にテストケースを書くと、会話が速くなる

テストケースから始めると、会話の質が変わる。

「この機能は要るか」ではなく、「このケースを通すために何が要るか」で話せるからだ。すると、関係者の認識もそろいやすい。

OpenAIの guardrails や、AIの実行設計に関する考え方を見ても、結局は同じところに戻る。危ない入力をどう止めるか。どこで人間に戻すか。どの出力を合格とするか。

AI要件定義を言い換えるなら、これは「AIに仕事を頼む前の採点表づくり」だ。

だから最初に書くべきなのは、機能一覧ではない。

1件でいいから、壊しにいくテストケースだ。

その1件が書けた時点で、要件はもう半分できている。

関連記事

#AI要件定義#テスト設計#受け入れ条件#AIエージェント

AI仕様書エディタKakusillに興味がありますか?

無料トライアルで、AIと開発する体験をすぐにお試しいただけます。

お問い合わせ