最終更新日: 2024年2月19日

アドホックテスト・モンキーテストは、フリーテストとも呼ばれる、事前準備なしでフットワーク軽く行えるソフトウェアテストのことです。テスト設計なども行わないため限界はあるものの、適切に活用すれば成果をあげることができます。

一方で、アドホックテスト・モンキーテストの内容はきちんと理解されておらず、しばしば混同されるのは否めません。これらテストで成果をあげるためには、それぞれの特徴や違いを把握する必要があるのです。

この記事では、アドホックテスト・モンキーテストの概要や違いを解説します。その上で、これらのテストと比較されることが多い探索的テストとの違いも紹介しますので、あわせて参考にして下さい。

アドホックテストとは

アドホックテストとは事前の準備をせず、場当たり的に思いつくまま行うソフトウェアテストの種類です。

一般的にソフトウェアテストではテスト内容の取り決めや設計を行ったり、手順をまとめたりしてから実行に移ります。より専門的には、「テストケース」※をきちんと準備してから行うものです。アドホックテストでは、そういった事前準備を一切せずテストケースも作成せずに実行されることが特徴です。

※テストケースとは
ソフトウェアテストを実行する手順や利用するデータ、条件、期待される結果などを文章化したもの

その上でアドホックテストは、ソフトウェアの仕様を理解した技術者によって実行されるのも特徴と言えます。場当たり的に行うといっても、アドホックテストは何の脈絡もなく行われるわけではありません。

アドホックテストは担当者自身の知識や経験値に基づいて、「価値がある」と考えられる内容のテストが実行されます。そのためアドホックテストの品質や精度を高めるためには、一定以上のスキルと経験値が必要です。

モンキーテストとは

モンキーテストもアドホックテスト同様に、事前の準備なしに行われる種類のソフトウェアテストです。

ただしモンキーテストはアドホックテストとは異なり、ソフトウェアの仕様に関する知識がない担当者でも実施することができます。そのため、実行されるテスト内容はランダムです。

アドホックテストであれば、テスト時に入力される文字や数値には何がしかの意味があります。一方でモンキーテストでは、テストで意味がある文字や数値が入力されるとは限りません。モンキーテストでは文字通り猿(モンキー)に操作させるように、ランダムに(無秩序に)いろいろな操作が実行されるわけです。

探索的テストとアドホックテスト・モンキーテストの違い

「探索的テスト」は、アドホックテスト・モンキーテストと同様にテストケースを用意せず「手探りで」行うソフトウェアテストの種類です。探索的テストとアドホックテスト・モンキーテストは、そういった点で似ているためによく混同されます。

ただし探索的テストは、他の2つと異なり事前準備を全くしないわけではありません。テストケースこそ作成しませんが、テストを行う目的を取りまとめ、テストチャーター※を用意してから実行します。

※テストチャーター
テストの目的を達成できたと判断するための指針

またアドホックテスト・モンキーテストでは記録をせずに進めますが、探索的テストでは手順などを記録することが推奨されています。これらの点から探索的テストの方が他2つの種類より精度が高く、高い成果を出しやすいわけです。

<探索的テスト・アドホックテスト・モンキーテストの比較>

探索的テストアドホックテストモンキーテスト
事前準備テスト目的/テストチャーターのみ用意不要不要
テスト手順などの記録行うことを推奨行わない行わない
再現性他の2つより高い低い低い
テストの精度最も高いモンキーテストより高い低い
実行者のスキル高いスキルが必要モンキーテストより高いスキルが必要高いスキルは不要

アドホックテスト・モンキーテストを行うメリット

テストケースを用意せず行われるアドホックテスト・モンキーテストには、どのようなメリットがあるのでしょうか。以下、主なメリットを1つずつみていきましょう。

準備が不要ですぐに実施できる

一般的にソフトウェアテストを行う場合は、テストケースを作成するなどの準備に手間とコストがかかります。一方、アドホックテスト・モンキーテストはそういった準備なしにフットワーク軽く実行が可能です。

そのため時間の余裕がない場合に、一定のテストが行える点はアドホックテスト・モンキーテストのメリットと言えます。通常のソフトウェアテストが終了したあと、余った時間でテストの品質を高めるために実行するのも有効です。

想定外のバグを見つけることができる

アドホックテスト・モンキーテストは、事前に作ったテストケースに制限を受けることなく場当たり的に(自由に)行われます。そのため、かえって想定していなかったバグが発見されることもあるのです。

通常のソフトウェアテストでは仕様書や設計書をベースにして、テストケースの作成が行われます。けれど仕様書や設計書も、ソフトウェアに関する全てを網羅できているわけではありません。そのためテストケースに依らないアドホックテストやモンキーテストで、開発者も想定していなかったバクがみつかることがあるわけです。

スキルが必要ないので、誰でも実施できる

モンキーテストに関しては、ソフトウェアの知識もスキルも必要がありません。そのためモンキーテストは担当者を選ばず誰でもアサインして実行させることができます。モンキーテストであれば、スキルの高い担当者を確保する必要がないわけです。


アドホックテストに関しては、ソフトウェアの知識やスキルが必要です。そのため実行の際は、適切な担当者をアサインする必要があります。

アドホックテスト・モンキーテストのデメリット

アドホックテスト・モンキーテストは、事前準備をせずテストケースも作成しないことからいくつかのデメリットがあることは否めません。メリット・デメリットを把握して、適切に実行する必要があるわけです。以下、アドホックテスト・モンキーテストの主なデメリットをみていきましょう。

再現性が低い

アドホックテスト・モンキーテストでは、テストの手順を記録しないことがほとんどです。そのため仮にバグを発見できたとしても、手順が複雑だったり特殊だったりした場合は再現できないことも少なくありません。再現性を高めるためには担当者が手順を覚えておくように努めるか、再現手順を記録するツールを導入する方法があります。

品質の評価はできない

一般的なソフトウェアテストでは、あらかじめ定められた品質の指標に基づいてその評価ができるように設計されるものです。一方でアドホックテストやモンキーテストでは、品質指標がないか参考にしない状態で場当たり的に実行されます。

そのためアドホックテスト・モンキーテストは、品質の評価には適していません。仮にアドホックテストやモンキーテストでバグが発見されなかったとしても、それをもって「品質がよい」とは言えないわけです。

担当者によってテスト結果が大きく変わる

アドホックテスト・モンキーテストは場当たり的に実行されるため、どんな内容をどのように検証するかはテストを実際に行う担当者次第です。属人的なテスト手法であることから、テストの結果や品質は担当者によって大きく変わることになります。

アドホックテスト・モンキーテストを行う場面

繰り返すようにアドホックテスト・モンキーテストは、事前の準備なしで実行することが可能です。そのためテストをする時間がないときや、通常のソフトウェアテストを終えたあとにテストの精度を高めたいときに行われます。なおゲームテストの現場ではアドホックテストは行われることがあるものの、モンキーテストに関してはあまり行われていないようです。

アドホックテスト・モンキーテストは自動化できる?

一般的に、以下のようなテストは自動化に適していないと言われています。

・テストの手順が明確ではない
・テストで期待される結果が明確ではない
・変更が多い/同じ手順を繰り返す頻度が少ない

アドホックテスト・モンキーテストは上記の特徴に該当することから、自動化に適していないと考えられているのです。

AIQVE ONEでは、アドホックテスト・モンキーテストは本当に自動化できないか検証を行いました。その検証内容や結果は、以下記事にまとめておりますので興味がある方はご覧ください。

【テクバン×MIXI×AIQVE ONE 3社共催セミナーレポート】テスト自動化でフリーテストを実現することはできるのか?(AIQVE ONE株式会社 花房)

上記検証では、アドホックテスト・モンキーテストも一定の範囲内で自動化が可能なことと課題が多いことが分かっています。

まとめ

アドホックテスト・モンキーテストは、いずれも事前準備なしに行うソフトウェアテストの種類です。両者の大きな違いは、テストを行う担当者のスキルにあります。

モンキーテストは、ソフトウェアに関して知識のない担当者によるランダムな操作によって実行されるテストです。一方、アドホックテストはソフトウェアに関する知識をもつ技術者によって行われます。

アドホックテストは担当者がソフトウェアに関する知識とスキルに基づき行うため、操作はランダムではありません。テストの品質は担当者のスキルと経験によって左右されますが、モンキーテストより高い成果があげられます。

なおアドホックテスト・モンキーテストとよく混同される探索的テストは、特徴が大きく異なるソフトウェアテストの種類です。探索的テストはテストケースこそ用意しないものの、全く事前準備を行わないわけではありません。あらかじめ用意したテストの目的とテストチャーターに従って実行され、アドホックテストより高い成果を上げることができます。