今回は、ソフトウェアテスト手法のひとつである「モンキーテスト(アドホックテスト)」についてご紹介します。まずは、モンキーテストの概要・具体例について説明し、探索的テストとの違いを含めてメリット・デメリットについても一挙に解説。
「モンキーテストのやり方を知りたい」「具体的な検証内容を知りたい」という方や、テスト初心者の方必見のお役立ち情報をお届けします。
モンキーテストとは
モンキーテスト【monkey testing】とは、別名「アドホックテスト、ゲリラテスト」とも呼ばれます。
モンキーテストが他のテスト手法との決定的に違う点は、主にテスト対象となる機能や手順などを事前に定めず、テスターの思い付きでランダムに実施するという点です。
モンキーテストと探索的テストの違い
モンキーテストと混同されやすいソフトウェア検証方法として、「探索的テスト」が挙げられます。しかし、モンキーテストと探索的テストは、似て非なるものです。
探索的テスト【Exploratory Testing】とは、事前にテストケースを設計せず、直前のテスト結果に応じて、テスターが探りを入れながらフェードバックに応じて、テストの目標・内容を調整し行う検証方法です。
モンキーテストと探索的テストの違いは、「テストの進め方」です。
両テスト共に事前のテスト設計をしない点は一致しているものの、
「テスト実行に際して、目的・内容(観点・操作手順・工程など)を定義するか否か」の部分で
大きく異なります。
モンキーテストの例
次は、「モンキーテストの例」についてご紹介します。
モンキーテストの代表的な操作内容の例は以下の通りです。
モンキーテストの例
- ランダムなボタンを同時に押す
- アイコン、ボタンを連打する
- 環境依存文字を入力
- 画面の空白を押す
- 複数ブラウザで対照的な操作を行う
- タグ内の数値変更
モンキーテストの例は上記以外にも様々な方法が存在します。
モンキーテストを担う際には対象システム・ソフトウェアに応じて、操作内容には十分に注意しながら実施するようにしましょう。
モンキーテストのメリット
ここまでの内容をふまえ、次は「モンキーテストのメリット」についてご紹介します。
モンキーテストにおける主なメリットは、以下の2点です。
モンキーテストのメリット
- 意外なバグを見つけることができる
- 準備がほぼ不要なので早い
モンキーテストはスケジュールやコストにゆとりがない開発・テスト工程の後半部分において、行うと良いテスト方法です。
上記メリットを通して品質レベル向上やコスト削減、短期間での開発・テスト工程完了に繋げることが可能となります。
次は、各メリットについてさらに詳しく解説します。
意外なバグを見つけることができる
モンキーテストのメリット1つ目は、「意外なバグを見つけることができる」という点です。
モンキーテストでは事前のテスト計画・設計を行わず、あくまでランダムな操作によって検証を進めます。そのため、場当たり的に仕様にない操作や、開発者の意図しない想定外の操作を試行することにより、通常のテストでは見つけられなかった重大なスコープ外の不具合・バグを発見することができるのです。
準備はほぼ不要なので早い
モンキーテストのメリット2つ目は、「準備はほぼ不要なので早い」という点です。
モンキーテストでは事前にテスト計画・設計などの前準備を行いません。尚、通常のテスト作業では実行前に緻密なテスト設計・計画のプロセスを踏む必要があります。
また、そのようなテスト対象の仕様・ユースケースの把握などを含めた前準備の工程には、テスト実行のフェーズと比較して、何倍もの時間がかかります。
以上の事からも、モンキーテストを実行することで前準備の工程が割愛されるため、テスト作業が早いという利点があることが読み取れます。
モンキーテストのデメリット
次は、「モンキーテストのデメリット」についてご紹介します。
モンキーテストにはスコープ外の不具合・バグ発見や、準備期間の工数削減などといったメリットがある反面、いくつかのデメリットも存在します。
モンキーテストの主なデメリットは以下の通りです。
モンキーテストのデメリット
- バグを発見しても再現ができない場合がある
- 品質の評価につながりにくい
- 必ずしもバグが見つかるわけではない
尚、上記から読み取れる通り、モンキーテストはその場当たり的な操作・進行からバグの再現や品質評価は困難なタイプのテストであると言えるでしょう。
次は、各デメリットについてさらに詳しく解説します。
バグを発見しても再現できない場合がある
モンキーテストのデメリット1つ目は、「バグを発見しても再現できない場合がある」点です。主な理由としては、テスト設計書・仕様書が作成されないことが関係しています。そのため、モンキーテストでは通常の開発・テスト工程とは異なり、テストの実施記録を保管しないケースが多数を占めています。
これらの理由によって、不具合・バグを検出した際にはその複雑さによって、再現が困難となるリスクが高まります。尚、上記をフォローするための対策としては、検出したバグの再現手順を記録するツール導入が有効です。しかし、原則として該当のランダム操作を行ったテスター自身が記憶している手順を用いて再現に伴う作業を進めることが必要です。
品質の評価につながりにくい
モンキーテストのデメリット2つ目は、「品質の評価につながりにくい」という点です。
主な理由としては、「ランダム性、属人性の高さ」が起因していると言えます。そのため、モンキーテストを実施し、結果的にテスト対象(機能・動作)の品質レベルについて、評価することが困難になるというデメリットがあります。
つまり、モンキーテストの結果においては特定の機能・動作に対し、不具合・バグが見られなかった場合でも「品質レベルが高い」という評価・判断を下すことはできません。
以上のことから、モンキーテストは品質に関する「評価/比較/保証」について考慮する上では不向きなテスト方法であると言えるでしょう。
尚、上記のフォローに寄与する対策としては、各工程のテストを正しい手順・方法で行った上で、開発・テスト工程の終盤で補足的に行うことをおすすめします。
必ずしもバグが見つかるわけではない
最後に、モンキーテストのデメリット3つ目は、「必ずしもバグが見つかるわけではない」という点です。そのため、モンキーテストの実施に際しては時間をかけたからと言って、必ずしも不具合・バグが見つかるわけではないことを留意しておきましょう。
また、モンキーテストに関しては、操作の場当たり性・ランダム性ゆえにテスト完了の定義がなく、終わりがないとも言えます。そのため、予めテストの実施時間を決めてから行うことが重要なポイントとなります。
まとめ
いかがでしたでしょうか?
今回は、ソフトウェアテストにおける「モンキーテスト」に注目し、つい混同されがちな探索的テストとの違いや、メリット・デメリットについて解説しました。
モンキーテストは場当たり的なランダム性を生かした検証方法ではありますが、対象となる機能・動作によっては適宜テスト目的や範囲、過去に起きた不具合の傾向、テスト観点などをある程度定義、把握しておくことが大切です。
今回ご紹介した内容をおさえ、テスト実行に役立てていただければ幸いです。
最後までお読みいただきありがとうございました。