シナリオテストについて
シナリオテストとは
ユーザーが一連の流れに沿ってシステムを問題なく利用できることを確認するためのテスト。ユーザー視点での確認を行うテスト技法である。開始から終了まで一連でつながっているものを指し、途中で場合分けなどが入った場合は2つのシナリオを用意してテストすることとなる。
シナリオテストの目的
システムを使用するユーザー目線で動作の一連の流れを確認すること。
メリット
- 複数のシステム、画面を含めた一連の流れでプロフダクトを確認できる
- 役割が異なる複数のユーザーが相互に連携する内容を確認できる
- 一連の流れの中で機能間での不整合を検出することができる
デメリット
- 細かいパターンまで網羅的に実施しようとすると時間がかかる
- シナリオとして定義された内容以外の問題点を見つけ出しにくい
シナリオテストの作成方法について
手順
- アクターの洗い出し
- シナリオ目的の洗い出し
- シナリオの詳細化(スタートからゴールまでのステップを洗い出す)
- 確認項目と期待値の明確化
1. アクターの洗い出し
アクター=「システムにアクセスする利用者や役割」例えば、一般的な求人サイトで考えた場合、企業の採用担当と求職者などが考えられる。もしその求人サイトが別のシステムと連携している場合、そのシステムもアクターとしてカウントする必要があるかもしれない。
2. シナリオ目的の洗い出し
「そのシナリオで何を達成したいのか」を洗いだす。目的を洗い出すことで、シナリオの範囲が決まる。例えば、「求人に応募すること」を目的とした場合、求職者が求人を検索して気に入った求人に応募、応募情報が求人掲載企業に通知されて成立する。というシナリオのスタートからゴール(範囲)が見えてくる。
3. シナリオの詳細化(スタートからゴールまでのステップを洗い出す)
ステップとは、シナリオに含まれる業務プロセスのことで、どのアクターが何をするか(○○画面で××を行う)を指す。求人応募を例に挙げると、「求職者が求人サイトの"求人一覧画面"にて求人情報を検索する」というのが一つのステップとなる。
4. 確認項目と期待値の洗い出し
最後に各ステップにおける確認項目と期待値を洗い出す。その際「物が変化する箇所」を洗い出すことがポイント。なお、画面操作や画面遷移はテスト実行時の手順として必要だが、シナリオテストにおいて確認したいポイントではないので確認項目とはならない。
シナリオテスト作成の注意点
確認項目や操作手順を細かくしすぎない
複数システム、画面をまたぐシナリオになることが多いので、確認項目や操作手順を細かくしすぎるとテスト準備の工数が膨大になる可能性がある。そのため、テスト実施者が迷わない程度の粒度で作成する。
実際の利用者にもレビューをしてもらう
可能であれば、実際のサービス利用者にもテストシナリオをレビューしてもらうと良い。
最後に
シナリオテストはユーザー視点でシステムを問題なく使用できることが目的のため、テスト設計の自由度が高い。細かいところまで網羅しようと思うと工数がかかる。また、シナリオとして定義されていない部分の問題点を見つけ出しづらい。そのためシナリオテスト範囲は十分な検討が必要。