Firebase Test Lab — co to je, typy testů na zařízeních a automatizace

Autor: IT Sectr Publikováno: 2026-04-29 Doba čtení: 9 min

Firebase Test Lab je cloudová služba Google pro automatizované testování mobilních aplikací na skutečných zařízeních umístěných v datových centrech Google. Test Lab umožňuje spouštět instrumentální testy, testy snímků obrazovky a robot testy na stovkách konfigurací zařízení s různými verzemi Android a iOS, aniž byste museli vlastnit vlastní farmu zařízení. Podle Firebase Documentation, 2026 robot testování Firebase automaticky prochází všechny obrazovky aplikace a odhaluje crash, ANR a problémy s UI bez psaní jediného řádku testovacího kódu. Služba podporuje integraci se systémy CI/CD a poskytuje podrobné zprávy s videi a protokoly.

Hlavní body

  • Firebase Test Lab — cloudová služba pro testování mobilních aplikací na skutečných zařízeních v datových centrech Google s platbou pouze za využitý čas.
  • Robot testy — automatický průzkum aplikace: Firebase Crawler prochází všechny obrazovky, kliká na tlačítka a vyplňuje formuláře a zaznamenává chyby bez psaní kódu.
  • Instrumentální testy — spouštění testů Espresso, XCTest a UI Automator na skutečných zařízeních s paralelním prováděním na různých konfiguracích.
  • Matice zařízení — testy se provádějí současně na vybrané sadě zařízení s různými verzemi OS, orientacemi obrazovky a jazyky.
  • Zprávy — po testování jsou k dispozici protokoly, snímky obrazovky, videa testů a souhrn s nalezenými chybami a výkonem.

Co je Firebase Test Lab

Firebase Test Lab je cloudová infrastruktura Google pro automatizované testování mobilních aplikací na fyzických zařízeních umístěných v globálních datových centrech Google. Na rozdíl od emulátorů na lokálním počítači spouští Test Lab testy na skutečných zařízeních Android a iOS s různými verzemi operačních systémů, rozlišeními obrazovky, množstvím RAM a úrovněmi API. Služba automaticky zpracovává výsledky testů a poskytuje videa z průběhu, snímky obrazovky kroků a podrobné protokoly.

Výhody cloudového testování

Vlastnictví vlastní farmy zařízení vyžaduje značné kapitálové investice na nákup a údržbu fyzických zařízení. Firebase Test Lab poskytuje přístup k tisícům zařízení na principu platby za použití (pay-per-use) s bezplatným limitem v plánu Spark. Test Lab automaticky aktualizuje park zařízení na nejnovější modely, včetně nejnovějších vlajkových lodí Google Pixel, Samsung Galaxy, Xiaomi a iPhone. Testy se provádějí paralelně na několika zařízeních, což zkracuje celkovou dobu ověření aplikace.

Podporované platformy

Pro Android Test Lab podporuje testování na zařízeních s úrovní API od 21 do nejnovější stabilní verze Androidu. Podpora pro iOS zahrnuje skutečná zařízení iPhone a iPad s verzemi iOS od 15 do nejnovější stabilní. Pro iOS je k dispozici robot testování a XCTest. Každý test lze provést na fyzických zařízeních nebo emulátorech — pro dosažení maximálně přesných výsledků Google doporučuje používat fyzická zařízení, protože odhalují problémy se senzory, kamerou a síťovými rozhraními.

Typy testů ve Firebase Test Lab

Firebase Test Lab podporuje několik typů testů, z nichž každý řeší svůj vlastní úkol ve vývojovém cyklu: robot testy pro rychlou kontrolu stability, instrumentální testy pro funkční ověření a testy snímků obrazovky pro detekci vizuálních regresí. Výběr typu testu závisí na fázi vývoje a cílech konkrétního spuštění.

Robot testy (Robo tests)

Robot testy jsou jedinečnou schopností Firebase Test Lab, která nevyžaduje psaní testovacího kódu. Firebase Crawler automaticky prozkoumává aplikaci: najde všechny interaktivní prvky UI, kliká na ně, vyplňuje formuláře testovacími daty, přechází mezi obrazovkami a zaznamenává jakékoli selhání (crash, ANR, výjimky). Robot testy odhalují až 80% kritických chyb bez jediného řádku testovacího kódu, což z nich dělá ideální nástroj pro posouzení základní stability aplikace v raných fázích vývoje.

Instrumentální testy (Instrumentation tests)

Instrumentální testy jsou testy napsané vývojářem pomocí frameworků Espresso (Android) nebo XCTest (iOS). Test Lab spouští APK s testy na cílovém zařízení a shromažďuje výsledky provádění. Testy mohou být jednoduché (kontrola zobrazení prvků) nebo složité (scénáře end-to-end: autorizace, přidání do košíku, dokončení objednávky). Firebase Test Lab podporuje Android Test Orchestrator pro izolaci testů od sebe navzájem, což zabraňuje vlivu jednoho neúspěšného testu na ostatní.

Testy snímků obrazovky (Game loop a snímky obrazovky)

Testy snímků obrazovky se používají k detekci vizuálních regresí v aplikaci. Game loop je speciální typ testu, který aplikaci předá seznam scénářů prostřednictvím intent a aplikace musí tyto scénáře provést a pořídit snímky klíčových obrazovek. Test Lab shromažďuje snímky ze všech zařízení v matici a umožňuje jejich porovnání s referenčními snímky pro detekci rozdílů. Tento typ testu je obzvláště populární v herních aplikacích pro kontrolu vykreslování na různých GPU.

Typ testuKódCo kontrolujeKdy použít
Robot testNení vyžadovánCrash, ANR, výjimkyRychlá kontrola stability
InstrumentálníEspresso / XCTestFunkčnost scénářůRegresní testování
Snímek obrazovkyGame loopVizuální regreseKontrola UI na různých zařízeních

Matice zařízení a konfigurace

Testovací matice ve Firebase Test Lab je sada konfigurací zařízení, na kterých se provádí vybraný test. Každá konfigurace zahrnuje model zařízení, verzi OS, orientaci obrazovky (na výšku/na šířku) a regionální nastavení (místní nastavení, jazyk). Test se spouští paralelně na všech vybraných konfiguracích, což výrazně zkracuje celkovou dobu provádění ve srovnání s postupným spouštěním na každém zařízení.

Výběr zařízení pro matici

Google doporučuje zahrnout do matice zařízení s různými charakteristikami: vlajkový model (Google Pixel, Samsung Galaxy S), levné zařízení (Moto G, Xiaomi Redmi), zařízení s minimální verzí API podporovanou aplikací. Optimální matice zahrnuje 5–10 konfigurací pokrývajících všechny verze OS, které aplikace podporuje. Pro iOS se vybírají iPhone a iPad různých generací (např. iPhone SE, iPhone 14, iPad Air) s různými verzemi iOS.

Seskupování testů a paralelismus

Test Lab automaticky distribuuje testy na vybraná zařízení a provádí každý test na každé konfiguraci. Doba provádění celé matice se rovná době provádění nejpomalejšího testu na nejpomalejším zařízení — všechny ostatní se provádějí paralelně. Pokud jeden test selže na všech zařízeních, Test Lab zastaví jeho provádění na zbývajících konfiguracích pro úsporu zdrojů. Výsledky jsou seskupeny podle testu a zařízení, což umožňuje rychlé určení, zda je chyba specifická pro určitou konfiguraci.

Robot testování: automatický průzkum

Robot testování je vlajkovou schopností Firebase Test Lab, která umožňuje automaticky prozkoumávat aplikaci bez psaní jediného testu. Firebase Crawler (robot) analyzuje hierarchii UI aplikace, najde všechny interaktivní prvky (tlačítka, textová pole, seznamy, menu) a interaguje s nimi a simuluje chování skutečného uživatele. Robot testování je zvláště účinné v raných fázích vývoje, kdy testy ještě nejsou napsány, nebo pro kontrolu staršího kódu.

Nastavení robot testu

Pro spuštění robot testu stačí nahrát APK nebo IPA do Firebase Console a vybrat možnost Robo test. Robot může automaticky přihlásit do aplikace pomocí předem nakonfigurovaných přihlašovacích údajů (jméno/heslo) pro přístup k obrazovkám skrytým za autorizací. Lze také nastavit hloubku průzkumu (max depth) pro omezení počtu kroků robota nebo určit konkrétní prvky, na které má robot klikat prioritně.

xml
<!-- res/xml/robo_directives.xml -->
<!-- Robot vyplní pole pro přihlášení a heslo -->
<?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>

Omezení robot testů

Robot testy nenahrazují ruční testování a napsané instrumentální testy pro složité scénáře. Robot neumí kontrolovat obchodní logiku: kliká postupně na všechny prvky, ale neví, zda je výsledek správný. Robot také nemůže interagovat s vlastními zobrazeními, která nedědí ze standardní ViewGroup, a nezpracovává WebView. V těchto případech je nutné použít instrumentální testy nebo Game loop.

Integrace s CI/CD a Gradle

Integrace Firebase Test Lab se systémy CI/CD umožňuje automatické spouštění testů při každém pushi do repozitáře. Test Lab podporuje úlohy Gradle pro Android a Fastlane pro obě platformy. Nastavení CI/CD pipeline zahrnuje sestavení aplikace, nahrání APK/IPA do Google Cloud Storage, spuštění testů přes Firebase CLI a příjem zpráv zpět do CI systému pro zobrazení stavu sestavení.

Nastavení přes Gradle (Android)

Google poskytuje plugin gcloud-test-lab pro Gradle, který automatizuje nahrávání a spouštění testů. Úloha assembleAndroidTest sestaví APK s testy a úlohy gcloud jej nahrají do Test Lab a spustí matici. Výsledky testů se vracejí do Gradle jako pass/fail, což umožňuje integraci Test Lab do jakékoli CI pipeline podporující Gradle. Pro autorizaci se používá servisní účet Firebase s oprávněním k 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"
    }
}

Nastavení přes Fastlane

Fastlane poskytuje plugin firebase_test_lab pro integraci s iOS a Android testy. Fastlane lane provádí sestavení, spouští testy a zpracovává výsledky. Pro iOS XCTest vyžaduje Test Lab soubor xctestrun, který se automaticky vytvoří při sestavení testovacího cíle. Fastlane také umí nahrát výsledky testů do Slacku nebo jiných messengerů pro informování týmu o stavu testování po každém spuštění.

Analýza výsledků testování

Po dokončení testů Firebase Test Lab poskytuje komplexní zprávu dostupnou ve Firebase Console a prostřednictvím gcloud CLI. Zpráva obsahuje rychlý souhrn (počet úspěšných, neúspěšných a přeskočených testů), podrobné informace o každém testu na každém zařízení, video z průběhu, snímky klíčových kroků a protokoly zařízení (logcat pro Android, system log pro iOS). Pro neúspěšné testy je k dispozici stack trace s uvedením přesného místa chyby.

Interpretace výsledků robot testu

Pro robot test se zpráva liší od instrumentálního: namísto pass/fail podle testovacích případů zpráva ukazuje statistiky průzkumu. Klíčové metriky — počet nalezených a navštívených obrazovek, počet interakcí robota (kliknutí, přejetí, zadání textu), zjištěné crash a ANR a projitá cesta aplikací. Video z průběhu robota umožňuje vizuálně posoudit, které obrazovky byly testovány a které zůstaly nepokryté.

Export výsledků

Výsledky testů jsou uloženy v Google Cloud Storage v bucketu připojeném k projektu. Data jsou k dispozici pro export a integraci s externími analytickými systémy. Pro dlouhodobé ukládání a porovnávání výsledků mezi spuštěními se doporučuje nastavit export BigQuery nebo použít Firebase Test Lab API pro programové získávání výsledků. Google poskytuje možnost stáhnout ZIP archiv s kompletní sadou výsledků pro každé spuštění testů.

Často kladené otázky

Kolik stojí Firebase Test Lab?

Plán Spark zahrnuje 10 Robo testů denně a 5 hodin instrumentálních testů měsíčně zdarma. Plán Blaze je zpoplatněn podle času: ~1 USD za zařízení-hodinu pro Robo testy a ~5 USD pro instrumentální testy. Přesná cena závisí na regionu a typu zařízení.

Jak se liší fyzická zařízení od emulátorů v Test Lab?

Fyzická zařízení poskytují přesnější výsledky, včetně problémů se senzory, kamerou, GPS, Bluetooth a skutečným výkonem. Emulátory se spouštějí rychleji a jsou levnější, ale neodhalují problémy související s hardwarovými vlastnostmi. Google doporučuje fyzická zařízení pro testování před vydáním.

Jak nastavit autorizaci pro robot test?

Vytvořte XML soubor robo_directives.xml s vstupními poli (jméno, heslo) a tlačítky pro kliknutí. Nahrajte soubor spolu s APK při spouštění testu přes Firebase Console nebo CLI. Robot provede zadané akce před zahájením průzkumu.

Lze spouštět testy na iOS ve Firebase Test Lab?

Ano, Firebase Test Lab podporuje iOS od roku 2024. K dispozici jsou Robo testy (automatický průzkum) a XCTest (instrumentální testy) na skutečných zařízeních iPhone a iPad. Pro nahrání je vyžadován IPA soubor s testovacím cílem.

Jak integrovat Test Lab s GitHub Actions?

Použijte Firebase CLI v GitHub Actions: nastavte autentizaci přes Service Account JSON, nainstalujte gcloud SDK, spusťte příkaz firebase test android run s uvedením APK a konfigurací. Výsledky testů jsou k dispozici přes Firebase Console nebo gcloud CLI.

Shrnutí

  • Firebase Test Lab — cloudová služba Google pro testování mobilních aplikací na skutečných zařízeních s platbou za použití.
  • Tři typy testů — robot testy (bez kódu, automatický průzkum), instrumentální (Espresso, XCTest) a testy snímků obrazovky (Game loop) pro různé úkoly ověření.
  • Matice zařízení umožňuje paralelní spouštění testů na sadě konfigurací (model + verze OS + orientace), čímž zkracuje celkovou dobu kontroly.
  • Robot testy (Firebase Crawler) automaticky prozkoumávají aplikaci a odhalují až 80% kritických chyb bez psaní jediného řádku testovacího kódu.
  • Integrace CI/CD — Test Lab podporuje Gradle, Fastlane a Firebase CLI pro automatické spouštění testů při každém pushi do repozitáře.
  • Podrobné zprávy zahrnují video z průběhu, snímky obrazovky, protokoly zařízení a stack trace pro každý neúspěšný test na každé konfiguraci.
  • Bezplatný limit — 10 Robo testů denně v plánu Spark, dostatečný pro základní kontrolu stability aplikace v denním vývojovém cyklu.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také