テスト自動化をサクサク進めるためのWebマガジン「SAKUTES(サクテス)」 » 「モンキーテスト」とは?

「モンキーテスト」とは?

モンキーテストは、ソフトウェアテストの一部です。ソフトウェアテストの中でも、テストケースを用意せずにエラーを探す、アドホックテストやモンキーテストがあります。モンキーテストは、まったく知識のない人が、想定外の使い方をすることを前提にしたテスト。製品の品質を高めるため、さまざまな角度からエラーを検証することが重要です。ここでは、ソフトウェアテストの種類、中でも「モンキーテスト」について詳しく紹介します。

ソフトウェアテストの種類と役割について

ソフトウェアテストとは、ソフトウェアの開発においては、製品が仕様や要求を満たしているのかを確かめるため、さまざまな視点から多角的に、エラーの洗い出しをおこなうテスト。製造業であれば、品質管理や品質保証に相当するものだといえます。それぞれの開発段階に応じたソフトウェアテストを実施することにより、顧客満足度の高いソフトウェアを開発することができるというわけです。

ただ、一口にソフトウェアテストといっても、たくさんの種類があり、それぞれ役割や方法が異なります。テストエンジニアによって行われる、ソフトウェアが仕様通りに動くかを確かめるテストでは想定外のエラーを検知することはできません。想定外のエラーを検知するためには「アドホックテスト」が重要になります。

アドホックテストとは?

アドホックテストとは、事前にテストケースを用意しないソフトウェアテストです。JSTQB(国際ソフトウェアテスト資格認定委員会)では、ざっくり言うと「テスト準備をしない、非公式におこなうテストで、テスト設計技法を用いず、結果を予測しない、テスト方法が毎回変わるテスト」としています。

非公式の方法で実施しますが、使用者には必要最低限の知識があることを前提にしているため、有効な文字列を使用する、といったある程度の制限を設けたテスト、ということになります。

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

モンキーテストと他のテストとの一番の違いは、想定しているユーザー(対象者)です。アドホックテストは、ある程度、操作方法などの知識がある人を想定しているのに対し、モンキーテストは、全く知識やスキルがない人が操作することを想定。モンキーテストは、当たり前の操作という固定概念を取り払った、まったく想定外の操作がされることを想定しています。

老若男女を問わず幅広い世代を想定しているソフトウェアや、エラーが重大な事故につながる可能性のある自動車といった場合に、モンキーテストは非常に有効であると言えるでしょう。

探索的テストとの違いは?

モンキーテストと類似したテストとして、探索的テストが挙げられます。探索的テストは、JSTQB(国際ソフトウェアテスト資格認定委員会)では、ざっくりまとめると「非公式なテスト設計技法で、テストをおこなっている過程で、テストを実施して得た情報を確認・活用することで、設計を繰り返し、質の高いテストケースを設計していく」テスト。テストケースを用意せずにテストを行い、得られた結果から、調査する箇所を絞っていきテストを繰り返し、精度を高めていくテストです。

モンキーテストとはテストケースを用意せずに、テストを始めるという点が共通しています。大きく異なる点は、テストを行う過程で、テストの実施者にスキルや知識が求められてくるという点。幅広いユーザー層を想定したソフトウェアの開発を行う場合に重要となる、モンキーテストとは目的が異なります。

モンキーテストの起源や方法は?

モンキーテストの起源は諸説あります。中でも、1983年にApple社のMacintosh用ワープロソフト「Mac Write」と、ペイントソフトの「Mac Paint」で初めて実施された、という説が有力視されています。

以前はMacintoshで使えるメモリが少なく、どのような状況下で、エラーが起きてしまうのか、様々な状況下で調査する必要がありました。そのテストのために開発されたプログラムが「The Monkey」。「The Monkey」は、高速で、ランダムに、キーをたたいたり、クリックをおこなう、というものでした。このプログラムの名前から、「ランダム」な入力を行うソフトウェアテストをモンキーテストと呼ぶようになったと言われています。

モンキーテストをおこなう際は、開発者が想定していない、考えも及ばないような操作をおこなう必要があります。ランダムにキーを押し続けたり、関係のない画面をクリックする、などは可愛いもの。想定できない使い方、常識からかけ離れた操作を行うことで、システムエラーが生じないかを試していきます。

ただ、必ずしもバグが発見できるテストではないため、何時間、何日にもおよびテストをおこなってもバグが見つからない、という可能性もあります。

テストを実施するタイミングとしては、開発の最終段階が効果的でしょう。通常のエラーかランダムな操作によるエラーかを切り分けることができるため、効率的です。モンキーテストは、他のソフトウェアテストの補足的な役割を果たしてくれるテストです。

精度の高いソフトウェア開発のために

精度の高いソフトウェアを開発するためには、ソフトウェアテストが欠かせません。開発段階に応じたテストを何度も行う必要があります。年齢・性別・使用環境など、幅広いユーザーを想定したソフトウェアの場合、予期せぬエラーが起こらないか、確かめるためには「モンキーテスト」は有効です。モンキーテストを行うことで、知識やスキルのないユーザーを想定し、エラーのないソフトウェア開発を目指すことができるでしょう。

無償ツールでテストを自動化する場合の注意点を見る

⽇本語のサポートが⼿厚い!
UIテスト自動化ツールを比較

ノンプログラミングで
⽇本語のサポートが⼿厚い

テスト⾃動化ツールを⽐較
商品名 Ranorex
(ラノレックス)
Autify
(オーティファイ)
商品タイプ パッケージ型

膨大なテスト工数を
削減したい企業向け

SaaS型

初期費用を抑えて
導入したい企業向け

対応テスト
  • デスクトップ
  • webアプリ
  • モバイルアプリ
  • デスクトップ
  • webアプリ
  • モバイルアプリ
実行回数
の制限
制限なし 制限あり

400回/1000回/任意 ※プランにより異なる

日本語サポート 導入後のセミナーが充実! ヘルプサイトが充実!
体験版 14日間 14日間

※Googleで「テスト自動化ツール」と検索し上位表示されたパッケージ型、SaaS型のテスト自動化ツール21種類の中から、(1)クロスデバイス、マルチブラウザに対応し、(2)日本語のサポートがあり、(3)ノンプログラミングでシナリオ作成が可能なツールをピックアップ(2021年11月1日調査時点)。パッケージ型、SaaS型それぞれの代表商品を選出しました。

【代表商品の選出基準】
☆パッケージ型:上記の条件の通り。
☆SaaS型:上記の条件に加え、公式サイト上に導入事例がもっとも多かったツールを選出。