Device Farm は、自動および手動アプリケーションテストのために数百の実機器モバイルデバイスへのリモートアクセスを提供するクラウドサービスです。開発者はAPKまたはIPAをアップロードし、デバイス構成を選択し、実機器を購入せずに並列にテストを実行します。Perfecto, 2025のレポートによると、Device Farmを使用するチームは、ローカルのデバイスファームと比較してリグレッションテスト時間を73%縮短します。
まとめ
Device Farm は、インターネットを通じて実機器および仮想デバイスへのリモートアクセスを提供する、モバイルアプリケーションテストのためのインフラ解決策です。自分のデバイスラボを購入して維持するのとは異なり、開発者は第三者のデバイスの時間をレンタルし、実際の使用量に対してのみ支払います。
モバイルデバイス市場には、OpenSignal, 2025により24,000種類以上の独自のAndroidスマートフォンモデルがあります。テスト用にすべての人気モデルを実機を購入するのは不可能です—数百万ドルの投資と経常なフリート更新が必要になります。Device Farmはサブスクリプションで現在のデバイスへのアクセスを提供することで、この問題を解決します。
エミュレーターおよびシミュレーターでは、テストシナリオのうち60–70%しかカバーできません。センサー、カメラ、GPS、バッテリー残量、弱いハードウェアでのパフォーマンス、着信時の動作をテストするには、実機器が必要です。Device Farmは両方のアプローチを組み合わせています:簡単なスモークテストにはエミュレーターを、完全な検証には実機器を使用します。
Device Farmは、初めてのアプリをリリースするスタートアップ、定期的なリリースを行う成熟プロダクトチーム、および数十のアプリを持つエンタープライズプロジェクトに適しています。ターゲットデバイスの数とリリース頻度が増えるほど、価値が高まります—テストすべき構成が多くなるほど、クラウドモデルがより効果的になります。
Device Farmの標準的なワークフローは、5つのステッジで構成されます:ビルドのアップロード、デバイスの選択、テストの構成、実行、結果の分析。各ステッジはAPIを通じて自動化され、Devices Farmを手動不要でCI/CDパイプラインに組み込むことができます。
開発者は、コンパイルされたAPK (Android)、AABまたはIPA (iOS)をプロバイダーのクラウドストレージにアップロードします。Firebase Test Labなどいくつかのサービスは、XcodeやAndroid Studioプロジェクトを直接受け付けます。ファイルサイズは制限があります:AWS Device Farmは200MBまで、BrowserStackは500MBまでサポートしています。
ターゲットモデルおよびOSバージョンは、デバイスカタログから選択されます。現代のDevice Farmsはグルーピングをサポートしています:「2024–2025年のフラッグシップ全て」や「Android 13–14を搭載したコストパフォーマンスAndroid」など。並列実行により、このテストを10–50のデバイスで同時に実行でき、総時間を数分に縮短できます。
テストは、プロバイダーのデータセンターで実機器によって実行されます。開発者はリアルタイムのウェブコンソールを通じて進行状況を監視します:ログ、スクリーンショット、テスト実行動画が確認できます。テストが失敗すると、Device Farmがスクリーンショットを取得し、クラッシュログを収集してダイアグノースに使用します。
// JenkinsfileでのDevice Farm設定の例
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew assembleDebug'
}
}
stage('Device Farm Tests') {
steps {
sh '''aws device-farm schedule-run
--project-arn arn:aws:devicefarm:us-west-2:123:project:1
--app-arn arn:aws:devicefarm:us-west-2:123:app:1
--device-pool-arn arn:aws:devicefarm:us-west-2:123:pool:1
--test-arn arn:aws:devicefarm:us-west-2:123:test:1'''
}
}
}
}
現代のDevice Farmsは、テスト実行だけでなく、ダイアグノース、パフォーマンス監視、他の開発サービスとの連携のためのサポートツールも提供しています。機能セットはプロバイダーによって異なりますが、コアは共通しています。
主要なフレームワークはすべてサポートされています:AndroidにEspressoとUI Automator、iOSにXCTestとXCUITest、クロスプラットフォームプロジェクトにAppiumとCalabash。Device Farmはコードを変更せずにテストを実行します—構成時にテストフレームワークを指定するだけです。
開発者は、ブラウザを通じて実機器にリモートアクセスできます:タッチ、スワイプ、画面回転、ボタン押下—すべての動作がリアルタイムで伝送されます。インタラクティブモードは、自動テストでカバーできないれなばバグを再現するのに不可欠です。AWS Device Farmは、追加料金なしで60分までの手動セッションを提供しています。
各実行後、Device Farmはレポートを生成します:テストの動画記録、ステップごとのスクリーンショット、デバイスログ (Androidはlogcat、iOSはsyslog)、パフォーマンスデータ (CPU、メモリ、ネットワーク)、クラッシュスタック。このデータは、ローカルデバイスで再現せずに問題を特定するのに役立ちます。
主要なDevice Farmsはすべて、Jenkins、GitLab CI、GitHub Actions、CircleCI用のプラグインを提供しています。ウェブフック通知で、Slack、Telegram、メールでチームにテスト結果を通知します。CI/CD連携の設定は、コンティニュアスデリバリーを実践するチームの標準的な実践です。
| 機能 | AWS Device Farm | BrowserStack | Firebase Test Lab |
|---|---|---|---|
| 実機器 | 可 | 可 | 可 |
| エミュレーター | 可 | 可 | 可 |
| 手動テスト | 可 | 可 | なし |
| バグ特定 | 動画 + ログ | 動画 + ログ | ログのみ |
| 無料制限 | 1000分/月 | 60分トライアル | Firebaseのテストは無料 |
Device Farm市場は、主に3つのカテゴリで表されます:一般目的クラウドプロバイダー (AWS)、専門テストサービス (BrowserStack)、プラットフォームエコシステムツール (Firebase)。選択は、技術スタックとチームの予算に依存します。
Amazon Web Servicesエコシステムと統合されています。既にホスティングやCI/CDにAWSを使用している開発者は、単一の契約でCodePipelineやCodeBuildとスムーズに統合できます。AWS Device Farmは、実機器およびエミュレーターでAndroid、iOS、ウェブアプリケーションのテストをサポートしています。
3,000台以上の実機器を備えた最大の独立系プロバイダーです。BrowserStackは、操作性の良いウェブインターフェイス、速やかなデバイス提供 (10–15秒)、複雑な構成なしでAppiumをサポートすることで知られています。新モデルがリリースされてから周間で、自動的にデバイスを更新します。
Googleが提供する、Androidアプリ用の無料サービスで、iOSテストは制限的にサポートしています。Firebase Test Labは、スタートアップに特に魅力的です:サブスクリプションなしで基本的なテストシナリオが利用可能です。Firebase ConsoleやCrashlyticsとの連携により、テスト失敗をプロダクションの実際のクラッシュに結び付けることができます。
市場には、Samsung Remote Test Lab (Samsungデバイスへの無料アクセス)、Kobiton (オンプレミス構成を提供するエンタープライズ向け)、Perfecto (Perforceが買収、金融セクターに専化)、Sauce Labs (最も後いサービスの一つで、現在はTricentisの一部)があります。
AndroidアプリでFirebase Test Labとコマンドラインを連携する例を見てみましょう。Firebase Test Labはgcloud CLIを通じてテストを実行し、追加プラグインなしでどのCIパイプラインでも統合できます。この例は、3つのデバイスで最小限のスモークテスト構成を示しています。
# gcloud CLIのインストールと認証
gcloud auth login
gcloud config set project my-android-app
# Firebase Test LabへのAPKアップロード
gcloud firebase test android run \
--app app-debug.apk \
--test app-debug-test.apk \
--type instrumentation \
--device model=Pixel7,version=34 \
--device model=SamsungS23,version=33 \
--device model=OnePlus12,version=34 \
--timeout 30m \
--results-bucket gs://my-app-test-results
このコマンドは2つのファイルをアップロードします:ビルド自体とEspressoインスツルメンテーションテスト用のAPKテストです。バージョンが明示的に指定されていない場合、Firebase Test Labは自動的に各モデルで利用可能な最新のOSバージョンを選択します。結果は、ブラウザで表示するためにXMLおよびHTML形式でGoogle Cloud Storageに保存されます。
プッシュごとに自動実行するには、GitHub Actionsを使用します。ワークフローがアプリをビルドし、Firebase Test Labを実行し、チェック状況を戻します。
name: Android CI with Device Farm
on: [push]
jobs:
test-on-devices:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- run: ./gradlew assembleDebug assembleDebugAndroidTest
- uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- run: gcloud firebase test android run
--app app/build/outputs/apk/debug/app-debug.apk
--test app/build/outputs/apk/androidTest/debug/app-debug-test.apk
--device model=Pixel8,version=35
Device Farmのコストは、いくつかのパラメーターに依存します:並列セッション数、デバイスタイプ (実機器またはエミュレーター)、テスト期間、追加機能。スケーリング時に予期せぬ費用を避けるために、プロバイダーを選ぶ前にコスト構造を理解することが重要です。
大多数のプロバイダーは、実際のデバイス使用時間に対して料金を課金します。実機器は、エミュレーターより2–5倍のコストがかかります。AWS Device Farmは新規アカウントに対して月刀1000分の無料を提供し、BrowserStackは60分のトライアル期間を提供しています。実機器Androidデバイスの1分あたりの平均コストは$0.05–0.17です。
定期的なテストには、固定サブスクリプションがより効果的です。BrowserStackは、実機器で無制限の分を提供するTeamプランをユーザー3人で$299/月で提供しています。AWS Device Farmに固定サブスクリプションはありません—分ごとの支払いで、非常時的なワークロードには便利ですが、濃密な使用には高くつきます。
予算を立てる際は、次のことを考慮してください:テストアーティファクト (動画、スクリーンショット、ログ) の保管 — AWS Device Farmは追加料金なしで90日間結果を保管、BrowserStackは30日間;大きなAPK/IPAファイルをアップロードする際のネットワークトラフィック;並列セッション数 — 並列度を上げるには、より高価なプランが必要になる可能性があります。
よくある質問
エミュレーターは、あなたのコンピューター上でプログラムによってデバイスをシミュレートしますが、Device Farmは原軽ファームウェア、プロセッサー、センサーを備えた実機器へのアクセスを提供します。実機器でのみ、カメラ、GPS、ケース温度、キャリアネットワークとの相互作用をテストできます。
はい、主要なプロバイダーはすべてiOSをサポートしています。テストには、デベロップメント証明書でビルドされたIPAファイルが必要です。BrowserStackとAWS Device Farmは実機器のiPhoneやiPadを提供し、Firebase Test LabはデータセンターでmacOSシミュレーターを通じてiOSをサポートしています。
Jenkinsはプラグイン (例えばAWS Device Farm Plugin) またはビルドステージで実行されるCLIコマンドを通じて連携します。プラグインは自動的にビルドアーティファクトをアップロードし、選択したデバイスでテストを実行し、結果をJenkinsパイプラインに戻します。
スタートアップには、Firebase Test Labが最適です—基本機能は無料で、Android Studioとの統合がアウトオブザボックスで動作します。iOSプロジェクトには、BrowserStackが60分の無料テストを提供しています。チームが成長するにつれて、完全なデバイスを備えた有料サブスクリプションに移行します。
主要なプロバイダーはSOC 2認証を守り、データを送信時および保管時に暗号化しています。AWS Device FarmはアイソレートされたAWSアカウント内で動作し、BrowserStackはセッションごとに一回限りのデバイスを使用します。機密データ (APIキー) は、ビルド構成に外部化することをお勧めします。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。