Firebase Test Lab — cosa sono, tipi di test su dispositivi e automazione

Autore: IT Sectr Pubblicato: 2026-04-29 Tempo di lettura: 9 min

Firebase Test Lab è un servizio cloud di Google per il test automatizzato di applicazioni mobili su dispositivi reali situati nei data center di Google. Test Lab consente di eseguire test di strumentazione, test di screenshot e test robot su centinaia di configurazioni di dispositivi con diverse versioni di Android e iOS senza la necessità di mantenere una propria farm di dispositivi. Secondo Firebase Documentation, 2026, il test robot di Firebase attraversa automaticamente tutte le schermate dell'applicazione, rilevando crash, ANR e problemi di interfaccia senza scrivere una singola riga di codice di test. Il servizio supporta l'integrazione con sistemi CI/CD e fornisce report dettagliati con video e log.

Punti chiave

  • Firebase Test Lab è un servizio cloud per testare applicazioni mobili su dispositivi reali nei data center Google con fatturazione a consumo.
  • Test robot — esplorazione automatica dell'app: Firebase Crawler percorre tutte le schermate, clicca pulsanti e compila moduli, catturando bug senza scrivere codice.
  • Test di strumentazione — esecuzione di test Espresso, XCTest e UI Automator su dispositivi reali con esecuzione parallela su diverse configurazioni.
  • Matrice di dispositivi — i test vengono eseguiti simultaneamente su un insieme selezionato di dispositivi con diverse versioni del sistema operativo, orientamenti dello schermo e lingue.
  • Report — dopo i test, sono disponibili log, screenshot, video di esecuzione e un riepilogo con errori trovati e dati sulle prestazioni.

Cosa sono Firebase Test Lab

Firebase Test Lab è l'infrastruttura cloud di Google per il test automatizzato di applicazioni mobili su dispositivi fisici situati nei data center globali di Google. A differenza degli emulatori su una macchina locale, Test Lab esegue test su veri dispositivi Android e dispositivi iOS con varie versioni di sistemi operativi, risoluzioni dello schermo, dimensioni di RAM e livelli API. Il servizio elabora automaticamente i risultati dei test, fornendo video di esecuzione, screenshot dei passaggi e log dettagliati.

Vantaggi del test nel cloud

Mantenere una propria farm di dispositivi richiede un significativo investimento di capitale nell'acquisto e nella manutenzione di dispositivi fisici. Firebase Test Lab fornisce accesso a migliaia di dispositivi con pagamento a consumo con un limite gratuito nel piano Spark. Test Lab aggiorna automaticamente il parco dispositivi ai modelli correnti, inclusi gli ultimi flagship Google Pixel, Samsung Galaxy, Xiaomi e iPhone. I test vengono eseguiti in parallelo su più dispositivi, riducendo il tempo complessivo di verifica dell'applicazione.

Piattaforme supportate

Per Android, Test Lab supporta test su dispositivi con livelli API da 21 all'ultima versione stabile di Android. Il supporto iOS include veri dispositivi iPhone e iPad con versioni iOS da 15 all'ultima versione stabile. I test robot e XCTest sono disponibili per iOS. Ogni test può essere eseguito su dispositivi fisici o emulatori — per ottenere i risultati più accurati, Google consiglia di utilizzare dispositivi fisici poiché rivelano problemi con sensori, fotocamera e interfacce di rete.

Tipi di test in Firebase Test Lab

Firebase Test Lab supporta diversi tipi di test, ciascuno che risolve il proprio compito nel ciclo di sviluppo: test robot per una rapida verifica della stabilità, test di strumentazione per la verifica funzionale e test di screenshot per rilevare regressioni visive. La scelta del tipo di test dipende dalla fase di sviluppo e dagli obiettivi di una particolare esecuzione.

Test robot (Robo tests)

I test robot sono una caratteristica unica di Firebase Test Lab che non richiede la scrittura di codice di test. Firebase Crawler esplora automaticamente l'applicazione: trova tutti gli elementi interattivi dell'interfaccia, ci clicca sopra, compila moduli con dati di test, naviga tra le schermate e registra eventuali guasti (crash, ANR, eccezioni). I test robot rilevano fino all'80% dei bug critici senza una singola riga di codice di test, rendendoli uno strumento ideale per valutare la stabilità di base di un'applicazione nelle prime fasi di sviluppo.

Test di strumentazione

I test di strumentazione sono test scritti dallo sviluppatore utilizzando i framework Espresso (Android) o XCTest (iOS). Test Lab esegue l'APK con i test sul dispositivo di destinazione e raccoglie i risultati di esecuzione. I test possono essere semplici (verifica della visualizzazione degli elementi) o complessi (scenari end-to-end: login, aggiunta al carrello, completamento ordine). Firebase Test Lab supporta Android Test Orchestrator per isolare i test l'uno dall'altro, impedendo che un test fallito influenzi gli altri.

Test di screenshot (Game loop e screenshot)

I test di screenshot vengono utilizzati per rilevare regressioni visive nell'applicazione. Game loop è un tipo speciale di test che passa un elenco di scenari all'applicazione tramite intent, e l'applicazione deve eseguire questi scenari e catturare screenshot delle schermate chiave. Test Lab raccoglie screenshot da tutti i dispositivi nella matrice e consente di confrontarli con immagini di riferimento per rilevare differenze. Questo tipo di test è particolarmente popolare nelle applicazioni di gioco per verificare il rendering su diverse GPU.

Tipo di testCodiceCosa verificaQuando usare
Test robotNon richiestoCrash, ANR, eccezioniVerifica rapida di stabilità
StrumentazioneEspresso / XCTestFunzionalità scenariTest di regressione
ScreenshotGame loopRegressioni visiveVerifica interfaccia su diversi dispositivi

Matrice di dispositivi e configurazioni

La matrice di test in Firebase Test Lab è un insieme di configurazioni di dispositivi su cui viene eseguito il test selezionato. Ogni configurazione include il modello del dispositivo, la versione del sistema operativo, l'orientamento dello schermo (ritratto/paesaggio) e le impostazioni regionali (locale, lingua). Il test viene eseguito in parallelo su tutte le configurazioni selezionate, riducendo significativamente il tempo di esecuzione totale rispetto all'esecuzione sequenziale su ciascun dispositivo.

Selezione dei dispositivi per la matrice

Google consiglia di includere nella matrice dispositivi con caratteristiche diverse: un modello di punta (Google Pixel, Samsung Galaxy S), un dispositivo economico (Moto G, Xiaomi Redmi), un dispositivo con la versione API minima supportata dall'applicazione. Una matrice ottimale include 5–10 configurazioni che coprono tutte le versioni del sistema operativo supportate dall'applicazione. Per iOS, vengono selezionati modelli di iPhone e iPad di diverse generazioni (ad esempio, iPhone SE, iPhone 14, iPad Air) con diverse versioni di iOS.

Raggruppamento dei test e parallelismo

Test Lab distribuisce automaticamente i test sui dispositivi selezionati, eseguendo ciascun test su ciascuna configurazione. Il tempo di esecuzione dell'intera matrice è uguale al tempo di esecuzione del test più lento sul dispositivo più lento — tutti gli altri vengono eseguiti in parallelo. Se un test fallisce su tutti i dispositivi, Test Lab ne interrompe l'esecuzione sulle configurazioni rimanenti per risparmiare risorse. I risultati sono raggruppati per test e per dispositivo, consentendo di identificare rapidamente se un errore è specifico di una particolare configurazione.

Test robot: esplorazione automatica

Il test robot è una caratteristica di punta di Firebase Test Lab che consente di esplorare automaticamente un'applicazione senza scrivere un singolo test. Firebase Crawler (robot) analizza la gerarchia dell'interfaccia dell'applicazione, trova tutti gli elementi interattivi (pulsanti, campi di testo, elenchi, menu) e interagisce con essi, simulando il comportamento di un utente reale. Il test robot è particolarmente efficace nelle prime fasi di sviluppo, quando i test non sono ancora stati scritti, o per verificare codice legacy.

Configurazione di un test robot

Per eseguire un test robot, è sufficiente caricare un APK o IPA in Firebase Console e selezionare l'opzione Robo test. Il robot può accedere automaticamente all'applicazione tramite credenziali preconfigurate (login/password) per accedere a schermate nascoste dietro l'autenticazione. È anche possibile impostare la profondità di esplorazione (max depth) per limitare il numero di passaggi del robot, o specificare elementi particolari su cui il robot deve cliccare prioritariamente.

xml
<!-- res/xml/robo_directives.xml -->
<!-- Il robot compilerà i campi di login e password -->
<?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>

Limitazioni dei test robot

I test robot non sostituiscono i test manuali e i test di strumentazione scritti per scenari complessi. Il robot non può verificare la logica di business: clicca su tutti gli elementi in sequenza, ma non sa se il risultato è corretto. Inoltre, il robot non può interagire con viste personalizzate che non ereditano da ViewGroup standard e non gestisce WebView. Per questi casi, è necessario utilizzare test di strumentazione o Game loop.

Integrazione con CI/CD e Gradle

L'integrazione di Firebase Test Lab con sistemi CI/CD consente di eseguire automaticamente i test a ogni push nel repository. Test Lab supporta attività Gradle per Android e Fastlane per entrambe le piattaforme. La configurazione di una pipeline CI/CD include la compilazione dell'applicazione, il caricamento dell'APK/IPA in Google Cloud Storage, l'esecuzione dei test tramite Firebase CLI e la ricezione dei report nel sistema CI per visualizzare lo stato della build.

Configurazione tramite Gradle (Android)

Google fornisce il plugin gcloud-test-lab per Gradle, che automatizza il caricamento e l'esecuzione dei test. L'attività assembleAndroidTest compila l'APK con i test, e le attività gcloud lo caricano in Test Lab ed eseguono la matrice. I risultati dei test vengono restituiti a Gradle come pass/fail, consentendo l'integrazione di Test Lab in qualsiasi pipeline CI che supporti Gradle. Per l'autorizzazione viene utilizzato un account di servizio Firebase con permessi 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"
    }
}

Configurazione tramite Fastlane

Fastlane fornisce il plugin firebase_test_lab per l'integrazione con test iOS e Android. Una lane Fastlane esegue la build, esegue i test e processa i risultati. Per XCTest su iOS, Test Lab richiede un file xctestrun, che viene creato automaticamente durante la compilazione del target di test. Fastlane può anche caricare i risultati dei test in Slack o altri messenger per notificare il team sullo stato dei test dopo ogni esecuzione.

Analisi dei risultati dei test

Dopo il completamento dei test, Firebase Test Lab fornisce un report completo disponibile in Firebase Console e tramite gcloud CLI. Il report include un breve riepilogo (numero di test superati, falliti e saltati), informazioni dettagliate per ogni test su ogni dispositivo, video di esecuzione, screenshot dei passaggi chiave e log del dispositivo (logcat per Android, log di sistema per iOS). Per i test falliti, è disponibile uno stack trace con la posizione esatta dell'errore.

Interpretazione dei risultati del test robot

Per un test robot, il report differisce da uno di strumentazione: invece di pass/fail per caso di test, il report mostra statistiche di esplorazione. Metriche chiave — il numero di schermate trovate e visitate, il numero di interazioni del robot (clic, swipe, inserimento testo), crash e ANR rilevati, e il percorso attraversato nell'applicazione. Il video di esecuzione del robot consente di valutare visivamente quali schermate sono state testate e quali sono rimaste scoperte.

Esportazione dei risultati

I risultati dei test vengono memorizzati in Google Cloud Storage nel bucket associato al progetto. I dati sono disponibili per l'esportazione e l'integrazione con sistemi di analisi esterni. Per la conservazione a lungo termine e il confronto dei risultati tra esecuzioni, si consiglia di configurare l'esportazione BigQuery o utilizzare l'API Firebase Test Lab per il recupero programmatico dei risultati. Google fornisce la possibilità di scaricare un archivio ZIP con il set completo di risultati per ogni esecuzione di test.

Domande frequenti

Quanto costa Firebase Test Lab?

Il piano Spark include 10 test Robo al giorno e 5 ore di test di strumentazione al mese gratuitamente. Il piano Blaze viene fatturato a tempo: ~1 USD per ora-dispositivo per test Robo e ~5 USD per test di strumentazione. Il costo esatto dipende dalla regione e dal tipo di dispositivo.

In cosa differiscono i dispositivi fisici dagli emulatori in Test Lab?

I dispositivi fisici forniscono risultati più accurati, inclusi problemi con sensori, fotocamera, GPS, Bluetooth e prestazioni reali. Gli emulatori si avviano più velocemente e sono più economici, ma non rivelano problemi legati alle caratteristiche hardware. Google consiglia dispositivi fisici per i test pre-rilascio.

Come configurare l'autorizzazione per un test robot?

Creare un file XML robo_directives.xml con campi di input (login, password) e pulsanti da cliccare. Caricare il file insieme all'APK all'avvio del test tramite Firebase Console o CLI. Il robot eseguirà le azioni specificate prima di iniziare l'esplorazione.

Posso eseguire test su iOS in Firebase Test Lab?

, Firebase Test Lab supporta iOS dal 2024. I test Robo (esplorazione automatica) e XCTest (test di strumentazione) sono disponibili su veri dispositivi iPhone e iPad. Per il caricamento è necessario un file IPA con un target di test.

Come integrare Test Lab con GitHub Actions?

Utilizzare Firebase CLI in GitHub Actions: configurare l'autenticazione tramite Service Account JSON, installare gcloud SDK, eseguire il comando firebase test android run con APK e configurazioni. I risultati dei test sono disponibili tramite Firebase Console o gcloud CLI.

Riepilogo

  • Firebase Test Lab è un servizio cloud Google per testare applicazioni mobili su dispositivi reali con fatturazione a consumo.
  • Tre tipi di test — test robot (senza codice, esplorazione automatica), test di strumentazione (Espresso, XCTest) e test di screenshot (Game loop) per diversi compiti di verifica.
  • La matrice di dispositivi consente di eseguire test in parallelo su un insieme di configurazioni (modello + versione OS + orientamento), riducendo il tempo totale di verifica.
  • I test robot (Firebase Crawler) esplorano automaticamente l'applicazione, rilevando fino all'80% dei bug critici senza scrivere una singola riga di codice di test.
  • Integrazione CI/CD — Test Lab supporta Gradle, Fastlane e Firebase CLI per l'esecuzione automatica dei test a ogni push nel repository.
  • Report dettagliati includono video di esecuzione, screenshot, log del dispositivo e stack trace per ogni test fallito su ogni configurazione.
  • Limite gratuito — 10 test Robo al giorno nel piano Spark, sufficienti per la verifica di base della stabilità dell'applicazione nel ciclo di sviluppo quotidiano.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche