システム開発やWeb開発などでは、さまざまなテストを実施します。この記事では、その中のひとつである「シナリオテスト」について解説します。システムテストの手法のひとつであるシナリオテストでは、機能の動作だけでなく、ユーザーの満足度が満たせるかどうかも確認することが可能です。
そんなシナリオテストの概要から設計方法、設計時のコツと注意点までの詳しい開発に加え、同じくシステムテストの手法のひとつである「ユースケーステスト」との違いについても説明しますので、シナリオテストの導入を考えている方は、ぜひご一読ください。
シナリオテストとは?
シナリオテストとは、システム開発の際に用いられる「ブラックボックステスト技法」の一種です。ブラックボックステストとは、システムの内部構造は考慮せず、仕様が満たせているかを確認するテストです。例えば、本屋の検索システムの場合、ユーザーが入力した書籍名や作家名から、仕様上表示しなければならない情報(書籍の位置や在庫数など)をデータベースから引き出せているか、といったことを確認します。
このとき、プログラムの内部でどんな処理を行っているかは考慮せず、「ユーザーがシステムを利用したときに正しい出力ができているか」という点に注目するところがポイントです。シナリオテストでは、ユーザーが行う操作(業務フロー)を想定してシナリオを作成し、ユーザーが工程ごとの目的を達成できるかどうかをテストします。
その際、仮定したシナリオを達成するために、ユーザーに起こり得る障害を、ユーザー自身が乗り越えられているかどうかが重要となります。そのため、内部システムの不具合だけでなく、ユーザーの使用例に基づいた不具合や改善点を発見しやすい点が、シナリオテストの大きなメリットです。
シナリオテストでは、システムが正常に機能することだけでなく、「ユーザーの満足度を満たせるシステムになっているか」をチェックすることが、最終的な目標となります。例えば、想定されたデータの出力が「スムーズ」かつ「スピーディー」に行えるか、などのユーザビリティのチェックとしても用いられるのです。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >シナリオテストとユースケーステストの違いとは?
シナリオテストと似たテストとして、「ユースケーステスト」が挙げられます。ユースケーステストもブラックボックステストの技法の一つであり、場合によっては、シナリオテストとユースケーステストを区別せずに、同義のものとして扱うこともあります。
両テストには類似点も多く見られますが、厳密には、それぞれ異なる特徴を持ちます。ユースケーステストでは、「ユースケース」と呼ばれる、アクターとテスト対象のシステムの相互のやり取りを定義したものをもとに、テストの設計が行われます。なお、アクターはテスト対象のシステムを利用する存在の総称のため、システム利用者だけでなく、別のシステムなどがアクターとなることもあります。
つまり、ユースケーステストは、アクターとテスト対象の間で、特定の動作を行った際の応答を確認するテストといえるでしょう。このテストにシナリオを用いることがあるため、シナリオテストと同一視されることが多いのです。
対して、シナリオテストに用いられるシナリオのもとになるのは、ユースケースとは限りません。両者の違いは、ユースケースの有無にあるといえます。つまり、ユースケーステストよりもシナリオテストのほうが、自由度が高いテストということになるでしょう。
シナリオテストの設計方法
ここからは、シナリオテストの設計方法について簡単に紹介します。シナリオテストを設計する上での流れを、ひとつずつ見ていきましょう。
目的や前提条件を設定する
はじめに、シナリオテストの目的や前提条件などを設定することから始めます。これらを設定することで、全体像を把握でき、テストすべき範囲が明確になります。テストプロセス全体を明確にすることで、「テストの設計者ごとに、設計やレビューにかかる時間が異なる」といった、シナリオテストで起きがちな課題を解消することができます。
また、目的や前提条件を設定することで、ユーザーのサイクルが想像しやすくなり、設計者ごとの考えの相違を防ぎやすくなります。 考えの相違がなければ、シナリオテストのプロセスやアウトプットがテスト設計者のスキルや経験に依存することなく、効率的な設計が実現可能です。
ユーザーの行動過程と心理状態を想定する
次に目的や前提条件に基づいたテストの範囲において、想定されるユーザー行動を列挙していきます。行動を列挙する際は、ユーザーが達成したいことや、それを実行する際の行動バリエーションを考えて網羅していくことが重要です。
ユーザーの行動過程と心理状態を想定することで、さまざまなバリエーションのテストが可能になり、ユーザー満足度を向上させるためのシナリオテストとしての質が向上します。それぞれの行動操作ごとに項目を振り分け、テストすべきケースを考えていきましょう。
テストすべき内容を書き出す
最後に、実際のテスト内容やシナリオ内容を書き出していきます。ここでは、はじめに想定したテストケースにおける操作内容を書き出すところから始めます。この際、操作に組み合わせが発生する場合には、組み合わせ方も含めた操作内容の書き出しが必要です。
複数の組み合わせが発生するテストでは、あらかじめ対応表を作成してからテストを行うのがおすすめです。組み合わせの漏れを防ぐことができます。
加えて、テスト内容を考える際には、ユーザーの目的達成の妨げとなる事象を洗い出すことも重要となります。
「作成したシナリオテストを通じて、ユーザー満足度を低下させる項目を見つけ出せるか」「業務フローを網羅的に確認できるか」といった観点を持って作成しましょう。
シナリオテスト設計のコツと注意点
シナリオテストを設計する際に、すべてのシナリオを網羅することは難しいといえます。しかし、コツをおさえれば、多様なパターンに対応したシナリオを作成することができます。
シナリオテスト設計におけるコツは、時系列や業務フロー・さまざまな組み合わせを網羅することに加えて、クライアント要件や過去のユーザー操作事例などを参考にすることです。1から自力でシナリオを考えるよりも、効果的なシナリオテストが設計できるでしょう。
また、シナリオテスト設計時の注意点としては、正常時の想定しやすい行動や、各機能に対応するシナリオのみにならないようにすることです。このような条件下では不具合を発見しづらく、ユーザー満足度を向上させるための手がかりも見つけづらくなります。
正しい動線ではない行動なども含め、ユーザーが操作したときに起こり得るシナリオを網羅的に考える必要があります。
シナリオテストは、システム開発におけるブラックボックステストの一種であり、ユーザーが行う操作(業務フロー)などをシナリオ化し、想定通りに処理が行えるかをチェックするテストです。加えて、シナリオテストを通じて、ユーザー満足度を向上させるための手がかりを見つけ出すこともできます。
また、シナリオテストとユースケーステストの違いは、ユースケースの利用有無にあり、シナリオテストのほうが自由度が高いとされています。ユースケーステストでもシナリオを用いることがあるため、同一視されることが多いですが、厳密にはそれぞれ異なる特徴を持つと覚えておくとよいでしょう。
ぜひこの記事を参考に、効果的なシナリオテストの設計を進めてみてください。
最新情報・キャンペーン情報発信中