テストケース JSTQB Foundation Level新シラバスのキーワード解説!
テストケースとは?
テストケースは、テスト設計プロセスの中核を成す要素で、特定のテスト条件や要件を実際にテストするための具体的なステップや手順を含みます。テストケースは、特定のテスト目標を達成するために必要な入力値、実行条件、期待される結果を定義します。
テストケースの60秒動画解説!
テストケースの具体化
テスト設計の過程では、テストケースが以下の要素を具体化する役割を果たします。
-
テスト条件の具体化:
- テスト条件や要件を実際のテストシナリオに変換します。
-
カバレッジアイテムの識別:
- テストケースは、テストカバレッジを確保するためのガイドとして機能し、どの機能やシナリオがテストされるかを明確にします。
-
テスト技法の適用:
- テストケースの作成には、さまざまなテスト技法が使用され、テストの効率と有効性を高めます。
-
テストデータ要件の定義:
- 各テストケースに必要な具体的なテストデータを特定します。
-
テスト環境の設計:
- テストケースは、適切なテスト環境で実行される必要があり、その設計にも影響を与えます。
-
インフラストラクチャとツールの識別:
- テストケースに必要なツールやインフラの要件を明確にします。
テスト設計プロセスにおいて、「どのようにテストするか?」という問いに答えることは、テストケースの作成と密接に関連しています。テストケースは、テストの具体的な実行方法を提供し、テストプロセスの透明性と再現性を向上させる重要な役割を果たします。
テストケース作成の例(テスト設計の例)
テスト要件
- 必須入力: IDフィールドは必須であり、ユーザーが何も入力しない場合はエラーメッセージを表示する。
- 長さの制限: IDは正確に15文字である必要があり、それ以上または以下の場合はエラーメッセージを表示する。
- 文字種の制限: IDには半角英数字と記号のみを使用でき、それ以外の文字が含まれている場合はエラーメッセージを表示する。
- データベース照合: 入力されたIDがデータベースに存在する場合は、正しい旨のメッセージを表示する。
- データベース不一致: 入力されたIDがデータベースに存在しない場合は、エラーメッセージを表示する。
テスト設計
テスト設計を行う際には、同値分割、境界値分析、およびセキュリティテストの観点を含めます。
同値分割:
- 有効な同値クラス: 正確に15文字の半角英数字と記号のID。
- 無効な同値クラス: 空の入力、15文字を超える入力、15文字未満の入力、半角英数字と記号以外の文字が含まれる入力、データベースに存在しないID。
境界値分析:
- 有効な境界値: 正確に15文字のID。
- 無効な境界値: 14文字と16文字のID、最初の文字が記号、最後の文字が記号。
セキュリティテスト:
- SQLインジェクション: 特殊文字を含むIDを入力してデータベース操作を試みる。
- クロスサイトスクリプティング (XSS): スクリプトタグを含むIDを入力してブラウザでの実行を試みる。
テストケースの作成
これらの観点から、以下のようなテストケースを作成します。
※一般的にはスプレッドシートを使ったり、テスト管理ツールを利用します。
- TC1: 有効な15文字のIDを入力し、正しい旨のメッセージが表示されることを確認する。
- TC2: 空のIDを入力し、エラーメッセージが表示されることを確認する。
- TC3: 16文字のIDを入力し、エラーメッセージが表示されることを確認する。
- TC4: 14文字のIDを入力し、エラーメッセージが表示されることを確認する。
- TC5: 半角英数字と記号以外の文字が含まれるIDを入力し、エラーメッセージが表示されることを確認する。
- TC6: データベースに存在しない有効形式のIDを入力し、エラーメッセージが表示されることを確認する。
- TC7: SQLインジェクションを試みる特殊文字を含むIDを入力し、システムが適切に処理することを確認する。
- TC8: XSSを試みるスクリプトタグを含むIDを入力し、システムが適切に処理することを確認する。
各テストケースで期待される結果を定義し、テスト実行中に得られた結果と比較して、フォームの検証とセキュリティ対策が適切に機能していることを確認します。
自動化を見据えてBDDの形式に変更するなどします。
テスト分析・テスト設計・テスト実装・テスト実行
テスト分析・テスト設計・テスト実装・テスト実行を一連の流れとして捉えたほうが、わかりやすいかもしれません。
JSTQB Advanced Level向けに書いた記事ですが、下記の記事も参考にしてください。
※本記事は、上記記事のテスト分析を抜粋しています。
テスト分析・テスト設計・テスト実装・テスト実行 JSTQB Advanced Levelテストマネージャ資格のキーワード解説!
Discussion