コラム

  • 2021.09.03
  • ソフトウェアテスト
  • #テスト実行
  • #テスト技法
  • #テスト計画
  • #テスト設計
  • #基礎知識

シナリオテストとは 実務上使える作成方法と守るべき2つの注意点をご紹介!

ソフトウェアテスト技法の1つとして、シナリオテストというテスト技法があります。今回は、その目的や具体的な作成方法のほか、作成上の注意点・コツなど、テスト実務に役立つ情報をご紹介しながら、ユースケーステストとの実務上での違いについても解説します。

シナリオテストとは?

シナリオテストとは一言で表すと、「ユーザーが一連の流れに沿ってシステムを問題なく利用できることを確認するためのテスト」となります。
「ユーザーがシステムを問題なく利用できること」とあるように、ユーザー視点での確認がメインとなります。そのため、総合テスト、受け入れテストなどでこのテスト技法が用いられます。なお、JSTQBの定義では、シナリオテストとユースケーステストは同義とされており、「ブラックボックステストのテスト技法の1つで、ユースケースの動作を実行するように設計されたテスト」と定義されていますが、本コラムでは実務面からシナリオテストとユースケーステストを区別したほうがいい場合について、「シナリオテストとユースケーステストの違い」の項目で解説します。

シナリオとは

シナリオとは、映画やドラマなどで使われるシナリオ(脚本)と同じように、開始から終了まで一連で繋がった物語のようなものを指します。そのため、途中で場合分けが入ったりするものは1つのシナリオにはなりません。場合分けをそれぞれテストしたい際には、2つのシナリオを用意してテストすることになります。
シナリオのインプットとなるドキュメントは、以下のものが挙げられます。

・ユースケース図
・ユースケース記述
・業務フロー

シナリオテストの目的

シナリオテストを用いる目的は、システムを使用するユーザー視点でシステムの動作の一連の流れを確認することです。この目的を満たすことができるのは、シナリオテストに以下のようなメリットがあるためです。

■メリット
・複数システム、複数画面含めた一連の流れで確認できる
・役割が異なる複数のユーザーが相互に連携する内容を確認できる
・一連の流れの中で機能間での不整合を検出することができる

一方、以下のようなデメリットもあるため、シナリオテストの適用範囲は十分に検討する必要があります。

■デメリット
・細かいパターンまで網羅的に実施しようとすると膨大な工数が必要となる
・シナリオとして定義された内容以外の問題点を見つけ出しにくい

ソフトウェアテスト入門動画

ユースケーステスト

前述したようにJSTQBの定義では、シナリオテストとユースケーステストは同義として定義されていますが、実務上は区別したほうが良い場合もあります。ここではユースケーステストの説明と、シナリオテストとユースケーステストの違いについて説明します。

ユースケーステストとは

ユースケーステストは、その名の通り、ユースケースで定義されたふるまい(基本、例外または代替処理、およびエラー処理)を確認するように設計されたテストです。基になるユースケース(ユースケース図、ユースケース記述)が明確になるため、設計とテストとのトレーサビリティや網羅性を評価しやすいという利点があります。

シナリオテストとユースケーステストの違い

シナリオテストはユースケーステストを内包しているともいえます。しかしユースケーステストとは違い、シナリオをベースとした自由度の高いテスト設計が特徴です。例えば、複数のユースケースを組み合わせたシナリオを作ることも可能です。また、ユースケースに記載されていない範囲(マニュアル作業など)を含めたシナリオもつくることができます。そのため、シナリオテストは、ユースケースではカバーしきれない範囲までシナリオとして定義してテストすることができるといえるでしょう。

ソフトウェアテスト入門動画

シナリオテストの記述方法について

シナリオテストの作成方法について、その手順と記述方法などについて解説します。また、シナリオテスト作成上の注意点や実務上のコツなども合わせて説明します。

シナリオテストの作成方法について

まず、シナリオテストを作成する際の手順は、以下のとおりとなります。
■手順
・アクターの洗い出し
・シナリオ目的の洗い出し
・シナリオの詳細化(スタートからゴールまでのステップを洗い出す)
・確認項目と期待値の明確化

次に、各手順について、以下に説明します。

アクターの洗い出し

アクターとは、「システムにアクセスする利用者や役割」と言い表せます。例えば、社内の経費申請システムで考えれば、アクターとして、経費申請者、承認者などが考えられます。さらに、給与支払と併せて精算するような仕組みとしているなら、給与管理システムとの連携が発生するので、給与管理システムという別システムもアクターとして必要になるかもしれません。

シナリオ目的の洗い出し

次に、シナリオの目的を洗い出します。目的とは、「そのシナリオで何を達成したいか」ということです。目的を洗い出すとシナリオの範囲を決めることができます。例えば、「経費申請業務が成立すること」を目的とすると、社員が経費申請をし、何人かの上司がそれを承認し、最終的に給与振込日に経費が振り込まれて成立する。というシナリオの範囲(スタートからゴール)が見えてきます。

シナリオの詳細化(スタートからゴールまでのステップを洗い出す)

ステップとは、シナリオに含まれる業務プロセスのことで、どのアクターが何をするか(○○画面で、△△を行うなど)を指します。経費申請を例にあげると、「社員が経費申請システムの“経費入力”画面にて、○○年○○月分の経費項目を入力する」というのが1つのステップになると言えます。

確認項目と期待値の洗い出し

つづいて、各ステップにおける確認項目と期待値を洗い出します。その際「ものが変化する箇所」を洗い出すことがポイントです。一方画面操作や画面遷移は、テスト実行時の手順として必要になる部分ではありますが、シナリオテストで確認したいポイントではないため、この点は確認項目ではありません。

シナリオテストの作成方法における2つの注意点

シナリオテストを作成する際、以下の点を注意する必要があります。

・確認項目や操作手順を細かくしすぎない
シナリオテストの場合、複数システム、複数画面を跨ぐシナリオになることが多いため、確認項目や操作手順を細かくしすぎるとテスト準備の工数が膨大になる可能性があります。そのため、テスト実施者が迷わない程度の粒度で記載することをお勧めします。

・実際の利用者にもレビューしてもらう
可能であれば、実際にシステムを利用する利用者にテストシナリオをレビューしてもらえるといいです。シナリオのインプット資料として、ユースケースや業務フローがあったとしても、実際の利用者がシナリオを確認することで不足点が見つかることも多いためです。

ソフトウェアテスト入門動画

まとめ

ユースケーステストとは違い、自由度の高いテスト設計が特徴のシナリオテスト。その目的はユーザー視点で一連の流れに沿ってシステムを問題なく利用できることを確認することです。一方、細かいパターンまで網羅的に実施しようとすると膨大な工数が必要となり、シナリオとして定義された内容以外の問題点を見つけ出しにくいといった欠点もあります。そのためシナリオテストの適用範囲は十分に検討する必要があるでしょう。
また作成に当たっては目的に沿った粒度での記述を心がけることが必要です。実際のシステム利用者のレビューを受けながら、「アクターの洗い出し」、「シナリオ目的の洗い出し」、「シナリオの詳細化」、「確認項目と期待値の洗い出し」といった手順を踏み、実行していくことがシナリオテスト成功の秘訣です。

参考文献

ISTQBテスト技術者資格制度Foundation Level シラバス 日本語版 Version 2018V3.1.J03
http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018V31.J03.pdf

ISTQBテスト技術者資格制度
Advanced Level シラバス 日本語版 テストマネージャ Version2012.J04
http://jstqb.jp/dl/JSTQB-Syllabus.Advanced_TM_Version2012.J04.pdf

ソフトウェアテスト標準用語集 日本語版 Version 2.3.J02
http://jstqb.jp/dl/JSTQB-glossary.V2.3.J02.pdf

IPA ソフトウェアテスト見積りガイドブック
https://www.ipa.go.jp/files/000005132.pdf

資料ダウンロード/動画視聴

ソフトウェアテスト入門動画

テスト計画入門動画

SHIFTサービス資料

テストサービス導入事例集

関連サービス