探索的テストについて

探索的テストとは

探索的テスト(Exploratory Testing)とは

探索的テストとは、テスト実施者がテスト作成とテスト実行を同時並行に実施するテスト手法です。
事前に手順を明記したテストケースを作成するのではなく、テスト実施者がソフトウェアの振る舞いを見ながら随時テスト内容を作成・調整していくことで、ソフトウェアを検証していきます。


テストを実施する過程で、テスト担当者がテスト実施情報を活用しながらテスト設計をコントロールし、積極的に質の高い新しいテストケースを設計する。 
 - ISTQB用語集より - 

探索的テストとアドホックテストの違い

類似のテスト手法に「アドホックテスト」あるいは「モンキーテスト」と呼ばれる手法があります。
これらのテストは「フリーテスト」とも呼ばれ、「その場の思いつき」や「ランダム性」が重視され、ユースケースや仕様定義で検討できていなかった使い方をした時にどうなるかを確認することを目的としたテストです。

テスト手法 説明
アドホックテスト(Ad hoc testing) ある程度には意味のある文字や数値をランダムに入力してテストする手法。
担当者自身の知識や経験値に基づいて「価値がある」と考えられる内容を実行する。
モンキーテスト(Monkey testing) 無秩序で意味のない文字や数値をランダムに入力してテストする手法。
文字通り、猿に操作させるように、無秩序に様々な操作内容を実行する。

探索的テストは、これらのテストと異なり、目的や方針を定めてからテストを実施します。
そのため、探索的テストは、特定の機能や領域に対して、設計者や開発者が思いつかない操作を実行する目的を果たすために、十分にテストエンジニアリングスキルのあるテスト担当者をアサインする必要があります。
なお、ゲーム業界の「デバッガー(ゲームテスター)」などはこのようなテストスキルを保持している人が重用されます。


他のテスト手法と併用すると効果的である。

探索的テストは、この手法のみを実施した場合には、テストとしての効果やソフトウェア品質の確保が十分にならない場合があります。
特に、このテスト手法は、一般的な機能に対する網羅的な検証を行うことに適しているとはいえません。
そのため、ホワイトボックステストやブラックボックステストなどのテスト手法を併用する手法が望ましいといえます。
探索的テストと他のテスト手法を併用して検証範囲をカバーし合うことで、非常に効果的なテストが実現できます。


探索的テストのメリット

想定外の不具合の検知が可能になる

探索的テストを実施する最大のメリットは、仕様書・設計書から想定しにくい不具合の検知が可能になることです。
特に、網羅的なテストでは見えてこない、ユースケースから想定される操作に対して、重点的にテストを実施することができます。
これは、「欠陥の偏在」の傾向のある箇所を見つけ出して、効果的にテストすることに繋がります。

また、仕様や設計が不確かな箇所にも柔軟に対処できるメリットもあります。
一般的に、操作していて使いにくいと感じる画面や洗練されていないUIは、多くの場合に不具合が潜在しています。
探索的テストならば、このような疑わしい箇所を重点的にテストすることができます。


低コストで効率的に欠陥を発見できる

探索的テストではテスト仕様書を作成する必要がないため、そのための労力と時間が大幅に削減できます。
特に、アジャイル型の開発におけるイテレーション単位におけるテストとして適した手法であるといわれます。
例えば、テスト駆動開発(TDD:Test-Driven Development)と併用することは非常に適しており、品質向上を実現する優れた施策です。


探索的テストの注意点

テストの効果がテスターに依存してしまう

探索的テストは、テスター個人の知識や技能、経験、勘に依存し、属人性が高いテストです。
そのため、テストの効果、実施範囲、精度は、完全にテスターのスキルに依存します。
またソフトウェアの分野や用途によっては、多様な経験のあるテスターですら、十分に効果的なテストを実施することが難しいこともあります。


網羅性を担保できない

探索的テストは、テストの範囲や詳細さの管理、コードや仕様に対する網羅性の確保なども難しいという問題があります。
例えば、記述式テストではテスト設計やレビューを実施してテスト仕様書を作成して網羅的にテストを行うため、製品品質がある程度保証できる形となります。
しかし、探索的テストではテストの作成と実施が非計画的に進められるため、漏れや抜けが発生することを十分に防ぐことができません。
極論すれば、探索的テストは、品質保証の目的には向いていないテストなのです。


関連ページ