Firebase Test Lab ist ein Cloud-Dienst von Google für automatisierte Tests mobiler Anwendungen auf echten Geräten in den Rechenzentren von Google. Test Lab ermöglicht es Ihnen, Instrumentierungstests, Screenshot-Tests und Robotertests auf Hunderten von Gerätekonfigurationen mit verschiedenen Android- und iOS-Versionen auszuführen, ohne eine eigene Gerätefarm unterhalten zu müssen. Laut Firebase Documentation, 2026 durchläuft Firebase-Robotertests automatisch alle Anwendungsbildschirme und erkennt Abstürze, ANRs und UI-Probleme, ohne dass eine einzige Zeile Testcode geschrieben werden muss. Der Dienst unterstützt die Integration mit CI/CD-Systemen und liefert detaillierte Berichte mit Videos und Protokollen.
Wichtigste Punkte
Firebase Test Lab ist die Cloud-Infrastruktur von Google für automatisierte Tests mobiler Anwendungen auf physischen Geräten in den globalen Rechenzentren von Google. Im Gegensatz zu Emulatoren auf einem lokalen Rechner führt Test Lab Tests auf echten Android-Geräten und iOS-Geräten mit verschiedenen Betriebssystemversionen, Bildschirmauflösungen, RAM-Größen und API-Stufen durch. Der Dienst verarbeitet Testergebnisse automatisch und liefert Ausführungsvideos, Schritt-für-Schritt-Screenshots und detaillierte Protokolle.
Der Unterhalt einer eigenen Gerätefarm erfordert erhebliche Kapitalinvestitionen in den Kauf und die Wartung physischer Geräte. Firebase Test Lab bietet Zugriff auf Tausende von Geräten auf Pay-per-Use-Basis mit einem kostenlosen Limit im Spark-Plan. Test Lab aktualisiert den Gerätepool automatisch auf aktuelle Modelle, einschließlich der neuesten Flaggschiffe Google Pixel, Samsung Galaxy, Xiaomi und iPhone. Tests werden parallel auf mehreren Geräten ausgeführt, wodurch sich die gesamte Überprüfungszeit der Anwendung verkürzt.
Für Android unterstützt Test Lab Tests auf Geräten mit API-Leveln von 21 bis zur neuesten stabilen Android-Version. iOS-Unterstützung umfasst echte iPhone- und iPad-Geräte mit iOS-Versionen von 15 bis zur neuesten stabilen Version. Robotertests und XCTest sind für iOS verfügbar. Jeder Test kann auf physischen Geräten oder Emulatoren ausgeführt werden — für die genauesten Ergebnisse empfiehlt Google die Verwendung physischer Geräte, da diese Probleme mit Sensoren, Kamera und Netzwerkschnittstellen aufdecken.
Firebase Test Lab unterstützt mehrere Testarten, die jeweils ihre eigene Aufgabe im Entwicklungszyklus lösen: Robotertests für schnelle Stabilitätsprüfungen, Instrumentierungstests für funktionale Überprüfungen und Screenshot-Tests zur Erkennung visueller Regressionen. Die Wahl der Testart hängt von der Entwicklungsphase und den Zielen des jeweiligen Durchlaufs ab.
Robotertests sind eine einzigartige Funktion von Firebase Test Lab, die das Schreiben von Testcode überflüssig macht. Firebase Crawler erkundet die Anwendung automatisch: Er findet alle interaktiven UI-Elemente, klickt darauf, füllt Formulare mit Testdaten aus, navigiert zwischen Bildschirmen und zeichnet alle Fehler (Abstürze, ANRs, Ausnahmen) auf. Robotertests erkennen bis zu 80 % der kritischen Fehler ohne eine einzige Zeile Testcode, was sie zu einem idealen Werkzeug für die Bewertung der grundlegenden Stabilität einer Anwendung in frühen Entwicklungsphasen macht.
Instrumentierungstests sind Tests, die vom Entwickler mit den Frameworks Espresso (Android) oder XCTest (iOS) geschrieben werden. Test Lab führt das APK mit Tests auf dem Zielgerät aus und sammelt die Ausführungsergebnisse. Tests können einfach (Überprüfung der Elementanzeige) oder komplex (End-to-End-Szenarien: Anmeldung, in den Warenkorb legen, Bestellung abschließen) sein. Firebase Test Lab unterstützt Android Test Orchestrator zur Isolation der Tests voneinander, sodass sich ein fehlgeschlagener Test nicht auf andere auswirkt.
Screenshot-Tests werden verwendet, um visuelle Regressionen in der Anwendung zu erkennen. Game loop ist eine spezielle Testart, die der Anwendung über einen Intent eine Liste von Szenarien übergibt, und die Anwendung muss diese Szenarien ausführen und Screenshots von wichtigen Bildschirmen erstellen. Test Lab sammelt Screenshots von allen Geräten in der Matrix und ermöglicht den Vergleich mit Referenzbildern, um Unterschiede zu erkennen. Diese Testart ist besonders in Spieleanwendungen beliebt, um die Darstellung auf verschiedenen GPUs zu überprüfen.
| Testart | Code | Was wird geprüft | Wann verwenden |
|---|---|---|---|
| Robotertest | Nicht erforderlich | Abstürze, ANRs, Ausnahmen | Schnelle Stabilitätsprüfung |
| Instrumentierung | Espresso / XCTest | Szenarienfunktionalität | Regressionstests |
| Screenshot-Test | Game loop | Visuelle Regressionen | UI-Prüfung auf verschiedenen Geräten |
Die Testmatrix in Firebase Test Lab ist eine Reihe von Gerätekonfigurationen, auf denen der ausgewählte Test ausgeführt wird. Jede Konfiguration umfasst das Gerätemodell, die OS-Version, die Bildschirmausrichtung (Hoch-/Querformat) und die regionalen Einstellungen (Gebietsschema, Sprache). Der Test wird parallel auf allen ausgewählten Konfigurationen ausgeführt, was die Gesamtausführungszeit im Vergleich zur sequenziellen Ausführung auf jedem Gerät erheblich verkürzt.
Google empfiehlt, in die Matrix Geräte mit unterschiedlichen Eigenschaften aufzunehmen: ein Flaggschiff-Modell (Google Pixel, Samsung Galaxy S), ein Budget-Gerät (Moto G, Xiaomi Redmi), ein Gerät mit der von der Anwendung unterstützten Mindest-API-Version. Eine optimale Matrix umfasst 5–10 Konfigurationen, die alle von der Anwendung unterstützten OS-Versionen abdecken. Für iOS werden iPhone- und iPad-Modelle verschiedener Generationen (z. B. iPhone SE, iPhone 14, iPad Air) mit verschiedenen iOS-Versionen ausgewählt.
Test Lab verteilt die Tests automatisch auf die ausgewählten Geräte und führt jeden Test auf jeder Konfiguration aus. Die Ausführungszeit der gesamten Matrix entspricht der Ausführungszeit des langsamsten Tests auf dem langsamsten Gerät — alle anderen werden parallel ausgeführt. Wenn ein Test auf allen Geräten fehlschlägt, stoppt Test Lab seine Ausführung auf den verbleibenden Konfigurationen, um Ressourcen zu sparen. Die Ergebnisse werden nach Test und nach Gerät gruppiert, sodass schnell festgestellt werden kann, ob ein Fehler für eine bestimmte Konfiguration spezifisch ist.
Robotertests sind eine Flaggschiff-Funktion von Firebase Test Lab, mit der Sie eine Anwendung automatisch erkunden können, ohne einen einzigen Test zu schreiben. Firebase Crawler (Roboter) analysiert die UI-Hierarchie der Anwendung, findet alle interaktiven Elemente (Schaltflächen, Textfelder, Listen, Menüs) und interagiert mit ihnen, indem er das Verhalten eines echten Benutzers simuliert. Robotertests sind besonders in frühen Entwicklungsphasen effektiv, wenn Tests noch nicht geschrieben wurden, oder zur Überprüfung von Legacy-Code.
Um einen Robotertest auszuführen, laden Sie einfach ein APK oder IPA in die Firebase Console hoch und wählen die Robo test-Option. Der Roboter kann sich automatisch mit vorkonfigurierten Anmeldeinformationen (Login/Passwort) in der Anwendung anmelden, um auf hinter der Authentifizierung verborgene Bildschirme zuzugreifen. Sie können auch die Erkundungstiefe (max depth) festlegen, um die Anzahl der Roboter-Schritte zu begrenzen, oder bestimmte Elemente angeben, auf die der Roboter bevorzugt klicken soll.
<!-- res/xml/robo_directives.xml -->
<!-- Der Roboter füllt die Login- und Passwortfelder aus -->
<?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>
Robotertests ersetzen keine manuellen Tests und keine geschriebenen Instrumentierungstests für komplexe Szenarien. Der Roboter kann keine Geschäftslogik überprüfen: Er klickt nacheinander auf alle Elemente, weiß aber nicht, ob das Ergebnis korrekt ist. Außerdem kann der Roboter nicht mit benutzerdefinierten Ansichten interagieren, die nicht von der standardmäßigen ViewGroup erben, und verarbeitet kein WebView. Für diese Fälle müssen Instrumentierungstests oder Game loop verwendet werden.
Die Integration von Firebase Test Lab mit CI/CD-Systemen ermöglicht die automatische Ausführung von Tests bei jedem Push ins Repository. Test Lab unterstützt Gradle-Aufgaben für Android und Fastlane für beide Plattformen. Die Einrichtung einer CI/CD-Pipeline umfasst das Erstellen der Anwendung, das Hochladen des APK/IPA in Google Cloud Storage, das Ausführen von Tests über die Firebase CLI und das Zurückerhalten von Berichten an das CI-System zur Anzeige des Build-Status.
Google stellt das Plugin gcloud-test-lab für Gradle bereit, das das Hochladen und Ausführen von Tests automatisiert. Die assembleAndroidTest-Aufgabe erstellt das APK mit Tests, und gcloud-Aufgaben laden es in Test Lab hoch und führen die Matrix aus. Testergebnisse werden als pass/fail an Gradle zurückgegeben, was die Integration von Test Lab in jede CI-Pipeline ermöglicht, die Gradle unterstützt. Für die Autorisierung wird ein Firebase-Dienstkonto mit Test Lab-Berechtigungen verwendet.
// 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 stellt das Plugin firebase_test_lab für die Integration mit iOS- und Android-Tests bereit. Eine Fastlane-Lane führt den Build durch, führt Tests aus und verarbeitet Ergebnisse. Für iOS XCTest benötigt Test Lab eine xctestrun-Datei, die beim Erstellen des Testziels automatisch erstellt wird. Fastlane kann Testergebnisse auch in Slack oder andere Messenger hochladen, um das Team nach jedem Durchlauf über den Teststatus zu informieren.
Nach Abschluss der Tests stellt Firebase Test Lab einen umfassenden Bericht zur Verfügung, der in der Firebase Console und über die gcloud CLI verfügbar ist. Der Bericht enthält eine kurze Zusammenfassung (Anzahl der bestandenen, fehlgeschlagenen und übersprungenen Tests), detaillierte Informationen zu jedem Test auf jedem Gerät, Ausführungsvideos, Screenshots der wichtigsten Schritte und Geräteprotokolle (logcat für Android, Systemprotokoll für iOS). Für fehlgeschlagene Tests ist ein Stacktrace mit der genauen Fehlerstelle verfügbar.
Bei einem Robotertest unterscheidet sich der Bericht von einem Instrumentierungstest: Anstelle von bestanden/nicht bestanden pro Testfall zeigt der Bericht Erkundungsstatistiken. Wichtige Kennzahlen — die Anzahl der gefundenen und besuchten Bildschirme, die Anzahl der Roboterinteraktionen (Klicks, Wischbewegungen, Texteingabe), erkannte Abstürze und ANRs sowie der durch die Anwendung zurückgelegte Pfad. Das Ausführungsvideo des Roboters ermöglicht eine visuelle Bewertung, welche Bildschirme getestet wurden und welche ungetestet blieben.
Testergebnisse werden in Google Cloud Storage im dem Projekt zugeordneten Bucket gespeichert. Die Daten sind für den Export und die Integration mit externen Analysesystemen verfügbar. Für die langfristige Speicherung und den Vergleich von Ergebnissen zwischen Durchläufen wird empfohlen, einen BigQuery-Export einzurichten oder die Firebase Test Lab API für den programmatischen Abruf von Ergebnissen zu verwenden. Google bietet die Möglichkeit, ein ZIP-Archiv mit dem vollständigen Satz von Ergebnissen für jeden Testdurchlauf herunterzuladen.
Häufig gestellte Fragen
Der Spark-Plan umfasst 10 Robo-Tests pro Tag und 5 Stunden Instrumentierungstests pro Monat kostenlos. Der Blaze-Plan wird zeitbasiert abgerechnet: ~1 USD pro Gerätestunde für Robo-Tests und ~5 USD für Instrumentierungstests. Die genauen Kosten hängen von der Region und dem Gerätetyp ab.
Physische Geräte liefern genauere Ergebnisse, einschließlich Problemen mit Sensoren, Kamera, GPS, Bluetooth und realer Leistung. Emulatoren starten schneller und sind billiger, decken aber keine Probleme im Zusammenhang mit Hardwarefunktionen auf. Google empfiehlt physische Geräte für Tests vor der Veröffentlichung.
Erstellen Sie eine XML-Datei robo_directives.xml mit Eingabefeldern (Login, Passwort) und Schaltflächen zum Klicken. Laden Sie die Datei zusammen mit dem APK hoch, wenn Sie den Test über die Firebase Console oder CLI starten. Der Roboter führt die angegebenen Aktionen aus, bevor er mit der Erkundung beginnt.
Ja, Firebase Test Lab unterstützt iOS seit 2024. Robo-Tests (automatische Erkundung) und XCTest (Instrumentierungstests) sind auf echten iPhone- und iPad-Geräten verfügbar. Für den Upload ist eine IPA-Datei mit einem Testziel erforderlich.
Verwenden Sie Firebase CLI in GitHub Actions: Richten Sie die Authentifizierung über ein Service Account JSON ein, installieren Sie das gcloud SDK, führen Sie den Befehl firebase test android run mit dem APK und den Konfigurationen aus. Testergebnisse sind über die Firebase Console oder die gcloud CLI verfügbar.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch