🎸

テスト分析・テスト設計・テスト実装・テスト実行 JSTQB Advanced Levelテストマネージャ資格のキーワード解説!

2023/12/02に公開

テスト分析の概要

テスト分析は、テストの対象となる条件を特定し、テストベース、テスト目的、プロダクトリスクの分析に基づいて「何を」テストするかを定義する活動です。
テスト条件はテスト設計作成を推進し、テスト成功のための詳細な測定と見なされます。また、テスト分析は成果物を追跡できるようにする必要があり、テストレベルや使用される情報、文書化の詳細度に応じて異なります。公式なテスト技法を使用してテスト条件を識別し、分析的リスクベースド戦略や分析的要件ベースド戦略などの分析技法も利用可能です。

動画解説

https://youtu.be/7ODUkxfQptY

テスト分析の例

銀行のオンライン支払いシステムを考えることができます。テストベース(要件文書やリスク評価)を見て、以下のようなテスト条件を特定します。


※ChatGPTに書いてもらったw

  1. ユーザーが正しい資格情報を入力した場合にシステムがログインを許可する。
  2. ユーザーが誤った資格情報を入力した場合にシステムがアクセスを拒否する。
  3. システムが日付と金額を正しく処理し、支払いを正確に記録する。
  4. ネットワーク障害が発生した場合にシステムが適切に処理を停止し、ユーザーに対して適切なエラーメッセージを表示する。

これらの条件は、プロジェクトの目標やステークホルダーの要件、リスク評価に基づいています。また、テスト設計とテストケースの作成に向けた基盤となります。

テスト設計

テスト設計は、テスト戦略や計画で識別されたテスト条件やテストベースに基づき、どのようにテストを実行するかを定義するプロセスです。この過程では、テストケースを段階的に特定し、それらをテストベースや目的に関連付けます。所定のテストレベルの情報が整った後、選択されたアプローチに従い、詳細なテストケースを作成します。テスト設計はテスト分析に続く活動であり、時にはテスト実装のタスクも統合される反復的なプロセスになることがあります。

テスト設計の例

テスト要件

  • 必須入力: IDフィールドは必須であり、ユーザーが何も入力しない場合はエラーメッセージを表示する。
  • 長さの制限: IDは正確に15文字である必要があり、それ以上または以下の場合はエラーメッセージを表示する。
  • 文字種の制限: IDには半角英数字と記号のみを使用でき、それ以外の文字が含まれている場合はエラーメッセージを表示する。
  • データベース照合: 入力されたIDがデータベースに存在する場合は、正しい旨のメッセージを表示する。
  • データベース不一致: 入力されたIDがデータベースに存在しない場合は、エラーメッセージを表示する。

テスト設計

テスト設計を行う際には、同値分割、境界値分析、およびセキュリティテストの観点を含めます。

同値分割:

  1. 有効な同値クラス: 正確に15文字の半角英数字と記号のID。
  2. 無効な同値クラス: 空の入力、15文字を超える入力、15文字未満の入力、半角英数字と記号以外の文字が含まれる入力、データベースに存在しないID。

境界値分析:

  1. 有効な境界値: 正確に15文字のID。
  2. 無効な境界値: 14文字と16文字のID、最初の文字が記号、最後の文字が記号。

セキュリティテスト:

  1. SQLインジェクション: 特殊文字を含むIDを入力してデータベース操作を試みる。
  2. クロスサイトスクリプティング (XSS): スクリプトタグを含むIDを入力してブラウザでの実行を試みる。

これらの観点から、以下のようなテストケースを作成します。
※一般的にはスプレッドシートを使ったり、テスト管理ツールを利用します。

  • TC1: 有効な15文字のIDを入力し、正しい旨のメッセージが表示されることを確認する。
  • TC2: 空のIDを入力し、エラーメッセージが表示されることを確認する。
  • TC3: 16文字のIDを入力し、エラーメッセージが表示されることを確認する。
  • TC4: 14文字のIDを入力し、エラーメッセージが表示されることを確認する。
  • TC5: 半角英数字と記号以外の文字が含まれるIDを入力し、エラーメッセージが表示されることを確認する。
  • TC6: データベースに存在しない有効形式のIDを入力し、エラーメッセージが表示されることを確認する。
  • TC7: SQLインジェクションを試みる特殊文字を含むIDを入力し、システムが適切に処理することを確認する。
  • TC8: XSSを試みるスクリプトタグを含むIDを入力し、システムが適切に処理することを確認する。

各テストケースで期待される結果を定義し、テスト実行中に得られた結果と比較して、フォームの検証とセキュリティ対策が適切に機能していることを確認します。
自動化を見据えてBDDの形式に変更するなどします。

テスト実装

テスト実装の例

  1. テスト環境の準備:

    • ステージングサーバーへのアクセス権を確保。
    • テスト対象のID入力フォームが存在するアプリケーションがデプロイされ、正常に稼働していることを確認。
  2. テストデータの準備:

    • 有効なテストデータ: User12345@Valid
    • 無効なテストデータ: ``, User1234567890123456, User, User12345あいう, UserNotInDB
    • セキュリティテストデータ: ' OR '1'='1, <script>alert('XSS')</script>
  3. テストケースの具体化:

    • テスト設計を基に
    • 各テストケースについて、入力データ、実行手順、期待される結果を詳細に文書化。
  4. テストの自動化:

    • 自動化可能なら、各テストケースに対する自動化スクリプトを作成。
    • 自動化ツール(例: Selenium, Postman)を使用してスクリプトを実行。

テスト実行

  1. 手動テスト:

    • 自動化が不可能なテストは手動で実行。
    • セキュリティテストケースは手動で実行し、システムの応答を確認。
  2. 結果の記録と分析:

    • テスト実行の結果を記録。
    • テスト計画にテスト結果後の記載について定義しているのが一般的。
      • OK テスト結果が期待通り
      • NG テスト結果が期待通りではないので、バックログを起票し、URLを貼る
      • NT テストができなかった。理由を記載
    • 期待される結果と実際の結果を比較し、不一致があれば原因を分析。
  3. 不具合の報告:

    • エラーメッセージが不適切な場合やセキュリティリスクが検出された場合は、バグトラッキングシステムに報告。

これらのステップに従ってテストを実施し、ID入力フォームの機能とセキュリティが要件に準じているかを検証します。

この後

この後、テスト終了基準と照らし合わせて、終了基準の評価とレポート作成を行います。
※終了基準の評価とレポートに関しては後日記載します。

関連記事

Discussion