JSTQB Advanced Level テストアナリスト(AL-TA)まとめ

JSTQB AL TA v3.1.1 の内容を各章ごとにまとめたノート。

目次

試験概要

試験情報

テストアナリストの役割と責任境界

テストアナリストは、テストプロセスのうち、特に次の 4 つを中心に担当するロールである。

  1. テスト分析:テストベースを読み、テスト条件・フィーチャー・リスク・優先度を識別する。
  2. テスト設計:テスト技法を使い、テストケース、テストデータ、期待結果、事前条件・事後条件を設計する。
  3. テスト実装:テスト手順、テストスイート、テストデータ、テスト環境、実行スケジュールを準備する。
  4. テスト実行:テストを実行し、期待結果と比較し、欠陥を報告し、結果から新しいリスクや追加テストを提案する。

つまり、テストアナリストは単にテストを実行する担当者ではなく、何を、なぜ、どの条件で、どのようにテストし、結果をどう判断するかを具体化するロールである。一方、テスト戦略全体、組織横断の計画、リソースや残余リスクに関する最終判断は、通常テストマネージャーの責任範囲になる。

flowchart TB
    M[テストマネージャー<br/>テスト戦略・計画・全体のモニタリング/コントロール]
    TA[テストアナリスト<br/>テスト条件・ケース・データ・実行・結果分析]
    TTA[テクニカルテストアナリスト<br/>技術的な品質特性・技術リスク]
    AUTO[テスト自動化担当<br/>自動化スクリプト・フレームワーク]
    DEV[開発者<br/>実装・欠陥修正・技術調査]
    BIZ[ユーザー/プロダクトオーナー/ドメイン専門家<br/>業務目的・期待・受け入れ基準・ビジネス影響]

    M -->|方針・制約・優先度| TA
    TA -->|進捗・結果・残余リスク| M
    BIZ -->|要求・期待結果・業務リスク| TA
    TA -->|テスト条件・ケース・欠陥情報| BIZ
    TA <-->|機能・技術の境界を調整| TTA
    TA -->|キーワード・テストデータ・期待結果| AUTO
    AUTO -->|スクリプト・自動実行結果| TA
    DEV -->|ビルド・修正・技術情報| TA
    TA -->|欠陥報告・再テスト結果| DEV
ロール 主な責任 テストアナリストとの境界
テストマネージャー テスト戦略・計画、全体のモニタリング/コントロール、リスクベースドテストの枠組み、優先度や残余リスクに関するマネジメント判断 TA は詳細な条件・ケース・結果を提供する。全体方針やリスク受容の最終判断を単独では担わない
テストアナリスト ビジネス・機能・使用性の観点で、分析、設計、実装、実行、結果分析、欠陥報告、トレーサビリティ更新を行う 組織によってテスト実行や計画作業を他ロールと分担するが、担当範囲は固定的な職位ではない
テスト担当者/テスター 手動・自動テストの実行、期待結果との比較、結果記録、欠陥報告、リグレッションテスト これらの実行タスクは TA が担うこともある。TA はさらに条件・ケース・リスクの分析を担う
テクニカルテストアナリスト 性能効率性、信頼性、セキュリティ、保守性など技術的な品質特性・リスクを扱う TA は機能・業務・使用性を主に扱い、相互運用性や移植性などは協力してテストする
テスト自動化担当 キーワードを実行可能なスクリプトへ実装し、自動化基盤を保守する TA はキーワード、業務シナリオ、データ、期待結果を定義し、故障原因を切り分ける
開発者 ソフトウェアの実装、欠陥修正、技術的な原因調査 TA は欠陥を発見・報告・再確認する。修正方法やコードの実装責任は開発者側にある
ユーザー/プロダクトオーナー/ドメイン専門家 業務目的、ユーザー期待、受け入れ基準、ビジネス影響を明確にする TA はそれらをテスト可能な条件・期待結果へ変換する

この境界は組織や SDLC によって変わる。特にアジャイルでは、ロール名が明確に分かれず、チーム全体でテストアナリストのタスクを分担することがある。試験では「誰の職位か」よりも、その活動の責任を誰が担うかで判断する。

全体像

flowchart LR
    A[テストベースを読む] --> B[テスト分析]
    B --> D[テスト設計]
    D --> E[テスト実装]
    E --> F[テスト実行]
    F --> G[結果・欠陥・新しいリスク]
    G --> B
    H[レビュー]:::note -.-> A
    I[テスト技法]:::note -.-> D
    J[ツール・自動化]:::note -.-> E
    J -.-> F
    K[テスト条件・リスク・優先度]:::note -.-> B
    K -.-> D
    classDef note fill:#fff8dc,stroke:#b8860b,stroke-dasharray: 5 5,color:#5c4500

第 1 章 テストプロセスにおけるテストアナリストのタスク

1.1 SDLC とテストアナリストの関わり

SDLC テストアナリストの関与 試験での着眼点
シーケンシャル/V 字 計画を早期に開始し、要件・設計から分析・設計を進め、実装後に開始基準を満たして実行する 活動が順序立ち、成果物とテストレベルの対応が明確
イテレーティブ/インクリメンタル 各イテレーション/増分で分析・設計・実装・実行を繰り返す 活動が重なり、各サイクルで再評価する
アジャイル 開始時点からチームの一員として関与し、会話・レビュー・受け入れ基準を通じて継続的にテストする 役割が固定されず、テスト担当者のタスクをチームで分担する
ハイブリッド 計画・設計の一部は計画的に行い、反復部分では相互作用的に関与する SDLC に合わせて関与のタイミングと成果物の粒度を調整する

テストアナリストは、要件エンジニアリング、プロジェクト管理、構成・変更管理、開発、保守、テクニカルサポート、技術文書作成などへ、レビュー結果・スケジュール情報・ビルド検証結果・欠陥情報・既知の問題などを提供する。

1.2 テスト分析

テスト分析では、テスト計画で定めた範囲に対して、次を行う。

分析を始める前に、テストベースとなる知識、関係者、テスト環境、利用可能なツール、テスト目的、テスト条件を整理する。テストベースが不完全でも、欠落・曖昧・矛盾・テスト不能な要件を発見すること自体がテスト分析の成果になる。

1.3 テスト条件をステークホルダーと共有する理由

1.4 ハイレベル/ローレベルテストケース

観点 ハイレベル(論理) ローレベル(具体)
内容 条件・目的・論理的入力・期待結果 具体的な値、手順、環境、期待結果
適する状況 要件が変化中、再利用したい、早期に設計したい、経験ある担当者が実行 要件が安定、再現性・監査証跡・自動化が必要、経験差を小さくしたい
利点 早期作成、変更に強い、異なるデータで再利用しやすい、リスクを上位概念で捉えやすい 再現性が高い、実行者による解釈差が小さい、自動化しやすい
欠点 再現性が低い、経験を要する、検証漏れや誤ったオラクルの危険 作成・保守コストが高い、変更に弱い、詳細化に時間がかかる

要件が明確・安定していく場合は、ハイレベルからローレベルへ段階的に詳細化する。設計レベルは、リスク、規制、再現性、担当者のスキル、要件の安定度、自動化の必要性で決める。

1.5 テストケース設計で定義する項目

テストオラクルは、実際の結果が正しいか判断する仕組みである。期待結果を計算できないまま実行すると、欠陥かどうか判断できず、価値の低いテストになる。

1.6 テスト実装

テスト実装は、分析・設計したテストを実行可能なテストウェアにする活動である。

スクリプトなしのテストは、無目的・ランダムに行うのではなく、タイムボックステストチャーターで管理する。探索的テストは軽量で欠陥発見に有効な一方、期間・カバレッジ・再現性の予測が難しい。

1.7 テスト実行

1.8 頻出のひっかけ

第 2 章 リスクベースドテストにおけるテストアナリストのタスク

2.1 基本モデル

flowchart LR
    A[幅広いステークホルダー] --> B[リスク識別]
    B --> C
    B --> D
    subgraph RA["リスクアセスメント"]
        direction TB
        C[可能性を評価]
        D[影響を評価]
        C --> E[リスクレベルを決定]
        D --> E
    end
    E --> F[テスト優先度・軽減策]
    F --> G[テスト結果・新情報]
    G --> B
    style RA fill:#f3f6ff,stroke:#4a6fa5,stroke-width:2px

2.2 リスク識別

リスク識別は、できるだけ多くのリスクを見つける活動である。テストアナリストはビジネスドメインの知識を活かし、次に参加する。

典型的なプロダクトリスクは、機能正確性、使用性、移植性などに関するもの。リスク識別は SDLC 全体で繰り返し、新しい情報や優先度の変化を反映する。

2.3 リスクアセスメント

リスクアセスメントは、識別したリスクを調査し、分類してレベルを決める活動である。通常、次の 2 軸を評価する。

テストアナリストは、主にビジネス影響の評価に貢献する。影響の例は、利用頻度、金銭的損失、法的制裁、機能安全、回避策の有無、ブランド毀損、顧客喪失などである。可能性と影響を組み合わせて、数値、低・中・高、信号機などでリスクレベルを決める。

2.4 リスク軽減と優先度付け

テストによるリスク軽減には、次がある。

リスクレベルはテストケースの優先度付けにも使う。

探索 意味 向く状況
縦型探索(depth-first) 高リスクから順に深くテストする 高リスクの軽減を最優先したい
横型探索(breadth-first) 各リスク領域を少なくとも一度カバーし、リスクで重み付けする 全リスク領域の初期状況を広く把握したい

時間内に全テストを終えられない場合、残余リスクをマネジメントへ報告する。テスト延長か、ユーザー・顧客・サポート・運用へのリスク移転かを判断してもらう。

2.5 将来のテストサイクルで再調整するもの

2.6 問題を解くときの順序

  1. リスクアイテムを列挙する。
  2. それぞれの可能性と影響を分けて評価する。
  3. リスクレベルを決める。
  4. 高リスクを優先するだけでなく、縦型か横型かを状況に合わせる。
  5. テスト・レビュー・早期使用性テスト・追加データなど具体的な軽減策に落とす。

第 3 章 テスト技法

3.1 技法の選択早見表

テストしたいもの 第一候補 典型的に狙う欠陥
値の種類・範囲の処理 同値分割法 代表値の処理誤り、無効値の扱い
境界付近の処理 境界値分析 境界のずれ、境界の欠落・余分、大小比較の誤り
条件の組み合わせと結果 デシジョンテーブル 論理条件の組み合わせ、アクションの欠落・矛盾
状態とイベントの順序 状態遷移 不正遷移、誤った初期・終了状態、ガード条件
多数のパラメーターの組み合わせ ペアワイズ 2 パラメーター間の相互作用
ユーザーや外部システムの目的達成 ユースケース 基本・代替・例外・エラー処理
仕様が乏しく、経験から典型欠陥を狙う エラー推測/探索的テスト 既知の故障パターン、境界間・ワークフロー問題
既知の欠陥分類を網羅 欠陥ベース 分類法に定義された欠陥

ブラックボックス技法と経験ベース技法は補完関係にある。単一の「最善の技法」が常にあるわけではなく、技法を組み合わせる。

3.2 同値分割法(EP)

何をするか

同じように処理されると期待する値の集合を同値パーティション(同値クラス)に分け、各パーティションから代表値を選ぶ。入力、出力、内部値、時間関連の値に適用できる。値は連続/離散、有限/無限、順序あり/順序なし、有効/無効を考える。

カバレッジと設計

注意点

パーティション内の値が本当に同じ処理になるかを確認する。正数・負数・ゼロ、文字種、権限、状態など、処理が異なる可能性があるものを同じパーティションにまとめない。異なるパラメーター間の依存関係・組み合わせ制約も見る。

3.3 境界値分析(BVA)

何をするか

順序付けられた同値パーティションの境界上と、その前後をテストする。整数に限らず、文字列長、ループ回数、配列要素数、メモリサイズ、継続時間などにも適用できる。

2 値法と 3 値法

例:有効範囲が 1〜10 の整数の場合。

方法 下限境界 上限境界 考え方
2 値 0, 1 10, 11 境界上と、境界の外側を確認
3 値 0, 1, 2 9, 10, 11 境界の前・上・後を確認

小数や通貨では最小精度を使う。例えば 1.00〜10.00 の上限なら 9.99, 10.00, 10.01 のように考える。高リスク項目では 3 値法を優先する。

カバレッジと注意点

3.4 デシジョンテーブルテスト

構造

設計手順

  1. 仕様から条件とアクションを抽出する。
  2. 条件の全組み合わせをルールにする。
  3. 実現不可能な組み合わせを除外または明示する。
  4. ルールの重複がないか、実現可能な組み合わせを網羅しているか、期待する動作を正しく表すかレビューする。
  5. 各ルールをテスト条件として、具体的な入力値と期待結果に変換する。

カバレッジと簡単化

典型的な欠陥は、条件の組み合わせに対する誤った論理、アクションの欠落、仕様の矛盾である。

3.5 状態遷移テスト

モデル

状態遷移図または状態遷移表を作り、有効遷移だけでなく無効遷移も考える。ログイン、注文、ワークフロー、画面、組込み制御、トランザクションに適用できる。

カバレッジ

典型的な欠陥は、初期状態・終了状態の誤り、必須状態へ到達できない、余分な状態、誤ったイベント/アクション、無効遷移が実行できる、ガード条件の誤り、仕様の欠落・矛盾である。

3.6 クラシフィケーションツリー技法

3.7 ペアワイズテスト

複数パラメーターの全組み合わせが多すぎるとき、任意の 2 パラメーターについて、各値のペアを少なくとも 1 回含めるようにテストケースを削減する。

覚えること

よくある誤りは、3 つのパラメーターが各 4 値だから 4×4×4=64 ケースと答えてしまうこと。これは全組み合わせであり、ペアワイズの必要数とは別である。

3.8 ユースケーステスト

ユースケースに記載されたアクターとシステムの相互作用を実際のトランザクションとして実行する。ユーザー、外部ハードウェア、他システムなどをアクターにできる。

最小カバレッジ

  1. 基本(メイン)フローを 1 ケース。
  2. 各代替フローとエラー処理を十分にカバーする追加ケース。
  3. 代替フローが互換性を持つ場合は 1 ケースへ組み込める。
  4. 診断性を上げたい場合は、代替フローごとに分離する。

例外、代替、エラー処理が定義されていないユースケースは、テスト対象を完全に定義していない。必要に応じてフローチャートやデシジョンテーブルへ変換し、仕様の論理欠陥を探す。通常はシステムテスト・受け入れテストで使い、性能テストの現実的な負荷シナリオにも利用できる。

3.9 技法の組み合わせ

例えば、デシジョンテーブルで条件の組み合わせをカバーした後、各条件の値について EP/BVA で代表値や境界値を追加する。技法の選択では、適用可能性、制約、時間、スキル、期待するカバレッジ、検出したい欠陥、リスクを総合する。

3.10 経験ベースのテスト技法

共通の長所・短所

長所 短所
仕様書が不足していても使える 詳細な文書化や監査証跡に不向きなことがある
短時間で専門知識・直感を活用できる カバレッジを精密に評価しにくい
早期フィードバックや運用故障の分析に有効 再現性が低く、自動化へ移しにくい
他の技法のカバレッジギャップを補える 結果が担当者のスキルに依存する

経験ベース技法には、公式なカバレッジ基準がない点に注意する。

エラー推測

過去の経験から、設計・実装で起きそうなエラーと、それが引き起こす故障を推測し、故障を観察できる入力・操作を作る。リスク分析にも役立つ。他の技法の追加として有効だが、担当者の経験に依存し、カバレッジと再現性の評価が難しい。

チェックリストベースドテスト

標準、経験、受け入れ基準などから作ったハイレベルな確認項目を使う。頻繁なリリース、リグレッション、スモークテストに向く。項目が抽象的なので担当者による解釈差が生じる。チェックリストの項目カバレッジは測れるが、実際の確認の深さは一定とは限らない。

探索的テスト

学習、計画、設計、実行、評価、報告を同時に行う。優れた探索的テストは、タイムボックステストチャーターで管理する。

欠陥ベースのテスト技法

探したい欠陥タイプをテスト設計の出発点にする。欠陥タイプ、根本原因、故障の兆候などを整理した欠陥分類法からテスト条件とケースを導く。

ブラックボックス 欠陥ベース
要件・ユーザーストーリー・モデルから導く 欠陥分類法・リスクシナリオから導く
振る舞い・仕様のカバレッジを測る 既知の欠陥タイプへのカバレッジを測る
仕様にない問題は狙いにくい 分類法にない新種欠陥は狙いにくい

分類法がプロダクトに適合するか、期待カバレッジを事前に定義する。カバレッジはブラックボックス技法ほど厳密でないことが多い。

3.11 技法選択の思考法

flowchart TD
    A[テストのゴールを定義] --> B{仕様・モデルは十分か}
    B -- はい --> C{主な欠陥の種類は?}
    B -- いいえ --> D[経験ベース: エラー推測・探索的テスト]
    C -- 値・範囲 --> E[EP / BVA]
    C -- 条件の組合せ --> F[デシジョンテーブル]
    C -- 状態・順序 --> G[状態遷移]
    C -- 多数のパラメーター --> H[ペアワイズ]
    C -- ユーザー目的 --> I[ユースケース]
    D --> J[不足部分をブラックボックス技法で補完]
    E --> K[リスク・時間・カバレッジを再評価]
    F --> K
    G --> K
    H --> K
    I --> K

第 4 章 ソフトウェア品質特性のテスト

4.1 ISO 25010 のうち AL-TA で重点的に扱う領域

品質特性 AL-TA での重点
機能適合性 機能正確性、機能適切性、機能完全性
使用性 適切度認識性、習得性、運用操作性、UI 快美性、ユーザーエラー防止性、アクセシビリティ
移植性 設置性、環境適応性、置換性
相互運用性 システム・コンポーネント間の情報交換と利用

性能効率性、信頼性、セキュリティ、保守性などは主にテクニカルテストアナリストの領域だが、テストアナリストも重複・依存するリスクを認識する。

4.2 機能適合性の 3 特性

特性 何を問うか 典型欠陥 主なタイミング/技法
機能正確性 明示・暗黙の要件どおり正しいか。計算やデータ処理が正確か 誤計算、誤ったデータ・状態処理 すべてのテストレベル。EP、BVA、DT、状態遷移、ユースケースなど
機能適切性 指定された目的・業務・ユーザーの任務に対して、機能の集合が適切か ユーザーのニーズを満たさない、不適切なワークフロー 主にシステムテスト、統合テスト後半。ユースケース、ユーザーストーリー、使用性評価
機能完全性 必要な機能・ワークフローが漏れなく実装されているか 未実装機能、未接続フロー、要件との未対応 SDLC・テストレベルに応じる。要件/機能/ケースのトレーサビリティが核心

機能完全性は「正しく動くか」ではなく「必要なものが全部あるか」。機能適切性は「指定された機能があるか」だけでなく「ユーザーの目的に適した組み合わせか」。機能正確性は「結果が正しいか」である。

4.3 相互運用性テスト

2 つ以上のシステム/コンポーネントが情報を交換し、その情報を利用できることを検証する。

4.4 使用性・UX・アクセシビリティ

3 つの概念

アクセシビリティは設計時から考慮し、統合テストからシステムテスト・受け入れテストまで継続する。例として、音声入力、非テキストコンテンツの代替テキスト、文字サイズ変更、色覚への配慮がある。

使用性テストで測る 3 指標

指標 意味
有効性 指定された目的を正確かつ安全に達成できる能力
効率性 目的達成に必要なユーザー資源が適切な量である能力
満足性 指定状況でユーザーを満足させる能力

手法

テストアナリストは、使用性専門家・人間中心設計の専門家と協力し、ケース仕様化やモデレーターを担うことがある。

4.5 移植性テスト

副特性 対象
設置性 対象環境へのインストール・アンインストール、手順、構成、エラー処理
環境適応性 ハードウェア、OS、ブラウザー、ミドルウェア、クラウドなど対象環境へ適応して正しく動くか
置換性 コンポーネントやソフトウェア版を別のものへ置き換えられるか

テストアナリストは、対象環境の組み合わせを識別し、ペアワイズなどでケース数を抑え、インストール後の機能適合性と使用性も確認する。移植性のリスク識別とケース設計は、テストアナリストとテクニカルテストアナリストが協力する。

第 5 章 レビュー

テストアナリストはレビューに参加し、テスト可能性、完全性、曖昧さ、優先度、受け入れ基準、トレーサビリティの観点を提供する。レビューは、後工程のテストより早く安価に欠陥を見つける手段になり得る。

5.1 一般的なチェックリストの使い方

チェックリストは、見落としを減らし、属人的なレビューを避け、品質特性・文書種別・リスクレベル・テスト技法に合わせて調整するために使う。チェックリストにない問題の議論を妨げてはいけない。

5.2 要件レビューで確認する項目

「非常にユーザーフレンドリー」のような曖昧な要件は、合否判断ができずテスト不能である。「標準文書の版 xxx に適合する」のように、判定基準と参照が明確である必要がある。「24 時間 365 日、可用性 100%」のように現実的に測定できない要件も、テスト可能性を検討する。

5.3 ユースケースレビュー

5.4 ユーザーストーリーレビュー

一般形:<ユーザーの種類>として、<あるゴール>をしたい。なぜなら<ある理由>だから。

5.5 チェックリストの調整軸

組織のポリシー・標準・法律、プロジェクトの重点・技術・リスク、作業成果物の種類、リスクレベル、使用するテスト技法に合わせる。標準チェックリストと組織固有チェックリストを組み合わせるとよい。

第 6 章 テストツールおよび自動化

6.1 キーワード駆動テスト

キーワード(アクションワード)は、注文取消しなど、ビジネス・システムのハイレベルな相互作用を表す。キーワードとデータの列がテストケースになり、テスト自動化側がキーワードを実行可能スクリプトへマッピングする。

つまり、テストケースを細かな「操作手順」ではなく、意味のある操作名(キーワード)の列として記述し、そのキーワードを自動化スクリプトが実行する方法である。例えば、注文キャンセルなら次のように書く。

Login → SearchOrder → CancelOrder → VerifyOrderStatus

各キーワードの内部では、画面操作や API 呼び出しなどの詳細を自動化担当が実装する。画面の変更時も、テストケースの業務シナリオではなく、該当キーワードの実装を修正すればよい。このように、テストケースの記述と自動化実装を分離できることが「キーワード駆動」のポイントである。

flowchart LR
    A[テストアナリスト] -->|キーワード・テストデータ| B[キーワード列]
    B --> C[自動化スクリプト]
    C --> D[テスト対象]
    D --> E[実結果]
    F[期待結果] --> G[比較・分析]
    E --> G
    G --> H{故障?}
    H -- いいえ --> I[結果記録]
    H -- はい --> J[手動再実行・原因切り分け]
    J --> K[アプリ / データ / キーワード / スクリプトの判定]

役割分担

利点

故障時の切り分け

  1. 同じデータ・同じケースを手動で実行する。
  2. 手動でも失敗するなら、アプリケーション欠陥の可能性を調べる。
  3. 手動では再現しないなら、キーワード、テストデータ、スクリプトを確認する。
  4. 先行手順が誤ったデータを投入し、後続で故障として現れていないか確認する。
  5. 判定できなければ、証跡を添えて自動化担当者・開発者へ渡す。

6.2 ツールの種類

種類 主な用途 覚えるポイント
テスト設計ツール 要件・モデル・入力からテストケースやデータの組み合わせを生成 目標カバレッジ、確証、リスク軽減に必要なケースを決める。クラシフィケーションツールなど
テストデータ準備ツール 要件・コード分析、匿名化/選別、合成データ生成 本番データの個人情報を除き、整合性を保ったまま現実的なデータを作れる
テスト自動実行ツール 自動ケース実行、結果確認、反復実行 コスト削減、ケース数増加、多環境実行、再現性向上、手動困難な大量データ確認

自動実行の投資効果は、繰り返し実行するリグレッションテストで高くなりやすい。スモークテストや CI でのビルド評価にも有効だが、保守コストを考慮する。

重要な比較

混同しやすいもの 区別
機能正確性 vs 機能適切性 正しい結果か vs ユーザー目的に適した機能の組み合わせか
機能完全性 vs 機能正確性 必要なものが全部あるか vs あるものが正しく動くか
ハイレベル vs ローレベル 論理的・再利用しやすい vs 具体的・再現しやすい
リスク可能性 vs 影響 問題が存在・発生する見込み vs 発生時の重大さ
ブラックボックス vs 欠陥ベース 仕様・モデルから導く vs 欠陥分類法から導く
ペアワイズ vs 全組み合わせ 2 パラメーターの全ペアをカバー vs 全直積をカバー
使用性 vs UX vs アクセシビリティ 操作のしやすさ vs 体験全体 vs 特定ニーズを持つユーザーも使えるか
テスト分析 vs テスト実装 条件・リスク・ケースを決める vs 手順・データ・環境・スイートを準備する