探索的テストとは?
探索的テストは、人がソフトウェアを学びながら同時にテストを設計し実行する、実践的で台本のないテストです。
すべてのバグを事前に予測できるわけではなく、自動テストは誰かが書こうと思ったことしか確認しません。探索的テストはそのギャップを埋めます。熟練したテスターは好奇心と意図を持ってソフトウェアを突き、直感に従い、入力を変え、台本化されたテストでは決して到達しない奇妙な点に気づきます。それは自動化に対する、創造的で人間的な対の存在です。
台本化されたテストとの違い
台本化されたテストは、あらかじめ定義された計画に従います。探索的テストには固定の台本がありません。テスターは、直前に起きたことに基づいて次のアクションを決めます。学習・設計・実行が同時に行われるため、適応的であり、予期しないものを見つけるのが得意です。
チャーターとセッション
探索的テストは無目的ではありません。多くの場合、「チェックアウトフローのエッジケースを探索する」といったミッションであるチャーターを持つ、時間を区切ったセッションとして構成されます。チャーターは焦点を与えつつ、テスターが見つけたものを追う自由を残します。
自動化を補完する場面
- 誰も自動化しようと思わなかったバグを見つける。
- 正しさだけでなく、ユーザビリティや使い心地を評価する。
- 新規または変更された機能を素早く探索する。
- 新しい自動テストのアイデアを生み出す。
実践的な注意点
探索的テストは、自動化と対立させるのではなく組み合わせたときに最も強力です。自動化は既知の振る舞いを低コストで守り、探索は未知を発見します。探索によって見つかったバグは、修正され続けるように、しばしば新しい自動リグレッションテストになります。
探索的テストと CI
探索的テストは人間による手動作業なので、pipeline 自体では実行されません。しかしその出力は CI を養います。発見された興味深いバグはそれぞれ自動テストになり、その後すべての push で実行されるようになります。高速で信頼できる自動スイートは、テスターが基本の再確認ではなく探索に時間を使えるようにします。
重要なポイント
- 探索的テストは台本がなく、人間が主導し、適応的です。
- 自動化では決して到達しないバグやユーザビリティの問題を見つけます。
- その発見は CI における新しい自動リグレッションテストになります。
関連ガイド
What Is Acceptance Testing?Acceptance testing explained: verifying software meets business requirements and is ready to ship, user vs au…
What Is Regression Testing?Regression testing explained: how it ensures old features still work after changes, regression suites, an exa…
What Is Smoke Testing?Smoke testing explained: a quick check that the most critical paths work before deeper testing, an example, a…
What Is a Test Harness?Test harnesses explained: the supporting setup that lets tests run, its parts, how it differs from a test run…