Firebase Test Lab — що це, види тестів на пристроях та автоматизація

Автор: IT Sectr Опубліковано: 2026-04-29 Час читання: 9 хв

Firebase Test Lab — це хмарний сервіс Google для автоматизованого тестування мобільних застосунків на реальних пристроях, розміщених у дата-центрах Google. Test Lab дозволяє запускати інструментальні тести, скріншот-тести та робот-тести на сотнях конфігурацій пристроїв з різними версіями Android та iOS без необхідності утримувати власну ферму пристроїв. За даними Firebase Documentation, 2026, робот-тестування Firebase автоматично проходить по всіх екранах застосунку, виявляючи краші, ANR та проблеми з UI без написання жодного рядка тестового коду. Сервіс підтримує інтеграцію з CI/CD системами та надає детальні звіти з відео та логами.

Головне

  • Firebase Test Lab — хмарний сервіс тестування мобільних застосунків на реальних пристроях у дата-центрах Google з оплатою лише за використаний час.
  • Робот-тести — автоматичне дослідження застосунку: Firebase Crawler проходить по всіх екранах, натискає кнопки та заповнює форми, фіксуючи баги без написання коду.
  • Інструментальні тести — запуск Espresso, XCTest та UI Automator тестів на реальних пристроях з паралельним виконанням на різних конфігураціях.
  • Матриця пристроїв — тести виконуються одночасно на вибраному наборі пристроїв з різними версіями ОС, орієнтаціями екрану та мовами.
  • Звіти — після тестування доступні логи, скріншоти, відео проходження тестів та зведення зі знайденими помилками та продуктивністю.

Що таке Firebase Test Lab

Firebase Test Lab — це хмарна інфраструктура Google для автоматизованого тестування мобільних застосунків на фізичних пристроях, розташованих у глобальних дата-центрах Google. На відміну від емуляторів на локальній машині, Test Lab запускає тести на реальних Android-пристроях та iOS-девайсах з різними версіями операційних систем, роздільними здатностями екрану, об'ємом RAM та рівнями API. Сервіс автоматично обробляє результати тестів, надаючи відео проходження, скріншоти кроків та докладні логи.

Переваги хмарного тестування

Утримання власної ферми пристроїв потребує значних капітальних витрат на придбання та обслуговування фізичних девайсів. Firebase Test Lab надає доступ до тисяч пристроїв на умовах оплати за фактом використання (pay-per-use) з безкоштовним лімітом на Spark-плані. Test Lab автоматично оновлює парк пристроїв до актуальних моделей, включаючи новітні флагмани Google Pixel, Samsung Galaxy, Xiaomi та iPhone. Тести виконуються паралельно на кількох пристроях, що скорочує загальний час верифікації застосунку.

Підтримувані платформи

Для Android Test Lab підтримує тестування на пристроях з API рівня від 21 до останньої стабільної версії Android. Підтримка iOS включає реальні пристрої iPhone та iPad з версіями iOS від 15 до останньої стабільної. Для iOS доступне робот-тестування та XCTest. Кожен тест може бути виконаний на фізичних пристроях або емуляторах — для отримання максимально точних результатів Google рекомендує використовувати фізичні девайси, оскільки вони виявляють проблеми з сенсорами, камерою та мережевими інтерфейсами.

Типи тестів у Firebase Test Lab

Firebase Test Lab підтримує кілька типів тестів, кожен з яких вирішує своє завдання в циклі розробки: робот-тести для швидкої перевірки стабільності, інструментальні тести для функціональної верифікації та скріншот-тести для виявлення візуальних регресій. Вибір типу тесту залежить від стадії розробки та цілей конкретного запуску.

Робот-тести (Robo tests)

Робот-тести — це унікальна можливість Firebase Test Lab, яка не потребує написання тестового коду. Firebase Crawler автоматично досліджує застосунок: знаходить всі інтерактивні елементи UI, натискає на них, заповнює форми тестовими даними, переходить між екранами та фіксує будь-які збої (crash, ANR, винятки). Робот-тести виявляють до 80% критичних багів без жодного рядка тестового коду, що робить їх ідеальним інструментом для оцінки базової стабільності застосунку на ранніх етапах розробки.

Інструментальні тести

Інструментальні тести — це тести, написані розробником з використанням фреймворків Espresso (Android) або XCTest (iOS). Test Lab запускає APK з тестами на цільовому пристрої та збирає результати виконання. Тести можуть бути простими (перевірка відображення елементів) або складними (end-to-end сценарії: авторизація, додавання в кошик, оформлення замовлення). Firebase Test Lab підтримує Android Test Orchestrator для ізоляції тестів один від одного, що запобігає впливу одного тесту, що впав, на інші.

Скріншот-тести (Game loop та скріншоти)

Скріншот-тести використовуються для виявлення візуальних регресій у застосунку. Game loop — спеціальний тип тесту, який передає застосунку список сценаріїв через intent, а застосунок має виконати ці сценарії та зробити скріншоти ключових екранів. Test Lab збирає скріншоти з усіх пристроїв матриці та дозволяє порівняти їх з еталонними для виявлення відмінностей. Цей тип тестів особливо популярний в ігрових застосунках для перевірки рендерингу на різних GPU.

Тип тестуКодЩо перевіряєКоли використовувати
Робот-тестНе потрібенCrash, ANR, виняткиШвидка перевірка стабільності
ІнструментальнийEspresso / XCTestФункціональність сценаріївРегресійне тестування
Скріншот-тестGame loopВізуальні регресіїПеревірка UI на різних пристроях

Матриця пристроїв та конфігурації

Матриця тестування в Firebase Test Lab являє собою набір конфігурацій пристроїв, на яких виконується вибраний тест. Кожна конфігурація включає модель пристрою, версію ОС, орієнтацію екрану (портретна/ландшафтна) та регіональні налаштування (локаль, мова). Тест запускається паралельно на всіх вибраних конфігураціях, що значно скорочує загальний час виконання порівняно з послідовним запуском на кожному пристрої.

Вибір пристроїв для матриці

Google рекомендує включати в матрицю пристрої з різними характеристиками: флагманська модель (Google Pixel, Samsung Galaxy S), бюджетний пристрій (Moto G, Xiaomi Redmi), пристрій з мінімальною версією API, що підтримується застосунком. Оптимальна матриця включає 5–10 конфігурацій, що покривають всі версії ОС, які підтримує застосунок. Для iOS вибираються iPhone та iPad різних поколінь (наприклад, iPhone SE, iPhone 14, iPad Air) з різними версіями iOS.

Групування тестів та паралелізм

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

Робот-тестування: автоматичне дослідження

Робот-тестування — це флагманська можливість Firebase Test Lab, яка дозволяє автоматично досліджувати застосунок без написання жодного тесту. Firebase Crawler (робот) аналізує UI-ієрархію застосунку, знаходить всі інтерактивні елементи (кнопки, текстові поля, списки, меню) та взаємодіє з ними, імітуючи поведінку реального користувача. Робот-тестування особливо ефективне на ранніх етапах розробки, коли тести ще не написані, або для перевірки легасі-коду.

Налаштування робот-тесту

Для запуску робот-тесту достатньо завантажити APK або IPA у Firebase Console та вибрати опцію Robo test. Робот може автоматично входити в застосунок через попередньо налаштовані облікові дані (логін/пароль) для доступу до екранів, прихованих за авторизацією. Можна також задати глибину дослідження (max depth), щоб обмежити кількість кроків робота, або вказати конкретні елементи, на які робот має натискати пріоритетно.

xml
<!-- res/xml/robo_directives.xml -->
<!-- Робот заповнить поля логіну та пароля -->
<?xml version="1.0" encoding="utf-8"?>
<robo-directives
    xmlns:android="http://schemas.android.com/apk/res/android">
    <directive
        android:resourceName="@id/et_email"
        android:inputValue="test@example.com" />
    <directive
        android:resourceName="@id/et_password"
        android:inputValue="password123" />
    <directive
        android:resourceName="@id/btn_login"
        android:clickAction="CLICK" />
</robo-directives>

Обмеження робот-тестів

Робот-тести не замінюють ручного тестування та написаних інструментальних тестів для складних сценаріїв. Робот не вміє перевіряти бізнес-логіку: він натискає на всі елементи підряд, але не знає, чи правильний результат вийшов. Також робот не може взаємодіяти з кастомними view, які не успадковуються від стандартних ViewGroup, і не обробляє WebView. Для цих випадків необхідно використовувати інструментальні тести або Game loop.

Інтеграція з CI/CD та Gradle

Інтеграція Firebase Test Lab з CI/CD системами дозволяє автоматично запускати тести при кожному пушеві в репозиторій. Test Lab підтримує Gradle-задачі для Android та Fastlane для обох платформ. Налаштування CI/CD пайплайну включає збірку застосунку, завантаження APK/IPA у Google Cloud Storage, запуск тестів через Firebase CLI та отримання звітів назад у CI-систему для відображення статусу збірки.

Налаштування через Gradle (Android)

Google надає плагін gcloud-test-lab для Gradle, який автоматизує завантаження та запуск тестів. Задача assembleAndroidTest збирає APK з тестами, а gcloud-задачі завантажують його в Test Lab та запускають матрицю. Результати тестів повертаються в Gradle як pass/fail, що дозволяє інтегрувати Test Lab в будь-який CI-пайплайн, що підтримує Gradle. Для авторизації використовується сервісний акаунт Firebase з правами на Test Lab.

groovy
// build.gradle (module: app)
task runTestLab() {
    exec {
        commandLine "gcloud", "firebase", "test", "android", "run",
            "--type", "robo",
            "--app", "build/outputs/apk/debug/app-debug.apk",
            "--device", "model=Pixel7,version=33",
            "--device", "model=GalaxyS23,version=34",
            "--device", "model=RedmiNote12,version=31",
            "--timeout", "15m",
            "--results-dir", "firebase/test-lab/robo"
    }
}

Налаштування через Fastlane

Fastlane надає плагін firebase_test_lab для інтеграції з iOS та Android тестами. Fastlane lane виконує збірку, запускає тести та обробляє результати. Для iOS XCTest Test Lab потребує xctestrun-файл, який створюється автоматично при збірці тестового таргету. Fastlane також вміє завантажувати результати тестів у Slack або інші месенджери для сповіщення команди про статус тестування після кожного запуску.

Аналіз результатів тестування

Після завершення тестів Firebase Test Lab надає комплексний звіт, доступний у Firebase Console та через gcloud CLI. Звіт включає коротку зведенку (кількість пройдених, тих що впали та пропущених тестів), детальну інформацію по кожному тесту на кожному пристрої, відео проходження, скріншоти ключових кроків та логи пристрою (logcat для Android, system log для iOS). Для тестів що впали доступний stack trace із зазначенням точного місця помилки.

Інтерпретація результатів робот-тесту

Для робот-тесту звіт відрізняється від інструментального: замість pass/fail за тест-кейсами звіт показує статистику дослідження. Ключові метрики — кількість знайдених та відвіданих екранів, кількість взаємодій робота (кліки, свайпи, введення тексту), виявлені краші та ANR, і пройдений шлях по застосунку. Відео проходження робота дозволяє візуально оцінити, які екрани були протестовані, а які залишилися неохопленими.

Експорт результатів

Результати тестів зберігаються в Google Cloud Storage у прив'язаному до проекту bucket. Дані доступні для експорту та інтеграції із зовнішніми системами аналітики. Для довгострокового зберігання та порівняння результатів між запусками рекомендується налаштувати BigQuery експорт або використовувати Firebase Test Lab API для програмного отримання результатів. Google надає можливість завантажити ZIP-архів з повним набором результатів для кожного запуску тестів.

Часті запитання

Скільки коштує Firebase Test Lab?

Spark-план включає 10 Robo-тестів на день та 5 годин інструментальних тестів на місяць безкоштовно. Blaze-план тарифікується за часом: ~1 USD за пристрій-годину для Robo-тестів та ~5 USD для інструментальних. Точна вартість залежить від регіону та типу пристрою.

Чим відрізняються фізичні пристрої від емуляторів у Test Lab?

Фізичні пристрої дають більш точні результати, включаючи проблеми з сенсорами, камерою, GPS, Bluetooth та реальною продуктивністю. Емулятори швидше запускаються та дешевші, але не виявляють проблем, пов'язаних з апаратними особливостями. Google рекомендує фізичні пристрої для передрелізного тестування.

Як налаштувати авторизацію для робот-тесту?

Створіть XML-файл robo_directives.xml з полями для введення (логін, пароль) та кнопками для натискання. Завантажте файл разом з APK при запуску тесту через Firebase Console або CLI. Робот виконає вказані дії перед початком дослідження.

Чи можна запускати тести на iOS у Firebase Test Lab?

Так, Firebase Test Lab підтримує iOS з 2024 року. Доступні Robo-тести (автоматичне дослідження) та XCTest (інструментальні тести) на реальних пристроях iPhone та iPad. Для завантаження потрібен IPA-файл з тестовим таргетом.

Як інтегрувати Test Lab з GitHub Actions?

Використовуйте Firebase CLI в GitHub Actions: налаштуйте аутентифікацію через Service Account JSON, встановіть gcloud SDK, виконайте команду firebase test android run із зазначенням APK та конфігурацій. Результати тестів доступні через Firebase Console або gcloud CLI.

Підсумки

  • Firebase Test Lab — хмарний сервіс Google для тестування мобільних застосунків на реальних пристроях з оплатою за фактом використання.
  • Три типи тестів — робот-тести (без коду, автоматичне дослідження), інструментальні (Espresso, XCTest) та скріншот-тести (Game loop) для різних завдань верифікації.
  • Матриця пристроїв дозволяє запускати тести паралельно на наборі конфігурацій (модель + версія ОС + орієнтація), скорочуючи загальний час перевірки.
  • Робот-тести (Firebase Crawler) автоматично досліджують застосунок, виявляючи до 80% критичних помилок без написання жодного рядка тестового коду.
  • Інтеграція з CI/CD — Test Lab підтримує Gradle, Fastlane та Firebase CLI для автоматичного запуску тестів при кожному пушеві в репозиторій.
  • Детальні звіти включають відео проходження, скріншоти, логи пристрою та stack trace для кожного тесту що впав на кожній конфігурації.
  • Безкоштовний ліміт — 10 Robo-тестів на день на Spark-плані, що достатньо для базової перевірки стабільності застосунку в щоденному циклі розробки.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також