位置情報のテスト:QA と開発者のための座標の偽装

位置に依存するロジックは、最もテストしにくいものの 1 つです。バグは街の特定の地点で再現するのに、チームは別の街にいます。位置の偽装を使えば、こうした確認を、席にいながら何度でも実行できる再現可能なシナリオに変えられます。実機でどう動くのか、その限界はどこにあるのかを見ていきます。

  1. 端末を準備する

    開発者モードをオンにし、仮の現在地情報アプリを選んで、位置情報へのアクセスを許可します。テスト端末では、バックグラウンドの制限もすぐに解除しておくとよいでしょう。そうしないと、長いテストの途中でファームウェアがサービスを終了させてしまいます。

    テスト端末の準備チェックリスト:開発者モード、アプリの選択、位置情報へのアクセス、バックグラウンド制限の解除
  2. 基準地点のセットを作る

    よく使う座標をお気に入りに保存します。バグ報告の住所、配達エリアの境界上の地点、別のタイムゾーンの住所、水上の地点などです。再現できる地点に名前を付けたリストが、繰り返し可能なテストの基礎になります。

    Mock Location のお気に入りの場所:繰り返しテスト用の基準地点のセット
  3. セットをチームと同期する

    場所のリストは、アカウントを通じて ウェブサイトと端末の間で同期されます。ウェブサイトで登録した地点はすぐにテスト用のスマートフォンに表示され、座標を手で写す必要はありません。端末が複数あると、大幅に時間を節約できます。

    アカウントを通じた、ウェブサイトとテスト端末の間での地点セットの同期
  4. シナリオを実行して結果を記録する

    目的の地点で偽装をオンにし、テスト対象のアプリでシナリオを実行します。地点は履歴に残るため、修正後の再確認ではタップ 1 回でそこに戻れます。

    Mock Location の起動履歴:前回のテストの地点にタップ 1 回で戻れる

必ず確認すべきこと

エリアの境界:配達エリアや検索範囲のちょうど境界上の地点は、境界値のずれによるエラーの典型的な原因です。アプリの動作中の座標の変化:多くのアプリは起動時に一度だけ位置を求め、その後の変化に反応しません。座標がない場合:位置情報がオフのときや、権限が拒否されたときの動作。

さらに、意図的に不正なデータも確認します。海の真ん中の地点、反対側の半球の座標、住所のない場所などです。どの場合でもアプリがクラッシュしてはいけません。

実機とエミュレーター

Android Studio のエミュレーターでは座標を設定したりルートを再生したりでき、開発の初期段階ではそれで十分です。しかし、最もよく壊れる部分は再現できません。特定のファームウェアがバックグラウンドサービスを終了させるときの動作、弱い信号での動作、測位にかかる実際の遅延、メーカーごとの省電力ポリシーの違いなどです。

そのため、エミュレーターで通ったシナリオは、実機でも確認し直す価値があります。特に、テスト対象のアプリがバックグラウンドで位置情報を使う場合はなおさらです。

テストにおける仮の情報源のフラグ

Android は、テスト用のプロバイダーからの座標にフラグを付けます。QA にとってこれは障害ではなく、別のテスト項目です。テスト対象のアプリが仮の座標を拒否しなければならないなら、偽装は、その確認が書かれているだけでなく実際に機能していることを確かめる手段そのものです。

アプリがシステムからのどんな座標も受け入れなければならない場合は、このフラグで誤って座標を捨てていないことを確認してください。

バックグラウンドで位置情報を使うアプリのテスト

バックグラウンドで移動を追跡するアプリでは、長時間のテストが重要です。偽装をオンにし、アプリを最小化して、端末を数時間そのままにします。5 分間の手動テストでは見えない問題が明らかになります。更新の登録の消失、エラーの蓄積、ファームウェアによるサービスの停止などです。

通知パネルの常駐通知が目印になります。通知がある間は偽装が有効です。

Mock Location — root 不要の Android 用偽の GPS 位置情報アプリ

無料、Google Play 以外から配布。インストール前にファイルのチェックサムを確認できます。

APK をダウンロード