Firebase Test Lab је Google-ов облак сервис за аутоматизовано тестирање мобилних апликација на стварним уређајима смештеним у Google-овим дата центрима. Test Lab омогућава покретање инструменталних тестова, тестова снимака екрана и робот тестова на стотинама конфигурација уређаја са различитим верзијама Android и iOS без потребе за поседовањем сопствене фарме уређаја. Према Firebase Documentation, 2026, робот тестирање Firebase аутоматски пролази кроз све екране апликације, откривајући краш - е, ANR и проблеме са UI без писања ниједне линије тест кода. Сервис подржава интеграцију са CI/CD системима и пружа детаљне извештаје са видео записима и дневницима.
Главно
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-а која не захтева писање тест кода. Firebase Crawler аутоматски истражује апликацију: проналази све интерактивне UI елементе, кликће на њих, попуњава обрасце тест подацима, прелази између екрана и бележи све падове (crash, ANR, изузетке). Робот тестови откривају до 80% критичних багова без иједне линије тест кода, што их чини идеалним алатом за процену основне стабилности апликације у раним фазама развоја.
Инструментални тестови су тестови написани од стране програмера коришћењем фрејмворка Espresso (Android) или XCTest (iOS). Test Lab покреће APK са тестовима на циљаном уређају и прикупља резултате извршавања. Тестови могу бити једноставни (провера приказа елемената) или сложени (end-to-end сценарији: ауторизација, додавање у корпу, оформуларисање поруџбине). Firebase Test Lab подржава Android Test Orchestrator за изолацију тестова један од другог, што спречава утицај једног палог теста на остале.
Тестови снимака екрана користе се за откривање визуелних регресија у апликацији. 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) ради ограничавања броја корака робота или навести конкретни елементи које робот треба приоритетно да притиска.
<!-- 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>
Робот тестови не замењују ручно тестирање и написане инструменталне тестове за сложене сценарије. Робот не уме да проверава пословну логику: он кликће на све елементе редом, али не зна да ли је резултат исправан. Такође, робот не може да ступи у интеракцију са прилагођеним приказима који не наслеђују стандардне ViewGroup и не обрађује WebView. За ове случајеве потребно је користити инструменталне тестове или Game loop.
Интеграција Firebase Test Lab-а са CI/CD системима омогућава аутоматско покретање тестова при сваком push-у у репозиторијум. Test Lab подржава Gradle задатке за Android и Fastlane за обе платформе. Подешавање CI/CD пајплајна укључује изградњу апликације, отпремање APK/IPA у Google Cloud Storage, покретање тестова путем Firebase CLI и примање извештаја назад у CI систем за приказ статуса изградње.
Google пружа додатак gcloud-test-lab за Gradle који аутоматизује отпремање и покретање тестова. Задатак assembleAndroidTest гради APK са тестовима, а gcloud задаци га отпремају у Test Lab и покрећу матрицу. Резултати тестова се враћају у Gradle као pass/fail, што омогућава интеграцију Test Lab-а у било који CI пајплајн који подржава Gradle. За ауторизацију се користи сервисни налог Firebase са правима на Test Lab.
// 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 пружа додатак 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 архиве са комплетним скупом резултата за свако покретање тестова.
Често постављана питања
Spark план укључује 10 Robo тестова дневно и 5 сати инструменталних тестова месечно бесплатно. Blaze план се тарифицира по времену: ~1 USD по уређај-сату за Robo тестове и ~5 USD за инструменталне. Тачна цена зависи од региона и типа уређаја.
Физички уређаји дају прецизније резултате, укључујући проблеме са сензорима, камером, GPS-ом, Bluetooth-ом и стварним перформансама. Емулатори се брже покрећу и јефтинији су, али не откривају проблеме везане за хардверске карактеристике. Google препоручује физичке уређаје за тестирање пред објављивање.
Направите XML датотеку robo_directives.xml са пољима за унос (логин, лозинка) и дугмадима за притискање. Отпремите датотеку заједно са APK-ом приликом покретања теста кроз Firebase Console или CLI. Робот ће извршити наведене радње пре почетка истраживања.
Да, Firebase Test Lab подржава iOS од 2024. године. Доступни су Robo тестови (аутоматско истраживање) и XCTest (инструментални тестови) на стварним iPhone и iPad уређајима. За отпремање је потребна IPA датотека са тест циљем.
Користите Firebase CLI у GitHub Actions: подесите аутентификацију путем Service Account JSON, инсталирајте gcloud SDK, извршите команду firebase test android run са навођењем APK-а и конфигурација. Резултати тестова су доступни путем Firebase Console или gcloud CLI.
Закључци
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође