- デベロッパー用ツール›
- AWS Device Farm›
- よくある質問
AWS Device Farm よくある質問
実際のモバイルデバイスでのテスト
What is AWS Device Farm? (AWS Device Farm とは)
AWS Device Farm は、開発者が AWS クラウドで実際の Android デバイスや iOS デバイスをテストして操作することによって、アプリケーション品質、市場投入までの時間、および顧客満足度を向上させることを可能にします。開発者は、アプリケーションとテストスクリプトをアップロードし、自動化されたテストを何百台もの実際のデバイスで同時に実行して、その結果、スクリーンショット、動画、およびパフォーマンスデータを数分で取得することができます。さらに、ウェブブラウザを介してデバイスをスワイプ、ジェスチャー、および操作することにより、お客様の問題をデバッグ、再現することができます。
AWS Device Farm を利用すべきなのはどのようなユーザーですか? また、それはなぜですか?
AWS Device Farm は、モバイルアプリケーションの品質を高めるために、それらのアプリケーションの構築、テスト、サポートを行う開発者、QA チーム、顧客サポート担当者のために設計されています。アプリケーションの品質は、ますます重要になっていることに加えて、デバイスモデルの数、ファームウェアと OS のバージョンのばらつき、キャリアと製造元によるカスタマイズ、およびリモートサービスとその他アプリケーションへの依存性のためにより複雑になっています。AWS Device Farm は、複数のデバイスでテストを実行することによって開発プロセスを迅速化し、自動化されたテストを実行する機能、そして顧客の問題の再現、新機能の予備テスト、および手動テスト計画の実施などの手動タスクを実行する機能を開発者、QA、およびサポート担当者に提供します。また、AWS Device Farm を使用すれば、社内のデバイスラボ、ラボマネージャ、オートメーションインフラストラクチャの開発が不要になるため、コストを大幅に削減できます。
AWS Device Farm は、どのタイプのアプリケーションをサポートしていますか?
AWS Device Farm では、ネイティブおよびハイブリッドの Android、iOS、ウェブアプリ、クロスプラットフォームアプリ (PhoneGap、Titanium、Xamarin、Unity、およびその他のフレームワークで作成されたアプリケーションを含む) がサポートされています。
AWS Device Farm はシミュレーターまたはエミュレーターを使用しますか?
AWS Device Farm のテストは実際のデバイス上で実行されます。テストが実行されるデバイスには、OEM デバイスとキャリアブランドのデバイスがあります。
テストとリモートアクセスセッションの設定
AWS Device Farm の使用を開始するにはどうすればよいですか?
AWS の使用開始ガイドを参照してください。
AWS Device Farm コンソールはどのブラウザをサポートしていますか?
AWS Device Farm は、Internet Explorer 9 以降、および Chrome、Firefox、Safari の最新バージョンで動作します。
ウェブアプリケーションのテストのために、どのブラウザがサポートされていますか?
ウェブアプリケーションは、Android では Chrome、iOS では Safari でテストできます。
アプリケーションとテストの最大ファイルサイズはどのようになっていますか?
AWS Device Farm でサポートされている最大ファイルサイズは 4 GB です。
アプリケーションをインストルメント化したり、ソースコードを提供したりする必要はありますか?
組み込まれているテストを設定するための設定やソースコードは必要ありません。Android アプリケーションはそのまま送信できます。iOS アプリケーションは、シミュレータではなく「iOS Device」をターゲットとして構築する必要があります。
アプリケーション、テスト、および他のファイルはサーバーに保存されますか? 保管される場合、期間はどのくらいですか?
アプリケーションとテストパッケージは 30 日後に自動的に削除されます。ログ、動画録画、その他のアーティファクトは、400 日間保存されます。さらに、AWS Device Farm コンソールまたは API 経由でファイルおよび結果をいつでも削除できます。
テストが完了した後、デバイスをクリーンアップするにはどうすればよいですか?
テストの実行が完了すると、アプリのアンインストールを含む一連のクリーンアップタスクが各デバイスで実行されます。アプリケーションのアンインストールまたは他のいずれかのクリーンアップステップが確認できない場合、デバイスは削除され、再び利用することはできなくなります。
AWS では、追加のクリーンアップステップを導入し、クリーンアッププロセスを向上させていますが、場合によっては (特に、アプリケーションのコンテキスト外でデバイスのシステムを使用する場合)、セッション間でデータが存続する可能性があります。この理由に加え、AWS Device Farm により各デバイスの使用中の動画とアクティビティーの実行のログがキャプチャされているため、自動化されたテストならびにリモートアクセスのセッションの間には、アカウント情報 (Google アカウント、Apple ID など)、個人情報、またその他のセキュリティに抵触する可能性のある詳細情報など、重要な情報を提供したり入力したりしないよう推奨されています。
アプリケーションは変更されますか?
iOS では、埋め込まれたプロビジョニングプロファイルをワイルドカードプロファイルに置き換え、アプリケーションに再署名します。補助データが提供される場合は、インストールの前にそれをアプリケーションパッケージに追加して、アプリケーションのサンドボックスにデータが存在するようにします。iOS アプリケーションの再署名により、特定のエンタイトルメントが削除されます。これには、App Group、Associated Domains、Game Center、HealthKit、HomeKit、Wireless Accessory Configuration、In-App Purchase、Inter-App Audio、Apple Pay、プッシュ通知および VPN 設定と管理が含まれます。
Android では、アプリケーションに再署名します。再署名によって、Google Maps Android API などのアプリケーション署名に依存する機能が動作しなくなる場合があります。また、DexGuard などの製品から利用できる著作権侵害および改ざんに対する検知機能がトリガーされる場合もあります。また、組み込みテストの場合、スクリーンショットの撮影と保存に必要な権限が与えられるようにマニフェストを変更する場合もあります。
デバイスの選択
AWS Device Farm ではどのデバイスを使用できますか? サポート対象デバイスはどのような基準で選択しているのですか?
AWS Device Farm では、多数の Android、iOS および Fire OS デバイスをサポートしており、サポート対象デバイスは今でも増え続けています。人気のある新しいデバイスが製造元からリリースされると同時に、それらを追加しています。また、OS の新規バージョンがリリースされると、新しいデバイスがサポート対象として追加されます。利用可能なデバイスのリストを参照してください。
AWS Device Farm は、欧州、中国、インドなどの市場の国際的なデバイスをサポートしますか?
現在、インドの国際市場向けデバイスが追加されています。デバイス群は、市場のデータとお客様からのフィードバックをもとに、今後も引き続き更新していく予定です。フリートに含まれていないデバイスをご希望の場合は、AWS までお知らせください。
デバイスを選択するにはどうすればよいですか? 同じデバイス上で再テストできますか?
自動化されたテストでは、デバイスはデバイスプールと呼ばれるコレクションを介して選択されます。厳選されたデバイスプールがいくつか自動的に提供されますが、お客様が独自のプールを作成することも可能です。テストの実施中、テストは指定されたプール内に存在する、アプリケーションおよびテストとの互換性があるすべてのデバイスに対して実行されます。リモートアクセスについては、製造元、モデル、キャリア形式、およびオペレーティングシステムのバージョンに基づいて希望のデバイスを選択します。選択後は、アプリケーションとその他データのアップロード、およびデバイスのその他設定をオプションで実行できます。次に、Device Farm は要求に一致する利用可能なデバイスを見つけ、ブラウザにデバイスのディスプレイを表示します。その後、デバイスの操作や、スクリーンショットやビデオのキャプチャが可能になります。
AWS Device Farm のテストデバイスに、アプリケーションはプレインストールされていますか?
はい。テストデバイスには、デバイスの製造元またはキャリアによって多数のアプリケーションが事前インストールされています。
デバイスはインターネット上で利用可能な他のサービスやシステムと通信できますか?
はい。すべてのデバイスには、インターネットへのアクセスが可能な WiFi 接続が装備されています。お使いのシステムが社内にある (つまり、企業ファイアウォールの内側にある) 場合、54.244.50.32 から 54.244.50.63 の IP 範囲を許可できます。すべてのデバイストラフィックは、これらの IP から送信されます。
さまざまなキャリアの接続や条件をテストできますか?
実際のキャリア接続をテストすることはできませんが、ネットワークシェーピング機能を使用して接続タイプと条件をシミュレートできます。実行をスケジュールするときは、「3G」または「Lossy LTE」などの厳選されたネットワークプロファイルを選択、または独自のプロファイルを作成して、スループット、ジッター、および損失などのパラメーターを制御できます。デバイスからのすべての WiFi トラフィックは、選択するプロファイルに応じてテスト期間中にシェーピングおよび操作されます。テストスクリプトからネットワークパラメーターを変更することで、動的な環境をシミュレートすることもできます。
デバイスから電話をかけたり、SMS を送信することはできますか?
いいえ。デバイスはキャリアと接続されていないため、電話をかけたり、SMS メッセージを送信したりすることはできません。
デバイスのカメラを使用できますか?
はい。デバイスのカメラは、フロントカメラとリアカメラのいずれも使用できます。デバイスのマウント方法によっては、画像や動画が暗くぼやけて見えることがあります。
アプリケーションのテスト
自動化されたテストスクリプトをまだ作成していません。組み込みのテストでは何が実行されますか?
組み込みの互換性テストスイートでは、アプリケーションのインストール、アンインストール、起動、Fuzz を実行できます。
Fuzz は何を実行しますか?
Fuzz では、起動直後に UI に対するファズテストを実行します。このテストは、アプリケーションに対してランダムなユーザー入力 (タッチ、スワイプ、キーボード入力) を高速にストリーミングします。ユーザーは、イベント数、イベント間の遅延、およびイベントのランダム化に使用されるシードを設定できます。複数のテスト実行に同じシードを使用すると、同じイベントシーケンスが生成されます。
オートメーションフレームワークを使用してテストします。サポートされているフレームワークを教えてください。
AWS Device Farm は、Android および iOS プラットフォームのために、ネイティブ、ハイブリッド、およびウェブアプリケーションでのテストをサポートしています。デフォルトでは、次のフレームワークがサポートされています: Appium Java JUnit、Appium Java TestNG、Appium Python、Appium Ruby、Appium NodeJS、Instrumentation (JUnit、Espresso、およびほとんどのインストルメンテーションベースのテストを含む)、および XCTest (XCUI および KIF を含む)。詳細およびサポートされているフレームワークの詳細なリストについては、ドキュメントをご覧ください。
ウェブアプリケーションのために、どのテストフレームワークがサポートされていますか?
Appium Java JUnit、Appium Java TestNG、または Appium Python で記述されたテストを実行できます。
変更されたフレームワーク、または自分で設計したフレームワークのサポートは追加できますか?
サポート対象のフレームワークについては常に評価を行っています。お問い合わせください。
AWS Device Farm は、テスト中にスクリーンショットを作成するタイミングをどのように決定しますか?
サポートされている自動フレームワークを使用している場合は、スクリーンショットを撮るタイミングをお客様が自由に決めることができます。撮影されたスクリーンショットは自動的にレポートに含められます。
Android: Google Play Services はデバイスで利用可能ですか? また、インストールされているバージョンを教えてください。
はい。Google Play Services は、同サービスをサポートするデバイスにインストールされています。このサービスは新しいバージョンが利用可能になるとアップデートされます。
Android: デバイスには、デフォルトの Google アカウントは用意されていますか?
いいえ。デバイスにはアクティブな Google アカウントは用意されていません。
AWS Device Farm は、録音と再生のオートメーションをサポートしていますか? あるいは、自分でスクリプトを書く必要がありますか?
AWS Device Farm では、録音および再生用のスクリプトツールを備えた Espresso や Robotium などのフレームワークをサポートしています。
iOS: UDID をプロビジョニングプロファイルに追加する必要がありますか?
いいえ。AWS Device Farm はプロビジョニングファイルを自動的に差し替えてアプリケーションが再署名され、デバイスでデプロイされます。
iOS: 私のアプリケーションには、デバッグシンボルが含まれていません。AWS Device Farm に dSYM ファイルを提供することができますか?
いいえ。しかし、ログをダウンロードし、スタックトレースをローカルでシンボリケートすることができます。
Android: 私のアプリケーションは難読化されています。AWS Device Farm でテストできますか?
はい。ProGuard を使用すればテストできます。海賊版対策機能を備えた DexGuard を使用する場合は、アプリケーションを再署名できないためテストを実行できません。
私のアプリケーションは広告を配信します。デバイスにも広告が表示されますか? 広告主に不正使用と判定され、アカウントが閉じられることはありませんか?
デバイスはインターネットにアクセスできますが、広告が表示される保証はありません。AWS Device Farm でテストするビルドからは広告を削除しておくことをお勧めします。
テストの一環として、デバイスをホストしているマシンまたはそのシェルにアクセスすることはできますか? また、デバイスをホストしているマシンからインターネットにアクセスできますか?
はい。Calabash、Appium、UI Automation などのクライアント/サーバーフレームワークを使用している場合、ホストからインターネットにアクセスし、限られたシェルコマンドを実行することができます。
アプリケーションで使用するメディアや他のデータを提供したいと考えています。どうすればよいですか?
最大 4 GB の .zip アーカイブを利用できます。Android では、アーカイブが外部メモリのルートに解凍され、iOS ではアプリケーションのサンドボックスに解凍されます。Android の拡張ファイル (OBB) については、その OS のバージョンに対応する場所に自動的に配置されます。詳細については、デベロッパーガイドを参照してください。
アプリケーションですべての機能をテストするには依存関係が必要です。依存関係のあるアプリケーションをインストールできますか?
はい。複数のアプリケーションとそのインストール順序を選択できます。依存関係のあるアプリケーションはテスト開始前にインストールされます。
アプリケーションのアップグレードフローをテストできますか? 古いバージョンのアプリケーションはどのようにインストールすればよいですか?
はい。アップグレードフローをテストするには、古いバージョンのアプリケーションをアップロードおよびインストールしてから新しいバージョンをインストールしてテストします。
アプリケーションで位置サービスを利用しています。デバイスの物理的な場所を指定できますか?
はい。緯度と経度を指定すれば、デバイスの GPS が上書きされます。
ローカライズテストを実行できますか? デバイスの言語を変更するにはどうすればよいですか?
はい。デバイスのデフォルトのロケール設定を上書きするロケール(例えば、"en_US")を指定できます。
テストが開始されるまでにどのくらいかかりますか?
テストは即座に実行キューに登録され、通常は数分以内に開始されます。1 つ、または複数のデバイスが利用できない場合、これらのデバイスでのテスト実行は、デバイスが利用可能になるまでキューに登録されたままとなります。他のデバイスでのテストは続行されます。
許容される最長テスト時間はどのようになっていますか?
許容される最長テスト時間は 150 分です。
AWS Device Farm は、API を通じてテストを実行して結果を取得する方法を提供しますか?
はい。Jenkins を用いた継続的インテグレーション環境用のプラグインと、Android Studio と互換性のある Gradle プラグインがあります。AWS Device Farm は、API 経由でのテストの設定、およびテスト結果のダウンロードを含む、すべてのコンソール機能に対するプログラム的なサポートも提供します。詳細については、AWS Device Farm の API リファレンスを参照してください。AWS Device Farm には、API だけでなく、AWS SDK からもアクセスできます。
結果の確認
AWS Device Farm のテストレポートとは何ですか?
AWS Device Farm テストレポートには、合否情報、クラッシュレポート、テストログ、デバイスログ、スクリーンショット、動画、およびパフォーマンスデータが含まれています。レポートには、詳細なデバイスごとのデータと、所定のエラーの発生回数といった高レベルの結果の両方が記載されています。リモートアクセスの結果には、セッションのログと動画が含まれています。
AWS Device Farm のレポートには、どのデバイスログが含まれていますか?
AWS Device Farm レポートには、完全な logcat (Android) およびデバイスログ (iOS) と、デバイスホストや特定のテストフレームワークのログが含まれます。
テストを実行すると、追加のログファイルが生成され、保存されます。これらのログは、AWS Device Farm レポートに出力されますか?
logcat (Android) またはデバイスログ (iOS) にデータを書き出すと、このログエントリがレポートに出力されます。AWS Device Farm では、デバイスまたはデバイスホストのインターネット接続を使用して、テストスクリプト経由でファイルを転送できますが、非標準のログやその他のアーティファクトは収集されません。
料金
AWS Device Farm のコストはどのようになっていますか?
料金は、「デバイス分」に基づいて算出されます。「デバイス分」は、選択された各デバイスにおけるテストの時間によって決まります。AWS Device Farm には、1000 デバイス分の無料トライアル期間があります。* その後は、1 デバイス分ごとに 0.17 USD が課金されます。テストのニーズが増大した場合、1 デバイスあたり 250 USD の固定月額で無制限のテストが実施できる、定額テストプランも利用できます。
無料トライアルの仕組みはどのようになっていますか?
最初の 1000 デバイス分が無料で提供されます。トライアルは 1 回だけ利用でき、更新はできません。トライアル割り当て分をすべて使用した後は、標準レートとして 1 デバイス分につき 0.17 USD が課金されます。
デバイス分とは何ですか?
デバイス分は請求単位です。デバイス分は、テストの実施のために選択された各デバイスでのアプリケーションとテストのインストール、実行、およびアンインストールにかかる時間 (分単位) を測定した値です。この単価は、デバイス、テストまたはアプリケーションタイプにかかわらず、固定されています。デバイス分は、デバイスエラーまたはシステムエラーなしで完了したテストのみに対して課金されます。同様に、リモートアクセスセッションでは、デバイス分は、仕様を満たすデバイスを準備してから、デバイスに配置されているアプリケーションとデータを完全に削除するまでの時間です。
ビジネスニーズに応じて使用量を動的に拡大/縮小できます。上限はなく、初期費用は不要です。
無料トライアルの仕組みはどのようになっていますか?
最初の 1000 デバイス分は無料で提供されます。* これは一回限りのトライアルで、更新されません。トライアル割り当て分をすべて使用した後は、標準レートとして 1 デバイス分につき 0.17 USD が課金されます。
定額プランとは何ですか? デバイススロットはどのように機能しますか?
定額プランを利用すると、月額 250 USD からテストとリモートアクセスを無制限でご利用いただけます。定額料金は、各使用タイプ (自動テストまたはリモートアクセス) と各デバイスファミリー (Android または iOS) ごとに購入するデバイススロットの数に基づき、スロットにつき月額 250 USD です。デバイススロットは同時実行に対応しています。
例えば、自動化されたテスト用に Android デバイススロットを 10 個購入し、100 台の Android デバイスでのテストをスケジュールする場合、Device Farm は、選択したデバイスですべてのテストが完了するまで、1 度に最大 10 デバイスでテストを実行します。さらに多くのスロットを購入すると、より早く結果を得ることができます。1 か月間に実行するテストまたはリモートアクセスセッションの回数にかかわらず、デバイススロットにつき固定月額 250 USD が請求されます。1 つ以上のデバイススロットのサブスクリプションをいつでもキャンセルできます。キャンセルは次回の更新日 (最初のアクティブなデバイススロットを購入した月の日) に有効になります。スロットは、AWS Device Farm コンソール、AWS コマンドラインターフェイス (AWS CLI)、または AWS Device Farm API からご購入いただけます。詳細については、AWS のドキュメントを参照してください。
テストの必要性に変化があり、デバイススロットを追加または削除する必要が生じた場合はどうなりますか?
いつでもデバイススロットを追加して、すぐに利用可能な状態にできます。また、1 つ以上のデバイススロットのサブスクリプションをいつでもキャンセルできます。キャンセルは次回の更新日 (最初のアクティブなデバイススロットを購入した月の日) に有効になります。
定額プランを利用している場合でも、従量制料金を利用できますか?
はい。テストの作成時に、定額デバイススロットの使用、または従量制のデバイス分の使用を選択することができます。従量課金では同時実行に制限がないため、デバイススロットを使用する場合よりも高速にテストを実施できる柔軟性のメリットを享受できます。
プライベートデバイスとは何ですか?
プライベートデバイスは、お客様のアカウント専用の電話やタブレットなどの物理インスタンスです。プライベートデバイスにはカスタマイズされた静的構成を設定することができ、カスタム OS イメージを実行できます。各デバイスはお客様用にデプロイされ、サブスクリプション終了時に削除されます。
プライベートデバイスのサブスクリプションはどのような仕組みになっていますか? また、料金はどのようになっていますか?
お客様のアカウントにある各プライベートデバイスは、プライベートデバイスのサブスクリプションと見なされます。毎月のサブスクリプション料金はデバイスのコストに基づいて階層化されており、200 USD/月からとなっています。最小サブスクリプション期間の経過後は、いつでもサブスクリプションをキャンセルすることができます。詳細については、AWS までお問い合わせください。
プライベートデバイスとパブリックデバイスの両方を使用できますか?
はい。テストの実行またはリモートアクセスセッション用にデバイスを選択するときは、プライベートデバイスとパブリックデバイスの両方が表示されます。プライベートデバイスとパブリックデバイスの両方で構成されるデバイスプールを作成することもできます。プライベートデバイスの詳細については、お問い合わせください。
デスクトップブラウザでのテスト
Selenium とは何ですか?
Selenium は、ウェブブラウザの対話を自動化するオープンソースフレームワークです。Selenium の詳細については、こちらをご覧ください。
AWS Device Farm での Desktop Browser Testing とは何ですか?
Device Farm を使用すると、AWS クラウドでホストされているさまざまなデスクトップブラウザとブラウザバージョンで Selenium テストを実行できます。Device Farm は、Selenium テストのクライアント側の実行モデルに従います。つまり、テストはお客様のローカルマシンで実行されますが、Selenium API を通じて AWS Device Farm でホストされているブラウザとやり取りします。
AWS Device Farm での Desktop Browser Testing の使用を開始するにはどうすればよいですか?
開始するには、こちらの入門ガイドをご覧ください。
ブラウザはどのオペレーティングシステムでホストされていますか?
すべてのブラウザは、Microsoft Windows Server で実行される EC2 Windows インスタンスでホストされています。
AWS Device Farm はどのデスクトップブラウザをサポートしていますか?
デスクトップブラウザとサポートされているブラウザのバージョンの一覧は、こちらでご確認いただけます。
AWS Device Farm はどのような必要な機能をサポートしていますか?
Device Farm がサポートする Selenium の必要な機能のリストは、こちらでご確認いただけます。
テストの失敗のトラブルシューティングには、どのアーティファクトを使用できますか?
Device Farm は、テストエラーのトラブルシューティングに役立つように、テスト全体のコンソールログ、ウェブドライバーログ、アクションログ、ビデオ録画を生成します。
AWS Device Farm を利用して、実際のモバイルデバイスでウェブアプリをテストできますか?
はい。Device Farm は、Appium を使用して実際のモバイルデバイスでのウェブアプリのテストをサポートしています。詳細については、Appium Web Testing の「開発者ガイド」をご覧ください。実際のモバイルデバイスでテストするには、Device Farm はサーバー側の実行モデルに従うため、テストをサービスにアップロードする必要があります。
AWS Device Farm での Desktop Browser Testing にはどのような制限がありますか?
この機能の制限の一覧については、こちらをご覧ください。
AWS Device Farm での Desktop Browser Testing の使用にはどの程度のコストがかかりますか?
料金は、インスタンス分に基づいて計算されます。インスタンス分は、選択した各ブラウザインスタンスでのテストの期間によって決まります。ブラウザインスタンス 1 分あたり 0.005 USD が請求されます。
インスタンス分とは何ですか?
インスタンス分は、Device Farm で Desktop Browser Testing を実行したときにかかる請求単位です。インスタンス分は、テストの実行のために選択したすべてのブラウザインスタンスでテストを実行するのにかかる時間 (分単位) を測定したものです。0.005 USD の単価は、選択したブラウザまたはブラウザのバージョンに関係なく一定です。ブラウザをホストする EC2 インスタンスの起動、初期化、またはティアダウンにかかる時間については請求しません。