前回との接続——テストの「中身」を具体化する

前回との接続——テストの「中身」を具体化する

前回のP-02では、不具合を見つけるテストと、原因を特定して直すデバッグを区別しました。今回はそのテストの中身、つまり「何を試せば不具合が見つかるのか」を具体化します。やみくもに何度も試すのではなく、入力を三つの型に分けて網を張る、という考え方です。この三分類は、このあと学ぶ単体テストや結合テストでも、確認すべき観点を洗い出す共通の物差しになります。

このスライドのポイント

  • P-02: 見つける活動=テスト、原因特定と修正=デバッグ、と区別した
  • 今回はテストの中身、「何を試せば不具合が見つかるか」を具体化する
  • やみくもに数を打つのではなく、入力を3つの型に分けて網を張る
  • この3分類はP-04以降の各テストでも共通の物差しになる

3分類の定義

3分類の定義

三つの言葉を定義します。正常系とは、期待どおりの正しい入力を与えたときの確認です。異常系とは、誤った入力や失敗する状況、たとえばA-08で扱った例外やH-07のエラー状態、J-06の不正な入力での確認です。境界値とは、条件の境目ちょうどと、その前後での確認を指します。E-05で触れた「ちょうど一万円」のような値であり、M-09で予告した境界の正式版にあたります。経験上、バグは境界と異常に住むと言われます。正常系のど真ん中よりも、境目やありえない入力のところに、不具合は潜みやすいのです。

このスライドのポイント

  • 正常系=期待どおりの正しい入力での確認
  • 異常系=誤った入力・失敗する状況での確認(A-08の例外、H-07のエラー状態、J-06の不正入力)
  • 境界値=条件の境目ちょうど・その前後での確認(E-05の「ちょうど1万円」、M-09で予告した境界の正式版)
  • バグは境界と異常に住む

なぜ必要か——AIは正常系しか確認しない

なぜ必要か——AIは正常系しか確認しない

この三分類を知らないと、正常系を一度試しただけで「動きました」と判断してしまいます。ここで大切なのは、AIは正常系しか確認しない前提で考えることです。AIが自分で出力を確かめるときも、見ているのはほぼ正常系だけです。その結果、一万円ちょうど、ゼロ円、マイナスの値、空欄、極端に大きな値といった入力が、すべて未確認のまま公開されてしまいます。不具合が住みやすい場所を、まるごと素通りしてしまうわけです。

このスライドのポイント

  • 正常系を1回試しただけで「動きました」と判断してしまう
  • AIは正常系しか確認しない前提で考える(AIの自己確認もほぼ正常系のみ)
  • 1万円ちょうど・0円・マイナス・空欄・巨大値が全部未確認のまま公開される
  • 不具合が住みやすい場所をまるごと素通りしてしまう

構造——観点表と境界値の数直線

構造——観点表と境界値の数直線

三分類は、観点を洗い出すための表として使います。正常系・異常系・境界値の三つの行を用意し、それぞれにどんな入力を試すかを書き出していきます。特に大切なのが境界値の考え方です。たとえば「一万円以上は上長承認」というルールがあるなら、境目である一万円を数直線の上に置き、その直前の九千九百九十九円、ちょうどの一万円、直後の一万一円という三点を必ず確認します。境目のどちら側に入るかで挙動が変わるため、この三点のずれこそが不具合の温床になるのです。

このスライドのポイント

  • 3分類を、テスト観点を洗い出す表として使う(3つの行に入力を書き出す)
  • 境界値は数直線で考える: 境目とその前後の3点を打つ
  • 「1万円以上は上長承認」なら 9,999円/10,000円/10,001円 の3点
  • 境目のどちら側に入るかで挙動が変わる場所が不具合の温床

具体例——承認ルールを3分類で洗い出す

具体例——承認ルールを3分類で洗い出す

実際にJ-07で扱った「一万円以上は上長承認」の機能で、テスト観点を三分類に沿って並べてみます。正常系は、五千円を入れたら自動承認される、という確認です。境界値は、九千九百九十九円・一万円・一万一円の三点で、それぞれ承認が要るか要らないかを確かめます。異常系は、マイナスの金額、空欄、金額欄に文字を入れた場合に、きちんとエラーになるかの確認です。こうして分類に沿って考えるだけで、七つの観点がわずか数分で出そろいます。行き当たりばったりに試すより、はるかに漏れが少なくなります。

このスライドのポイント

  • 対象: J-07の「1万円以上は上長承認」機能
  • 正常系: 5,000円 → 自動承認される
  • 境界値: 9,999円/10,000円/10,001円 の3点で承認要否を確認
  • 異常系: マイナス・空欄・文字列を入れたらエラーになるか
  • 分類に沿うだけで7観点が数分で出そろう

技術サンプルカード——3分類の観点表

技術サンプルカード——3分類の観点表

スライドの表が、先ほどの観点を一枚にまとめた完成形です。種別は表形式で、目的は承認ルールのテスト観点を三分類で洗い出すことにあります。読み方のポイントは、この表がM-09で学んだ受入条件を、さらに具体的な入力と期待結果まで詳細化したものだという点です。つまりこの表は、AIの出力が正しいかを判定する検収基準そのものになります。AIへの質問例としては、この機能のテスト観点を正常系・異常系・境界値で列挙してください、境界の値は境目とその前後を含めてください、と頼むとよいでしょう。

混同しやすい概念——量と構造

混同しやすい概念——量と構造

混同しやすいのは、たくさんテストすることと、三分類で網を張ることの違いです。前者は量の話で、後者は構造の話です。同じ正常系の入力を百回繰り返しても、それは百回とも同じ場所を確かめているだけで、境界にひそむ一個の不具合は見つかりません。大事なのは回数ではなく、正常系・異常系・境界値という異なる場所に、それぞれ網をかけることです。少ない回数でも、三つの型を押さえれば漏れは大きく減ります。

このスライドのポイント

  • 「たくさんテストする(量)」vs「3分類で網を張る(構造)」
  • 正常系を100回やっても、境界にひそむ1個は見つからない
  • 大事なのは回数ではなく、異なる場所に網をかけること
  • 少ない回数でも3つの型を押さえれば漏れは大きく減る

バイブコーディングでの確認点

バイブコーディングでの確認点

バイブコーディングでの確認点です。AIが「テストしました」と言ってきたら、それを鵜呑みにせず、異常系と境界値は含まれていますか、確認した観点の一覧を見せてください、と定型で返しましょう。AIは正常系しか確認しない前提に立てば、この問い返しが、抜けた網を埋める役割を果たします。テストは、AIの出力を受け入れてよいかを判断する検収装置です。観点の一覧を出させることで、どこが未確認かが目に見えるようになり、公開の判断を人間が握れます。

このスライドのポイント

  • AIの「テストしました」には定型で問い返す
  • 質問例:「異常系と境界値は含まれていますか。確認した観点の一覧を見せてください」
  • AIは正常系しか確認しない前提に立てば、この問い返しが抜けた網を埋める
  • テストはAIの出力を受け入れてよいかを判断する検収装置

まとめと一問一答

まとめと一問一答

最後に一問一答です。バグが最も住み着きやすいのは、三分類のうちどこでしょうか。……答えは、境界値と異常系です。正常系のど真ん中ではなく、境目とありえない入力のところに、不具合は潜みます。三十秒でまとめます。テストすべき入力は、正常系・異常系・境界値の三つに分けて網を張る。AIは正常系しか確認しない前提で、異常系と境界値を自分から足す。バグは境界と異常に住む、この一言を覚えておいてください。次回は、この観点を確認する階層の一段目、単体テストに進みます。関連資料は「テスト観点プロンプト50」と「AIアプリの品質評価シート」です。

このスライドのポイント

  • 一問一答:「バグが最も住み着きやすいのは3分類のどこ?」→ 境界値と異常系
  • 30秒まとめ: 入力は正常系・異常系・境界値に分けて網を張る
  • AIは正常系しか確認しない前提で、異常系と境界値を自分から足す
  • 次回: 確認の階層の1段目、単体テスト(P-04)へ
  • 関連資料: 「テスト観点プロンプト50」「AIアプリの品質評価シート」