AWS Device Farm
実機のモバイルデバイスとブラウザでアプリケーションをテストできるクラウドテストサービス
何ができるか
AWS Device Farm は、クラウド上の実機デバイスを使ってモバイルアプリケーションや Web アプリケーションのテストを自動化できるサービスです。Android、iOS の実機スマートフォン・タブレット、およびデスクトップブラウザ (Chrome、Firefox、Edge) で、アプリケーションの動作確認を並列実行できます。自動テストフレームワーク (Appium、Espresso、XCTest など) との統合に加え、リモートアクセス機能で実機を手動操作することも可能です。テスト結果にはスクリーンショット、動画、ログが含まれ、問題の再現と修正を効率化します。
どのような場面で使うか
モバイルアプリの多機種対応テストの自動化、Web アプリケーションのクロスブラウザテスト、CI/CD パイプラインへのデバイステストの組み込み、新しい OS バージョンでのアプリ互換性検証、パフォーマンステスト (CPU、メモリ、ネットワーク使用量の計測)、リモートアクセスによる特定デバイスでのバグ再現と調査など、アプリケーション品質保証全般で活用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
レンタルスタジオに例えるとわかりやすいでしょう。新しい映画 (アプリ) を作ったとき、さまざまなスクリーン (デバイス) で映り方を確認したいですが、全種類のスクリーンを自分で買い揃えるのは大変です。レンタルスタジオ (Device Farm) なら、必要なスクリーンを好きなだけ借りて試写でき、映り具合を録画 (テスト結果) して持ち帰れます。
Device Farm とは
AWS Device Farm は、モバイルアプリケーションと Web アプリケーションの品質を向上させるためのクラウドテストサービスです。モバイルアプリ開発では、多種多様なデバイス、OS バージョン、画面サイズでの動作確認が不可欠ですが、実機を大量に保有・管理するのはコストと手間がかかります。Device Farm は AWS のデータセンターに設置された実機デバイスをクラウド経由で利用でき、テストの自動化と並列実行により品質検証のスピードを大幅に向上させます。
自動テストとフレームワーク対応
Device Farm は主要な自動テストフレームワークに対応しています。Android 向けには Appium、Espresso、UI Automator、iOS 向けには Appium、XCTest、XCUITest をサポートしています。テストスイートとアプリケーションパッケージをアップロードすると、選択したデバイス群で並列にテストが実行されます。テスト結果にはデバイスごとのスクリーンショット、動画録画、パフォーマンスメトリクス (CPU、メモリ、ネットワーク)、デバイスログが含まれ、問題の特定と修正を効率化します。
リモートアクセスと CI/CD 統合
Device Farm のリモートアクセス機能では、クラウド上の実機デバイスをブラウザから直接操作できます。特定のデバイスでのみ発生するバグの再現や、手動での探索的テストに活用できます。セッション中の操作は録画され、後から確認できます。CI/CD パイプラインとの統合では、AWS CLI や API を使ってテストの実行を自動化でき、CodePipeline や Jenkins、GitHub Actions などのツールからテストをトリガーできます。
Azure・オンプレミスとの比較
AWS の優位点
- AWS データセンターに設置された実機デバイスを使用するため、エミュレーターでは検出できないハードウェア固有の問題やパフォーマンス特性を正確にテストできる
- CodePipeline や CodeBuild との AWS ネイティブ統合により、コードのコミットからデバイステストまでの CI/CD パイプラインを追加ツールなしにシームレスに構築できる
- リモートアクセス機能でクラウド上の実機をブラウザから直接操作でき、特定デバイスでのバグ再現や探索的テストを物理デバイスを保有せずに実施できる
注意点
- 利用可能なデバイスの機種と OS バージョンは随時更新されるが、最新機種が即座に追加されるとは限らないため、テスト対象デバイスの在庫を事前に確認すること
- 自動テストの実行時間に応じた従量課金のほか、月額定額のアンリミテッドプランも提供されているため、テスト頻度に応じて最適なプランを選択すること
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。