ソフトウェアテストの技法にもさまざまな種類があります。そのうちの1つの「ユースケーステスト」。どのような場面で活用できるテストなのでしょうか?本記事ではユースケーステストの特徴から、ユースケーステストを設計する際のポイント・注意点を解説します。
また、ユースケーステストと似たテストとして「シナリオテスト」を耳にしたことがある人も多いのではないでしょうか。はたしてユースケーステストとシナリオテストは同義なのでしょうか?ユースケーステストとシナリオテストの違いについても私自身の経験を交え、解説します。
本記事が効果的なテスト設計/実行の参考になれば幸いです。
ユースケーステストとは?
「ユースケーステスト」とは、「ユースケース」をベースとした、ブラックボックステスト技法の1つです。ブラックボックステストとは、テスト対象のシステムの内部構造やプログラミングコードは考慮せず、テスト対象に何かしらの入力操作を行います。そして入力に対する出力(振る舞い)が仕様通りかを確認するテストです。では、テストのベースとなる「ユースケース」とはなんでしょうか?「ユースケース」を簡単に表すと「アクターと各システム間のやり取りを定義したもの」です。
ユースケースはシステムの機能要件を基に、アクターの操作・動きに対して各システムがどのような振る舞いをするかを整理し作成します。アクターとは、テスト対象のシステムを実際に使用するユーザーや外部のハードウェアなど多岐に渡ります。関係アクターやシステムが多いシステムのテスト(=総合テストなどテスト工程の中でも後半のテスト)に活用したり、テスト前の仕様整理に活用したりすることができます。(私自身実際にテスト対象の仕様把握のため、簡単なユースケースを作成する場合があります。)
ちなみに単体テストレベルではシステム間の連携についてテストしないため、ユースケーステストを活用することは少ないと思います。ユースケーステストはユースケースを整理し終えた後、各ユースケースを実行する具体の操作手順を作成し、テストケースに落とし込むという流れで設計します。
ユースケーステストとシナリオテスト、なにが違うの?
ユースケーステストと同義で扱われやすいシナリオテストですが、両者に違いはあるのでしょうか。ソフトウェアテストのテスト技術者資格制度であるISTQBの用語集では、ユースケーステストの同義語として「シナリオテスト」「ユーザシナリオテスト」が登場します。このため一般的にも同義で扱われることが多いようです。筆者の経験から、ユースケーステストとシナリオテストの違いを区別すると以下の特徴があると考えます。
【ユースケーステストとシナリオテストの違い】
ユースケーステスト:システムの機能要件から整理したユースケースをベースとするテスト。
シナリオテスト:ユーザー目線で洗い出した一連の操作シナリオをベースとするテスト。
前述の通りユースケースはシステムの機能要件から整理します。しかし、シナリオテストはユースケースだけでなくユーザー目線で考えうる一連の操作シナリオを洗い出し、洗い出したシナリオを基にテストケースを設計していくテストです。つまりシステムの機能要件に含まれていない操作を行うシナリオも、テストのベースとなりえます。ユースケーステストよりもシナリオテストのほうが、幅が広いイメージです。
また混同されやすい背景としては、シナリオテストにユースケーステストが内包されている場合があります。またユースケーステストがシナリオテストと似た形式のテストケースになりやすいという特性がある点が考えられます。
テストに習熟した専門のエンジニアが、
お客様に必要なテスト計画・設計を立案します!
バルテスのテスト計画・設計支援サービス
【実践編】ユースケースを整理してみよう
ここからは実践編として、ユースケースの整理方法をご紹介します。ご紹介する方法はユースケース一覧です。以下の図表のように1ユースケース毎に整理します。
ID・ユースケース名 | 001 会員登録する |
目的 | 会員登録画面で情報入力し、会員登録を完了させたい |
アクター | ユーザー |
事前条件 | 会員登録に使用するメールアドレスが未登録であること |
事後条件 | 入力した情報で会員登録が完了すること |
基本フロー | 必須項目:登録ユーザー名を入力する 必須項目:住所を入力する 必須項目:電話番号を入力する 任意項目:性別を選択する 必須項目:メールアドレスを入力する 会員登録ボタンを押下する 会員登録完了画面へ遷移する |
代替フロー | ■任意項目:性別を未選択 4.必須項目:メールアドレスを入力する 5.会員登録ボタンを押下する 6.会員登録完了画面へ遷移する |
例外フロー | ■必須項目(メールアドレス)未入力のまま会員登録ボタンを押下 5.会員登録ボタンを押下する 6.「必須項目が未入力です」というエラー文言を会員登録ボタン下部に表示する |
補足 | ・登録済みのメールアドレスでは再登録できない ・電話番号は半角、電話番号以外の入力欄は全角でしか入力できない |
▼ID・ユースケース名
ユースケースの内容が分かるよう、簡潔に記述します。
他ユースケースと区別できるようIDも付与すると良いです。
▼目的
ユースケースで達成すべき目的を記述します。
この目的を基に後述のフローを整理していきます。
▼アクター
ユースケースを実行するアクターを記述します。ユーザー=人の場合もあれば、システム名が入る場合もあります。
▼事前条件
ユースケースを実行するために必要な事前条件を記載します。
▼事後条件
ユースケース実行後に満たされる条件を記述します。
▼基本フロー
ユースケースの目的を達成するための基本的なフローを記述します。
各ステップに分岐が発生するかもしれませんが、後述の代替フローで整理するため、ここでは基本的なフローに限り記述します。
▼代替フロー
ユースケースの目的を達成できる、基本フロー以外のフローを記述します。
例では任意項目の入力なしで後続操作を進めるフローを代替フローとしています。
▼例外フロー
ユースケースの目的が達成できない、例外的なフローを記述します。
例では必須項目を入力しなかったために後続の会員登録ができない、というフローを記述しています。
▼補足
補足事項を記述します。
例ではユースケースにかかわるその他の仕様を記述しています。
◆整理のポイント
- システム要件に定義されている基本的なフローから整理すること
整理しながら代替フロー、例外フローが先に思い浮かんでしまうかもしれません。しかし抜け漏れ/手戻りが発生しないよう、まずは基本的なフローの整理から行いましょう。
- 必要な項目は任意で追加
上記の整理フォーマットはあくまでフォーマットです。テスト対象のシステムに合わせて必要項目は追加してください。上記の例では、ユーザーがユースケース毎に特定の1画面を操作します。以下のような欄を追加すれば、操作対象の画面をユースケース毎に整理することができます。
操作画面 | 会員登録画面 |
ユースケーステスト以外のテストを行う場合でも、この一覧はテスト対象の分析/仕様把握に役立つかと思います。ぜひ活用してみてください。
まとめ
「ユースケーステスト設計のポイント!シナリオテストとの違いは?」と題して解説してきました。
【本記事の総括】
- システムの機能要件から整理したユースケースをベースとするテスト
- シナリオテストはユースケースよりも幅広いシナリオをベースとするテスト
- ユースケースの整理にはユースケース一覧を活用
- ユースケーステストの設計/実行だけでなく、テスト対象の仕様把握にユースケース一覧が役立つ
上記のポイントを基に、効果的なテスト設計/実行につなげてください。
参照元URL
- ISTQB Glossary
https://glossary.istqb.org/jp/search - JSTQB-SyllabusFoundation_Version2018.J03
https://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018V31.J03.pdf
当サイトでは、テスト技法を学びたい方、アジャイル開発やマイグレーションのテスト手法について知りたい方、テストアウトソーシングサービスに興味のある方へ、ダウンロード資料を多数ご用意しております。ぜひダウンロードいただき、資料をご活用ください。