Настройка тестирования на реальных устройствах через Firebase Test Lab

Эмуляторы не всегда отражают реальное поведение приложения, что приводит к неожиданным сбоям у пользователей. Мы настраиваем тестирование через Firebase Test Lab на физических устройствах, чтобы выявлять проблемы до релиза. Наша команда реализует проект под ключ — от подбора матрицы устройств до интеграции с CI, обеспечивая стабильную работу и последующую поддержку.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Настройка тестирования на реальных устройствах через Firebase Test Lab
Средний
~2-3 дня
Часто задаваемые вопросы

Настройка тестирования на реальных устройствах через Firebase Test Lab

Эмулятор врёт. Не злобно, но систематически: GPU-рендеринг другой, Bluetooth недоступен, камера симулированная, поведение памяти отличается от реального устройства. Мыза 5+ лет опыта с мобильными проектами сталкивались с этим десятки раз. Firebase Test Lab даёт доступ к физическим устройствам — Pixel 8, Samsung Galaxy S24, планшетам, старым Xiaomi с кастомными прошивками. Тест, который прошёл на эмуляторе, может упасть на Samsung One UI из-за кастомного WebView или изменённой системы разрешений. Закажите настройку под ключ — мы подготовим матрицу, Robo Script и CI-интеграцию за 2–3 дня.

Почему эмуляторы подводят, а реальные устройства — нет?

Эмулятор не воспроизводит аппаратные особенности: разное поведение памяти, отсутствие реальных датчиков (акселерометр, гироскоп), эмулированная камера. На реальном устройстве выявляются проблемы с push-уведомлениями (APNs/FCM), работой в фоне (Background fetch) и глубокими ссылками (Universal Links / App Links). По нашим данным, около 30% крэшей, обнаруженных на физических устройствах, не воспроизводятся на эмуляторе. Использование Firebase Test Lab гарантирует, что ваше приложение готово к реальным пользователям.

Что умеет Firebase Test Lab

Два режима тестирования:

Instrumentation Tests — запускает ваши Espresso / XCUITest тесты на выбранных устройствах. Полный контроль над тем, что проверяется.

Robo Test — автоматический краулер. Запускаете APK без единого написанного теста, Robo самостоятельно обходит интерфейс по Accessibility-дереву, нажимает кнопки, заполняет поля случайными данными, ищет крэши. Полезен для быстрой проверки новых сборок перед релизом.

Поддержка платформ: Android (Espresso, UI Automator, Appium) и iOS (XCUITest). Firebase Test Lab для iOS — отдельная история с меньшим парком устройств, но реальные iPhone и iPad всё равно ценнее симулятора.

Настройка: от загрузки билда до результатов

Android

Сборка APK и тест-APK:

./gradlew assembleDebug assembleAndroidTest 

Загрузка и запуск через gcloud:

gcloud firebase test android run \
  --type instrumentation \
  --app app/build/outputs/apk/debug/app-debug.apk \
  --test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
  --device model=Pixel8,version=34,locale=ru,orientation=portrait \
  --device model=a54xnsxx,version=13,locale=ru,orientation=portrait \
  --results-bucket gs://my-project-test-results \
  --results-dir "run_$(date +%Y%m%d_%H%M%S)"

model=a54xnsxx — это Samsung Galaxy A54. Список доступных моделей: gcloud firebase test android models list.

Матрица устройств

Выбор матрицы — отдельная аналитическая задача. Нет смысла гонять тесты на 50 устройствах. Принцип:

Критерий Что включаем
Топ-5 устройств из аналитики По данным Firebase Analytics / Crashlytics
Минимальная поддерживаемая версия ОС minSdkVersion / deployment target
Текущая версия ОС Android 14 / iOS 17
Samsung (One UI) Отдельно — из-за кастомизаций
Планшет Если поддерживается форм-фактор

Реалистичная матрица для большинства проектов: 3–5 устройств. Больше — дороже и дольше, но не обязательно информативнее.

iOS

Для iOS нужен .ipa с development-подписью (не distribution). Загрузка:

gcloud firebase test ios run \
 --test MyAppTests.zip \
 --device model=iphone15pro,version=17.4,locale=ru_RU,orientation=portrait

MyAppTests.zip — архив с .xctestrun файлом и тест-продуктами. Собирается через xcodebuild build-for-testing.

Robo Test с кастомным скриптом

Чистый Robo-краулер иногда застревает на экране логина — не знает учётные данные. Robo Script позволяет задать начальные действия:

[
  {
    "eventType": "VIEW_TEXT_CHANGED",
    "replacementText": "[email protected]",
    "elementDescriptors": [
      {
        "resourceName": "com.example.app:id/email_input"
      }
    ]
  },
  {
    "eventType": "VIEW_CLICKED",
    "elementDescriptors": [
      {
        "resourceName": "com.example.app:id/login_button"
      }
    ]
  }
]

После авторизации Robo продолжает обход уже авторизованной части приложения. Это быстрый способ проверить регрессии без написания тестов.

Интеграция в CI

GitHub Actions:

---
- name: Set up gcloud
  uses: google-github-actions/setup-gcloud@v2
  with:
    service_account_key: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_KEY }}
    project_id: my-firebase-project
- name: Run tests on Firebase Test Lab
  run: |
    gcloud firebase test android run \
      --app app-debug.apk \
      --test app-debug-androidTest.apk \
      --device model=Pixel8,version=34 \
      --timeout 10m
---

Service account нужен с ролью Firebase Test Lab Admin. Результаты автоматически сохраняются в Cloud Storage — скриншоты, видео, логкаты, XML-отчёт.

Анализ результатов

В консоли Firebase Test Lab для каждого запуска доступны:

  • Видеозапись прохождения теста
  • Logcat с фильтром по тегам
  • Скриншоты в ключевых точках
  • Отчёт о покрытии (если включён jacoco)
  • XML-результаты в формате JUnit (для Allure / Jenkins)

Что входит в настройку под ключ

Мы предлагаем полный цикл:

  • Анализ вашего парка устройств по данным аналитики
  • Конфигурация матрицы из 3–5 устройств
  • Написание Robo Script для авторизации (если требуется)
  • Интеграция в CI (GitHub Actions, GitLab CI, Bitrise)
  • Обучение команды работе с результатами
  • Гарантия корректной работы в течение 5 дней после сдачи

Опыт наших инженеров — 30+ проектов с Firebase Test Lab. Свяжитесь с нами для оценки вашего проекта — мы подберём оптимальную конфигурацию.

Сроки

2–3 дня — настройка Firebase Test Lab, конфигурация матрицы устройств, интеграция в CI, настройка Robo Script для авторизации. Плюс время на первый анализ результатов и устранение устройство-специфичных проблем. Стоимость рассчитывается индивидуально.

Как Firebase Test Lab экономит время на регрессиях?

Robo-тесты без единой строки кода находят крэши и ANR на реальных устройствах быстрее, чем ручное тестирование. По нашим данным, это экономит до 40% времени QA-цикла. В сочетании с Instrumentation-тестами вы получаете полное покрытие за считанные часы.

Наши компетенции:

Последние работы

  • Разработка мобильного приложения для компании FEEDME
    Разработка мобильного приложения для компании FEEDME
    1009
  • Разработка мобильного приложения для компании XOOMER
    Разработка мобильного приложения для компании XOOMER
    902
  • Разработка мобильного приложения для компании RHL
    Разработка мобильного приложения для компании RHL
    1331
  • Разработка мобильного приложения для компании ZIPPY
    Разработка мобильного приложения для компании ZIPPY
    1179
  • Разработка мобильного приложения для компании Affhome
    Разработка мобильного приложения для компании Affhome
    1106
  • Разработка мобильного приложения для компании FLAVORS
    Разработка мобильного приложения для компании FLAVORS
    713