Firebase Test Lab — ce este, tipuri de teste pe dispozitive și automatizare

Autor: IT Sectr Publicat: 2026-04-29 Timp de citire: 9 min

Firebase Test Lab este un serviciu cloud Google pentru testarea automatizată a aplicațiilor mobile pe dispozitive reale găzduite în centrele de date Google. Test Lab permite rularea testelor instrumentale, a testelor de capturi de ecran și a testelor robot pe sute de configurații de dispozitive cu diferite versiuni de Android și iOS, fără a fi nevoie să deții o fermă proprie de dispozitive. Conform Firebase Documentation, 2026, testarea robot Firebase parcurge automat toate ecranele aplicației, identificând crash-uri, ANR și probleme de UI fără a scrie o singură linie de cod de test. Serviciul suportă integrarea cu sisteme CI/CD și oferă rapoarte detaliate cu video și jurnale.

Principalele puncte

  • Firebase Test Lab — serviciu cloud de testare a aplicațiilor mobile pe dispozitive reale în centrele de date Google, cu plată doar pentru timpul utilizat.
  • Teste robot — explorarea automată a aplicației: Firebase Crawler parcurge toate ecranele, face clic pe butoane și completează formulare, înregistrând bug-uri fără a scrie cod.
  • Teste instrumentale — rularea testelor Espresso, XCTest și UI Automator pe dispozitive reale cu execuție paralelă pe diferite configurații.
  • Matricea dispozitivelor — testele rulează simultan pe un set selectat de dispozitive cu versiuni diferite de OS, orientări ale ecranului și limbi.
  • Rapoarte — după testare sunt disponibile jurnale, capturi de ecran, video ale testelor și un sumar cu erorile găsite și performanța.

Ce este Firebase Test Lab

Firebase Test Lab este infrastructura cloud Google pentru testarea automatizată a aplicațiilor mobile pe dispozitive fizice situate în centrele de date globale Google. Spre deosebire de emulatoarele de pe mașina locală, Test Lab rulează teste pe dispozitive reale Android și iOS cu diferite versiuni de sisteme de operare, rezoluții ale ecranului, cantități de RAM și niveluri API. Serviciul procesează automat rezultatele testelor, oferind video ale rulării, capturi de ecran ale pașilor și jurnale detaliate.

Avantajele testării în cloud

Deținerea unei ferme proprii de dispozitive necesită investiții capitale semnificative pentru achiziționarea și întreținerea dispozitivelor fizice. Firebase Test Lab oferă acces la mii de dispozitive pe bază de plată per utilizare (pay-per-use) cu o limită gratuită în planul Spark. Test Lab actualizează automat parcul de dispozitive la cele mai recente modele, inclusiv cele mai noi flagship-uri Google Pixel, Samsung Galaxy, Xiaomi și iPhone. Testele se execută în paralel pe mai multe dispozitive, ceea ce reduce timpul total de verificare a aplicației.

Platforme suportate

Pentru Android, Test Lab suportă testarea pe dispozitive cu nivel API de la 21 la cea mai recentă versiune stabilă de Android. Suportul pentru iOS include dispozitive reale iPhone și iPad cu versiuni iOS de la 15 la cea mai recentă stabilă. Pentru iOS sunt disponibile testarea robot și XCTest. Fiecare test poate fi rulat pe dispozitive fizice sau emulatoare — pentru rezultate cât mai precise, Google recomandă utilizarea dispozitivelor fizice, deoarece acestea dezvăluie probleme cu senzorii, camera și interfețele de rețea.

Tipuri de teste în Firebase Test Lab

Firebase Test Lab suportă mai multe tipuri de teste, fiecare rezolvând propria sarcină în ciclul de dezvoltare: teste robot pentru verificarea rapidă a stabilității, teste instrumentale pentru verificarea funcțională și teste de capturi de ecran pentru detectarea regresiilor vizuale. Alegerea tipului de test depinde de stadiul dezvoltării și de obiectivele rulării specifice.

Teste robot (Robo tests)

Testele robot sunt o capacitate unică a Firebase Test Lab care nu necesită scrierea de cod de test. Firebase Crawler explorează automat aplicația: găsește toate elementele interactive UI, face clic pe ele, completează formulare cu date de test, navighează între ecrane și înregistrează orice defecțiune (crash, ANR, excepții). Testele robot detectează până la 80% din bug-urile critice fără o singură linie de cod de test, ceea ce le face un instrument ideal pentru evaluarea stabilității de bază a aplicației în etapele incipiente ale dezvoltării.

Teste instrumentale (Instrumentation tests)

Testele instrumentale sunt teste scrise de dezvoltator folosind framework-urile Espresso (Android) sau XCTest (iOS). Test Lab rulează APK-ul cu teste pe dispozitivul țintă și colectează rezultatele execuției. Testele pot fi simple (verificarea afișării elementelor) sau complexe (scenarii end-to-end: autentificare, adăugare în coș, finalizare comandă). Firebase Test Lab suportă Android Test Orchestrator pentru izolarea testelor unul de altul, ceea ce previne influența unui test eșuat asupra celorlalte.

Teste de capturi de ecran (Game loop și capturi de ecran)

Testele de capturi de ecran sunt utilizate pentru detectarea regresiilor vizuale în aplicație. Game loop este un tip special de test care trimite aplicației o listă de scenarii prin intent, iar aplicația execută aceste scenarii și face capturi de ecran ale ecranelor cheie. Test Lab colectează capturile de ecran de pe toate dispozitivele matricei și permite compararea lor cu cele de referință pentru detectarea diferențelor. Acest tip de test este deosebit de popular în aplicațiile de jocuri pentru verificarea randării pe diferite GPU-uri.

Tip de testCodCe verificăCând să utilizezi
Test robotNu este necesarCrash, ANR, excepțiiVerificare rapidă a stabilității
InstrumentalEspresso / XCTestFuncționalitatea scenariilorTestare de regresie
Captură de ecranGame loopRegresii vizualeVerificare UI pe diferite dispozitive

Matricea dispozitivelor și configurații

Matricea de testare din Firebase Test Lab reprezintă un set de configurații de dispozitive pe care se rulează testul selectat. Fiecare configurație include modelul dispozitivului, versiunea OS, orientarea ecranului (portret/peisaj) și setările regionale (localizare, limbă). Testul se rulează paralel pe toate configurațiile selectate, ceea ce reduce semnificativ timpul total de execuție comparativ cu rularea secvențială pe fiecare dispozitiv.

Selectarea dispozitivelor pentru matrice

Google recomandă includerea în matrice a dispozitivelor cu caracteristici diferite: un model flagship (Google Pixel, Samsung Galaxy S), un dispozitiv bugetar (Moto G, Xiaomi Redmi), un dispozitiv cu versiunea minimă de API suportată de aplicație. Matricea optimă include 5–10 configurații care acoperă toate versiunile de OS suportate de aplicație. Pentru iOS se aleg iPhone și iPad din diferite generații (de exemplu, iPhone SE, iPhone 14, iPad Air) cu diferite versiuni de iOS.

Gruparea testelor și paralelismul

Test Lab distribuie automat testele pe dispozitivele selectate, executând fiecare test pe fiecare configurație. Timpul de execuție al întregii matrice este egal cu timpul de execuție al celui mai lent test pe cel mai lent dispozitiv — toate celelalte se execută paralel. Dacă un test eșuează pe toate dispozitivele, Test Lab oprește execuția sa pe configurațiile rămase pentru economisirea resurselor. Rezultatele sunt grupate pe test și pe dispozitiv, ceea ce permite determinarea rapidă a faptului dacă eroarea este specifică unei anumite configurații.

Testarea robot: explorare automată

Testarea robot este o capacitate emblematică a Firebase Test Lab care permite explorarea automată a aplicației fără a scrie niciun test. Firebase Crawler (robotul) analizează ierarhia UI a aplicației, găsește toate elementele interactive (butoane, câmpuri text, liste, meniuri) și interacționează cu ele, simulând comportamentul unui utilizator real. Testarea robot este deosebit de eficientă în etapele incipiente ale dezvoltării, când testele nu sunt încă scrise, sau pentru verificarea codului legacy.

Configurarea testului robot

Pentru a rula un test robot, este suficient să încarci APK sau IPA în Firebase Console și să selectezi opțiunea Robo test. Robotul poate să se autentifice automat în aplicație prin intermediul unor acreditări configurate anterior (login/parolă) pentru a accesa ecranele ascunse în spatele autorizării. Se poate seta și adâncimea de explorare (max depth) pentru a limita numărul de pași ai robotului sau se pot indica elemente specifice pe care robotul trebuie să le apese prioritar.

xml
<!-- res/xml/robo_directives.xml -->
<!-- Robotul va completa câmpurile de login și parolă -->
<?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>

Limitări ale testelor robot

Testele robot nu înlocuiesc testarea manuală și testele instrumentale scrise pentru scenarii complexe. Robotul nu poate verifica logica de business: face clic pe toate elementele la rând, dar nu știe dacă rezultatul este corect. De asemenea, robotul nu poate interacționa cu vizualizări personalizate care nu moștenesc de la ViewGroup standard și nu procesează WebView. Pentru aceste cazuri trebuie utilizate teste instrumentale sau Game loop.

Integrarea cu CI/CD și Gradle

Integrarea Firebase Test Lab cu sistemele CI/CD permite rularea automată a testelor la fiecare push în repository. Test Lab suportă sarcini Gradle pentru Android și Fastlane pentru ambele platforme. Configurarea pipeline-ului CI/CD include construirea aplicației, încărcarea APK/IPA în Google Cloud Storage, rularea testelor prin Firebase CLI și primirea rapoartelor înapoi în sistemul CI pentru afișarea statusului construcției.

Configurare prin Gradle (Android)

Google oferă plugin-ul gcloud-test-lab pentru Gradle, care automatizează încărcarea și rularea testelor. Sarcina assembleAndroidTest construiește APK-ul cu teste, iar sarcinile gcloud îl încarcă în Test Lab și rulează matricea. Rezultatele testelor sunt returnate în Gradle ca pass/fail, ceea ce permite integrarea Test Lab în orice pipeline CI care suportă Gradle. Pentru autorizare se utilizează un cont de serviciu Firebase cu drepturi asupra 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"
    }
}

Configurare prin Fastlane

Fastlane oferă plugin-ul firebase_test_lab pentru integrarea cu testele iOS și Android. Fastlane lane execută construirea, rulează testele și procesează rezultatele. Pentru iOS XCTest, Test Lab necesită fișierul xctestrun, care este creat automat la construirea țintei de test. Fastlane poate, de asemenea, să încarce rezultatele testelor în Slack sau alte aplicații de mesagerie pentru notificarea echipei despre statusul testării după fiecare rulare.

Analiza rezultatelor testării

După finalizarea testelor Firebase Test Lab oferă un raport cuprinzător, disponibil în Firebase Console și prin gcloud CLI. Raportul include un sumar rapid (numărul de teste trecute, eșuate și omise), informații detaliate despre fiecare test pe fiecare dispozitiv, video ale rulării, capturi de ecran ale pașilor cheie și jurnalele dispozitivului (logcat pentru Android, system log pentru iOS). Pentru testele eșuate este disponibil un stack trace care indică locația exactă a erorii.

Interpretarea rezultatelor testului robot

Pentru testul robot, raportul diferă de cel instrumental: în loc de pass/fail pe cazuri de test, raportul arată statistici de explorare. Metricile cheie — numărul de ecrane găsite și vizitate, numărul de interacțiuni ale robotului (clicuri, glisări, introducere text), crash-urile și ANR-urile detectate și traseul parcurs prin aplicație. Video-ul rulării robotului permite evaluarea vizuală a ecranelor care au fost testate și a celor care au rămas neacoperite.

Exportul rezultatelor

Rezultatele testelor sunt stocate în Google Cloud Storage în bucket-ul asociat proiectului. Datele sunt disponibile pentru export și integrare cu sisteme analitice externe. Pentru stocarea pe termen lung și compararea rezultatelor între rulări, se recomandă configurarea exportului BigQuery sau utilizarea API-ului Firebase Test Lab pentru obținerea programatică a rezultatelor. Google oferă posibilitatea de a descărca o arhivă ZIP cu setul complet de rezultate pentru fiecare rulare de teste.

Întrebări frecvente

Cât costă Firebase Test Lab?

Planul Spark include 10 teste Robo pe zi și 5 ore de teste instrumentale pe lună gratuit. Planul Blaze este taxat în funcție de timp: ~1 USD per dispozitiv-oră pentru testele Robo și ~5 USD pentru cele instrumentale. Costul exact depinde de regiune și de tipul dispozitivului.

Cu ce diferă dispozitivele fizice de emulatoare în Test Lab?

Dispozitivele fizice oferă rezultate mai precise, inclusiv probleme cu senzorii, camera, GPS, Bluetooth și performanța reală. Emulatoarele se lansează mai repede și sunt mai ieftine, dar nu detectează probleme legate de particularitățile hardware. Google recomandă dispozitive fizice pentru testarea pre-lansare.

Cum se configurează autorizarea pentru testul robot?

Creează un fișier XML robo_directives.xml cu câmpuri de introducere (login, parolă) și butoane de apăsat. Încarcă fișierul împreună cu APK la rularea testului prin Firebase Console sau CLI. Robotul va efectua acțiunile specificate înainte de începerea explorării.

Se pot rula teste pe iOS în Firebase Test Lab?

Da, Firebase Test Lab suportă iOS din 2024. Sunt disponibile teste Robo (explorare automată) și XCTest (teste instrumentale) pe dispozitive reale iPhone și iPad. Pentru încărcare este necesar un fișier IPA cu țintă de test.

Cum se integrează Test Lab cu GitHub Actions?

Folosește Firebase CLI în GitHub Actions: configurează autentificarea prin Service Account JSON, instalează gcloud SDK, execută comanda firebase test android run specificând APK-ul și configurațiile. Rezultatele testelor sunt disponibile prin Firebase Console sau gcloud CLI.

Concluzii

  • Firebase Test Lab — serviciu cloud Google pentru testarea aplicațiilor mobile pe dispozitive reale cu plată per utilizare.
  • Trei tipuri de teste — teste robot (fără cod, explorare automată), instrumentale (Espresso, XCTest) și de capturi de ecran (Game loop) pentru diferite sarcini de verificare.
  • Matricea dispozitivelor permite rularea paralelă a testelor pe un set de configurații (model + versiune OS + orientare), reducând timpul total de verificare.
  • Testele robot (Firebase Crawler) explorează automat aplicația, detectând până la 80% din erorile critice fără a scrie o singură linie de cod de test.
  • Integrarea cu CI/CD — Test Lab suportă Gradle, Fastlane și Firebase CLI pentru rularea automată a testelor la fiecare push în repository.
  • Rapoarte detaliate includ video ale rulării, capturi de ecran, jurnale ale dispozitivului și stack trace pentru fiecare test eșuat pe fiecare configurație.
  • Limită gratuită — 10 teste Robo pe zi în planul Spark, suficient pentru verificarea de bază a stabilității aplicației în ciclul zilnic de dezvoltare.

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și