アプリの品質を維持するにはテストを行うしかありません。そのテストも人力でやっているのではアップデートする度に大きな負担となってしまいます。そこで使ってみたいのが自動操作によるテストサービスです。
今回はクラウドで提供されるものとオンプレミスでも使えるソフトウェアタイプの2つに分けて紹介します。
クラウド型
Cross Browser Testing, Selenium Testing, and Mobile Testing | Sauce Labs
テストサービスを提供する大手として知られているSauce Labsはスマートフォンアプリのテストをサポートしています。内部的にはAppiumを使ってテストが実行されるようです。ハイブリッドアプリも対応しています。
Mobile App Testing Tools – Experitest
Appiumを使った自動テストの他、クラウド上に配備された実機を使ったリモート操作によるテストも行えます。UIテストの他、パフォーマンスのテストにも対応しています。
TestObject – Android and iOS Mobile App Testing Made Easy
Appiumを使ったテストの他、Android/iOS両OSの実機テストをクラウドベースで行えます。JenkinsやGitHubと連携したCIも行えます。
Mobile App Testing | Testdroid Technology by Bitbar
クラウド上に接続された実機を使ったテストが行えます。Jenkinsと連携させてCIとして回すこともできます。さらにBitbar AppCrawlerという機能により、デバイス間の操作差異を自動チェックしてくれます。サポートしているのはAppiumまたはCalaba.sh、Robot Framework、Robotiumなど多数あります。
Firebase Test Lab for Android | Firebase
Googleが提供するテストシステムです。実機を使って自動テストが行えます。さらにRobo テストと呼ばれる仕組みによってテストコードを書かなくともテストを実施することもできます。
ソフトウェア型
ここからはクラウドサービスではなくローカルコンピュータであったり、自前のサーバでテストを行うためのシステム、製品を紹介します。多くのクラウドサービスで使われているAppiumも含まれます。
Test Automation for GUI Testing | Ranorex
テストをビジュアル的に作成できるツールを配布しています。コードが生成されるので、それをカスタマイズすれば細かなニーズに応えることもできるようです。入力欄などは自動認識されるようになっており、開発者でなくともテストの作成ができます。
Appium: Mobile App Automation Made Awesome.
オープンソースのモバイルアプリテストシステムです。Seleniumと同じ仕組みになっており、WebDriverを介してデバイスを操作します。
Calaba.sh - Automated Acceptance Testing for iOS and Android Apps
Calaba.shもiOS/Androidをサポートしたオープンソースのテストシステムです。Xamarin Test Cloudと組み合わせてAndroidのクラウドテストも行えます。
Test Studio Mobile
iOS/Androidのネイティブ、ハイブリッド、Webアプリケーションをテストできます。操作が記録されてテストコードになるので、後はそれを修正するだけでテストが繰り返せるようになります。
eggPlant Mobile/eggOn: Mobile App Testing for iOS, Android
eggPlantを通してiOS/Androidデバイスが操作できます。USBで接続するか、WiFi経由でも利用できるようです。アプリの変更も不要です。
クラウド型の多くはAppiumによるテストをサポートしています。そのため、ソフトウェア型で一旦作り、そのコードをクラウドで実行すると効率的ではないでしょうか。特にクラウドでは数多あるデバイスがバージョン毎に使い分けられるのが魅力です。
モバイルアプリのテストコードを書くのは大変ですが、それでも品質を維持するためには行った方が良いでしょう。なるべく楽にできるよう、使い勝手の良いサービス/ソフトウェアを選んでください。