【もんきーてすと】

モンキーテスト とは?

公開:
💡 おサルさんにアプリを触らせたら、思いもよらないバグが見つかった!
📌 このページのポイント
モンキーテスト ランダム操作 🐒 タップ・スワイプ 変な文字入力 高速連打 アプリ 📱 想定外の操作を受信 クラッシュ発見! 正常動作 ✓ ダムモンキー(Dumb) 完全ランダムな操作 アプリの知識なし スマートモンキー(Smart) アプリの状態を認識 より効果的な操作を選択
モンキーテストのイメージ
ひよこ ひよこ
モンキーテストって本当にサルみたいに操作するの?
ペンギン先生 ペンギン先生
そうだよ。テスト手順を決めずにランダムにボタンを押したり、変な文字を入力したりする。人間が「こう使うだろう」と想定しないパターンからバグが出てくるんだ
ひよこ ひよこ
それってちゃんとしたテストなの?
ペンギン先生 ペンギン先生
計画的なテストの代わりにはならないけど、補完としてとても有効だよ。Androidには「UI/Application Exerciser Monkey」という公式ツールがあって、ランダムなタッチイベントを大量に送り込めるんだ
ひよこ ひよこ
スマートモンキーとダムモンキーって何なの?
ペンギン先生 ペンギン先生
ダムモンキーは完全にランダムな操作で、アプリの知識がゼロ。スマートモンキーはアプリの状態を多少理解して、より効果的な操作をするよ。Netflix の Chaos Monkeyサーバーをランダムに落とす仕組みで、これもモンキーの思想だね
ひよこ ひよこ
ファジングと何が違うの?
ペンギン先生 ペンギン先生
ファジングAPIプロトコルにランダムなデータを送る手法で、モンキーテストはGUI操作が中心なんだ。どちらも「予想外の入力でバグを見つける」点は共通しているよ
ひよこ ひよこ
どんなプロジェクトで使うといいの?
ペンギン先生 ペンギン先生
スマホアプリやWebアプリのリリース前に走らせると効果的だよ。特にクラッシュやフリーズの発見に強い。CIパイプラインに組み込んで毎晩実行するチームも多いんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「モンキーテスト」って出てきたら「ランダムにアプリを触って想定外のバグを探すテスト」と思えればだいたいOK!
📖 おまけ:英語の意味
「Monkey Testing」 = 猿のテスト
💬 猿がタイプライターをランダムに叩く「無限の猿定理」が語源だよ。Macの古いテストツール「The Monkey」が名前の由来という説もあるんだ
← 用語集にもどる