システムアーキテクト 2017年 午前2 問11
問題文
探索的テスト技法の説明はどれか。
選択肢
ア:起こり得る全ての条件と、それに対して実行すべき動作とを組み合わせた表に基づいてテストする技法
イ:経験に基づいて、起こりがちなエラーを推測してテストケースを決定する技法
ウ:経験や推測から重要と思われる領域に焦点を当ててテストし、その結果を基にした新たなテストケースを作成して、テストを繰り返す技法(正解)
エ:システムの取り得る状態と、状態を遷移させる事象又は条件を示した図に基づいてテストする技法
🔒 解説は解答すると表示されます
探索的テスト【午前2解説】
正解の理由
本問の正解は、経験や推測で重要領域に焦点を当て、その結果をもとに新たなテストケースを作成して繰り返す手法を示す ウ です。探索的テストは事前に詳細なスクリプトを用意するのではなく、テスターの知識・直感・観察を活かしてテストを設計・実行し、得られた知見を即座に次のテストに反映する「設計と実行の同時進行」を特徴とします。
解法ステップ
- 問題文のキーワードを抽出する:経験や推測、重要領域に焦点、結果を基に新たなテストケース、繰り返す、など。
- 各選択肢とキーワードを照合する:
- 「条件と動作を組み合わせた表」→ 判定表テスト(決定表)に一致。
- 「経験に基づき起こりがちなエラーを推測」→ エラー推測(Error Guessing)。
- 「状態と遷移を示した図」→ 状態遷移テストに一致。
- 「経験や推測で重要領域に焦点、結果から新たなテストケースを作る、繰り返す」→ 探索的テストに一致。
- 一致度が最も高い選択肢を選ぶ(ウ が合致)。
選択肢別の誤答解説
- ア: 起こり得る全ての条件と実行すべき動作を組み合わせた表に基づく技法は、判定表テスト(decision table testing)です。条件→動作の表を網羅的に作成してケース化するため、探索的テストとは方法論が異なります。
- イ: 経験に基づき起こりがちなエラーを推測してテストケースを決定するのは、エラー推測(Error Guessing)という技法です。探索的テストと重なる点はありますが、エラー推測は「推測によるケース設計」に重点があり、探索的テストの「実行しながら設計を継続する反復性」が説明に欠けます。
- ウ: 正解。テストの設計と実行を同時に行い、得られた結果から追加のテストを継続的に生成する点が探索的テストの本質です。
- エ: システムが取り得る状態と状態遷移を示した図(状態遷移図)に基づくテストは、状態遷移テスト(state transition testing)であり、探索的テストとは目的と手法が異なります。
よくある誤解
- 探索的テストは「無秩序なやり方」だという誤解:実際にはテスターのスキル・経験を前提に時間枠・目標(チャーター)や記録方法を定めて行うことが多く、セッションベースの管理などで十分に構造化できます。
- エラー推測と探索的テストを同一視する誤解:エラー推測は特定の不具合を想定してケースを作る技法で、探索的テストは実行→学習→設計を繰り返すプロセス全体を指します。
- 判定表テストと状態遷移テストを混同する誤解:判定表は条件と動作の網羅的組合せを表現する手法、状態遷移はシステムの状態と遷移条件に注目する手法で、用途と設計手順が異なります。
補足コラム
探索的テストは、特に仕様が不完全な初期段階や短期間で欠陥探索を行いたい場合、ユーザー視点での使い勝手評価、複雑なシステムの相互作用チェックに有効です。実務では「テストチャーター(短い目的)」「タイムボックス(セッション長)」「結果のログとバグ記録」を組み合わせて実施することで再現性とトレーサビリティを確保します。ISTQB などの国際的な資格体系でも探索的テストは有効なテストアプローチとして位置づけられています。
- セッションベースの例(簡単な運用手順)
- チャーター設定:例「ログイン機能で異常系を探す/15分」
- 実行中に観察・ログ・スクリーンショットを記録
- セッション後に学習点と追加テスト案をまとめる
FAQ
Q1. 探索的テストは自動化できますか?
A1. テスト自動化は繰り返し実行される確認作業に向きます。探索的テストの「学習して次を決める」部分は人間の判断が鍵であり、自動化で完全に代替するのは難しいですが、自動化スクリプトで事前チェックを行い人間が探索に集中する組合せが効果的です。
A1. テスト自動化は繰り返し実行される確認作業に向きます。探索的テストの「学習して次を決める」部分は人間の判断が鍵であり、自動化で完全に代替するのは難しいですが、自動化スクリプトで事前チェックを行い人間が探索に集中する組合せが効果的です。
Q2. 文書化が不十分になると感じます。どう管理すべきですか?
A2. セッションごとにチャーター、タイムボックス、実行ログ、発見事項を記録する「セッションレポート」や、テストノートのテンプレートを用いることで管理と再現性を高められます。
A2. セッションごとにチャーター、タイムボックス、実行ログ、発見事項を記録する「セッションレポート」や、テストノートのテンプレートを用いることで管理と再現性を高められます。
Q3. どの段階で探索的テストを使うのが良いですか?
A3. 仕様が未確定な初期段階、リリース前の短期集中検査、ユーザビリティ評価、複合的な動作確認が必要な場面で特に有効です。
A3. 仕様が未確定な初期段階、リリース前の短期集中検査、ユーザビリティ評価、複合的な動作確認が必要な場面で特に有効です。
関連キーワード: 探索的テスト、エラー推測、判定表テスト、状態遷移テスト、セッションベースドテスト、テストヒューリスティクス

\ せっかくなら /
システムアーキテクトを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

