2021.5.31
【第1回】:探索的テストの基礎知識
アジャイル開発の広がりなどで開発スパンは短期化の傾向にあり、現代の開発現場にはスピード感が求められます。中でも、全開発工数の30%以上を占めると言われるテスト工程の効率化は最重要課題です。
しかし、現代のシステムやソフトウェアは複雑化の一途をたどっており、テスト工程の効率化と品質向上のためには抜本的な改革が必要となります。この課題に対する有力な手段のひとつが、「探索的テスト」です。探索的テストは短期間でテスト成果の向上を期待できるテスト技法ですが、現代の開発現場ではあまり導入が進んでいない現状があります。
実際に、探索的テストについてご存じない方も多いのではないでしょうか。そのような方に向けて、ADOC TESLABブログでは探索的テストについて、全5回の連載で順次解説します。第1回である本記事では、探索的テストに関して把握すべき基礎知識についてご紹介しましょう。
探索的テストとは、どのような技法か
開発の現場では、テスト設計の内容をもとにテストを実行する「記述式テスト (スクリプトテスト)」という技法が、長い間用いられてきました。記述式テストでは、仕様書や設計書をもとにテスト仕様書の事前作成が必要です。しかし、十分な開発ドキュメントが存在しないケースやスケジュールに余裕のないケースも多く、短期間で記述式テストを実施するのは難しい現実があります。
そこで、1984年にCem Kaner氏が生み出した新たなテスト技法が、テスト設計とテスト実行を並行して行う「探索的テスト (Exploratory Testing)」です。探索的テストでは、テストを実行しつつその結果をフィードバックすることで、新たなテスト項目を生み出していきます。
事前にテスト計画やテスト設計を行わずにテストを始められるため、十分なテスト工数の確保が難しいアジャイル開発などに適したテスト技法です。探索的テストではテスターの経験やスキルを最大限に活用することで、最小限の工数で成果を上げることが可能となります。
アドホックテスト (モンキーテスト) との違い
探索的テストと混同されやすいテスト技法が、「アドホックテスト (モンキーテスト)」です。アドホックテストも、事前にテスト計画やテスト設計が不要という点で探索的テストと似ています。両者の違いは、テスト目的やテスト記録の有無です。
アドホックテストは、目的や方針を全く決めずにその場の思い付きだけでテスト対象を操作していきます。明確なテスト項目を定めず場当たり的に操作していくため、テスト記録を残さないことも少なくありません。経験やスキルが少ないテスターでも実施できる反面、不確定要素の多いテスト技法と言えます。
一方で探索的テストは、事前にある程度の目的や方針を定めてから開始するのが一般的です。また、テスト実行しながら明確なテスト項目を作成していくため、実施したテスト内容についてはテスト仕様書に記録します。探索的テストの方が、より成果を上げやすいテスト技法と言えるでしょう。
探索的テストに有用な「テストチャーター」とは
探索的テストでは、「テストチャーター」と呼ばれるものを事前に作成するケースが多く見られます。テストチャーターとは、考え得るテスト目的をリストアップして明記したものです。テストチャーターは通常のテスト仕様書と異なり、テスト手順や期待値などは明確には定めません。
テストチャーターを用いることで、経験やスキルが少ないテスターでも探索的テストを進めやすくなるメリットがあります。その反面、テストチャーターを細かく設定し過ぎると自由度が下がり、探索範囲が狭まりやすいのがデメリットです。
なお、「Eggplant」などの探索的テスト自動化ツールを用いた場合、テストチャーターは不要となります。AIによりテスト項目が自動的に決定され、テスト目的を人間が定める必要がないためです。
探索的テストに適用できる「セッションベースドテスト」とは
探索的テストは明確なテスト計画を作成しないため、その進捗状況をテスト管理者が把握することは困難です。そこで、探索的テストには「セッションベースドテスト」を複合的に適用する場合があります。セッションベースドテストとは、テストを一定の時間 (セッション) ごとに区切って管理するテスト技法です。
セッションベースドテストでは、セッションが切り替わるタイミングでテスト管理者・テスター間でテストに関して情報共有します。そうすることでテスト管理者は探索的テストの進行をコントロールでき、テスターもフィードバックを受けられるのがメリットです。
ただし、セッションを細かくし過ぎるとテスターの自由度が下がり、探索的テスト最大の特徴である「探索」がしづらくなるデメリットもあります。セッションベースドテストを探索的テストへ適用することは一長一短であり、開発プロジェクトの状況に応じた使い分けが必要です。
また、テストチャーターやセッションベースドテストを利用しない、テスターの経験や知識に基づいて実施する探索的テストは「フリースタイル」と呼ばれます。開発システムについて仮説を立てて検証と結果の評価を繰り返したり、動きを探りながら必要な知見を学習したりするのが主な実施方法です。テストを実行しながら柔軟に探索を進められるメリットはあるものの、テスターへの依存度が高まることが難点となります。
探索的テストで知っておくべきポイント
今回は、探索的テストに関して把握すべき基礎知識について解説しました。要点は、以下の通りとなります。
・探索的テストとは
-テスト設計とテスト実行を並行して行うテスト技法
-短期間でのテスト実施を可能にするため、アジャイル開発などに適している
・アドホックテスト (モンキーテスト) との違い
-探索的テストではテスト目的を事前に定め、実施したテスト内容については記録する場合が多い
・探索的テストに有用な「テストチャーター」とは
-考え得るテスト目的をリストアップして明記したもの
-経験やスキルが少ないテスターでも探索的テストを進めやすくなる
・探索的テストに適用できる「セッションベースドテスト」とは
-テストを一定の時間 (セッション) ごとに区切って管理するテスト技法
-テスト管理者が探索的テストの進行をコントロールしやすくなる
これらの内容はあくまで基礎知識であり、探索的テストを導入するためには、以下の事項についても把握する必要があります。
・探索的テストのメリットやデメリット
・開発現場に導入する際の課題
・上記課題に対する解決策
第2回以降では、これらの事項に関して順次ご紹介します。次回は、探索的テストのメリットやデメリットについて解説しましょう。
■ ADOC Testing Service for Eggplantの概要へ
■ ADOC Testing Service for Eggplantの資料請求へ
- 2021.7.8
- 【第5回】:課題解決のために ②AIを活用したテスト自動化