+ テストの基礎
Fundamentals of Testing
+
+ + 本ガイドは ISTQB Certified Tester Foundation Level Syllabus + v4.0.1(2024年9月15日付)に準拠した、中級者〜上級者向けの体系的解説です。試験で問われる + LO 全 14 項目を網羅し、各概念の実務的な意味まで掘り下げます。 +
+ +Chapter 1 の全体像と学習目標
+シラバスにおける位置づけ
++ Chapter 1 は CTFL v4.0 + 全体の語彙と思考モデルを提供する章です。ここで定義される用語は + Chapter 2〜6 + 全体で繰り返し使用されるため、理解の甘さが後続章の習得に直接影響します。 +
+学習目標 (Learning Objectives) 一覧
++ Chapter 1 には全 14 の LO があります。K1(記憶)= 2件、K2(理解)= 6件 + が試験の出題レベルです。 +
+テストとは何か
+テストの定義
+CTFL v4.0 では、ソフトウェアテストを次のように定義しています。
++ 従来の「テスト = + ソフトウェアを実行して結果を確認する」という認識は誤解です。v4.0 + ではテストを以下の2次元で捉えます。 +
+| 次元 | +種別 | +説明 | +
|---|---|---|
| 実行有無 | +動的テスト (Dynamic Testing) | +ソフトウェアを実際に実行して行うテスト | +
| 実行有無 | +静的テスト (Static Testing) | ++ ソフトウェアを実行せずに行うテスト(レビュー・静的解析) + | +
| 目的 | +検証 (Verification) | ++ システムが仕様を満たすか確認する — "Are we building the + product right?" + | +
| 目的 | +妥当性確認 (Validation) | ++ システムがユーザーのニーズを満たすか確認する — "Are we + building the right product?" + | +
テスト目標 (Test Objectives) — FL-1.1.1
++ v4.0 + で定義される典型的なテスト目標は以下の9つです。試験では「どのシナリオがどの目標に該当するか」を問う問題が出題されます。 +
+| # | +テスト目標 | +実務例 | +
|---|---|---|
| 1 | ++ 要件・ユーザーストーリー・設計・コードなどの作業成果物の評価 + | +要件レビューで曖昧な仕様を検出する | +
| 2 | +故障を引き起こし欠陥を発見する | +境界値テストでクラッシュを再現する | +
| 3 | ++ テスト対象の必要なカバレッジを確保する + | +命令カバレッジ 100% を達成する | +
| 4 | ++ 不十分なソフトウェア品質のリスクレベルを低減する + | +リスクベーステストで重要機能を優先する | +
| 5 | ++ 指定要件が満たされているかを検証する + | +受け入れ基準に対するシステムテスト | +
| 6 | ++ 契約・法的・規制上の要件への準拠を検証する + | +医療機器の FDA 規制適合確認 | +
| 7 | ++ 意思決定に必要な情報をステークホルダーに提供する + | +テスト進捗レポートでリリース可否を判断 | +
| 8 | +テスト対象の品質への信頼を構築する | +本番リリース前の回帰テスト合格 | +
| 9 | ++ テスト対象が完全で期待通りに動作するかを妥当性確認する + | +UAT(ユーザー受け入れテスト)実施 | +
テストとデバッグの違い — FL-1.1.2
++ 試験最頻出の区別です。テストとデバッグは別の活動であり、通常別の担当者が行います。 +
+| 活動 | +担当 | +目的 | +
|---|---|---|
| テスト (Testing) | +テスター | +故障を引き起こす / 欠陥を直接発見する | +
| デバッグ (Debugging) | +開発者 | +故障の原因(欠陥)を見つけて修正する | +
| 確認テスト (Confirmation Testing) | +テスター(初回テストと同じ人が望ましい) | +修正が効いたかを確認する | +
| 回帰テスト (Regression Testing) | +テスター | +修正が他の箇所に悪影響を与えていないかを確認する | +
テストはなぜ必要か
+テストの貢献 — FL-1.2.1
++ ソフトウェアは現代社会に深く組み込まれており、障害が発生すると金銭的損失・時間損失・ブランド毀損、最悪の場合は人命に関わる問題が生じます。テストは以下の観点でプロジェクト成功に貢献します。 +
+| 貢献領域 | +具体的価値 | +
|---|---|
| 欠陥の早期発見 | ++ 後工程で発見するよりも修正コストが大幅に低い(詳細は原則 + 3 参照) + | +
| リスク低減 | ++ 本番障害の発生確率を下げ、事業継続リスクを最小化する + | +
| 意思決定支援 | ++ リリース可否判断のための客観的データをステークホルダーに提供する + | +
| 品質評価 | ++ 現状の品質レベルを定量的に示し、改善活動の優先付けを支援する + | +
| コンプライアンス | ++ 規制・契約要件への適合を証明し、法的リスクを回避する + | +
| 欠陥予防 | ++ 根本原因分析により、類似欠陥の将来的な発生を防止する + | +
テストと品質保証 (QA) の関係 — FL-1.2.2
++ v4.0 で最もよく混同される概念の一つです。QA + とテストは異なるレベルで機能します。 +
+| 観点 | +品質保証 (QA) | +テスト (Testing) | +
|---|---|---|
| 定義 | ++ 品質要件が満たされるという信頼を提供するプロセス指向の活動 + | +品質を評価し欠陥を発見するための活動 | +
| 種別 | +プロアクティブ(予防的) | +リアクティブ(検出的) | +
| 対象 | +プロセス全体 | +特定の作業成果物・製品 | +
| 位置づけ | +品質管理 (QM) の一部 | +品質コントロール (QC) の一形態 | +
エラー・欠陥・故障・根本原因 — FL-1.2.3
++ CTFL v4.0 + 試験で最も頻繁に問われる概念の連鎖です。ISO/IEC/IEEE + 29119 標準と整合した定義を使用します。 +
+| 用語 | +英語 | +定義 | +実例(ECサイト購入処理) | +
|---|---|---|---|
| 根本原因 | +Root Cause | +問題発生の根本的な理由 | ++ 要件定義書に税率の取り扱い仕様が記載されていなかった + | +
| エラー | +Error / Mistake | +誤った結果を生み出す人間の行為 | +開発者が税率の計算ロジックを逆に実装 | +
| 欠陥 | +Defect / Bug / Fault | +コンポーネントや成果物の不備 | +
+ コード中の tax * price が
+ price / tax になっている
+ |
+
| 故障 | +Failure | +テスト対象が期待した範囲で動作しないこと | +決済確認画面で表示金額が正しくない | +
fault が
+ defect の同義語として使われていました。v4.0 では
+ defect
+ が優先用語ですが、試験では両方が使われる可能性があります。また日常語の
+ "bug" は ISTQB 用語では defect
+ の同義語であり、failure(故障)ではありません。
+ テストの7原則
++ v4.0 + で定義される7つのテスト原則は、すべてのテスト活動に適用される汎用ガイドラインです。試験では「このシナリオはどの原則に該当するか」という適用問題が出ます。暗記だけでなく、シナリオへの適用練習が必須です。 +
+ +
+ テストで欠陥が見つかったとしても、すべての欠陥が発見されたとは言えない。テストに合格しても「欠陥ゼロ」の証明にはならない。
実務的意味:
+ リリース判断はテスト結果 + リスク評価の総合判断が必要。
+
+ 境界値・入力値の組み合わせ・実行パスをすべてテストすることは(小規模なケースを除き)現実的でない。
対策:
+ リスクと優先度に基づいてテスト範囲を絞り込む(リスクベーステスト)。
+
+ 欠陥の発見が遅れるほど修正コストは指数的に増大する。 +
+| フェーズ | +修正コストの相対値 | +
|---|---|
| 要件定義 | +1× | +
| 設計 | +3〜6× | +
| 実装 | +10× | +
| テスト | +15〜40× | +
| 本番リリース後 | +40〜1000× | +
+ 少数のモジュールやコンポーネントに欠陥が集中する傾向がある(パレートの法則:
+ 80% の欠陥は 20%
+ のモジュールに存在)。予測された欠陥クラスターと実際のクラスターは、リスクベーステストの重要な入力となる。
実務的意味:
+ 過去に欠陥が多く見つかった箇所を重点的にテストする。
+
+ 同じテストを繰り返すと、新たな欠陥を発見する能力が低下する(Beizer
+ 1990)。農薬を同じ方法で使い続けると害虫が耐性を持つのと同じ構造。
対策:
+ テストケースを定期的に見直し、新しいテストを追加する。
例外:
+ 自動化された回帰テストは「既知の動作確認」が目的なので、繰り返しても有効。
+
+ 普遍的に通用するテストアプローチは存在しない(Kaner 2011)。 +
+| コンテキスト例 | +テストの特徴 | +
|---|---|
| 医療機器(安全クリティカル) | +形式的な文書・高い独立性・規制準拠 | +
| スタートアップのWebアプリ | +探索的テスト・CI/CD統合・スピード優先 | +
| 金融システム | ++ セキュリティ・パフォーマンス・コンプライアンス重視 + | +
| 組み込みシステム | +リアルタイム制約・ハードウェア連携テスト | +
+ テストに全合格しても、ユーザーのニーズを満たすシステムが出来上がるとは限らない。
具体例:
+ バグのない給与計算システムが、実際のビジネスルールと合っていない。
これは検証
+ (Verification) だけでなく、妥当性確認 (Validation)
+ も必要であることを示す。
+
テスト活動・テストウェア・テストの役割
+7つのテスト活動とタスク — FL-1.4.1
++ v4.0 + のテストプロセスは7つの主要活動で構成されます。順次実行される場合もあれば、反復・並行実行される場合もあります。 +
+テストプロセスはプロジェクトのコンテキストによって大きく異なります。
+| 影響要因 | +具体例 | +
|---|---|
| SDLC モデル | ++ ウォーターフォール(順次)/ アジャイル(反復)/ + DevOps(継続的) + | +
| テスト対象の種類 | +Webアプリ・組み込みシステム・モバイルアプリ | +
| リスクレベル | +安全クリティカル(航空・医療)vs 一般業務システム | +
| ビジネスコンテキスト | ++ スピード重視(スタートアップ)vs + 規制準拠重視(金融・医療) + | +
| チーム規模・スキル | +専任テスターあり vs 開発者がテストも兼任 | +
テストウェア (Testware) — FL-1.4.3
++ テストウェアとは、テスト活動の成果として生成・維持されるあらゆる作業成果物の総称です。構成管理の対象となります。 +
+| テスト活動 | +生成されるテストウェア | +
|---|---|
| テスト計画 | +テスト計画書、リスク登録簿 | +
| テスト分析 | +テスト条件、欠陥レポート(テストベースの不備) | +
| テスト設計 | +テストケース、テストデータ、テストチャーター | +
| テスト実装 | ++ テスト手順(テストスクリプト)、テストスイート、テスト実行スケジュール + | +
| テスト実行 | +テストログ、欠陥レポート(実行時の欠陥) | +
| テスト完了 | +テスト完了レポート、改善アクションアイテム、教訓 | +
+ テストベースとテストウェア間のトレーサビリティ — FL-1.4.4 +
++ テストベース (Test Basis) + とは、テスト分析を行う際に参照するすべての情報(要件、ユーザーストーリー、設計書、コードなど)の総称です。 +
+トレーサビリティを維持する価値:
+| 価値 | +説明 | +
|---|---|
| 影響分析 | ++ 要件変更時に影響を受けるテストケースを即座に特定できる + | +
| カバレッジ評価 | +どの要件が十分にテストされているかを把握できる | +
| 進捗報告 | ++ テスト結果を要件にひも付けてステークホルダーに報告できる + | +
| 監査対応 | +テストの根拠を規制当局や顧客に証明できる | +
| リスク管理 | +リスクとテスト対応状況のひも付けが明確になる | +
テストにおけるロール — FL-1.4.5
++ v4.0 + ではテストの主要なロールを2つに整理しています。プロジェクト形態によって責務の分担が変わります。 +
+| ロール | +主な責務 | +代表的な活動 | +
|---|---|---|
|
+ テスト管理ロール Test Management Role + |
+ テスト全体の計画・統制・完了 | ++ テスト計画・テストのモニタリングと制御・テスト完了・リソース管理・ステークホルダーへの報告 + | +
|
+ テストロール Testing Role + |
+ 具体的なテスト活動の実施 | ++ テスト分析・テスト設計・テスト実装・テスト実行・欠陥報告 + | +
テストに必要な本質的スキルと良い実践
+汎用スキル — FL-1.5.1
+テスターには技術スキルだけでなく、幅広い汎用スキルが求められます。
+ホールチームアプローチ — FL-1.5.2
++ アジャイル開発から来た概念で、CTFL v4.0 + では特に重要視されています。品質保証を特定のロールだけの仕事にしない考え方です。 +
+| 利点 | +説明 | +
|---|---|
| 品質の共同責任 | +品質保証が特定の部門・ロールだけの仕事でなくなる | +
| チームの効率向上 | ++ 必要なスキルを持つメンバーが状況に応じてテスト活動に参加できる + | +
| 早期フィードバック | ++ ビジネス代表者がアクセプタンス基準定義に早期から参加する + | +
| コラボレーション促進 | +テスターと開発者が共同でテスト自動化を構築する | +
テストの独立性 — FL-1.5.3
++ 独立性とは、テスターが作業成果物の作者から切り離されている度合いです。独立性が高いほど、認知バイアスの影響が少なくなります。 +
+用語集
++ CTFL v4.0.1 Chapter 1 のキーワードはすべて K1 レベル(記憶)の試験対象です。以下の定義を確実に記憶してください。 +
+試験対策チェックリスト
++ 以下の項目をすべて説明できるかを確認してください。試験本番前に全項目にチェックを入れることを目標にしてください。 +
+ +-
+
- テスト目標を9つすべて列挙・説明できる +
- 動的テストと静的テストの違いを説明できる +
- + 検証 (Verification) と妥当性確認 (Validation) の違いを、"build it right" + / "right thing" で説明できる + +
- テストとデバッグのプロセスの違いをフロー形式で説明できる +
- 確認テストと回帰テストの役割の違いを区別できる +
-
+
- エラー・欠陥・故障・根本原因の連鎖を具体例を使って説明できる +
- + 品質保証 (QA) とテストの違いをプロセス指向・製品指向の観点で説明できる + +
- テストが成功に貢献する方法を4つ以上挙げられる +
- 根本原因分析がなぜ欠陥予防につながるかを説明できる +
-
+
- 7つのテスト原則を名称(英語名含む)と説明をセットで言える +
- + 各原則を具体的なシナリオに適用できる(例: 農薬パラドックス → + 回帰テストの見直し) + +
- 「欠陥不在の誤謬」が妥当性確認の重要性とどう繋がるかを説明できる +
- + 「早期テスト(原則3)」が Shift-Left + アプローチとどう繋がるかを説明できる + +
-
+
- 7つのテスト活動を順番通りに挙げ、各活動の主な成果物を言える +
- テストベースとテストウェアを区別できる +
- トレーサビリティ維持の5つの価値を説明できる +
- テスト管理ロールとテストロールの責務を区別できる +
- コンテキストがテストプロセスに与える影響の例を3つ以上挙げられる +
-
+
- ホールチームアプローチの利点を4つ以上説明できる +
- + ホールチームアプローチが適切でない場合(安全クリティカル等)を説明できる + +
- 4段階の独立性レベルを各メリット・デメリットとともに説明できる +
- 「独立性は高いほどよい」が誤りである理由を説明できる +
参照リソース
+本ガイドの作成に使用した一次・二次情報源のすべてを以下に示します。
+