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

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

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

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

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

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

Емулятор бреше. Не зловмисно, але систематично: GPU-рендеринг інший, Bluetooth недоступний, камера симульована, поведінка пам'яті відрізняється від реального пристрою. Ми у насза 10+ років досвіду з мобільними проєктами стикалися з цим десятки разів. 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 днів після здачі

Досвід наших інженерів — 40+ проєктів з 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