サイトアイコン TestRail Blog

探索的テスト: アジャイル開発で効果的に実施する方法

Hannah Son著

探索的テストはスクリプトに依存しない動的なソフトウェアテストアプローチであり、テスターは形式化されたスクリプトではなく特定の目標に基づいてアプリケーションを評価します。この手法は、ユーザーの観点から未知のリスクや不備を明らかにするのに特に効果的です。

探索的テストのメリットを最大化するには、以下を重視します。

最も一般的な探索的テストの実施方法は、セッションベーステスト管理(SBTM サイクル)の5つのステージに従うことです。

  1. テストのミッションまたはゴールを定義する
  2. テストチャーターを作成する
  3. テストをタイムボックス化する
  4. 結果をレビューする
  5. デブリーフィングを行う

探索的テストを構造化する方法 

探索的テストは従来のスクリプト化されたテストよりも自然発生的で順応性が高いものですが、時間ベースのSBTMサイクルアプローチによってステップごとに構造化されます。

1.テストのミッションまたはゴールを設定する

まず、探索的テストセッションのミッションを明確に定義します。すると、重要な領域に作業を集中させ、確実に対処することができます。具体的には以下の手順に従います。

2.テストチャーターを作成する

テストチャーターとは、ミッションステートメントの役割を果たす簡潔な概要レベルの指針であり、探索的テスト作業を集中させ、変化する状態に適応すると同時に、創造性を発揮する余地を残すのに役立ちます。

たとえば、EコマースプラットフォームのWebアプリのログインをテストする場合、テストチャーターは「ホームページのログインメニュー機能を分析し、潜在的リスク領域をレポートする」、「Webアプリケーションのログイン機能を分析する」、あるいは「不正なデータを持つユーザーがWebアプリにログインできるかどうかを確認する」等になるでしょう。

チャーターは、コースを外れないようにし、不注意による特定のリスクを最小限にするためのものです。テストチャーターを作成する際は、以下を含めるべきです。 

探索的テストチャーターの例

テストチャーターは、探索的テストセッションの簡潔な概要レベルの指針となります。チャーターは、作業を集中させると同時に、創造性を発揮する余地を残すのに役立ちます。効果的なテストチャーターを作成するには、以下の手順に従います。

例: たとえば、ソーシャルメディアアプリケーションのチャーターであれば、「同一グループ内の複数ユーザーのコメント、パーミッション、競合状態をテストする」といったものが考えられます。明確なテストチャーターを作成することで、漠然としたテストプロセスを構造化されたリスク探索に変えることができます。

3.テストをタイムボックス化する

タイムボックス化とは、テスターがあらかじめ決められたタイムフレーム内に作業を集中させるためのテクニックです。タイムボックス化により、集中力と効率性が増します。探索的テストセッションを効果的にタイムボックス化するには、以下の手順に従います。

タイムボックス化を実践すると、構造化され、しかも柔軟な環境を用意することができ、探索的テストの有効性を最大化できます。

4.結果をレビューする 

結果をレビューすることは、探索的テストセッションの有効性を評価するうえで重要です。以下の手順に従って徹底的にレビューします。

結果を徹底的にレビューすると、探索的テスト作業が十分に文書化され、開発チームによる対処が可能であることを保証できます。

5.デブリーフィングを行う

デブリーフィングは、セッションベーステスト管理プロセスに欠かせません。デブリーフィングによって、テストを振り返ってその後のセッションを改善することが可能になります。効果的なデブリーフィングを行うには、以下の手順に従います。

徹底的なデブリーフィングを行うことで、継続的な改善につながるため、常に探索的テストの有効性が保たれ、変化するニーズに適応することができます。

画像: TestRailはリアルタイムのレポートを実現し、報告されたすべてのメモ、スクリーンショット、および欠陥を時系列で一覧できる履歴を保持しているため、簡単にすべてのテストセッションを一元的にレビューできます。

デブリーフィングは軽視されがちですが、重要な情報支援であり、テストマネージャーがアプリケーション品質を感覚として掴み、カバレッジの全体的な視野を得るのに役立ちます。デブリーフィングでのフィードバックには、テスト目標に対する進捗の評価や、検出された最も重要な欠陥のサマリーを含めることができます。

探索的テストのサンプル

以下は、探索的テストがどのように行われるかを示すサンプルです。

シナリオ: あなたはWebベースのE-コマースアプリケーションのテスターです。

実施:

継続的フィードバック:

この探索的テストによって、スクリプト化されたテストでは見逃しのおそれがある問題を発見すると同時に、開発チームとのすばやいコミュニケーションによってアプリケーションの品質向上を図ることができます。

アジャイルテスト管理ツールを使用した探索的テストの実行

チャーターを使用した探索的テストは、デリバリーにかかる時間が比較的短いため、アジャイル環境で有効です。しかし、探索的テストの結果を共有スプレッドシートで追跡するのは大変な作業であり、詳細が失われる可能性があります。結果をネットワークドライブ上の個別のドキュメントで管理する場合はさらに大変かもしれません。 

TestRailでは、チャーターをテストケースとして保存できます。その後、特定のリリースで実施すると決めたさまざまなタイプの探索的テストで構成されるテストランを作成できます。 

画像: TestRailでは、テストケースを追加し、exploratory sessionテンプレートを選択して推定時間、ミッション (探索的テストの目的)、ゴール (検証する特定の領域)を追加できます。

テスターはセッションと同様にテストケースにコメントを残すことができます。すると、テスト管理システムがデータを収集してサマリーレポートを作成します。

スクリプト化されたテストと探索的テストを組み合わせた比較的シンプルなアプリケーションの例では、テストランは20個のスクリプト化されたテストケースと特定のリスクを探索するための4つのチャーターで構成されるといったケースが考えられます。次のサンプルでは、セッションをテストケースとして記録しています。

画像: セッションをテストケースとして記録することで、TestRailで探索的テストを実行する

テスト管理ツールを使用して探索的テストをレポートする方法

効果的なレポートは、ステークホルダーが探索的テストの結果を確実に理解できるようにするうえで重要です。以下の手順に従って、明確でアクションを起こすのが容易なレポートを作成します。

画像: TestRailなどの専用のテストケース管理プラットフォームを探索的テストツールとして使用して、探索的テストケースのレポート生成プロセスを管理、整理、追跡、合理化します。

探索的テストFAQ

スクリプトテストと探索的テストの違い

スクリプトテストは具体的な手順が事前に定義されたテストケースに従ういっぽう、探索的テストでは、テスターが直感に従ってソフトウェアを探索し、問題を発見して動作を評価するという、スクリプトに頼らないアドホックテストが行われます。 

次の表は、スクリプトテストと探索的テストの主な違いを分類したものです。

側面スクリプトテスト探索的テスト
テストケースの作成事前に定義されたテストケース事前に定義されたテストケースなし
テスト実行スクリプトに記述された手順に従うアドホック、スクリプトなし
テスト計画詳細なテスト計画が必要それほど形式的ではないテスト計画
柔軟性柔軟性が低い柔軟性が高い
テストの文書化広汎な文書化最小限の文書化
テストカバレッジ具体的で限定的広いテストカバレッジ
自動テスト自動テストに非常に適している自動化に適していない(人間の直感と好奇心が必要)
バグ検出新しい問題の発見にはそれほど有効ではない隠れた問題の発見に有効
ユースケース反復的タスクに適している新機能のテストに適している

探索的テストのタイプ

どのタイプの探索的テストを選択するかは、テストの目的、ソフトウェアの性質、テストチームの持つ知見によります。多くの場合、カバレッジと欠陥の発見を徹底するため、複数のテストが組み合わせられます。

探索的テストを採用するべきケース

探索的テストは、適切にテストを行うために柔軟性、適応性、予期しない問題を発見する能力が重要な場合に有効です。探索的テストはソフトウェア品質に関するより全体的なビューを提供することでスクリプトテストを補います。

アジャイルでの探索的テストの利点

探索的テストには、アジャイル開発環境においていくつかの重要な利点があります。

探索的テストはスクリプトテストを補完し、アジャイル開発ライフサイクルにペースを合わせるために必要な柔軟性、適応性、すばやいフィードバックを提供します。探索的テストはアジャイルチームに高品質のソフトウェアをデリバリーする力を与え、発展する要求とユーザーの期待に応えることを可能にします。

探索的テストのベストプラクティス

(この記事は、開発元Gurock社の Blog 「Exploratory Testing: How to Perform Effectively in Agile Development」2024年11月1日の翻訳記事です。)

関連する製品

テスト管理ツール TestRail

テストケースの管理やテスト結果の記録、チームでの情報共有など、Excelを使ったテスト管理の業務に限界を感じていませんか?TestRailはシンプルで使いやすいUIを提供し、テストにかかるさまざまな管理コストの削減に貢献します。

■ TestRailの特長 ■

日本国内では、テスト管理にExcelを使っていたお客さまからの乗り換えが多く、Web上で完結するテスト管理を実現されています。

TestRail でテスト管理のお悩みを解決しませんか?

モバイルバージョンを終了