1. ホーム
  2. コラム
  3. 2016年は猿の手も借りたい!「モンキーテスト」を使ってWebサイト構築のクオリティアップを目指す!

2016年は猿の手も借りたい!「モンキーテスト」を使ってWebサイト構築のクオリティアップを目指す!

みなさまこんにちは、第1ビジネスユニット・アカウントサービス第2ユニットの濱本です。
今回のコラムでは、Webサイト構築のクオリティアップに繋がるテスト工程。今年の干支である申年にちなみ、「モンキーテスト」の紹介をしたいと思います。今年は「猫」ではなく「猿」の手を借りて、「品質向上」を目指してみませんか?


モンキーテストって?

モンキーテスト(別名:アドホックテスト、ゲリラテスト)とは、電子機器やアプリケーションのテスト手法の一つです。単体テスト・結合テストとは違い、あたかも猿に検証機を与えたかのようにテストの内容や操作手順を出鱈目に(ランダムに)操作して検証するものです。


モンキーテストイメージ画像

モンキーテストの操作例

  • 至る所にマウスカーソルを合わせてみる
  • 何も無い空間を含め、さまざまな場所をクリックしてみる
  • テキストボックスなどの入力部分に出鱈目に入力してみる

モンキーテストを導入することにより、制作者本人が想定していなかったバグや、検証項目に存在しなかったバグを発見することができるようになります。モンキーテストの導入は、多くの場面で制作物の「品質向上」に繋がります。


型にハマって無いから見つかる!

ランダム操作のような行き当たりばったりの適当な操作をしなくても、検証項目を増やせば品質向上は十分期待できる!
……と、お考えになる方々もいらっしゃると思います。勿論、検証項目を適切に作成することは、テスト設計において非常に重要なことです。しかし、ここがテスト設計の難しい所ではありますが、検証項目を作成する時点では、「目に見えるもの」「想定し得るもの」のみに意識が集中してしまう場合多くあります。「目に見えないもの」や、検証項目作成段階では「想定し得ないもの」は、残念ながら検証項目として作成できません。

例えば、サイトの動作検証の場合でも、ラジオボタンやチェックボックスなどの「目に見えるもの」に意識がついつい集中してしまいがちです。


検証項目に沿って検証中
一見すると、問題が無いように見える場合でも……


検証中の落とし穴
思いもよらない所に落とし穴が隠れている場合があります。

ランダムで手順が定まっていないテスト(モンキーテスト)を実施することで、コーダーやテスト項目設計者の「思い込み」の部分を取り除いた、「想定外の問題」を見つけることができます。このように「想定外の問題」を発見できることが、モンキーテストの利点と言えます。

モンキーテストによる問題発見の一般事例

  • 本来想定していない場所にクリック可能な判定が存在していた
  • コンテンツが無い特定の空間をクリックすると画面の表示が崩れる
  • 数十回テストを試行していると、Javascriptが停止した


貴方のPCにお猿を飼わせる方法

モンキーテストにはいくつかの手法があり、上記で記載したような内容や手順の定まっていないランダムなテスト方式や、対象のソフトやアプリを使用したことのない人に操作してもらう方式などがあります。しかし、実際にモンキーテストを人が実施する場合は、下記のような問題が起こりがちです。

人の手によるモンキーテスト作業の問題点

  • 「適当に操作をしろ」と言われても、どのように適当な操作をすれば良いか、とついつい考えてしまう
  • 何をすべきかの手順が決まっていないため、テストの試行回数が減ってしまう
  • ついつい目に見えている画面上の要素(リンクボタンや、プルダウンや、ラジオボタンや、チェックボックスなど)に意識が向かってしまい、完全なランダム操作ではなくなる

そこで今回は、自動的にモンキーテストを実施できるツール「gremlins.js」を紹介します。

gremlins.jsの概要

    • ブラウザ上で利用できます
    • オープンソースのため、ダウンロード後すぐに使用できます
    • ブラウザに「gremlins.js」を追加後、ワンクリックで自動的にモンキーテストが開始されます

 

(1) 「gremlins.js」をダウンロードする

「gremlins.js」は、「GitHub」サイトの下記のURLからダウンロードできます。

https://github.com/marmelab/gremlins.js

※「GitHub」とは、世界中のプログラマがコードを共有したり、公開するためのソーシャルネットワーキングサイトです。

※さまざまなプロジェクトに役立つコードが公開されています。
「gremlins.js」はオープンソースのため、使用手続きなどは不要です。ダウンロードしてすぐに使用することができます。

(2) 「gremlins.js」をご利用のブラウザに設定する

ダウンロードしたzipフォルダを解凍すると、下図のような構成となっています。


zip展開内容
解凍フォルダ内のの「bookmarklet.html」を開くと、下記のような画面が表示されます。


zip展開内容
画面上の指示に従い、テキストリンクの「gremlins.js」をブックマークツールバーへ、ドラッグ&ドロップします。


zip展開内容
これで、「gremlins.js」がブックマークに追加されました。

(3) 「gremlins.js」を実行し、実際にモンキーテストを実施してみる

モンキーテストを実施したい検証対象ページをブラウザ上に開き、先程登録したブックマーク上の「gremlins.js」をクリックします。すると、モンキーテストが下図のように、自動的に実行されます。


zip展開内容

(4) モンキーテストの実施結果を確認する

図のように、テキストの入力などの他、ランダムでクリックやドラッグなどの操作をした部分などが、赤枠や丸、点で表現されます。そのため、どのような操作がどの画面上の箇所で実行されたのかを、視覚的に把握することができます。
ツールを用いることにより、前述した「人の手によるモンキーテスト作業の問題点」を解決できます。また、内部のパラメータを指定すると、クリックの頻度や試行回数を任意に設定できるため、数百回のテスト工程を自動化し実行することもできます。


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

単体テスト、結合テストなどの従来のテスト工程の最終段階に、モンキーテストを実施することで、想定外のエラーを納品前に発見することができます。
初期段階でモンキーテストを実施すると、バグや不具合が多く発見されすぎてしまうため、何が起因で発生した不具合なのかが、わからなくなってしまいます。
そのため、初期段階は従来通りの人の判断で進め、テスト工程がある程度進行した段階でモンキーテストを実施することをお勧めします。モンキーテストを導入することで、納品前の想定外な問題を効果的に発見できるようになるでしょう。結果として、納品成果物の品質の向上を図ることができます。

納品前にモンキーテストで発見された、想定外な問題の実例

  • ラジオボタンを何度か操作をすると、本来展開される要素パーツが展開しなかった
  • 特定のパターンでチェックボックスにチェックが付いていると表示がずれる

上記のように、普段なら一度の検証で通過してしまったり、上から順番通りに検証していると発見できない箇所の不具合を発見することができます。
このように、テストの性質上、テキストボックスやラジオボタンなどのモジュールや、Javascript・Webアプリケーションと絡めた、動作の多いページの最終検証などに使用するとより効果的と言えます。


終わりに

一歩先のクオリティを目指すために、単体テストや結合テストなどの、普段のテスト工程に加え、今年ならではの相棒である「モンキーテスト」を頼ってみてはいかがでしょうか?みなさまのサイトの品質向上に、本コラムが少しでもお役立ちましたら嬉しく思います。
@(´・ェ・`)@

■コラム執筆者

濱本 勇樹(はまもと ゆうき)

2015年4月、株式会社メンバーズ入社。部署「第1ビジネスユニットアカウントサービス第2ユニット」に所属。コーディング、テストを行いつつ、ディレクターを目指し奮闘中。

メールでのお問い合わせ

カテゴリ: Webサイト構築, Webリニューアル
2016年01月19日

RSS