テストケース生成プロンプト:エッジケースを網羅するテスト仕様書の作らせ方
テスト仕様書の作成は、重要ですが退屈な作業です。人間がやると、どうしても「正常系(Happy Path)」ばかり書いてしまい、異常系や境界値(Edge Case)がおろそかになりがちです。
AIは「網羅性」において人間を凌駕します。適切なプロンプトを与えれば、人間が思いつかないような意地悪なテストケースを瞬時に列挙してくれます。
基本プロンプト:テスト技法の指定
単に「テストケースを作って」と頼むのではなく、テスト技法(Testing Techniques)を明示するのがコツです。
プロンプト例
# Role
あなたは熟練したQAエンジニアです。
# Task
以下の「機能要件」に基づいて、網羅的なテストケースを作成してください。
以下のテスト技法を必ず考慮に入れ、エッジケースを漏らさないようにしてください。
# Testing Techniques
1. **境界値分析 (Boundary Value Analysis)**: 有効範囲のギリギリの値(最大値、最小値、最大値+1、最小値-1)。
2. **同値分割 (Equivalence Partitioning)**: 有効な入力グループと無効な入力グループ。
3. **異常系 (Error Handling)**: 空入力、不正な文字種、ネットワークエラー、タイムアウト。
4. **セキュリティ (Security)**: SQLインジェクション、XSS、権限昇格の試行。
# Functional Requirement
ユーザー登録フォーム:
- ユーザー名は4文字以上20文字以内の英数字。
- パスワードは8文字以上、大文字・小文字・数字を含むこと。
- メールアドレスの形式チェック必須。
出力例
このプロンプトを使うと、以下のような品質の高いテストケースが出力されます。
| No. | カテゴリ | テスト内容 | 入力値 | 期待値 |
|---|---|---|---|---|
| 1 | 境界値 | ユーザー名(最小長-1) | abc (3文字) | エラーメッセージ表示 |
| 2 | 境界値 | ユーザー名(最小長) | abcd (4文字) | 登録成功 |
| 3 | 境界値 | ユーザー名(最大長) | a...z (20文字) | 登録成功 |
| 4 | 境界値 | ユーザー名(最大長+1) | a...z1 (21文字) | エラーメッセージ表示 |
| 5 | 変則系 | メールアドレス(全角) | test@example.com | 半角に変換orエラー |
| 6 | セキュリティ | SQLインジェクション | ' OR '1'='1 | エラーまたはサニタイズ |
応用:Gherkin記法での出力
CucumberなどのBDD(振る舞い駆動開発)ツールを使っている場合は、出力形式をGherkin(Given-When-Then)に指定することも有効です。
# Output Format
Please output in Gherkin syntax (Feature file).
結論:AIは「テストの相棒」
AIが生成したテストケースをそのまま使うのではなく、人間が「この観点は必要か?」「ビジネスロジックに合っているか?」をレビューすることで、テスト設計の質は飛躍的に向上します。
「テストを書くのが面倒」という心理的ハードルを下げ、品質の高いソフトウェアを世に出すために、AIプロンプトを活用しましょう。