Тестування геолокації: підміна координат для QA й розробників

Логіка, прив’язана до геолокації, — одна з найнезручніших для тестування: баг відтворюється в конкретній точці міста, а команда сидить в іншому. Підміна геолокації перетворює таку перевірку на повторюваний сценарій, який можна прогнати з-за столу скільки завгодно разів. Розберімо, як це працює на реальному пристрої і де його межі.

  1. Підготуйте пристрій

    Увімкніть режим розробника, виберіть застосунок для фіктивних місцезнаходжень і надайте йому доступ до геолокації. На тестових пристроях варто одразу зняти фонові обмеження — інакше прошивка вивантажить сервіс посеред довгого прогону.

    Чекліст підготовки тестового пристрою: режим розробника, вибір застосунку, доступ до геолокації, зняті обмеження фону
  2. Створіть набір еталонних точок

    Збережіть в обраному координати, які потрібні регулярно: адресу з баг-репорту, точку на межі зони доставки, адресу в іншому часовому поясі, точку посеред води. Іменований список відтворюваних точок — основа повторюваних прогонів.

    Список обраних місць у Mock Location: набір еталонних точок для повторюваних прогонів
  3. Синхронізуйте набір із командою

    Список місць синхронізується між сайтом і пристроями через акаунт: точки, створені на сайті, одразу з’являються на тестових телефонах, без ручного перенесення координат. Це заощаджує багато часу, коли пристроїв кілька.

    Синхронізація набору точок між сайтом і тестовими пристроями через акаунт
  4. Запустіть сценарій і зафіксуйте результат

    Увімкніть підміну в потрібній точці й прогоніть сценарій у застосунку, що тестується. Точка залишиться в історії, тож під час повторної перевірки після виправлення до неї можна повернутися одним натисканням.

    Історія запусків у Mock Location: до точки з минулого прогону можна повернутися одним натисканням

Що обов’язково перевірити

Межі зон: точка рівно на межі зони доставки чи радіуса пошуку — класичне джерело помилок на одиницю. Зміна координат під час роботи застосунку: багато застосунків запитують геолокацію один раз під час запуску й не реагують на зміни. Відсутність координат: поведінка з вимкненою геолокацією та з відхиленим дозволом.

Окремо — свідомо некоректні дані: точка посеред океану, координати в іншій півкулі, місця без адреси. Застосунок не повинен падати в жодному з цих випадків.

Реальний пристрій чи емулятор

Емулятор Android Studio вміє задавати координати й програвати маршрути, і на ранньому етапі розробки цього достатньо. Але він не відтворює того, що ламається найчастіше: поведінки конкретної прошивки під час вивантаження фонових сервісів, роботи зі слабким сигналом, реальних затримок отримання фіксу й відмінностей у політиках енергозбереження виробників.

Тому сценарій, що пройшов на емуляторі, варто перевірити ще й на реальному пристрої — особливо якщо застосунок, що тестується, використовує геолокацію у фоні.

Позначка фіктивного джерела в тестуванні

Android позначає координати від тестового провайдера позначкою. Для QA це не перешкода, а окремий об’єкт перевірки: якщо застосунок, що тестується, має відкидати фіктивні координати, підміна — саме той спосіб переконатися, що перевірка справді працює, а не просто написана.

Якщо ж застосунок має приймати будь-які координати від системи, переконайтеся, що він не відкидає їх за цією позначкою випадково.

Тестування застосунків із фоновою геолокацією

Для застосунків, які відстежують переміщення у фоні, важливі довгі прогони: увімкніть підміну, згорніть застосунок і залиште пристрій на кілька годин. Так виявляються проблеми, яких не видно за п’ять хвилин ручного тестування, — втрачена підписка на оновлення, накопичення помилок, зупинка сервісу прошивкою.

Індикатором слугує постійне сповіщення в шторці: поки воно є, підміна активна.

Mock Location — підміна геолокації на Android без root

Безкоштовно, поза Google Play. Перед установленням можна звірити контрольну суму файлу.

Завантажити APK