COLUMN
コラム
Column 11

探索的テストはどのような時に有効か

皆様は、「探索的テスト」という言葉を聞いたことはありますか?
今回は、探索的テストがどのようなテストであるか、そして使用する上でのメリット・デメリットを挙げていきながら、どのような時に有効なテストであるかを考えてみたいと思います。

1. 探索的テストとは?

探索的テストとは経験ベースのテスト技法の一つで、対象プロダクトの開発担当者やテスト担当者が持つ経験を基にテストを実施します。
ここでは、過去に発生した欠陥やインシデントも、その周辺を狙った機能に対してテストすることができるため、有効な情報の一つとなります。

探索的テストと類似している手法として、アドホックテストがありますが、両者の違いを見ていきましょう。

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

アドホックテストとは、場当たり的なテストでありテスト担当者の思い付きで行うため、経験の浅い担当者でも実施することは出来てしまいますが、不十分なテストとなってしまいがちです。
また、担当者のスキルに依存するため、やみくもなテスト(俗にいうモンキーテスト)になってしまいます。

一方、探索的テストでは、経験値の高いテスト担当者が、過去の情報を基に一通りのテストの終了後に最終的な確認を行うため、一定の効果が期待できると考えられています。

記述式テストとの違い

記述式テストは、設計書や仕様書を基にテストを開始する前に実施内容を検討し、テストケースを作成して実施するところが探索的テストと異なります。
記述式テストでは、ある程度要求仕様を網羅したテストが可能となりますが、テストの準備や全てのテストケースを完了させるために多くの工数を要してしまいます。

探索的テストは、対象プロダクトの欠陥検出率が低くなる可能性もあり得ますが、あまり工数を使わずにテストを進めることが可能になります。
ここに、両者の違いがあると考えられます。

2. 探索的テストのメリット

ここでは、探索的テストのメリットがどのようなものかを確認していきましょう。

① 短期間で効率よくテストを進められる

探索的テストのメリットの一つとして、テストケースを事前に準備する期間がない場合に有効な手段であることが挙げられます。
テスト期間終盤のスケジュールに余裕がない時に、テスト設計を進めながら「テスト実行」も行うことが出来るため、スピード感があり低コストで効率よく欠陥を発見できる可能性があります。

② 状況に合わせてテストができる

探索的テストでは、その時のテスト担当者のリソースや対象プロダクトから検出されている欠陥に合わせ、状況にマッチしたテストを行える点もメリットの一つです。
記述式テストのように、形式的な技法を用いて作成したテストケースで検出できなかったような欠陥を見つけられることもあります。

3. 探索的テストのデメリット

探索的テストのメリットを確認してきましたが、逆にどのようなデメリットがあるのでしょうか?
こちらも確認していきましょう。

① テスト担当者の経験やスキルで効果に大きな差がでる

探索的テストにおいては、明確に仕様が定義されていない場合に仕様を予測しながら実施する必要があり、ある程度の効果を得たい場合には、テスト経験やスキルが必要となってきます。
例えば、日付が管理されているシステムでは「うるう年」があり、テスト経験のある担当者はこのような箇所で欠陥が発生しやすいことなどを過去の経験で分かっているため、探索的テストでもそこを狙ってテストを行うことが可能と考えられます。

このように、担当者のテスト経験やスキルに依存してしまい、テスト結果に差が生じてしまうことが記述式テストと比べたデメリットとなります。

② 探索的テストだけで品質を保証することが困難

記述式テストでは、要求仕様から時間を要して設計書や仕様書を作成して網羅的にテストを行うため、対象プロダクトの品質がある程度保証できる形となりますが、探索的テストではテストケースとテスト実施を並行して進めていくことになります。

そのため、テストケースのレビューが行われないことが多くあり、最終的に品質保証するテストとしては向かない手段であるということになります。

4. まとめ

ここまで、探索的テストがどのようなテストであるかとメリット・デメリットについてまとめてみました。
探索的テストには短期間かつ低コストでテストを進められるメリットを活かせる状況で有効な手段であると思われます。

但し、記述式テストのように網羅的にテストする技法に比べると品質を保証できないという欠点もあります。
どちらのテストが勝っているというものではありませんが、記述式テストで網羅的なテストを行った後にそれを補完する形で探索的テストを行うことで、記述式テストで見つけるべき欠陥を検出した場合にテストプロセスに問題があることが分かるため、次回テストを進める際の改善点を見つけられる点で有効的なテストであると思います。

それぞれの特徴を理解した上で、探索的テストをその時の状況に合わせて効果的に使用し、世の中のあらゆる製品の品質を保証していければと思います。

ページトップへ戻る