何の話?
ソフトウェアテストには、「モンキーテスト」「アドホックテスト」「探索的テスト」という、どれも「仕様書なしで自由に叩くテスト」に見える3つの言葉があります。
これらは「行き当たりばったり」と「経験をベースにロジカル」などのバランスが全く違うテストです。
それぞれの違いと特徴と実施していて感じたことを話せればと思います。
これらは「行き当たりばったり」と「経験をベースにロジカル」などのバランスが全く違うテストです。
それぞれの違いと特徴と実施していて感じたことを話せればと思います。
3つのテストの決定的な違い
ざっくりと三つについてのまとめ
- モンキーテスト
- やる人の特徴:誰でもOK
- 主な進め方:完全にランダムでOK
- 基本的な目的:プロダクトやサービスが知見のない人に対応できるか確認
- アドホックテスト
- やる人の特徴:テスト経験のある人
- 主な進め方:経験をもとに自由にテストを実行
- 基本的な目的:バグが発生しそうな箇所を経験則で確認
- 探索的テスト
- やる人の特徴:熟練のテスター
- 主な進め方:仕様を把握しつつ、経験に基づきテストを実行
- 基本的な目的:仕様と経験に基づいた不具合の早期発見
3つのテストの共通しているところは?
三つに共通していることは「テストケースを作らない」ことです。「テストケースを作らない」というのは仕様を全く理解しなくても良いというわけではなく、情報をドキュメントなどに出力せずに頭の中で実行するという意味です。なので、不具合や気になる点を発見した場合、もしくは実行ノウハウなどを残す場合はテスト後に何かしらの媒体に残す必要っがあります。
現場によって言葉があいまいになってない?
現場あるあるだと思いますが、上記の三つをすべてモンキーテストやアドホックテストと表現している現場は少なくないと思います。これらは目的ややり方が変わってきてしまうので認識の祖語、品質の低下を引き起こす可能性があります。(思ってたテストではなかったや、やり方が異なっているのに確認済みにしてしまったりなど)
基本的には表現揺れは意識して、認識を揃えていくことであいまいさは解消されていくと思います。
まとめ
「モンキーテスト」「アドホックテスト」「探索的テスト」の違いに関して、正直細かいことを気にしてもという気持ちはあると思いますが、この認識の違いでテストの効果は半減したり増幅したりします。
ただ、現場によっては長く根付いた”言葉の意味”になっている場合もあり無理に正すことはあまりお勧めできません。なので、”言葉の意味”を定義してあげることで表現揺れを防ぎつつ、認識の祖語をなくし、それぞれのテストの目的とやり方から適切な場面で使えるとより効果のあるテストができると思います。