ここでは実例をもとにテストケースの作り方を学んでいきます。
🎯 テストケース作成の実例
📌 ケース:ログイン機能
■ 仕様
- メールアドレス+パスワードでログイン
- 正しい場合:ログイン成功
- 間違い:エラー表示
❌ ダメなテストケース(ありがち)
- 正しい入力 → OK
- 間違い → NG
👉 これでは全然足りない
✅ 良いテストケース(実務レベル)
① 正常系
| No | 条件 | 入力 | 期待結果 |
|---|---|---|---|
| 1 | 正常 | 正しいメール・パスワード | ログイン成功 |
② 異常系(基本)
| No | 条件 | 入力 | 期待結果 |
|---|---|---|---|
| 2 | パスワード誤り | 正しいメール・誤パス | エラー表示 |
| 3 | メール誤り | 誤メール・正パス | エラー表示 |
| 4 | 両方誤り | 誤メール・誤パス | エラー表示 |
③ 境界値
| No | 条件 | 入力 | 期待結果 |
|---|---|---|---|
| 5 | 最小文字数 | 最短メール・最短パス | 成功 or エラー |
| 6 | 最大文字数 | 最大長の入力 | 正常処理される |
④ 異常入力(重要)
| No | 条件 | 入力 | 期待結果 |
|---|---|---|---|
| 7 | 空入力 | 空・空 | エラー |
| 8 | null | null値 | エラー |
| 9 | 不正形式 | メール形式でない | エラー |
⑤ 状態・制御
| No | 条件 | 入力 | 期待結果 |
|---|---|---|---|
| 10 | ロック状態 | ロック済アカウント | ログイン不可 |
| 11 | セッションあり | 既ログイン状態 | リダイレクト |
⑥ セキュリティ観点(差がつく)
| No | 条件 | 入力 | 期待結果 |
|---|---|---|---|
| 12 | SQLインジェクション | ' OR 1=1 |
ログイン不可 |
| 13 | XSS | <script> |
無効化 |
⑦ パフォーマンス・例外
| No | 条件 | 入力 | 期待結果 |
|---|---|---|---|
| 14 | サーバ遅延 | 通信遅い | タイムアウト処理 |
| 15 | DBエラー | DB停止 | エラーハンドリング |
🧠 このテストケースのポイント
① 観点で分けている
👉 正常・異常・境界・状態・セキュリティ
② 「壊れるパターン」を網羅
👉 成功確認だけではない
③ 実際の運用を想定
👉 ロック・セッション・エラー
🎯 作り方の手順(テンプレ)
これを使えば誰でも作れます👇
Step1:正常系を書く
👉 まず基本動作
Step2:異常系を書く
👉 間違った入力
Step3:境界値を入れる
👉 最小・最大
Step4:状態を考える
👉 ログイン済みなど
Step5:壊しにいく
👉 不正入力・攻撃系
Step6:例外を考える
👉 通信・DB・障害
⚠️ よくある失敗
- 正常系だけ
- 境界値なし
- データが雑
- 状態を無視
👉 これでは実務で通用しない