Facebook x

ジャンル

テスト技法・工程 2024.02.07
x hatenabookmark

モンキーテストとは?アドホックテスト・探索的テストとの違いと効果的な実施方法・タイミング

監修: 堀 明広

バルテス・ホールディングス株式会社 R&C部 部長 兼 首席研究員

モンキーテストとは?アドホックテスト・探索的テストとの違いと効果的な実施方法・タイミング

ソフトウェアは、さまざまなプログラムによって構成されており、それらが連携することで機能しています。とはいえ、プログラムは人の手によって作られるため、初めから完璧なものが出来上がることはありません。
そこで重要になるのが、ソフトウェアが仕様通りに動作するか確認したり、欠陥や想定外の動作を検出したりするソフトウェアテストです。顧客が望む品質を担保するためには、ソフトウェアテストの実施は不可欠となります。

今回はそんなソフトウェアテストの一つである「モンキーテスト」について解説します。
モンキーテストは、場当たり的に実施するテスト手法です。効果的な実施方法やテスト実施のタイミングについてご紹介していきます。

もくじ
  1. モンキーテストとは?最後の一押しで実施するテスト
  2. モンキーテストの効果的な実施方法
  3. モンキーテストを実施するタイミング
  4. まとめ

1.モンキーテストとは?最後の一押しで実施するテスト

モンキーテストとはソフトウェアテストの手法の一つです。

この章ではモンキーテストがどういったものなのか、他のテストとの違いについて解説していきます。

モンキーテストとは

モンキーテストは、事前にテストケースを用意せずに、その場の思いつきで行うテスト手法です。開発者が想定していない動作をテストすることによって、思いもよらない欠陥・不具合の検出につながります。

モンキーテスト誕生の経緯については諸説ありますが、そのうちの一つが1983年にアップルの「Macintosh」用ワープロソフト「MacWrite」とペイントソフト「MacPaint」で初めて実施されたという話です。当時のMacintoshは、アプリを動かすために使えるメモリ数が少なく、どういう状況でクラッシュするのか調べる必要がありました。そのために、アップル・コンピューター(現アップル)でMacintoshの開発に携わっていたスティーブ・キャップス氏は、人間よりも早くランダムにキーを叩き、ランダムにマウスを動かしてランダムにクリックするプログラムを製作。このプログラムの名前が「The Monkey」で、モンキーテストの語源になったといわれています。

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

モンキーテストのように事前にテストケースを用意しないテスト手法はいくつかあります。それが「アドホックテスト」や「探索的テスト」です。

それぞれの違いは以下の通りです。

モンキーテストと他のテストとの違い.png

モンキーテストは、当たり前の操作という固定概念がない人まで想定して実施します。テストで使う文字列や操作などに制限がなく、全くランダムに行われます。

アドホックテストは、公式に定めたプロセス以外の方法で実施しますが、最低限の知識があるユーザーが使うことが前提となります。そのため、有効な文字列のみで行うなど、テスト内容に一定の制限があります。

探索的テストは、全くランダムというわけではなく、経験・知見に基づいてテストを実施します。またテストの結果から再調査する箇所を決めて、再度テストを行うなど効率的にバグ・不具合を検出していきます。

2.モンキーテストの効果的な実施方法

keyboard.jpg

実際にモンキーテストを実施する場合、開発者の想像の斜め上をいくような、通常ではまずしない操作をする必要があります。
ボタンの連打や2つのキーの同時押し、とにかくデタラメに、ひたすらキーボードを叩いてみたり、画面上の何もないところをマウスでクリックしたりすることは、まだ序の口です。実際にあった事例として、200文字程度の入力項目に2万文字入れてみたところ、システムエラーが発生したということも。

このように、モンキーテストでは常識とはかけ離れた操作を試していきます。そのため専門的な知識や技能は必要ありません。むしろ何も知らない人の方が適任で、想定するユーザーに近い属性の人に自由に触ってもらう方が良いともいえます。

ただし、モンキーテストは、必ずしもバグを発見できるというものではありません。

実施してすぐにバグを発見できるケースもあれば、逆に何時間続けても何も見つからないケースもあります。そのため実施する場合は、必ず事前に時間を決めておくと良いでしょう。

3.モンキーテストを実施するタイミング

モンキーテストは、テストケースを用意したテストをしっかり行った上で、プロジェクトの最終工程で実施するのが効果的です。

通常で想定できるエラーを十分に修正した後で、最後に念には念を入れて補足的に行うものなのです。他のテストをほとんど実施せずにモンキーテストだけを行うと、発生した不具合の切り分けが困難になるため、かえって非効率な開発工程になってしまいます。

一般的なアドホックテストを実施するプロジェクトや会社は、比較的多く存在する一方で、モンキーテストまで行っているケースは、それほど多くないのが現状です。エラーが起きても人がけがをするような大事には至らないソフトウェアや専門家だけが扱うような機器であれば、それでも一定の品質を担保できます。

しかし、老若男女を問わず幅広いユーザーをターゲットにしたソフトウェアや自動車のようにエラーが重大な結果を招くものに関しては、モンキーテストを実施する価値は十分にあるのです。

まとめ

モンキーテストとは、事前にテストケースを用意せずに、その場の思いつきでランダムに行うテスト手法です。
ソフトウェア開発においては、綿密な計画に沿ってしっかりとテストを重ねてきた上で、最後の一押しとしてモンキーテストを実施します。

それにより、ソフトウェアの品質を高めることができ、顧客満足度向上につながるのです。

テスト技法・工程
x hatenabookmark

監修: 堀 明広

バルテス・ホールディングス株式会社 R&C部 部長 兼 首席研究員

組込み系プログラマー、ソフトウェア品質管理を経験。担当業務は社内人材育成、検証・分析の技術開発、標準化、セミナー講師。訳書は『ソフトウェアテスト293の鉄則』(日経BP、共訳)、『ISO/IEC/IEEE 29119 ソフトウェアテスト規格の教科書』(バルテス、監訳)。著書は『ソフトウェア見積りガイドブック』(オーム社、共著)、『続・定量的品質予測のススメ』(佐伯印刷、共著)、『IT業界の病理学』(技術評論社、共著)。得意分野はバグ分析。