ソフトウェアテストにはさまざまな手法が存在します。一般的には事前にテスト設計書を作成し、決められた手順に従って実施します。
しかし近年、「探索的テスト」というアプローチが注目されています。これは、あらかじめテストケースを準備せずに、実際にソフトウェアを操作しながらテストを行う手法です。
この探索的テストが生まれた背景として、従来の手動テストの限界や、変化の激しいアジャイル開発の普及が挙げられます。特に、アジャイル開発では迅速な検証が求められるため、柔軟なテスト手法が必要とされています。
本記事では、この探索的テストについて、その概要と実施方法、効果的な進め方をわかりやすく解説していきます。
探索的テストとは
探索的テスト(Exploratory Testing)は、そもそも設計仕様書などの設計ドキュメント類が存在しない状態でのテストを想定しています。
そのうえで、テストケースを作成せず、テスト実施者の経験や直感を活かして、システムを自由に操作しながらテストを行う手法です。
1-1 仕様ベースのテストとの違い

一般的な仕様ベースのテストでは、事前に定義された設計仕様に基づいてテストを行います。
一方、探索的テストでは、仕様が無い状態で実行中に新たな仕様を「探索」しながらを発見しながらテストを進めます。これは、テストエンジニア自身の経験に左右されるものの、状況に応じた柔軟性があると言えます。
要件定義などのドキュメントだけでは読み取れない、よりユーザー視点に立ったテストを実施できるのが仕様ベースのテストとの違いです。
ただし、探索的テストさえ行えばすべてのテストがカバーできるわけではありません。探索的テストは、あくまで従来の仕様ベースのテストを補完する手法として位置づけられます。
仕様べースのテストと組み合わせることで、より包括的なテストが可能になるでしょう。
1-2 実施される場面
探索的テストは主に以下のような場面で実施されます。
■仕様が未確定、ドキュメントが不完全プロジェクト
一般的なテスト設計では、仕様書などのドキュメントに基づいてテストケースを作成します。
しかし、プロジェクトの初期段階で詳細な仕様が決まっていない、ドキュメントが不完全な状態でプロジェクトが進行した場合には、十分なテストケースを作成できません。
その際に、探索的テストを行うことで、実際の動作を確認しながら、必要なテスト観点を見つけ出します。
■イテレーション内での迅速な検証が必要な場合
アジャイル開発では、短期間でのイテレーション(スプリント)を繰り返しながら開発を進めます。そのため、事前に仕様書が作成されなかったり、詳細なテストケースを作成する時間が限られていたりします。
こうした場合において、探索的テストは非常に有効な手法となります。1つのスプリントは長期間ではないため、実装される機能が限られます。そのため、探索的テストでも十分なテストを実施できる場合も多いでしょう。
■想定外の不具合検出やUXの確認など直感的な検証が必要な場合
探索的テストは、テストエンジニアの経験や直感に基づいて行われます。
そのため、事前に想定していなかった不具合やUX(ユーザーエクスペリエンス)の問題を発見できる可能性があります。
特に、ユーザーの操作に基づくテストでは、直感的な検証が役立つでしょう。
探索的テストで期待できる効果
探索的テストを行うことで期待できる効果・メリットを解説します。
2-1 開発者とテストエンジニアの視点から多角的に検証できる
より良いプロダクトを開発するためには、開発者とテストエンジニア、双方の協力が不可欠です。開発者は実装の詳細を理解しており、テストエンジニアはユーザー視点での操作性やUXを重視します。
この両者の視点を融合させて探索的テストを実施することで、より多角的かつ現実的な観点から不具合や仕様の曖昧さに気づくことができます。
仕様の不明点などを双方で確認しながら探索的テストを進めていくと、より効果的なテストになっていくでしょう。
2-2 仕様理解とチーム知見の強化につながる
ドキュメントが不完全なプロジェクトでは、探索的テストを通じて仕様理解が深まります。また、テスト実施後のナレッジ共有を行うことで、チーム全体の知識が向上し、次回以降のプロジェクトに活かせるでしょう。探索的テストは、単なるバグ検出だけでなく、プロジェクト全体の品質向上にも寄与します。
探索的テストの実施方法
探索的テストの実施方法について具体的な手順と進め方を確認していきましょう。
先述の通り、探索的テストは仕様書が無く、またテストケースを作成しないので自由度が高いテストです。
その分、テストの結果や再現性が低いことが課題に挙げられます。これらの課題を少しでも解消するための方法をご紹介します。
- ポイント1:テストチャーターの設定
- ポイント2:セッションベースドテストの導入
- ポイント3:実施中の記録方法
- ポイント4:テスト観点の整理方法
ポイント1 テストチャーターの設定
テストチャーターとは、探索的テストの目的や範囲を明確にするためのガイドラインです。これにより、テストエンジニアは何を重点的にテストすべきかを理解しやすくなります。
また、経験の浅いテストエンジニアでもどういった部分をテストすれば良いかの指針になります。
設定する際には、以下の要素を含めると良いでしょう。
- 目的、範囲、時間を設定
- 実施内容の記録方法
- テスト観点の整理方法
- 実施後のふりかえりとナレッジ共有
ポイント2 セッションベースドテストの導入
セッションベースドテストは、テストを一定時間に区切って実施する方法です。
例えば、30分や1時間などとセッションを設定してテストを実施します。
そして、セッションの中で得られた情報を記録します。これにより、テストの進捗を把握しやすくし、後で振り返る際にも役立ちます。
ポイント3 実施中の記録方法
探索的テストでは、実施中に得られた情報を記録することが重要です。
例えば、以下のような情報を記録します。
- 実行した操作手順
- 発見した不具合や問題点
- ユーザーの操作に基づく感想や気づき
- スクリーンショットや動画のキャプチャ
こうした情報を記録することで、テストや不具合発生手順の再現がしやすくなり、後で振り返る際に役立ちます。
また、探索的テストの結果や得られた知見をチーム内で共有することは非常に重要です。以下のような仕組みを用意しましょう。
- ドキュメント管理ツールを活用し、テスト結果や知見を集約・整理・共有
- 定期的な振り返りミーティングを設け、探索的テストの結果を共有
過去の結果を蓄積することで、次回以降のテストに活かせるでしょう。また、チーム全体の知識向上にも寄与します。
|
★情報の記録で役立つツール ・スクリーンキャプチャ:テスト中の画面をキャプチャし、問題点を視覚的に記録 ・録画ツール:テストの実施内容を録画し、後で振り返る際に活用 ・メモアプリ:実施中の気づきや不具合をメモするためのアプリ 各OSでも標準機能として用意されているものもありますが、より効率的に記録を残したい場合は、専用ツールの導入も検討しましょう。 |
ポイント4 テスト観点の整理方法
探索的テストでは、実施中に得られた情報を基にテスト観点を整理して報告、共有します。
そして繰り返しテストを行っていく際の指針として活用していきます。
以下の方法で行うと効果的です。
-
テスト観点リストの作成
…実施中に気づいたテスト観点をリスト化する -
チェックリストの活用
…チェックリストを用意し、実施中に確認した項目を記録する -
テスト観点の優先順位付け
…重要な観点から優先的にテストを行うため、観点に優先順位を付ける
探索的テストの注意点
探索的テストは実際の利用場面で発生しやすい不具合を見つけるのに有効な手法ですが、注意点も存在します。
実施する際には以下の点に留意しましょう。
- テストの再現性が低い
- 品質がテスターのスキルに依存する
- 成果の見える化が難しい
4-1 テストの再現性が低い
探索的テストは「試行錯誤しながら動かす」スタイルのため、何をどうテストしたかが詳細に記録されないことが多々あります。
そのため、テストの再現性が低くなりがちです。
再現手順が明確でないと、開発者が問題を修正しづらくなるため、操作ログツールや画面録画などで記録を残すことを心がけましょう。
4-2 品質がテスターのスキルに依存する
探索的テストは、テストエンジニアの経験や直感に大きく依存します。そのため、誰がやるかによって品質や結果が変わってしまうというリスクがあります。
探索的テストは、経験豊富なテストエンジニアが実施するのが望ましいですが、経験の浅いジュニアなテストエンジニアがいる場合には、ペア・モブ形式での探索的テストがおすすめです。経験豊富なテストエンジニアと経験の浅いテストエンジニアがペアを組むことで、教育的側面や知識のトランスファーが実現します。また、より多角的な視点からのテストが実施できるでしょう。
4-3 成果の見える化が難しい
探索的テストは、事前にテストケースを準備せずに実施するため、何をどこまでテストしたのかが外部に見えづらいです。
つまり、テストをしたという事実があっても、報告や説明がないと「本当にちゃんと確認したのか?」と疑問を持たれてしまうリスクがあります。
そのため、チャーターと実行ログを残したり、バグ報告時にどのように見つけたかを記載するなどして、きちんと報告をすることが重要です。
まとめ
探索的テストは、事前にテストケースを用意せず、テスターの経験や直感を活かして実際にソフトウェアを操作しながら行う柔軟なテスト手法です。
アジャイル開発やドキュメントが不完全なプロジェクトで特に有効で、仕様理解やチームの知見強化にも寄与します。
テストチャーターやセッション単位の記録、観点整理を通じて再現性や共有性の課題に対応します。
ただし、属人化・記録不足・成果の見える化といった注意点もあるため、工夫した運用が必要です。
仕様ベースのテストと併用することで、より包括的な品質保証が可能になります。
探索的テストを実施する際には、ぜひ本記事を参考にしてみてください。
また、当サイトを運営するバルテスでは、探索的テストを含むさまざまなテストサービス、コンサルティングを提供しています。
お客様のプロジェクトに最適なテスト手法を提案し、品質向上をサポートします。興味のある方は、ぜひお問い合わせください。