モンキーテストは、一般的な手法では見つけられなかったバグや不具合を見つけられる手法です。近年、取り入れるプロジェクトが増えており、導入を検討している人が増えているかもしれません。
この記事では、モンキーテストの特徴や実施方法について解説しますので、ぜひ参考にしてみてください。
モンキーテストとは?

モンキーテストとはテストケースを準備することなく、その場で思いついた動作をテストする手法です。開発者があらかじめ想定していない動作をテストすることによって、一般的なテストでは見つけられなかった欠陥や不具合を検出することにつながります。
モンキーテストが誕生した経緯についてはあらゆる説がありますが、1983年にアップルに搭載されたMacPaintで実施され、想定外のエラーが発見されたそうです。
モンキーテストの3つの特徴

モンキーテストの特徴には、以下の3つが挙げられます。
- 見つけにくい不具合を探せる
- 準備作業が不要
- 他のテスト手法と組み合わせることでさらなる品質の向上を目指す
ここではそれぞれに分けて解説しますので、詳しく見ていきましょう。
1.見つけにくい不具合を探せる
モンキーテストは、開発者が想定していない操作方法や値の入力をランダムに行い、システム仕様書では考慮されにくいことから不具合を探せることが挙げられます。
そのため、テストケースを作成したテストでは、見つけられなかった不具合を見つけることにつながるでしょう。また、子どもやソフトウェアを使い慣れていないユーザーにおいては、開発者が想定していない操作をすることも考えられます。
モンキーテストを実施しておくことにより、思いがけない障害やエラーの発生を予防できます。
2.準備作業が不要
モンキーテストは、テストの開始前に準備作業が必要ありません。そのため、すぐにテスト実行でき、結果の迅速なフィードバックができるようになるでしょう。
また、準備期間が短くなるため、時間的・費用的コストをかけずに実施できます。さらに、テスト実行者のスキルも問わないことから、第三者にお願いすることも有効です。
3.他のテスト手法と組み合わせることでさらなる品質の向上を目指す
モンキーテストは、ランダムに想定外の動作を行うため、モンキーテストだけでは十分なテストができません。さらに、網羅性を担保するうえでも十分とはいえないでしょう。
そのため、システム仕様書の操作やパターンの網羅を確認するためのテストと組み合わせて実施するとより、品質を高めることにもつながります。テストを組み合わせることによって、それぞれの弱点を補うことが可能です。
モンキーテストの実施方法

モンキーテストを実施する場合、ボタンの連打やキーを複数押す、ほかにも、ひたすらキーボードを叩いてみるなどの動作が必要です。実際にあったテスト例として、200文字程度の入力フォームに2万文字のテキストを打ち込んだところ、システムエラーが発生したこともあります。
モンキーテストは、バグを発見できる場合もあれば、逆にやり続けても何も見つからないケースも考えられるでしょう。
モンキーテストの実施に適したタイミング

モンキーテストの実施に適したタイミングは、テストケースを準備したテストを行ったうえで、プロジェクトの最終工程で実施することが効果的です。つまり、モンキーテストは、想定できるエラーを修正したのちに補足的に行うものといえます。
一般的なアドホックテストを実施するプロジェクトは、比較的多くありますが、モンキーテストを実施している場合はそう多くないことが現状です。しかし、幅広いユーザーをターゲットにした場合、モンキーテストを実施する価値があります。
モンキーテストと似ている2つのテスト

モンキーテストと似ているテストには、以下の2つがあります。
- アドホックテスト
- 探索的テスト
ここではそれぞれに分けて解説しますので、詳しく見ていきましょう。
1.アドホックテスト
アドホックテストは、定めたプロセス以外の方法で実施します。しかし、最低限の知識を備えたユーザーが使うことが前提です。そのため、実施にあたって狙いや目的を定めることが求められます。
また、テスト内容に有効な文字列のみを使うなど、準備を行うことが必要です。テストの目的を達成するために、ソフトウェアに対して最低限の仕様への理解が欠かせません。
2.探索的テスト
探索的テストはモンキーテストと異なり、ランダムに行うことはなく、経験・知見に基づいてテストを実施します。また、テスト結果から再調査する部分を決めて、再度テストを行うことで効率的にバグ・不具合を検出することができるでしょう。
準備を行うことが多く、テストゴールや目的を記述したドキュメントを準備してから実施することが一般的です。そのため、テストの実施には高いスキルや経験が求められます。
モンキーテストに関するよくある2つの質問

モンキーテストに関するよくある質問には、以下の2つが挙げられます。
- 質問1.モンキーテストを実施する目的は何ですか?
- 質問2.モンキーテストの主なやり方にはどのような方法がありますか
ここではそれぞれに分けて解説しますので、詳しく見ていきましょう。
質問1.モンキーテストを実施する目的は何ですか?
モンキーテストは自由な操作やイレギュラー入力を行い、システム仕様書には考慮されにくいことや、テストケースを用いて発見できなかった不具合を見つけることができます。
そのため、子どもやソフトウェアを使い慣れていないユーザーが想定していない操作をすることがあります。モンキーテストを実施しておくことで、これらのことが原因で発生する障害を予防可能です。
質問2.モンキーテストの主なやり方にはどのような方法がありますか?
モンキーテストの代表的な内容例は、以下の通りです。
- ランダムにボタンを同時に押す
- アイコンやボタンを連打する
- 環境依存文字を入力する
- 画面の空白部分を押す
- 複数ブラウザで異なる操作をする
- タグ内の数値を変更する
モンキーテストの例は上記以外にも様々な方法が存在します。モンキーテストを担う際には対象システム・ソフトウェアに応じて、操作内容には十分に注意しながら実施するようにしましょう。
まとめ

モンキーテストに関することを解説しました。モンキーテストは、一般的な手法では見つけられなかった不具合やバグを見つけることにつながります。
また、実施する際、特別な知識がない方がエラーの発見につながることが多く、最終チェックとしてモンキーテストを取り入れることがおすすめです。モンキーテストに関することを理解して、より精度の高いソフトウェア開発を実現しましょう。