テストケースとしてのユースケースシナリオ
ソフトウェアテストとは何か?
ソフトウェアテスト検証と検査を通じて、テスト対象のソフトウェアのアーティファクトおよび動作を確認する行為である。ソフトウェアテストはまた、ソフトウェアに対する客観的で独立した視点を提供し、企業がソフトウェアの実装リスクを理解し、認識できるようにする。
ソフトウェアテストは、ユーザーまたはスポンサーに、ソフトウェアの品質およびソフトウェア障害のリスクに関する客観的で独立した情報を提供できる。テストの主な目的の一つは、欠陥を発見し修正するためにソフトウェアの障害を検出することである。テストは、製品がすべての条件下で正常に動作することを確認することはできないが、特定の条件下で正常に動作しないことを示すことはできる。

ユースケーステスト
ユースケーステストIvar Jacobsonの著書『オブジェクト指向ソフトウェア工学』に記載されているように、テスト担当者がテストシナリオを定義し、トランザクション単位でシステム全体を開始から終了まで検証するための機能的ブラックボックステスト技法である。この手法を用いることで、テストチームは各機能に基づいて、ソフトウェア全体を開始から終了まで検証できるテストシナリオを作成する。ユースケーステストはユーザーとソフトウェアアプリケーションとの相互作用であり、そのためユーザーの視点からシステムをテストするのに役立つ。以下にいくつかの利点を示す。
ユースケースとは何か?
- ユースケースは物語形式の言語で記述され、最終ユーザーの視点からシステムの機能要件を記述する。
- ユースケース図は統一モデリング言語(UML)を用いて作成され、各ステップは楕円でその名前を表す。
- アクターは、名前を下に記した棒人間で表され、各アクションはアクターとユースケースの間のリンクで示される。
- システム境界は、ユースケースを囲む長方形で示される。

ユースケースの要素
必要な深さや複雑さに応じて、ユースケースは以下の要素の組み合わせを記述する。
- アクター – 行動を実行する誰かまたは何らかの存在(システムを使用している者)
- 主要アクター – 目的を達成するためにシステムとのやり取りを開始するステークホルダー
- 補助アクターはシステムがユースケースを完了するために支援を必要とするもの.
- 事前条件 – ユースケース実行前後において、実際に成立するか、発生する必要がある
- トリガー – ユースケースの開始を引き起こすイベント
ユースケースシナリオと代替パスパス
ユースケースモデリングは、ビジネスシステムがその環境とどのように相互作用するかを形式的に表現する方法であり、システムのユーザーが実行する活動を示すものです。これはUMLにおけるシナリオベースの技術でもあります。ユースケースとは、特定のタスクや目標を達成するために必要な一連のステップを指します。通常、ユースケースには複数の経路があり、それぞれの経路はユースケースシナリオと見なされます。簡単に言えば、ユースケースはさまざまなプロセスを伴う目標であり、ユースケースシナリオはそのプロセスの一つを通る線形で直接的な経路を表します。
シナリオとは、提案されたシステムとのある種の相互作用を示す場面です。シナリオは、要件分析の段階で使用されるツールであり、提案されたシステムの特定の使用方法を記述するために用いられます。シナリオは、ユーザーなど外部からの視点からシステムを捉え、具体的な例を用いて表現します。ユースケースには、ユーザーがシステムとやり取りする際に選択できる複数の「経路」が含まれることがあり、それぞれの経路はシナリオと呼ばれます。
- 主な成功シナリオ [基本フロー] – ユースケースにエラーはありません。
- 代替経路 [代替フロー] – これらの経路は主なテーマの変形です。システムレベルで何らかの問題が発生した際に発生する例外です。
ユースケーステストの例
ユースケースシナリオは、アプリケーションとアクター(ユーザー)との相互作用として捉えられます。これらのユースケースは要件を記述するために使用され、そのため受け入れテストの基礎としても利用できます。
ATMの例を用いて、成功ケースと失敗ケースを示します。この図では、A(アクター—この場合は利用者)とS(システム)の相互作用がわかります。ステップ1から5は成功ケースであり、カードとパスワードが確認され、アクターが口座へのアクセスを許可されることを示しています。
- A:カードを挿入する、
- S:カードを検証し、PINを要求する、
- A:PINを入力する、
- S:PINを検証し、
- S:口座へのアクセスを許可する。
しかし、拡張プロセス中に3つの他のシナリオが発生する可能性があります。たとえば、カードの検証時にシステムが何らかの誤りを検出した場合です。これらの拡張ケースは以下の通りに列挙できます。図に示すように、2a、4a、4bです。
2a) S:カードが無効です(メッセージが表示され、カードが拒否されます)
3a) S:パスワードが無効です(メッセージを表示し、再試行を促す—2回まで)、そして
4a) S:パスワードが3回連続で無効です(カードを飲み込み、終了します)
ユースケースシナリオをテストケースとして
ユースケースシナリオは基本的にユースケースの文書です。言い換えれば、ユーザーがアプリケーションやシステムを使って行う可能性のある行動を記述します。また、ユーザーがソフトウェアを使用している際に直面する状況も記述します。正確なテストシナリオを作成するためには、顧客や最終ユーザー、およびステークホルダーからのフィードバックを収集することがよくあります。これにより、すべての可能なユースケースシナリオを効果的にカバーでき、ユースケースのすべてのビジネスワークフローを包括的にテストすることが可能になります。
ユースケース vs テストケース
ユースケースとテストケースはソフトウェアテストの分野でよく使われる用語であり、密接に関連しています。ユースケースは、特定のタスクを実行することを目的としたシステムの使用方法を指定するために用いられます。一方、テストケースは、特定のテスト目的のために開発されたテスト入力、実行条件、および期待される結果のセットです。
| 比較パラメータ | ユースケース | テストケース |
|---|---|---|
| 定義 | 特定の目的を達成するために、役割とシステムの間の相互作用を記述するために使用される一連の行動。 | ソフトウェアの特性が定義されるためのテスト入力、条件、および変数のグループ。 |
| 目的 | すべての順次操作を実行して最終的な操作に到達する | ソフトウェアが正常に動作しているかどうかを検証する。 |
| 反復 | 異なる経路をたどる | 1つのテストケースを順番にテストする |
| 依存関係 | 要件に依存している | ユースケースに依存している |
| 要件 | 文書と調査が必要である | テスト入力スクリプトと各テストスクリプトは1ステップを完了する |
| 完了 | すべてのステップを一度に完了する | テストを繰り返し行い、その後完了する。 |
| 相互作用 | ユーザー | 結果 |
| 作業中 | ソフトウェアのステップバイステップの機能能力に従って動作している。 | テスト担当者の協力のもと、ソフトウェアの検証を行っている |













