モンキーテストとは
事前に操作手順や入力内容を決めず、直感的にソフトウェアを操作してバグの有無を確認するテスト方法です。テスト担当者が思いついた操作をその場で実施する点が特徴で、開発経験や専門知識がない人でも対応できるのが利点です。
たとえば、連続してボタンを押したり、極端に長い文字を入力するなどが挙げられます。通常では想定しづらい動作を試すことで、思わぬバグを見つけられる可能性があります。
モンキーテストを導入しやすい状況の例
ここでは、モンキーテストを導入しやすい状況について、具体的な例をいくつか紹介します。
負荷が高い状況下での動作確認には、モンキーテストが効果的です。たとえば、以下のような操作を無作為に実施すれば、通常の使い方では表面化しないバグが発生するかを確認できます。
● 連続してボタンを押す
● 入力項目を埋め尽くす
● 画面遷移を短時間で繰り返す
上記のような操作を通じて、ソフトウェアが予期しない動作に耐えられるかを調べることが可能です。
画面操作の誤りや使い勝手の問題をあぶり出す際にも効果を発揮します。意図的に不自然な操作を繰り返すことで、リンク切れやボタンが押せないといったバグを見つけやすくなります。
たとえば、ユーザーが行わないような連打や画面遷移を試すなどが考えられます。通常操作では気づきにくい問題点が浮かび上がることもあるでしょう。
異なる端末や環境で使った際のバグを見つけるうえで役立ちます。たとえば、あるスマートフォンでは正常に動作しても、別の機種やブラウザでは画面が崩れたり、機能が反応しなくなったりすることは珍しくありません。
無作為に操作することによって、特定の組み合わせのみで起きる問題が見つかる場合もあります。実際のユーザーがさまざまな環境からアクセスすることを考えると、互換性の検証は欠かせません。
入力に対するエラー処理の動作確認にも、モンキーテストは適しています。たとえば、不正な形式の文字列を入力したり、予期しないタイミングでボタンを押したりといった操作によって、アプリケーションがどのように応答するかを検証できます。
入力ミスや操作ミスが起きた際に、適切なメッセージが表示されるか、システムが停止せずに動作を続けられるかを確認するのが主な目的です。エラー発生時の対応が不十分だと、ユーザーの信頼を損なう原因になりかねません。
モンキーテストとアドホックテスト・探索的テストの違い
ここでは、モンキーテストとアドホックテスト・探索的テストの違いについて詳しく解説します。ほかのテストの詳細を理解し、どのテストが適しているのかをより正確に判断できるようになりましょう。
モンキーテストとアドホックテストはどちらも自由な操作で実施されますが、目的や進め方に違いがあります。アドホックテストは、システムの知識を持つ担当者が経験や直感をもとに、バグが出そうな部分を狙って検証する手法です。
一方、モンキーテストは意図的な判断を挟みません。ランダムに操作し、思いもよらない動作で問題を見つけることを目指します。
モンキーテストと探索的テストは、自由な操作でバグを探る点では似ていますが、実施の背景と進め方が異なります。モンキーテストは完全な無作為に操作する手法であり、担当者の判断を入れずにバグを見つけることを目的としています。
一方、探索的テストは、経験豊富なテスト担当者がシステムの構造や動作を理解したうえで、効果的に検証ポイントを選びながら進める方法です。テスト結果を受けて内容を柔軟に調整するため、より効率的にバグを探せる利点があります。
開発現場の声:テスト工程で困っていることは?
現場で課題としてとくに挙がるのは、バグの発見と修正です。株式会社NEXERとポールトゥウィンによる調査では、全体の約3割もの人がソフトウェア開発のテスト工程における困ったこととして挙げていました。
バグの発見と修正を課題として挙げた具体的な理由としては、以下のような声が寄せられています。
● バグ修正のため、納期が間に合わないことがある
● バグがないかをチェックするのに、莫大な時間と手間がかかった
● バグが発生した際、原因をつきとめることにかなり時間を要することがある
同調査では「テストケースの品質や網羅性が不足している」と回答した人も、全体の3割近く存在しています。その理由として多かったのが、すべてのパターンを把握するのは難しい、思わぬバグがあるといった声でした。
こうした背景から、形式にとらわれず予測不能な動作にも対応できる方法を模索する声が増えています。計画的なテストだけでは拾いきれない問題があるからこそ、モンキーテストに注目が集まっています。
モンキーテストのメリット
モンキーテストのメリットは、以下の3つです。
● 準備作業なしで実行できる
● 通常のテストで想定しないバグを発見できる
● ほかのテストと組み合わせて品質向上を目指せる
それぞれ解説します。
事前の準備を抑えて、始められる点が強みです。あらかじめ手順や入力内容を整理する必要がないため、すぐに検証に取りかかれます。
たとえば、テストケースを作る時間が足りない状況でも、即座に実行してシステムの不安定な部分を見つけ出せます。専門知識がない人でも操作できるため、テスト要員の選定にかかる負担も軽減できるでしょう。
決められた操作では見つかりにくいバグをあぶり出す手段として有効です。たとえば、画面遷移の途中で無関係なボタンを連打したり、入力欄に極端な値を入力したりすることで、予期しない動作が現れる場合があります。
こうした操作は、仕様書に記載されたシナリオでは見過ごされがちです。ユーザーの意図しない動きに耐えられるかを確認すれば、実際の運用で発生しうるトラブルを未然に防げるでしょう。
モンキーテストのデメリット
一方、以下のようなデメリットも存在します。
● バグを必ず発見できるとは限らない
● バグを発見しても再現が難しい場合がある
● テスト結果を品質評価に活かしにくい
● 担当者によって内容と結果が大きく変わる
それぞれのデメリットについて解説します。
操作を無作為に行う性質上、必ずしもバグを見つけられるとは限りません。想定されない動作を試すことに意義がありますが、バグに行き着くまでに時間がかかる場合があります。
また、モンキーテストは計画的に設計された網羅的な試験ではないため、全てのバグを発見できるわけではありません。
効率的に進めるには、検証の開始前に実施期間や対象範囲を明確にしておきましょう。闇雲にテストを続けても成果につながりにくく、コストがかさむおそれがあります。
モンキーテストで見つけたバグは、あとから同じ条件で再現するのが困難な場合があります。検証中の操作が無作為であるため、どの順番で何を実行したかが記録されていないケースも少なくありません。
その結果、発生したバグの原因を特定できず、修正に時間がかかることも考えられるでしょう。
検証内容が計画に基づいていないため、結果をもとに品質を数値的に評価するのが困難です。どのような条件でバグが発生したのかが不明確になりやすく、発見された問題が全体に与える影響度も判断しにくくなります。
体系的なテストと異なり、検証範囲や再現性がばらつくため、製品全体の信頼性を測る材料としては扱いづらい側面があります。
担当者の感覚や経験に基づいて動作を決めるため、検証の内容や発見されるバグにばらつきが出やすくなります。たとえば、同じ画面をテストしても操作する人が違えば、まったく別のバグが見つかることもあります。
一定のルールや観察力がなければ、テスト結果の精度や再現性にばらつきが出やすく、品質評価につなげづらくなるおそれがあるでしょう。
モンキーテストのタイミング・実施者・手順
モンキーテストについて、以下3つの項目を解説します。
● タイミング:プロジェクトの最終工程
● 実施者:ユーザーに近い第三者
● 手順
システム開発がひととおり完了したあとの仕上げとして実施するのが適しています。機能が出そろい、基本的な動作確認が済んだ段階で実施すれば、通常のテストでは見つけにくいバグを発見しやすくなるでしょう。
とくに、想定外の操作に対する耐性や異常な入力に対する反応を確認するうえで効果的です。
実際の利用者に近い視点をもつ第三者が適しています。専門家ではない立場から直感的に操作を進めると、想定外の動きや欠陥が見つかりやすくなります。
ただし、無作為な操作のなかでバグを見つけた場合は、その状況を丁寧に記録し、再現に向けた手順を明確に残す必要があります。そのため、観察力と記述力に加え、変化に気づく意識が求められます。
手順は、以下のとおりです。
1. テスト対象を決める
2. 無作為の操作を繰り返す
3. 検出したバグを記録し共有する
各工程について解説します。
1:テスト対象を決める
まずは検証する画面や機能を明確にしましょう。すべてを無作為に調べるのは非効率であり、効果的とはいえません。
過去に障害が起きた部分や複雑な処理が含まれる機能など、不安定になりやすい箇所に絞って検証すれば、限られた時間で結果を得やすくなります。
2:無作為の操作を繰り返す
次に、操作を決めずに予測できない動きを意図的に行います。具体的には、以下の動作です。
● 連打
● 素早い画面切り替え
● 意味のない文字入力
● ページの再読み込み
このような動作を繰り返すことで、マニュアルだけでは発見できない欠陥に気づける可能性が高まります。
3:検出したバグを記録し共有する
バグを発見した際は、その場で状況を記録し、関係者と情報を共有することが欠かせません。再現が難しいテストであるからこそ、操作内容や表示されたバグの様子などを忘れないうちに記載することが重要です。
効果的なモンキーテスト実施のポイント
実施のポイントは、以下のとおりです。
● 過去のバグ発生の傾向からテスト内容を絞り込む
● ユーザー目線・初心者目線でテストする
● 通常ではまずしない操作を試す
● 再現性確保のために記録をとる
各ポイントについて解説します。
過去に確認されたバグの傾向をもとに、操作範囲や画面を絞り込んでテストを実施しましょう。効率的に不安定な箇所を確認できます。
たとえば、入力完了後の画面移動でバグが発生しやすい場合やファイル送信時に挙動が乱れる場面が目立つ場合には、似た動作に集中して無作為な操作を行うとよいでしょう。
操作に不慣れな人の立場で検証すれば、見落とされがちな使いづらさやバグに気づける可能性が高まります。専門知識を持たない一般ユーザーは、システムの内部構造ではなく、目の前の画面やボタンの配置を頼りに操作します。
意図しない動作や予想外の入力をする傾向もあるため、そうした視点を取り入れると、実際の使用環境に近いチェックが可能となるでしょう。
意図的に突飛な操作を行うことで、通常の利用では見逃されがちなバグを発見できる場合があります。たとえば、極端に長い文字列を入力したり、急に何度も画面を切り替えたりするような行動です。
こうした操作は現実のユーザーが誤って行う可能性もあり、思いがけないエラーを引き起こす要因となる場合があります。
エラーを発見した際は、以下のような事項を細かく記録することが欠かせません。
● どのような操作を行ったのか
● 使用していた端末やブラウザの種類
● 発生時の画面状態
再現性のないバグは修正が困難になるため、あとから検証や修正が可能になるように、正確に記録を残しましょう。
まとめ
モンキーテストは、無作為な操作によって予期しないバグを発見する検証手法です。事前準備が不要で、専門知識を持たない人でも実施できる利点があります。
しかし、検証には一定の経験と判断力が求められます。効率よくテストを進めたい方は、ぜひポールトゥウィンにご相談ください。テストの専門資格であるJSTQBプラチナパートナーに認定された検証チームが、的確かつ無駄のないテストをご用意いたします。
Webサービスやアプリ、IoT機器など多様なプロダクトを対象に、特性を見極めたテスト設計から実行までを一貫してサポートしますので、ぜひ一度ポールトゥウィンへお問い合わせください。