AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト-プロフェッショナル

AWS Device Farm の概要と試験出題ポイントは?

AWSサービスの一つであるAWS Device Farmはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-プロフェッショナル(SAP)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS Device Farm 徹底解説 | AWS認定試験の頻出ポイントまとめ

1. サービス概要

AWS Device Farmは、AWSがホストする実際の物理スマートフォンやタブレットで、Android、iOS、Webアプリをテストできるアプリケーションテストサービスです。 端末購入やOS更新、端末メンテナンスを自前で行わず、実機上の互換性、UI、機能、パフォーマンス、クラッシュを確認できます。

重要な試験ポイントとして、Device Farmはus-west-2(オレゴン)リージョンのみで提供されます。 使い方は、ブラウザから実機を操作するリモートアクセスと、アプリ/テストをアップロードして複数端末で並列実行する自動テストに大別されます。

2. 主な特徴と機能

2.1 実機デバイスでのテスト

エミュレーターではなく、AWSが管理する実際のAndroid/iOS端末でテストできます。 画面サイズ、OSバージョン、メーカー差異、センサー、ネットワーク挙動など、実機固有の問題を検出しやすくなります。

2.2 リモートアクセス

ブラウザから実機へリアルタイムにアクセスし、手動操作でバグ再現、表示確認、インストール/アップグレード確認ができます。 ローカルクライアントからDevice Farmの管理Appiumエンドポイントに接続し、Appiumテストを実行することもできます。

2.3 自動アプリテスト

アプリとテストパッケージをアップロードし、複数デバイスで並列に自動テストを実行できます。 Appium、Espresso、XCTestなどのフレームワークや、Device Farmの管理テスト実行環境を利用します。

2.4 レポートと成果物

テスト完了後、結果サマリー、ログ、スクリーンショット、動画、テスト成果物を含むレポートが生成されます。 CI/CDパイプラインで失敗原因を分析し、リリース判定に利用できます。

2.5 デバイスプールと並列実行

プラットフォーム、メーカー、モデル、OSなどの条件でデバイスプールを作成できます。 複数デバイスに対して並列実行することで、リグレッションテスト時間を短縮できます。

2.6 VPC接続

Device FarmのテストホストやデバイスからVPC内のプライベートエンドポイントへ安全に接続できます。 社内API、検証環境、プライベートバックエンドを使うモバイルアプリのE2Eテストに有効です。

3. アーキテクチャおよび技術要素

  1. Device Farmプロジェクトを作成し、対象アプリやWebテストを管理する。
  2. Android APK/AAB、iOS IPA、テストパッケージ、test specファイルをアップロードする。
  3. デバイスプールを選択し、実行するテストフレームワークと環境を指定する。
  4. runを開始すると、各デバイスに対してjobが作成され、suite/testが実行される。
  5. テスト中にログ、スクリーンショット、動画、成果物が収集される。
  6. reportで成功/失敗、クラッシュ、性能、各デバイスの詳細結果を確認する。
  7. 必要に応じてCI/CD、VPC接続、リモートアクセスでデバッグと再実行を行う。

Device Farmの用語では、project、run、job、suite、test、device pool、report、sessionを押さえると、試験問題で構造を読み取りやすくなります。

4. セキュリティと認証・認可

  • IAM最小権限: プロジェクト作成、アプリ/テストアップロード、run開始、レポート閲覧、リモートアクセスの権限を分離する。
  • アプリとテストデータ: 機密データや本番認証情報をテストアプリに埋め込まず、検証用データを使う。
  • VPC接続: プライベートAPIへ接続する場合、到達先、セキュリティグループ、認証情報を最小化する。
  • 成果物管理: スクリーンショット、動画、ログに個人情報や秘密情報が含まれないようにする。
  • リージョン: us-west-2限定であるため、データ所在地やコンプライアンス要件を確認する。
  • 監査: CloudTrailやCI/CDログでテスト実行、アップロード、アクセスを追跡する。

5. 料金形態

Device Farmは、デバイス利用時間、リモートアクセス、並列実行、プライベートデバイス利用、関連CI/CDサービスでコストを考えます。

  • デバイス分数: 自動テストやリモートアクセスで実機を使った時間に応じて課金される。
  • 並列実行: 複数デバイスで同時実行すると総デバイス分数が増えるが、テスト時間は短縮できる。
  • プライベートデバイス: 専有端末が必要な場合は別料金を確認する。
  • CI/CD: CodeBuild、CodePipeline、S3、CloudWatch Logsなどの利用料金も考慮する。
  • 最適化: 必要なデバイスプールに絞り、短いテスト、失敗時早期終了、並列度調整でコストを抑える。

6. よくあるアーキテクチャ・設計パターン

  • モバイル互換性テスト: 主要端末/OSバージョンでクラッシュやUI崩れを確認する。
  • CI/CD回帰テスト: CodePipelineやJenkinsからDevice Farmを呼び出し、リリース前に自動テストを実行する。
  • 手動デバッグ: 特定端末でしか再現しない問題をリモートアクセスで調査する。
  • プライベートAPI E2E: VPC接続で検証環境APIにアクセスし、実機からエンドツーエンドテストを行う。
  • Webブラウザテスト: SeleniumなどでWebアプリのブラウザ互換性を確認する。
  • リリース判定: レポート、動画、スクリーンショット、ログを品質ゲートとして利用する。

7. 設定・デプロイ手順(ハンズオン例)

  1. us-west-2リージョンでDevice Farmプロジェクトを作成する。
  2. Android/iOSアプリ、Webテスト、テストパッケージ、test specを準備する。
  3. 対象端末を選び、デバイスプールを作成する。
  4. 自動テストrunを作成し、フレームワーク、環境変数、VPC接続、タイムアウトを設定する。
  5. テストを実行し、report、ログ、スクリーンショット、動画を確認する。
  6. 失敗端末はリモートアクセスで再現確認し、必要に応じてCI/CDへ組み込む。

8. 試験で問われやすいポイント

8.1 サービス選択

  • Q: AWS Device Farmは何をするサービス?
    A: Android、iOS、WebアプリをAWS上の実物理デバイスでテストするサービス。
  • Q: Device Farmが提供されるリージョンは?
    A: us-west-2(オレゴン)のみ。
  • Q: 実機をブラウザから手動操作してバグを再現する機能は?
    A: リモートアクセス。

8.2 テスト実行

  • Q: 複数端末で自動テストを並列実行するには?
    A: アプリとテストをアップロードし、デバイスプールを選んでrunを開始する。
  • Q: Device Farmの結果で確認できる主な成果物は?
    A: レポート、ログ、スクリーンショット、動画、テスト成果物。
  • Q: プライベートAPIを使うアプリを実機テストするには?
    A: Device FarmのVPC接続を利用する。

8.3 料金と注意点

  • Q: Device Farmの主な課金要素は?
    A: デバイス利用時間、リモートアクセス、並列実行、プライベートデバイス、関連CI/CDサービス。
  • Q: テストログや動画で注意すべきセキュリティ観点は?
    A: 個人情報、認証情報、機密データが成果物に残らないようにすること。
  • Q: エミュレーターではなくDevice Farmを使う主な理由は?
    A: 実機固有のOS、画面、性能、センサー、メーカー差異を検証できるため。