用語集 · テストの基礎
テストシナリオ(Test Scenario)
英語: Test scenario
別名: test scenarios, テストシナリオとは, シナリオテスト
定義
「保存済みカードでの決済を検証する」のように、テストすべきユーザーの目的や機能を高いレベルで記述したもので、後からテストケースに分解されます。
テストシナリオは、どうテストするかではなく、何をテストするかを記述したものです。通常はユーザーの目的や機能の一部を表す 1 行の文で、ユーザーの視点から書かれます。シナリオは書くのもレビューするのも手早くできるため、詳細なテストケースに労力を投じる前に、プロダクトや開発とカバレッジについて合意するのに適しています。
例
パスワードリセット機能のシナリオは、たとえば次のようになります。
- 登録済みユーザーが、メールで届いたリンクからパスワードをリセットできることを検証する。
- 未登録のメールアドレスでリセットを要求しても、アカウントの存在有無が明かされないことを検証する。
- 有効期限切れのリセットリンクが拒否されることを検証する。
- リセットリンクを 2 回使えないことを検証する。
- 新しいパスワードがパスワードポリシーを満たす必要があることを検証する。
シナリオ 3 は、具体的なデータを使った複数のテストケースになります。有効期限の 1 分前、ちょうど期限時刻、1 分後に使われたリンク、そしてトークンが改ざんされたリンクです。
シナリオとテストケースの違い
| テストシナリオ | テストケース | |
|---|---|---|
| レベル | 高い:何をテストするか | 詳細:どうテストするか |
| 内容 | 1 行の目的 | 事前条件、データ、手順、期待結果 |
| 数 | 機能ごとに少数 | シナリオごとに複数 |
| 適した用途 | カバレッジのレビュー、変化の速いプロジェクト | 実行、自動化、監査 |
BDD におけるシナリオ
Gherkin の Scenario: は、具体的な手順と例を含むため、従来の意味でのテストシナリオよりもテストケースに近いものです。誰かが「シナリオ」と言ったときは、どちらの意味なのかを確認しましょう。
よくある間違い
- 目的ではなく手順を書く。 「リセットボタンをクリックする」は手順であって、シナリオではありません。
- ハッピーパスだけ。 欠陥の多くが潜んでいるのは、ネガティブ、境界値、セキュリティのシナリオ(上の 2 番など)です。
- レビューを省く。 シナリオの主な価値は、テスター以外の人でも読めて、抜けているケースを早い段階で見つけられることです。