デバイスファームは、さまざまなモデルや構成にわたってモバイル アプリ、ウェブサイト、ソフトウェアをテストするために使用される物理デバイスまたは仮想デバイスのプールです。 開発者と QA チームは、必要なすべてのスマートフォンやタブレットを現場に置いておくことなく、これらの環境を使用して手動または自動テストを実行します。
チームは、オペレーティング システム、画面サイズ、メーカー、ブラウザ、言語、その他重要な設定を選択します。 その後、同じテストを 1 つのデバイス上で、または並行して実行し、結果を比較できます。
モバイル広告では、デバイスファーム は、偽のインストール、クリック、エンゲージメントを作成するために使用されるデバイスのグループを表すこともあります。 この記事では、特に明記されていない限り、ソフトウェア テストという意味を使用します。
デバイスファーム とは何ですか?
デバイスファーム は、デバイス プールと、デバイスの選択、テストの実行、結果の確認に必要なツールを組み合わせます。 社内で維持されたり、テストプロバイダーによってホストされたりする場合があります。 アクセスは、ブラウザ、コマンド ライン ツール、または API を介して行われます。
この用語は、1 つの固定されたアーキテクチャを表すものではありません。 AWS デバイスファーム は、AWS がホストする物理的なスマートフォンとタブレットでテストを実行します。 Firebase Test Lab は、物理デバイスと仮想 Android デバイスの両方を提供します。
デバイスファーム はどのように機能しますか?
ほとんどのデバイスファーム ワークフローは 5 つの段階に従います。
- アプリとテストを準備する
チームはアプリとテスト パッケージをアップロードし、Web サイトを開くか、対話型セッションを開始します。
- デバイスを選択してください
テスターはデバイスを 1 つ選択するか、デバイス プールを作成します。 選択基準には、モデル、オペレーティング システムのバージョン、画面サイズ、ロケール、ブラウザ、向きなどが含まれる場合があります。
- テスト マトリックスを構築する
テスト マトリックスは、選択したテストと必要なデバイス構成を組み合わせます。 焦点を絞ったマトリックスは、製品にとって最も重要なデバイスと条件をカバーしています。
- 手動または自動テストを実行します
手動セッションでは、テスターはアプリを探索したり、顧客の問題を再現したり、インターフェイスを検査したりできます。 自動実行では、テスト スクリプトとサポートされているフレームワークを使用します。 容量が利用可能な場合、サービスは複数のデバイスでテストを並行して実行できます。
- 結果を確認します
このプラットフォームは、結果、ログ、スクリーンショット、ビデオ、クラッシュ情報、テスト アーティファクトを収集します。 その後、チームはマトリックスの一部のみに影響を与える障害を特定できます。
並列実行によりフィードバック サイクルを短縮できますが、要求されたデバイスがビジー状態の場合でもパブリック サービスはテストをキューに入れる可能性があります。 同時実行性はサービスとプランによって異なります。
デバイス ファームの種類
デバイス ファームは、デバイスの種類とインフラストラクチャが実行される場所によって分類できます。 これらは個別の選択です。 クラウド サービスは、物理デバイス、仮想デバイス、またはその両方を提供できます。
-
リアルデバイスファームは物理ハードウェアを使用します。 これらは、チームが特定のモデル、メーカーのソフトウェア、カメラ、バッテリーの使用、生体認証、その他のハードウェア機能に関連付けられた動作をテストするのに役立ちます。 ホストされているハードウェアには、キャリア接続、センサー、または保存された状態に関して制限がある場合があります。
-
仮想デバイス ファーム は、エミュレーターまたはシミュレーター インスタンスを実行します。 これらは、初期の開発、定期的な回帰テスト、および幅広いオペレーティング システムの対象範囲に役立ちます。 ファームでは、ホスト リソースとシステム イメージを使用する複数の Androidエミュレータ を実行する場合があります。 物理ハードウェアに依存するテストでは、後で実際のデバイスが必要になる場合があります。
-
ハイブリッド デバイス ファーム は、両方のタイプを組み合わせたものです。 チームは仮想デバイスのチェックを頻繁に実行し、選択した物理モデルをリリース テストや物理ハードウェアを必要とするケースに使用できます。
-
プライベート デバイス ファーム を使用すると、組織はハードウェア、ネットワーク アクセス、スケジュール、データを直接制御できます。 組織は、デバイスを購入、充電、更新、接続、交換する必要もあります。
-
プロバイダーがホストするファームは、メンテナンスをサードパーティに移行します。 これらはリモート アクセスとより広範なカタログを提供しますが、キュー、セッション制限、定期的なコスト、およびデータ要件が発生する可能性があります。
一般的なテストの用途
デバイス ファームは、意味のある方法で異なるデバイス間でソフトウェアが一貫して動作する必要がある場合に最も役立ちます。
-
互換性テスト チームは、オペレーティング システム、画面サイズ、ブラウザー、メーカー全体でレイアウト、ナビゲーション、権限、アプリの動作をチェックします。
-
機能テストと回帰テスト。 テスト スイートは、コード変更後も重要な機能が引き続き動作することを確認します。 複数のデバイスで同じスイートを実行すると、単一の開発用携帯電話では見逃される障害が発生する可能性があります。
-
探索的テスト テスターはリモート デバイスを開いて、固定スクリプトに従わずにアプリを調査します。 これは、顧客レポートを再現したり、予期しない動作を調べたりするのに役立ちます。
-
自動モバイル テスト。 サポートされているフレームワークは、アプリを制御し、アクションを実行し、結果を確認できます。 Appium、Espresso、XCUITest が一般的な例ですが、サポートされるプラットフォームは異なります。
-
リリースの検証。 チームはリリース前に重点を置いたマトリックスを実行し、再現可能な証拠で重要な構成をチェックします。
-
特定のデバイスでのデバッグ。 ログ、スクリーンショット、ビデオ、クラッシュの詳細は、開発者が特定のモデルまたはオペレーティング システム バージョンで障害が発生する理由を理解するのに役立ちます。
デバイスファームは継続的インテグレーションに接続できます。 新しいビルドはテストをトリガーし、結果を開発チームに返すことができます。 すべてのデバイスですべてのテストを実行すると、コストとノイズが増加することがよくあります。
利点と実際的な制限
主な利点は、各テスターにハードウェアを配布することなく、より広範囲にアクセスできることです。 リモート アクセスは、チームが場所を越えて作業するのにも役立ちます。
その他の実際的な利点は次のとおりです。
- 定義された構成全体にわたる反復可能なテスト
- 並列実行によるフィードバックの高速化
- 一元化されたログとテスト証拠
- 選択した現在および古いデバイスへのアクセス
- ホスト型サービスによるローカルハードウェアの処理が少なくなる
- 特定のデバイスに関連する障害の比較が容易になる
適用範囲は依然としてテストの選択によって異なります。 マトリックスがユーザー ベースを反映していなければ、大規模なカタログは役に立ちません。 タイミング、ネットワーク状態、システム ダイアログによっても、自動テストの信頼性が低下する可能性があります。
一般的な制限には次のようなものがあります。
- 要求されたデバイスは利用できないか、キューに入れられている可能性があります
- セッションと自動実行には時間制限がある場合があります
- アカウント、アプリデータ、デバイスの状態がリセットされる場合があります
- キャリアネットワーク、SIM機能、センサー、周辺機器が制限される場合があります
- 共有インフラストラクチャには追加のセキュリティレビューが必要になる場合があります
- マトリックスが大きいと、コストと結果の分析時間が増加する可能性があります
- テスト自動化はアプリとは関係のない理由で失敗する可能性があります
実際のデバイスはハードウェアのカバー範囲を向上させますが、顧客のすべての状況を再現できるわけではありません。 仮想デバイスは速度を提供しますが、ハードウェアの詳細が欠けている可能性があります。 各テストには、確実に回答できる環境が必要です。
関連するモバイル環境の違い
モバイル環境の名前は重複することが多いため、ラベルよりも意図したワークフローが重要です。
| 環境 | 親機 | 代表的な目的 | 状態パターン |
|---|---|---|---|
| デバイスファーム | テストデバイスのプール | デバイス全体でのソフトウェアテスト | 多くの場合、テストの実行を中心に編成されます |
| デバイスクラウド | クラウドインフラストラクチャ経由でアクセスされるデバイス | リモートの手動または自動テスト | プロバイダーによって異なります |
| Androidエミュレータ | 1 つの仮想 Android 環境 | 開発、デバッグ、テスト | 構成可能なインスタンス |
| 電話ファーム | 電話機のフリートまたはラック | デバイス間で繰り返される操作 | 多くの場合、時間の経過とともにアクティブな状態が維持されます |
| クラウドフォン | リモートモバイル環境 | 永続的なアプリへのアクセスと運用ワークフロー | 多くの場合、状態を保持するように設計されています |
デバイスファーム とデバイス クラウドは同義語である場合があります。 デバイス クラウドはインターネット アクセスを強調することが多く、デバイスファーム はプライベート ラボを指す場合もあります。
Androidエミュレータ は、仮想環境の 1 つです。 仮想デバイスファームは、多くのエミュレータ インスタンスをテスト プールに編成します。
電話ファームは、構造化されたアプリのテストではなく、多くの電話での繰り返し操作をサポートします。 電話ファーム の代替案 は、物理ラックをリモート管理のモバイル環境に置き換えますが、QA マトリックスは作成されません。
クラウドフォン は、作業セッション間でも引き続き利用できます。 デバイスファームは、テスト カバレッジと証拠に重点を置いています。 クラウドフォンは、継続的なアクセス、保存されたアプリの状態、進行中の作業に重点を置いています。
クラウドフォンが適した場所
デバイスファーム がテストの質問に答えます。 アプリは選択したデバイスと構成で動作しますか? 調査結果は、ビルドにさらに作業が必要な箇所を示します。
クラウドフォンが運用に関する質問に答えます。 チームは、時間の経過とともにリモートの Android 環境、そのアプリ、および保存された状態に戻ることができますか?
2 つの環境は相互に補完できます。 QA チームは、デバイスファームでアプリまたはプロセスを検証する場合があります。 運用チームは、永続的な Android 環境、リモート アクセス、チームの権限、または繰り返しのタスクに MoreLogin クラウドフォン を使用する場合があります。 これは、多くのデバイスを対象とする特殊なテスト サービスに代わるものではありません。
モバイル広告詐欺の意味
モバイル広告とアトリビューションでは、デバイスファーム は、偽のインストール、クリック、評価、レビュー、その他のエンゲージメントを生成するために使用されるデバイスのグループを指します。 このアクティビティは、正規のソフトウェア テストとは異なります。
通常、周囲の言語によって、どの意味が適用されるかがわかります。 テスト マトリックス、アプリのビルド、QA、ログ、互換性への参照はテストを指します。 偽のエンゲージメント、帰属の悪用、またはインストール詐欺への言及は、詐欺の意味を示しています。 電話ファームは定義上違法ではありませんが、そこで実行されるアクティビティはプラットフォームのルールや適用法に違反する可能性があります。
よくある質問
デバイスファーム とは簡単に言うと何ですか?
これにより、チームはさまざまな構成で同じアプリや Web サイトをテストするために、多くのデバイス環境にアクセスできるようになります。
デバイス ファームは実際のデバイスで構成されていますか?
物理デバイスを使用するものもあります。 仮想デバイスまたはその両方を使用する人もいます。 AWS は物理デバイスを使用しますが、Firebase Test Lab には物理および仮想 Android デバイスが含まれます。
デバイスファーム とエミュレータの違いは何ですか?
エミュレータは仮想環境の 1 つです。 デバイスファーム は、多くのデバイスまたはインスタンスを整理し、テストを実行し、結果を収集します。
デバイスファーム はデバイス クラウドと同じですか?
用語は重複することがよくあります。 デバイス クラウドはインターネット アクセスに重点を置いていますが、デバイスファーム はプライベート ラボとも言えます。 プロバイダーはラベルの使用方法が異なります。
デバイスファーム は手動テストと自動テストを実行できますか?
多くのプラットフォームは両方をサポートしています。 手動セッションは、調査とバグの再現に役立ちます。 自動実行は反復可能なチェックを処理します。 フレームワークのサポートはさまざまです。
デバイスファームと電話ファームの違いは何ですか?
デバイスファームは、テスト カバレッジとレポートを中心に編成されています。 電話ファームは、多くの電話機での継続的なアクティビティをサポートしており、正当な操作と詐欺に関する議論の両方に現れる可能性があります。
デバイスファームはクラウドフォンと同じですか?
いいえ。 デバイスファーム は、複数の環境にわたってソフトウェアをテストします。 クラウドフォンは、1 つのモバイル環境への継続的なリモート アクセスを提供します。 一部の機能は重複する場合があります。
デバイスファーム テストの主な制限は何ですか?
制限には、デバイスの可用性、キュー、セッションの上限、ネットワークの状態、リセット、サポートされていないハードウェア、コスト、弱いテスト設計が含まれます。 デバイスの数が増えても、自動的にカバレッジが向上するわけではありません。

JP
