ランダムな操作でiOSアプリの自動テスト「CrashMonkey」
CrashMonkeyはRuby製、iOS用のオープンソース・ソフトウェア(MIT License)です。
iOSアプリはGUIを持ったアプリケーションであり、タップ、スワイプなど様々な操作があります。それらの正常系をテストするのはさほど難しくありませんが、異常系をテストするのはとても時間がかかります。そこで使ってみたいソフトウェアがCrashMonkeyです。
[](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.1373886161.png)
最初に管理者パスワードが求められます。
[](http://images.moongift.jp/2013/07/Screenshot 2013-07-12 13.42.55.1373886166.png)
後は見ているだけで勝手に様々な操作が行われます。その中で落ちればテストした意味があると言えるでしょう。
CrashMonkeyはiOSシミュレータを操作して、意味のない操作をランダムにどんどん行っていきます。その中の操作で万一落ちることがあるとすれば、それは何らかの不具合であったり、メモリリークしているということなので、デバッグが必要になります。人間で同じ事をやるのはなかなか難しい、便利なソフトウェアです。
MOONGIFTはこう見る
工場などでは素材に同じ圧力を加え続けて劣化を調べたり、試験するための仕組みがあります。CrashMonkeyはそのiOS版と言う事ができます。ランダムなので効率的とは言いがたいですが、ずっと走らせることができるので、万一不具合があれば最終的に見つけ出すことができるでしょう。
ハッキングで使われるブルートフォースアタックもコンピュータならではの総当たり式です。自動で操作させるというと、効率化するためにあるような気がしますが、こういったテストの視点で考えてみるのは面白いアイディアです。