Firebase Test Lab — ce que c'est, types de tests sur appareils et automatisation

Auteur : IT Sectr Publié le : 2026-04-29 Temps de lecture : 9 min

Firebase Test Lab est un service cloud de Google pour les tests automatisés d'applications mobiles sur des appareils réels situés dans les centres de données Google. Test Lab permet d'exécuter des tests d'instrumentation, des tests de capture d'écran et des tests robot sur des centaines de configurations d'appareils avec différentes versions d'Android et iOS sans avoir besoin de maintenir votre propre ferme d'appareils. Selon Firebase Documentation, 2026, le test robot Firebase parcourt automatiquement tous les écrans de l'application, détectant les crashs, les ANR et les problèmes d'UI sans écrire une seule ligne de code de test. Le service prend en charge l'intégration avec les systèmes CI/CD et fournit des rapports détaillés avec vidéos et journaux.

Points clés

  • Firebase Test Lab est un service cloud pour tester des applications mobiles sur des appareils réels dans les centres de données Google avec une facturation à l'usage.
  • Tests robot — exploration automatique de l'application : Firebase Crawler parcourt tous les écrans, clique sur les boutons et remplit les formulaires, détectant les bogues sans écrire de code.
  • Tests d'instrumentation — exécution de tests Espresso, XCTest et UI Automator sur des appareils réels avec exécution parallèle sur différentes configurations.
  • Matrice d'appareils — les tests s'exécutent simultanément sur un ensemble sélectionné d'appareils avec différentes versions d'OS, orientations d'écran et langues.
  • Rapports — après les tests, les journaux, captures d'écran, vidéos d'exécution et un résumé avec les erreurs trouvées et les données de performance sont disponibles.

Qu'est-ce que Firebase Test Lab

Firebase Test Lab est l'infrastructure cloud de Google pour les tests automatisés d'applications mobiles sur des appareils physiques situés dans les centres de données mondiaux de Google. Contrairement aux émulateurs sur une machine locale, Test Lab exécute des tests sur de vrais appareils Android et des appareils iOS avec différentes versions de systèmes d'exploitation, résolutions d'écran, tailles de RAM et niveaux d'API. Le service traite automatiquement les résultats des tests, fournissant des vidéos d'exécution, des captures d'écran des étapes et des journaux détaillés.

Avantages des tests cloud

Maintenir votre propre ferme d'appareils nécessite un investissement en capital important pour l'achat et la maintenance d'appareils physiques. Firebase Test Lab fournit un accès à des milliers d'appareils sur la base du paiement à l'utilisation avec une limite gratuite sur le plan Spark. Test Lab met automatiquement à jour le parc d'appareils vers les modèles actuels, y compris les derniers flagships Google Pixel, Samsung Galaxy, Xiaomi et iPhone. Les tests s'exécutent en parallèle sur plusieurs appareils, réduisant ainsi le temps total de vérification de l'application.

Plateformes prises en charge

Pour Android, Test Lab prend en charge les tests sur des appareils avec des niveaux d'API de 21 à la dernière version stable d'Android. La prise en charge iOS inclut de vrais appareils iPhone et iPad avec des versions iOS de 15 à la dernière version stable. Les tests robot et XCTest sont disponibles pour iOS. Chaque test peut être exécuté sur des appareils physiques ou des émulateurs — pour des résultats les plus précis, Google recommande d'utiliser des appareils physiques car ils révèlent les problèmes de capteurs, de caméra et d'interfaces réseau.

Types de tests dans Firebase Test Lab

Firebase Test Lab prend en charge plusieurs types de tests, chacun résolvant sa propre tâche dans le cycle de développement : tests robot pour une vérification rapide de la stabilité, tests d'instrumentation pour une vérification fonctionnelle et tests de capture d'écran pour détecter les régressions visuelles. Le choix du type de test dépend du stade de développement et des objectifs d'une exécution particulière.

Tests robot (Robo tests)

Les tests robot sont une fonctionnalité unique de Firebase Test Lab qui ne nécessite pas d'écrire de code de test. Firebase Crawler explore automatiquement l'application : trouve tous les éléments interactifs de l'UI, clique dessus, remplit les formulaires avec des données de test, navigue entre les écrans et enregistre toute défaillance (crash, ANR, exceptions). Les tests robot détectent jusqu'à 80 % des bogues critiques sans une seule ligne de code de test, ce qui en fait un outil idéal pour évaluer la stabilité de base d'une application dans les premières étapes du développement.

Tests d'instrumentation

Les tests d'instrumentation sont des tests écrits par le développeur à l'aide des frameworks Espresso (Android) ou XCTest (iOS). Test Lab exécute l'APK avec les tests sur l'appareil cible et collecte les résultats d'exécution. Les tests peuvent être simples (vérification de l'affichage des éléments) ou complexes (scénarios de bout en bout : connexion, ajout au panier, finalisation de commande). Firebase Test Lab prend en charge Android Test Orchestrator pour isoler les tests les uns des autres, empêchant un test échoué d'affecter les autres.

Tests de capture d'écran (Game loop et captures)

Les tests de capture d'écran sont utilisés pour détecter les régressions visuelles dans l'application. Game loop est un type de test spécial qui transmet une liste de scénarios à l'application via intent, et l'application doit exécuter ces scénarios et prendre des captures d'écran des écrans clés. Test Lab collecte les captures d'écran de tous les appareils de la matrice et permet de les comparer avec des images de référence pour détecter les différences. Ce type de test est particulièrement populaire dans les applications de jeu pour vérifier le rendu sur différents GPU.

Type de testCodeCe qu'il vérifieQuand l'utiliser
Test robotNon requisCrash, ANR, exceptionsVérification rapide de stabilité
InstrumentationEspresso / XCTestFonctionnalité des scénariosTests de régression
Capture d'écranGame loopRégressions visuellesVérification UI sur différents appareils

Matrice d'appareils et configurations

La matrice de test dans Firebase Test Lab est un ensemble de configurations d'appareils sur lesquelles le test sélectionné est exécuté. Chaque configuration inclut le modèle d'appareil, la version de l'OS, l'orientation de l'écran (portrait/paysage) et les paramètres régionaux (locale, langue). Le test s'exécute en parallèle sur toutes les configurations sélectionnées, réduisant considérablement le temps d'exécution total par rapport à l'exécution séquentielle sur chaque appareil.

Sélection des appareils pour la matrice

Google recommande d'inclure dans la matrice des appareils aux caractéristiques différentes : un modèle phare (Google Pixel, Samsung Galaxy S), un appareil économique (Moto G, Xiaomi Redmi), un appareil avec la version d'API minimale prise en charge par l'application. Une matrice optimale inclut 5 à 10 configurations couvrant toutes les versions d'OS que l'application prend en charge. Pour iOS, des modèles d'iPhone et d'iPad de différentes générations sont sélectionnés (par exemple, iPhone SE, iPhone 14, iPad Air) avec différentes versions d'iOS.

Regroupement des tests et parallélisme

Test Lab distribue automatiquement les tests sur les appareils sélectionnés, exécutant chaque test sur chaque configuration. Le temps d'exécution de toute la matrice est égal au temps d'exécution du test le plus lent sur l'appareil le plus lent — tous les autres s'exécutent en parallèle. Si un test échoue sur tous les appareils, Test Lab arrête son exécution sur les configurations restantes pour économiser les ressources. Les résultats sont regroupés par test et par appareil, permettant d'identifier rapidement si une erreur est spécifique à une configuration particulière.

Tests robot : exploration automatique

Les tests robot sont une fonctionnalité phare de Firebase Test Lab qui vous permet d'explorer automatiquement une application sans écrire un seul test. Firebase Crawler (robot) analyse la hiérarchie UI de l'application, trouve tous les éléments interactifs (boutons, champs de texte, listes, menus) et interagit avec eux, simulant le comportement d'un utilisateur réel. Les tests robot sont particulièrement efficaces dans les premières étapes du développement, lorsque les tests n'ont pas encore été écrits, ou pour vérifier du code existant.

Configuration d'un test robot

Pour exécuter un test robot, il suffit de télécharger un APK ou IPA dans Firebase Console et de sélectionner l'option Robo test. Le robot peut se connecter automatiquement à l'application via des identifiants préconfigurés (login/mot de passe) pour accéder aux écrans cachés derrière l'authentification. Vous pouvez également définir la profondeur d'exploration (max depth) pour limiter le nombre d'étapes du robot, ou spécifier des éléments particuliers sur lesquels le robot doit cliquer en priorité.

xml
<!-- res/xml/robo_directives.xml -->
<!-- Le robot remplira les champs de login et mot de passe -->
<?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>

Limitations des tests robot

Les tests robot ne remplacent pas les tests manuels et les tests d'instrumentation écrits pour des scénarios complexes. Le robot ne peut pas vérifier la logique métier : il clique sur tous les éléments à la suite, mais ne sait pas si le résultat est correct. De plus, le robot ne peut pas interagir avec des vues personnalisées qui n'héritent pas de ViewGroup standard et ne gère pas WebView. Pour ces cas, des tests d'instrumentation ou Game loop doivent être utilisés.

Intégration avec CI/CD et Gradle

L'intégration de Firebase Test Lab avec les systèmes CI/CD permet d'exécuter automatiquement les tests à chaque push dans le dépôt. Test Lab prend en charge les tâches Gradle pour Android et Fastlane pour les deux plateformes. La configuration d'un pipeline CI/CD comprend la compilation de l'application, le téléchargement de l'APK/IPA dans Google Cloud Storage, l'exécution des tests via Firebase CLI et la réception des rapports dans le système CI pour afficher l'état de la compilation.

Configuration via Gradle (Android)

Google fournit le plugin gcloud-test-lab pour Gradle, qui automatise le téléchargement et l'exécution des tests. La tâche assembleAndroidTest compile l'APK avec les tests, et les tâches gcloud le téléchargent dans Test Lab et exécutent la matrice. Les résultats des tests sont retournés à Gradle sous forme de pass/fail, permettant l'intégration de Test Lab dans tout pipeline CI prenant en charge Gradle. Un compte de service Firebase avec des autorisations Test Lab est utilisé pour l'autorisation.

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"
    }
}

Configuration via Fastlane

Fastlane fournit le plugin firebase_test_lab pour l'intégration avec les tests iOS et Android. Une lane Fastlane effectue la compilation, exécute les tests et traite les résultats. Pour XCTest sur iOS, Test Lab nécessite un fichier xctestrun, qui est créé automatiquement lors de la compilation de la cible de test. Fastlane peut également télécharger les résultats des tests dans Slack ou d'autres messageries pour informer l'équipe de l'état des tests après chaque exécution.

Analyse des résultats de test

Après la fin des tests, Firebase Test Lab fournit un rapport complet disponible dans Firebase Console et via gcloud CLI. Le rapport comprend un bref résumé (nombre de tests réussis, échoués et ignorés), des informations détaillées pour chaque test sur chaque appareil, des vidéos d'exécution, des captures d'écran des étapes clés et des journaux d'appareil (logcat pour Android, journal système pour iOS). Pour les tests échoués, une trace de pile avec l'emplacement exact de l'erreur est disponible.

Interprétation des résultats de test robot

Pour un test robot, le rapport diffère d'un test d'instrumentation : au lieu de pass/fail par cas de test, le rapport montre des statistiques d'exploration. Métriques clés — le nombre d'écrans trouvés et visités, le nombre d'interactions du robot (clics, balayages, saisie de texte), les crashs et ANR détectés, et le chemin parcouru dans l'application. La vidéo d'exécution du robot permet d'évaluer visuellement quels écrans ont été testés et lesquels sont restés non couverts.

Exportation des résultats

Les résultats des tests sont stockés dans Google Cloud Storage dans le bucket associé au projet. Les données sont disponibles pour l'exportation et l'intégration avec des systèmes d'analyse externes. Pour le stockage à long terme et la comparaison des résultats entre les exécutions, il est recommandé de configurer l'exportation BigQuery ou d'utiliser l'API Firebase Test Lab pour une récupération programmatique des résultats. Google offre la possibilité de télécharger une archive ZIP avec l'ensemble complet des résultats pour chaque exécution de test.

Questions fréquentes

Combien coûte Firebase Test Lab ?

Le plan Spark inclut 10 tests Robo par jour et 5 heures de tests d'instrumentation par mois gratuitement. Le plan Blaze est facturé à l'heure : ~1 USD par heure-appareil pour les tests Robo et ~5 USD pour les tests d'instrumentation. Le coût exact dépend de la région et du type d'appareil.

Quelle est la différence entre les appareils physiques et les émulateurs dans Test Lab ?

Les appareils physiques fournissent des résultats plus précis, y compris les problèmes de capteurs, de caméra, de GPS, de Bluetooth et de performances réelles. Les émulateurs démarrent plus vite et sont moins chers, mais ne révèlent pas les problèmes liés aux caractéristiques matérielles. Google recommande les appareils physiques pour les tests de pré-lancement.

Comment configurer l'autorisation pour un test robot ?

Créez un fichier XML robo_directives.xml avec des champs de saisie (login, mot de passe) et des boutons à cliquer. Téléchargez le fichier avec l'APK lors du lancement du test via Firebase Console ou CLI. Le robot effectuera les actions spécifiées avant de commencer l'exploration.

Puis-je exécuter des tests sur iOS dans Firebase Test Lab ?

Oui, Firebase Test Lab prend en charge iOS depuis 2024. Les tests Robo (exploration automatique) et XCTest (tests d'instrumentation) sont disponibles sur de vrais appareils iPhone et iPad. Un fichier IPA avec une cible de test est requis pour le téléchargement.

Comment intégrer Test Lab avec GitHub Actions ?

Utilisez Firebase CLI dans GitHub Actions : configurez l'authentification via Service Account JSON, installez le SDK gcloud, exécutez la commande firebase test android run avec l'APK et les configurations. Les résultats des tests sont disponibles via Firebase Console ou gcloud CLI.

Résumé

  • Firebase Test Lab est un service cloud Google pour tester des applications mobiles sur des appareils réels avec facturation à l'usage.
  • Trois types de tests — tests robot (sans code, exploration automatique), tests d'instrumentation (Espresso, XCTest) et tests de capture d'écran (Game loop) pour différentes tâches de vérification.
  • La matrice d'appareils permet d'exécuter des tests en parallèle sur un ensemble de configurations (modèle + version OS + orientation), réduisant le temps total de vérification.
  • Les tests robot (Firebase Crawler) explorent automatiquement l'application, détectant jusqu'à 80 % des bogues critiques sans écrire une seule ligne de code de test.
  • Intégration CI/CD — Test Lab prend en charge Gradle, Fastlane et Firebase CLI pour l'exécution automatique des tests à chaque push dans le dépôt.
  • Rapports détaillés incluent des vidéos d'exécution, des captures d'écran, des journaux d'appareil et des traces de pile pour chaque test échoué sur chaque configuration.
  • Limite gratuite — 10 tests Robo par jour sur le plan Spark, suffisants pour la vérification de base de la stabilité de l'application dans le cycle de développement quotidien.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi