多機種対応に使えるか? AWS Device Farmを検証してみる。

2023/12/26に公開

はじめに

スマートフォンのアプリケーション検証での困りごととして、毎年発生するiOS/Android OSバージョンアップへの対応や、ある特定の端末やOSの組み合わせでのみ不具合が発生して再現確認が行えないことがあります。
Android/iOSの2つのOSがあるだけでなく、Android OSに至っては、複数のメーカーから多種多様な端末が提供されています。これらの端末をすべて入手するのは現実的ではないため、代表的な端末で実機検証を行うことが多く、上記の課題に対応するのは困難な状況です。
AWS Device Farmを活用することで、これらの課題が解決できるか検証してみました。

AWS Device Farmとは

AWSから提供されているクラウドサービスで、実機のiOSやAndroidの端末にリモートアクセスできるサービスです。アクセスできる端末は2500台以上あり、多種多様な端末やOSバージョンでのアプリケーション動作を確認することができます。
https://aws.amazon.com/jp/device-farm/

ワンタイムトライアルを試してみる

AWS Device Farmでは、初回1000分を無料でリモート端末を利用できるワンタイムトライアルが用意されています。
このワンタイムトライアルを利用するためには、クレジットカードの登録が必要ですのでご留意ください。また、リージョンは米国西部(オレゴン):us-west-2を選択してください。現時点では、米国西部(オレゴン)でのみDevice Farmは利用可能なため、当然、英語版の端末のみの提供となります。

利用できる端末数は?

2023/12/25現在、用意されている端末は137種類となります。
残念なことにiphone 15やGoogle Pixel 8といった最新機種はPublic devicesのリストにはありません。また、利用できるOSは下記の範囲となります。

OS Version 代表的な端末
Android 8.0~14.0 Google Pixel 2,Galaxy S23
iOS 13.3.1~16.6.1 iphone XS,iPhone 14


Public devices

モバイル端末のRemote accessプロジェクトを作成する。

それでは、実際の検証結果を紹介します。まずは、Device Farmにてモバイル端末のプロジェクトを作成します。
Mobile Device Testing Projectsを選択し、New Projectボタンを押下すると、新規プロジェクトが作成できます。

Create project

Project Nameを入力してCreateボタンを押下して、Projyect detailsに遷移すると下記の選択ができます。

  • Automated Test
  • Remote access

ここでは、自由に操作できるRemote accessを選択します。

Project details

Start a new sessionボタンを押下すると、端末の選択画面が表示されるので、リモートアクセスを行いたい端末とOSを選択します。Public devicesでは端末とOSがセットで用意されており、自由な組み合わせは選べない点に注意ください。

Create a new remote session

Confirm and start sessionボタンを押下すると選択した端末へのリモートアクセスが実施され、ワンタイムトライアルが開始されます。

Session

ワンタイムトライアルを辞めるには、Stop sessionボタンを押してください。1000分を超えると課金対象となりますので、注意が必要です。

Remote accessの用途は、Webブラウザでの操作が主ですが、アプリをアップロードして操作を確認することも可能です。
ここでは、Android OSですのでインストールファイルとしてapkファイルを準備してアップロードします。
※iOSの場合、ipaファイルを準備してください。

Install applications

アップロードしたアプリはドックに登録されていますので、ドックからアプリを起動して操作を行います。

Automated testsを試してみる。

次に、Automated testsで用意されている自動テストを実行してみます。
自動テストは、モバイルアプリのほか、Webアプリでも実行可能です。
ここでは、モバイルアプリを選択して、テストを実行するMobileAppをアップロードします。

Choose application

アップロードが終わったら、自動実行するテストフレームワークを選択します。
ここでは、ノーコードのBulit-in:Fuzzを選びます。
Bulit-in:Fuzzで実施される自動テストは、画面をランダム操作して何らかのイベントを発生させるというものです。いわゆるモンキーテストを自動で行えるものと思ってください。

Setup test framework

なお、最近テストフレームワークが見直されたようで、Androidでのみ利用可能なBulit-in:Exploerが表示されなくなっていました。各画面を分析してエンドユーザーであるかのように操作してアプリケーションを巡回できるテストとのことで、時間があるうちに検証しておきたかった自動テストの一つでした。

2023/11/15時点で選択可能だったテストフレームワーク

では、設定を進めて、自動テストを行います。
アプリにもよりますが、テスト終了まで時間がかかります。あらかじめテスト時間が分からないのと、
テスト中断機能は実装されていないので、いつもテストが終わるまでひやひやしています。

テスト結果は、Name欄のリンクから確認できます。
Startボタンを押すとコマが回るという単純なテストアプリでしたので、問題なくテストが成功しました。
Screen Shotsタブからは、テスト中にキャプチャされた画面が確認できます。

AWS Device Farmの使い道

上記のとおり、Remote accessやAutomated testsを検証してみた結果、AWS Device Farmにて何が行えそうかを考えてみました。

  • Remote access
    代表的な端末や古いOSでWebアプリの動作確認が行える。アップロードしたアプリの操作も可能。
  • Automated tests(Bulit-in:Fuzz)
    複数のOSを指定して動作検証を自動実行できる。ただし、テスターが実施するテストと比べて、どのくらいの精度で検証できるかは今後の課題。
  • 全体
    従量課金(約26円/1分)で利用可能なため、実機の購入や端末をレンタルするよりも、ローコストで利用できる。

AWS Device Farmでできないこと

ある程度の使い道があることが分かりました。次にAWS Device Farmにてできないことを整理します。

  • 日本のキャリアで提供されている、シェアの高いSharp端末やらくらくフォンが利用できない。
  • ノッチ(切り抜き)、ダイナミックアイランドを採用した端末の画面表示が再現できない。
  • 米国リージョンのため、英語版の端末操作となり、リモートでの操作も遅くなる。
    言語に関しては、Automated testsで「日本語」に設定可能。

結論 AWS Device Farmは使える?

上記で述べたAWS Device Farmの使い道やできないことを勘案すると、限定された範囲での利用に関してはメリットがありますが、現時点ではスマートフォンのアプリケーション検証の課題をすべて解決できるサービスではないと思います。
当面は代表的な端末を用意しての検証を主として、AWS Device Farmのようなリモートで実機検証可能なサービスで検証不足を補う体制が望ましいかと考えています。
とはいえ、低コストで利用できるのがAWS Device Farmの一番の魅力ですので、日本向けのサービス展開といった今後の進化に期待したいと思います。

Discussion