Androidエコシステムは継続的に拡大し、モバイルデバイスの80%以上がAndroidで稼働しています。新しいモバイル製造メーカーが世界中に出現し、新しい画面サイズ、チップセット、ファームウェアを発表しています。Android開発者の仕事は、さまざまな種類のモバイルデバイスの増加とともにより厳しくなっています。
幸いなことは、開発者が品質保証のために実際のデバイス上で自動テストを実行するために、いくつかの高度なクラウドベースのソリューションに無制限にアクセスできるようになったことです。開発者の仕事を楽にするために、毎年たくさんのモバイルテストフレームワークが登場しています。
現在市場で利用可能な最高のAndroidテストツールとフレームワークをご紹介します。これらは、ユーザーの満足度やアプリケーションの品質を向上させ、バグの修正に費やす全体的な時間を最小限に抑えるのに役立ちます。
12. Selendroid
Selendroidは、ネイティブまたはハイブリッドのAndroidアプリとモバイルウェブ用のテスト自動化フレームワークです。エミュレータや実機で使用できます。テストケースの開発を簡素化するためのInspectorが組み込まれています。また、並列テストとスケーリングのために、Selenium Gridにノードとして統合することもできます。
フレームワークはJSON wire protocolと完全に互換性があり、自動テストを実行するためにアプリスクリプトを変更する必要はありません。複数のジェスチャー機能、デバイスのホットプラグをサポートし、異なるAndroidデバイスとの対話も可能です。
11. Appium
Appiumを使用すると、SDKやアプリの再コンパイルなしでハイブリッドアプリとネイティブアプリをテストできます。これは、あらゆる言語、あらゆるテストフレームワークからあらゆるモバイルアプリケーションを自動化することを目的としたオープンソースプロジェクトです。好みのプログラミング言語(JavaScript、Java、PHP、C#、PHP、Ruby、Pythonなど)でテストケースを作成できます。
これにより、ツールを選択したり、テストするデバイスをインストールして構成したりする必要がなくなります。さらに、Seleniumに慣れている場合は、モバイルテストでAppiumを使用するのが簡単になります。同じWebDriverとDesiredCapabilitiesを使用します。
10. TestFairy
TestFairyは、モバイルアプリのテスト中に正確に何が行われたか、クライアント側で正確に何が間違っていたかを示します。CPU、メモリ、ネットワーク、その他の必要な詳細など、アプリケーションで実行された正確なテストのビデオが表示されています。
9. UI Automator
UI Automatorには、システムアプリとユーザーアプリで対話を実行するユーザーインターフェイステストを構築するための一連のAPIが用意されています。これは主に、コードがアプリケーションの内部構造に依存しないブラックボックステストケースを記述するために使用できます。
テストフレームワークには、レイアウト階層を検査するビューアーと、状態データを取得してターゲットデバイスで操作を実行するAPIが付属しています。デバイスで現在ディスパッチされている個々のUIモジュールをスキャンして分析することもできます。
8. SeeTest
SeeTestは、ExperiTestによる強力なモバイルテスト自動化フレームワークです。シンプルなプラグイン、記録、プレイメカニズムを使用しています。Webプロパティのネイティブによってオブジェクトを識別し、異なるデバイスとオペレーティングシステムで同じスクリプトを実行できます。
SeeTestは、コード環境の拡張を可能にする統合ツールとCI環境で使用できます。レスポンシブWebサイトとユーザーインターフェイス (プラス ジェスチャ/キーボード) のテストは、このツールで十分にサポートされています。さらに、クラウドベースのホスティングのオプションもあり、デバイスのインベントリ管理、スケジューリング、適用を完全に行うことができます。
7. Testdroid
Testdroidを使えば、自動テストや手動テストで何千もの実機でAndroid (iOSも同様に) アプリをテストできます。継続的な開発とテストを可能にし、モバイルアプリ開発テストサイクルの予算を最大60%節約できる商用製品です。
このツールにはバグがなく、すべてがアジャイルな方法で行われ、素晴らしいゲームを開発するのに役立つモバイルゲームテスト機能が付属しています。コードが変更されるたびに、すべての問題について警告が表示され、継続的テストによってすぐに結果が得られ、アプリケーションが市場に早く投入されます。
6. Ubertesters
Ubertestersは、新しいビルドを配布したり、バグを報告したりするための幅広いツールを提供しています。アプリ内バグ報告機能は、アプリから直接、編集されたスクリーンショットと共にエラーを送信します。ダッシュボードから、すべてのテストセッションとクラッシュログをリアルタイムで追跡できます。また、このプラットフォームでは、さまざまなデバイス上と実際の状況下でアプリケーションをテストするためのアシスタントを雇うこともできます。
HockeyAppは、アプリのベータ版を配布するための同様のプラットフォームです。ユーザーからのフィードバックを取得し、テストカバレッジを分析し、詳細なクラッシュレポートを提供します。価格は月額10ドルから。
5. Ranorex
Ranorexは最新のアプリケーションのテストだけでなく、バージョン2.2以降のAndroidのサブバージョンのテストにも適しています。スクリーンショット付きの詳細なレポートが表示されます。GUIオブジェクト認識は、動的に構築されたユーザーインターフェイスを含む、ほぼすべての最新のアプリを処理します。テストメンテナンスを大幅に削減する強力なオブジェクトマッピングエディタがあります。
Ranorexは、回帰テスト、データ駆動テスト、キーワード駆動テスト、クロスブラウザテスト、自動機能テスト、自動GUIテストなど、さまざまなタイプのテストをサポートしています。このツールは、非技術者ユーザー向けのコードフリーテストと、テストスイートと記録を改善するためのC#およびVB.NET用のプロフェッショナルAPIを備えた完全な柔軟性を提供します。
4. Calabash
CalabashはAndroid、iOSネイティブおよびハイブリッドアプリケーションのプラットフォーム向けのクロスプラットフォームテストです。両方の主要プラットフォームでアプリの自動受け入れテストを作成して実行できるように、非技術者向けに設計されています。テストコードがハイブリッドおよびネイティブアプリケーションとプログラムで対話できるようにするライブラリがあります。
テストはCucumberで記述され、実行時にFrankまたはRobotiumに変換されます。クラウドベースのテストラボがあり、クラウド上の1000台以上のモバイルデバイスでCalabashテストを実行できます。さらに、約80の自然言語コマンド (コントローラ) をサポートしており、RubyだけでなくJavaでも新しいコントローラを実装できます。
3. Robotium
Robotiumは、Android OSの初期に最も広く使われていたオープンソースのAndroidフレームワークです。ネイティブおよびハイブリッドアプリケーションを完全にサポートしており、テスト対象のアプリケーションに関する最小限の知識が必要です。また、ソースコードを用意する必要はありません。実際のアプリケーションをテストするには、apkファイルで十分です。
Robotiumを使用すると、テストケース開発者は、複数のAndroidアクティビティにまたがる機能、システム、受け入れテストシナリオを記述できます。テスト作成に使用できるTestroid Recorderというツールが付属しています。ユーザーが実行したすべてのステップが記録され、将来的な変更のためにJavaScriptに変換されます。
2. MonkeyRunner
MonkeyRunnerツールは、アプリをテストし、単体テストスーツを実行し、機能レベルでデバイスをテストするように設計されています。Pythonコードを記述して、テストパッケージまたはAndroidアプリケーションをインストールし、実行し、キーストロークを送信し、UIのスクリーンショットを撮影してワークステーションに保存できます。
MonkeyRunner APIは、複数のエミュレーターまたはデバイスに複数のテストスイートを適用できます。ただし、デバイスごとにテストスクリプトを記述する必要があります。また、テストプログラムのUIが変更されるたびに、テストの調整が必要になります。
1. Espresso
EspressoはGoogleによる自動テストフレームワークです。コアAPIは小さく学習しやすく、テストは最適な速度で実行されます。Androidのインストルメンテーションフレームワーク上に構築されており、主にブラックボックステストに使用されます。カスタム インフラストラクチャやボイラープレートコンテンツに気を取られることなく、ステートインタラクションとアサーションをテストします。
また、アプリケーションテストをアサートしている間、待機、同期、ポーリングを残すこともできます。