AWS Device Farm
AWS クラウド上の実機モバイルデバイスとデスクトップブラウザでアプリケーションの自動テストとリモートアクセスを提供するサービス
概要
AWS Device Farm は、AWS がホストする実機のスマートフォン、タブレット、デスクトップブラウザ上でアプリケーションの自動テストおよび手動テストを実行できるクラウドテストサービスです。エミュレーターではなく物理デバイスを使用するため、実際のユーザー環境に近い条件でクラッシュ、パフォーマンス劣化、UI の崩れを検出できます。Android、iOS、Web アプリケーションに対応し、Appium、Espresso、XCTest、Calabash など主要なテストフレームワークをサポートしています。テスト結果にはスクリーンショット、動画、ログ、パフォーマンスデータが含まれ、問題の再現と原因特定を効率化します。
デバイスプールとテスト実行の仕組み
Device Farm のテスト実行は、デバイスプールの構成から始まります。デバイスプールは、テスト対象とする物理デバイスの集合を定義したもので、OS バージョン、メーカー、画面サイズなどの条件で絞り込みます。たとえば「Android 12 以上の Samsung 端末」「iOS 16 以上の iPhone」のようにプールを構成し、ターゲットユーザーの実環境を再現します。テスト実行 (Run) を作成すると、アップロードしたアプリバイナリ (.apk / .ipa) とテストパッケージがプール内の各デバイスに配布され、並列に実行されます。パブリックデバイスではテスト後にアプリのアンインストールなどの後片付けが行われますが、アプリの外で端末の機能を使った場合などにはセッション間でデータが残り得ると AWS の文書に記載されています。そのため AWS は、Google アカウントや Apple ID などの機密情報を端末に入力しないよう推奨しています。実行中はリアルタイムでステータスを確認でき、完了後にはデバイスごとのスクリーンショット、動画録画、logcat / syslog などのログが生成されます。公式料金ページでは、デバイス分単位の従量課金と、デバイススロット単位の月額定額プランが示されており、定額プランではスロット数が同時に使えるデバイス数になります (2026 年 10 月時点)。
自動テストフレームワークとテストスイート
Device Farm は複数の自動テストフレームワークをネイティブにサポートしています。AWS の文書 (2026 年 10 月時点) では、Android は Appium と Instrumentation (JUnit、Espresso など)、iOS は Appium、XCTest、XCTest UI が対象で、Web アプリケーションも Appium でテストします。デスクトップブラウザーでのテストは別機能のデスクトップブラウザテストが担い、Selenium のテストを Chrome、Firefox、Microsoft Edge で実行します。テストスイートの構成では、テストスペックファイル (testspec.yml) でテスト実行前後のフック処理を定義できます。依存ライブラリのインストール、環境変数の設定、テスト前のデータセットアップ、テスト後のアーティファクト収集などをカスタマイズ可能です。ビルトインのファズテスト (Built-in Fuzz) を使えば、テストコードを書かずにランダムな UI 操作でクラッシュを検出することもできます。テスト結果はスイート単位、テストケース単位で集計され、失敗したテストのスクリーンショットとログから問題箇所を素早く特定できます。
CI/CD 統合とテスト結果の分析
Device Farm を CI/CD パイプラインに組み込むことで、コードの変更ごとに自動的に実機テストを実行できます。AWS CodePipeline との統合ではネイティブのアクションプロバイダーが用意されており、ビルドステージの後にテストステージとして Device Farm を追加するだけで構成できます。Jenkins、GitHub Actions、Bitrise などのサードパーティ CI ツールからは、AWS CLI または AWS SDK 経由で Device Farm API を呼び出します。テスト結果の分析では、ListArtifacts API で成果物ごとの URL を取得してスクリーンショットやログをダウンロードし、社内のテストレポートシステムに取り込むワークフローが実用的です。
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトと公式ドキュメントです。最新の仕様と料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。