CrashMonkeyはRuby製、iOS用のオープンソース・ソフトウェア(MIT License)です。

iOSアプリはGUIを持ったアプリケーションであり、タップ、スワイプなど様々な操作があります。それらの正常系をテストするのはさほど難しくありませんが、異常系をテストするのはとても時間がかかります。そこで使ってみたいソフトウェアがCrashMonkeyです。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-12 13.42.08_thumb.1373886156.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-12 13.42.08.1373886156.png)
実行します。アプリケーション名を指定して行います。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-12 13.42.25_thumb.1373886161.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-12 13.42.25.1373886161.png)
最初に管理者パスワードが求められます。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-12 13.42.55_thumb.1373886166.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-12 13.42.55.1373886166.png)
後は見ているだけで勝手に様々な操作が行われます。その中で落ちればテストした意味があると言えるでしょう。

CrashMonkeyはiOSシミュレータを操作して、意味のない操作をランダムにどんどん行っていきます。その中の操作で万一落ちることがあるとすれば、それは何らかの不具合であったり、メモリリークしているということなので、デバッグが必要になります。人間で同じ事をやるのはなかなか難しい、便利なソフトウェアです。

MOONGIFTはこう見る

工場などでは素材に同じ圧力を加え続けて劣化を調べたり、試験するための仕組みがあります。CrashMonkeyはそのiOS版と言う事ができます。ランダムなので効率的とは言いがたいですが、ずっと走らせることができるので、万一不具合があれば最終的に見つけ出すことができるでしょう。

ハッキングで使われるブルートフォースアタックもコンピュータならではの総当たり式です。自動で操作させるというと、効率化するためにあるような気がしますが、こういったテストの視点で考えてみるのは面白いアイディアです。

mokemokechicken/CrashMonkey · GitHub