Для тестировщика мобильных приложений под Android понимание Google Play Services (GPS) — это не просто дополнительный навык, а необходимость. Это набор закрытых API, сервисов и библиотек от Google, который предоставляет приложениям ключевые функции: карты (Maps), аутентификацию (Sign-In), уведомления (Cloud Messaging, FCM), локацию, Google Pay и многое другое. Поскольку большинство современных приложений так или иначе используют GPS, QA-инженер должен знать, как корректно тестировать интеграцию с этими сервисами, имитировать различные сценарии и диагностировать проблемы.
**Что такое Google Play Services и почему это важно для тестирования?** В отличие от стандартного Android SDK, GPS обновляется через магазин Google Play отдельно от системы. Это означает, что на устройстве пользователя может быть установлена версия, отличная от той, на которую ориентировались разработчики. Основные сложности для тестировщика: зависимость от серверов Google, различные состояния устройства (нет сети, выключены сервисы Google), разнообразие версий GPS на рынке и эмуляция специфических сценариев (например, получение координат в помещении).
**Ключевые сервисы и подходы к их тестированию:**
**1. Google Sign-In (Аутентификация).** Тестирование должно выходить за рамки "вводим логин/пароль". Необходимо проверять:
* Разные сценарии входа/выхода.
* Восстановление сессии после переустановки приложения или обновления GPS.
* Обработку ошибок: отказ пользователя от предоставления прав, отсутствие аккаунта Google на устройстве, отсутствие сети в момент попытки входа.
* Работу на эмуляторе (требует специальной настройки с установкой GApps и добавления аккаунта).
* Интеграцию с бэкендом: корректная передача токена ID Token на ваш сервер.
**2. Google Maps SDK и Location Services.** Тестирование карт и геолокации — одна из самых сложных задач.
* **Карты:** Проверяйте отображение карт при разном качестве сети (2G/3G/4G/Wi-Fi), работу с маркерами, кластерами, рисование маршрутов. Учитывайте, что у Google Maps API есть квоты запросов — тесты не должны их исчерпывать. Используйте мок-локации на реальных устройствах и эмуляторе.
* **Геолокация:** Тестируйте разные провайдеры (GPS, сеть, пассивный). Проверяйте поведение при включенном/выключенном режиме высокой точности, экономии заряда и "Только устройство". Эмулируйте движение, проверяйте обновление координат с разной периодичностью. Критически важно тестировать сценарии, когда разрешение на геолокацию дается или отзывается *во время* работы приложения.
**3. Firebase Cloud Messaging (FCM) — Push-уведомления.** Тестирование должно быть комплексным:
* Получение уведомлений в разных состояниях приложения: активно на переднем плане, свернуто, закрыто.
* Нажатие на уведомление и корректный переход на нужный экран (deep linking).
* Группировка уведомлений, кастомизация (звук, вибрация, иконка).
* Тестирование data-сообщений (которые обрабатываются кодом приложения) и notification-сообщений (которые показываются системой).
* Используйте консоль Firebase или инструменты вроде Postman для отправки тестовых уведомлений.
**4. In-App Billing (Платежи) и Google Pay.** Тестирование требует использования специальных тестовых карт и лицензированных тестовых аккаунтов.
* Проверка всего потока покупки: инициализация, запрос на покупку, обработка успешного ответа, доставка контента/функционала.
* Тестирование отмененных, неудачных и pending-транзакций.
* Проверка восстановления покупок (для consumable и non-consumable товаров).
* Симуляция различных ответов от биллинговой системы через тестовые ID (например, `android.test.purchased`).
**Инструменты и практические советы:**
* **Эмулятор Android Studio:** Для тестирования GPS его необходимо настроить, установив образ с Google APIs. Это позволяет тестировать многие функции, но не все (например, FCM на эмуляторе работает иначе).
* **Реальные устройства:** Обязательно используйте их для финального тестирования, особенно для локации, платежей и уведомлений.
* **ADB (Android Debug Bridge):** Незаменим для эмуляции событий: отправка мок-локаций (`adb emu geo fix`), симуляция SMS для тестирования Phone Auth, управление разрешениями.
* **Мониторинг логов:** Фильтруйте логи по тегам `GoogleApiClient` и `Auth` для диагностики ошибок аутентификации и подключения к сервисам.
* **Тестирование на разных версиях Google Play Services:** Используйте бета-версии или попробуйте откатить версию на тестовом устройстве, чтобы проверить обратную совместимость.
Понимание архитектуры и особенностей Google Play Services позволяет тестировщику не просто выполнять сценарии, а проектировать глубокие проверки, предугадывать проблемы пользователей и эффективно сотрудничать с разработчиками в поиске корня дефектов, связанных с интеграцией.
Полное руководство по Google Play Services для тестировщиков
Исчерпывающее руководство для QA-инженеров по тестированию интеграции приложений Android с ключевыми сервисами Google Play Services: аутентификация, карты и геолокация, push-уведомления (FCM) и платежи. Включает подходы, сценарии и инструменты.
310
3
Комментарии (12)