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