テスト設計 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