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

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

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

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

Що обов’язково перевірити
Межі зон: точка рівно на межі зони доставки чи радіуса пошуку — класичне джерело помилок на одиницю. Зміна координат під час роботи застосунку: багато застосунків запитують геолокацію один раз під час запуску й не реагують на зміни. Відсутність координат: поведінка з вимкненою геолокацією та з відхиленим дозволом.
Окремо — свідомо некоректні дані: точка посеред океану, координати в іншій півкулі, місця без адреси. Застосунок не повинен падати в жодному з цих випадків.
Реальний пристрій чи емулятор
Емулятор Android Studio вміє задавати координати й програвати маршрути, і на ранньому етапі розробки цього достатньо. Але він не відтворює того, що ламається найчастіше: поведінки конкретної прошивки під час вивантаження фонових сервісів, роботи зі слабким сигналом, реальних затримок отримання фіксу й відмінностей у політиках енергозбереження виробників.
Тому сценарій, що пройшов на емуляторі, варто перевірити ще й на реальному пристрої — особливо якщо застосунок, що тестується, використовує геолокацію у фоні.
Позначка фіктивного джерела в тестуванні
Android позначає координати від тестового провайдера позначкою. Для QA це не перешкода, а окремий об’єкт перевірки: якщо застосунок, що тестується, має відкидати фіктивні координати, підміна — саме той спосіб переконатися, що перевірка справді працює, а не просто написана.
Якщо ж застосунок має приймати будь-які координати від системи, переконайтеся, що він не відкидає їх за цією позначкою випадково.
Тестування застосунків із фоновою геолокацією
Для застосунків, які відстежують переміщення у фоні, важливі довгі прогони: увімкніть підміну, згорніть застосунок і залиште пристрій на кілька годин. Так виявляються проблеми, яких не видно за п’ять хвилин ручного тестування, — втрачена підписка на оновлення, накопичення помилок, зупинка сервісу прошивкою.
Індикатором слугує постійне сповіщення в шторці: поки воно є, підміна активна.