テスト自動化をサクサク進めるためのWebマガジン「SAKUTES(サクテス)」 » ソフトウェアテスト手法である「探索的テスト」とは?

ソフトウェアテスト手法である「探索的テスト」とは?

テスト自動化をサクサク進めるためのWebマガジン「SAKUTES(サクテス)」 » ソフトウェアテスト手法である「探索的テスト」とは?

テスト自動化ツールに関連し、ここでは、ソフトウェアテストの一手法として広く行われている探索的テストについてご紹介します。

探索的テストとは、一定のスキルや経験があるテスターが、テスト結果に応じながら新たなテスト項目を生み出して実行していく手法のこと。十分なテスト工数を確保できないプロジェクトにおいては、積極的に採用されている手法です。以下、モンキーテストとの違いなども含めて、探索的テストの概要や特徴を理解していきましょう。

探索的テストとは?

ソフト開発の現場においては、長らく記述式テスト(スクリプトテスト)という手法が用いられてきました。事前にテスト仕様書を準備した上でテストを行う手法です。

しかしながら実際のソフト開発においては、テスト仕様書を事前作成するための十分な時間的余裕がなかったり、もとより十分な開発ドキュメントが存在しなかったりする場合が少なくありません。

そのような状況を打開するために1984年に開発された手法が、探索的テスト。事前にテスト計画を用意することなく、ある程度の目的や方針を定めた上でテストを実行し、その結果をフィードバックしながら新たなテスト項目を生み出していく手法です。アジャイル開発などのように、十分なテスト工数の確保が難しい場合には、探索的テストが非常に有効な手法となるでしょう。

ただし、テストを行った上で新たなテストを生み出して対応するという特性から、テスターには十分なスキルや経験が必要になることは言うまでもありません。

モンキーテストと何が違うのか?

探索的テストと似た概念として、モンキーテストがあります。アドホックテストとも言います。

探索的テストもモンキーテストも、事前の綿密なテスト計画の作成が不要という点では共通しています。その点を根拠に両テストを混同している人もいるようですが、探索的テストとモンキーテストには大きな違いがあることを理解しておく必要があります。

探索的テストは、事前にある程度の目的や方針を定めた上でテストを実行します。実行の結果で新たなテスト項目が生まれるため、実施済みのテストについては、テスト仕様書に記録しておかなければなりません。

一方でモンキーテストは、事前に目的や方針を定めずにテストを実行します。思い付き、場当たり的なテストとなるため、テスト結果の記録を残さないことも珍しくありません。やや極論すれば「誰でもできるテスト」なので、十分なスキルや経験がないテスターでも、モンキーテストを実行することができます。

探索的テストで行われるテストチャーターとは?

テストチャーターとは、探索的テストにおいて事前に作成することの多いリストの一つ。想定されるテスト目的を考え、事前にリスト化して明記したものがテストチャーターです。目的をリスト化するだけなので、通常のテスト仕様書などのような詳細なテスト手順や期待値などを定める必要はありません。

先に、探索的テストには十分なスキルや経験が必要と説明しましたが、このテストチャーターを事前に作成しておけば、スキルや経験が不十分なテスターでも、比較的容易に探索的テストを行うことが可能です。経験の乏しいテスターのスキル育成にも役立つことでしょう。

ただし、あまり細かくテストチャーターを設定してしまうと、探索範囲が狭くなってテストの自由度が低下しかねません。探索的テストのメリットを活かすためには、細かすぎるテストチャーターの作成は避けたほうが良いでしょう。

なお、AIを搭載した一部のテスト自動化ツールには、テストチャーターを自動作成するタイプの製品もあります。人的資源の乏しい組織では、そのようなタイプのテスト自動化ルーツの導入を検討してみても良いのではないでしょうか。

探索的テストを管理するセッションベースドテスト

探索的テストでは、事前に明確なテスト計画を作成することはありません。そのため、管理者が探索的テストの進捗状況を正確に把握することは、ほとんど困難です。しかしながら、いかに探索的なプロセスが重要なテストとは言え、テストの進捗状況を全く把握せずにテストを進めていくのは、やや問題です。

そこで探索的テストでは、一定の時間ごとに区切って管理するセッションベースドテストが行われることがあります。一定の時間(セッション)の区切りのタイミングで、管理者やテスターの間で結果や進捗の情報共有をする手法をセッションベースドテストと言います。

セッションベースドテストを行うメリットは、管理者が探索的テストのコントロールを効果的に行なうことができること。またテスターにおいても、情報のフィードバックを受けられる点がメリットになります。

一方で、あまりセッションを細かく設定すると、テスターの自由度が低下するというデメリットが生じます。探索的テストの長所は、高い自由度の中で「探索」ができる点にあるため、細かすぎるセッションの設定は探索的テストのメリットを奪うことにもなりかねません。多くの探索的テストにおいて、セッションベースドテストを導入することは有効に働きますが、開発プロジェクトに応じた柔軟な運用も必要になってくることでしょう。

なお、探索的テストにおいてテストチャーターもセッションベースドテストも用いない手法のことを「フリースタイル」と呼びますが、「フリースタイル」を行うには、テスターに十分なスキルや経験があることが前提です。テスター個人への依存度が高くなり、いわゆる属人化が進む恐れもあるので、「フリースタイル」の導入には慎重になる必要があるでしょう。

【まとめ】チーム全体で探索的テストのスキルを上げる

テスト工数を十分に確保できないアジャイル開発などに適した探索的テスト。すぐにテストを実行できること、テスト中の気付きをテストに反映しやすいこと、低コストでテストをできることなど、探索的テストには他の手法とは異なる多くのメリットがあります。

一定のスキルが必要となる手法なので、特定のテスターへの属人化が生じないよう、チームで情報共有をしながら全体でスキルを上げていくことが大切です。

⽇本語のサポートが⼿厚い!
UIテスト自動化ツールを比較

ノンプログラミングで
⽇本語のサポートが⼿厚い

テスト⾃動化ツールを⽐較
商品名 Ranorex
(ラノレックス)
Autify
(オーティファイ)
商品タイプ パッケージ型

膨大なテスト工数を
削減したい企業向け

SaaS型

初期費用を抑えて
導入したい企業向け

対応テスト
  • デスクトップ
  • webアプリ
  • モバイルアプリ
  • デスクトップ
  • webアプリ
  • モバイルアプリ
実行回数
の制限
制限なし 制限あり

400回/1000回/任意 ※プランにより異なる

日本語サポート 導入後のセミナーが充実! ヘルプサイトが充実!
体験版 14日間 14日間

※Googleで「テスト自動化ツール」と検索し上位表示されたパッケージ型、SaaS型のテスト自動化ツール21種類の中から、(1)クロスデバイス、マルチブラウザに対応し、(2)日本語のサポートがあり、(3)ノンプログラミングでシナリオ作成が可能なツールをピックアップ(2021年11月1日調査時点)。パッケージ型、SaaS型それぞれの代表商品を選出しました。

【代表商品の選出基準】
☆パッケージ型:上記の条件の通り。
☆SaaS型:上記の条件に加え、公式サイト上に導入事例がもっとも多かったツールを選出。