ソフトウェアテストの中には大きく分けて、スクリプトテスト(scripted testing)とアンスクリプトテスト(unscripted testing)があります。要はテストケースを作成するかしないかの違いです。ここではunscripted testingであるモンキーテストについて深堀りし、アドホックテストとの違いについて書いていきたいと思います。
モンキーテストとアドホックテストの違いとは?
2023年現在、私がクライアントからよく依頼されるテストが下記のケースです。
- 「新しいOSでモンキー的にテストしてほしい」
- 「特殊な端末で、モンキーテストを行ってほしい」
このような「モンキー」や「モンキーテスト」という言葉で依頼されるのです。「モンキーテスト」という言葉は日本人にもなじみ深い言葉の組み合わせなので、「unscripted testing = モンキーテスト」のような公式が頭の中にできているのではないかなと思って依頼を解釈します 。私は、その場合はモンキーテストというよりはアドホックテスト的な操作を実際には行いますが…。モンキーテストとアドホックテストの違いとは、実施者のテストをするアプリケーションに対する見識の深さの違いと言えるのではないでしょうか。では、実際のモンキーテストの定義はどういうものなのでしょうか?
テスト実行をはじめて行うエンジニア向けのマニュアル型資料
テスト実施の基本とバク報告の書き方を解説
テスト実行者向け はじめてのガイドブック
モンキーテストの種類
モンキーテストとアドホックテストの大きな違いは、実施者のそのアプリケーションに対する見識の深さの違いと説明しました。モンキーテストの場合、そのアプリケーションについてよく知らない人が行うことが多いようですが、アドホックテストの場合はそのアプリケーションのことをよくわかっている開発者やテスターが行います。余談ですが、自分の場合はアドホックテストを行った場合はドキュメントとして記録を残すことが多くなります。
しかし、サイトによっては残さないのが普通、と記載されているものもありましたので、状況に応じて対応するのがいいかと思います。世界版のwikipedia(https://en.wikipedia.org/wiki/Monkey_testing)によると、モンキーテストと一言に言っても、2種類に分けられるようです。モンキーテストの2種類とはスマートモンキーテスト(smart monkey)とダムモンキーテスト(dumb monkey)です。要は「賢い猿がやるか」「間抜けな猿がやるか」の違いと言えるのはないでしょうか。
スマートモンキーテストの(賢い猿が行う)場合、アプリやシステムへの一般的な事前知識を持ち、自分が今何をしているか何が必要かを認識し、システムを壊す想定で操作し、出てきたバグを報告する、というものです。具体的な操作としては、画面の空白部分をたたいたり、環境依存文字をひたすら入力したり、ランダムにボタンを押してみたり…のようなものが思い浮かびます。対して、ダムモンキーテストの(アホな猿が行う)場合、アプリやシステムについての一般的知識や仕様の理解がなく、行う操作について有効無効の分別もつかず、自分が今何をしているかも認識できていない状態で操作する、というものです。
具体的な例は、もはやテスト対象を投げるとか、放置するとかまでが入るのではないかと想像できます(実際は投げたりまではしないと思いますが…)。ダムモンキーテストの場合、スマートに比べ発見できるバグは少ないですが、重要なバグを発見することができるという特徴があります。
プロジェクト・プロダクト全体の品質を向上させ、デジタル改革を加速させます
バルテスの品質向上サービスのご紹介
モンキーテストの良い点と悪い点
モンキーテストのメリットとしては、既成概念にとらわれないバグを見つけることができるという点があります。また、テストをスクリプト化(テストケース化)しないので実行までに時間がかからない、テストに精通した人でなくとも実行可能、があるかと思います。対してモンキーテストのデメリットとしては、バグがあまり見つからないことがあり、バグが見つかったとしても再現するのが難しい場合があるという点です。また解析が困難で時間がかかる場合があるがあると考えられます。
自分の実感としても、何もわかっていない人に操作してもらうと、思わぬバグが出てくることがあります。ただし、再現手順がわからない場合も多いです。やり方を聞いても「なんか出てきたんですよね…。」というような場合です。よく聞く「何もしてないのに壊れた」というものです。起票ができないので開発者側との連携に時間もかかります。仮に(操作方法不明的な感じで)起票できたとしても、開発者も再現できないのでどう修正すればいいかわからないという事態に陥ることは容易に想像ができます。
品質を高め、コストダウンができる効果を9つの事例でご紹介
テストアウトソーシングの効果とコストダウン実例ガイドブック
まとめ
「モンキーテストは本当に猿が行うテストなの?アドホックテストとの違いも解説」と題して、ご紹介してまいりました。モンキーテストはテストケースを使わないという点でアドホックテストと似ていますが、本質的には違うものであることがわかりました。モンキーテストとアドホックテストの共通する点としては、テストケースを使わない点です。違う点としては、実施者のアプリケーションに対する見識の深さです。いずれのテストも、手法の一つなので、それだけを行ってテスト済と判断することは少ないと思います。
ここでは取り上げませんでしたが、探索的テストという手法もアンスクリプトテストの仲間として存在します。気になる方は検索してみてください。通常のスクリプト化したテストありきで、モンキーテストの特性を理解し、効率的なバグ(インシデント)の発見を行いたいものですね。
当サイトでは、テスト技法を学びたい方、アジャイル開発やマイグレーションのテスト手法について知りたい方、テストアウトソーシングサービスに興味のある方へ、ダウンロード資料を多数ご用意しております。ぜひダウンロードいただき、資料をご活用ください。