L'agent App Testing est un agent de génération, de gestion et d'exécution de scénarios de test optimisé par Gemini dans Firebase. Vous définissez des objectifs de test en langage naturel, et l'agent utilise l'IA pour comprendre votre application et la parcourir, simuler les interactions des utilisateurs et fournir des résultats de test détaillés.
Comment l'agent de test d'application utilise vos données
L'agent de test d'application est fourni par Gemini dans Firebase et est soumis aux mêmes conditions. Pour en savoir plus sur la manière dont Gemini dans Firebase utilise vos données, consultez Utilisation de vos données par Gemini dans Firebase.
Avant de commencer
Si ce n'est pas déjà fait, enregistrez votre application auprès de Firebase.
Si vous n'utilisez aucun autre produit Firebase, il vous suffit de créer un projet et d'enregistrer votre application. Vous n'avez pas besoin d'ajouter de SDK à votre application. Toutefois, si vous décidez d'utiliser d'autres produits à l'avenir, veillez à suivre toutes les étapes de la section Ajouter Firebase à l'aide de la console Firebase.
Créer un scénario de test
Pour exécuter des tests guidés par l'IA, l'agent de test d'application utilise vos scénarios de test en langage naturel pour exécuter des tests sur votre application.
Chaque scénario de test est divisé en étapes, qui seront exécutées dans l'ordre. Les étapes vous permettent de diviser votre cas de test en phases, chacune avec sa propre assertion. L'agent peut effectuer de nombreuses actions à chaque étape.
Il existe deux façons de créer un cas de test : à l'aide d'un fichier YAML ou de la console Firebase. Les fichiers YAML vous permettent de gérer vous-même les scénarios de test, généralement dans un dépôt de code source versionné. Vous pouvez également stocker vos cas de test à distance dans la console Firebase, en même temps que vos données App Distribution.
Utiliser les fichiers YAML
L'exemple suivant montre un fichier YAML qui définit deux scénarios de test :
tests:
- displayName: Login as guest
id: login-as-guest
steps:
- goal: Log in as a guest
finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
prerequisiteTestCaseId: login-as-guest
steps:
- goal: Open the article on "Bob Dylan"
hint: Use the search function to find it
finalScreenAssertion: >-
The article is opened and the title "Bob Dylan" is visible.
- goal: Find Bob Dylan's birthday in the article
hint: >-
Look for the "Born" section in the infobox on the right side of the page.
finalScreenAssertion: >-
The text "May 24, 1941" is visible on the screen.
Vous pouvez organiser des groupes de tests dans un seul fichier et séparer ces suites de tests dans plusieurs fichiers. Vous pouvez ajouter un cas de test prérequis en ajoutant un ID au test, puis en référençant cet ID à l'aide de prerequisiteTestCaseId.
Utiliser la console App Distribution
Vous pouvez également créer et gérer vos cas de test dans la console Firebase. Pour créer un cas de test, ouvrez la page App Distribution de la console Firebase et procédez comme suit :
- Dans l'onglet Scénarios de test, cliquez sur Nouveau scénario de test. Si vous ne souhaitez pas créer votre propre cas de test, vous pouvez modifier ou utiliser l'exemple de cas de test fourni.
- Dans la boîte de dialogue Ajouter un scénario de test, donnez un nom au scénario de test. Cette information permet d'identifier le test, mais elle est ignorée par l'agent.
- (Facultatif) Sélectionnez un scénario de test prérequis contenant les étapes de configuration à exécuter avant le test principal. Si le test préalable échoue, l'ensemble du test sera marqué comme un échec. Les étapes et les résultats des tests principaux et préalables seront affichés ensemble dans les résultats des tests.
- En cliquant sur le bouton Ajouter une étape, vous pouvez diviser votre test en plusieurs étapes.
- Donnez à chaque étape un objectif qui décrit ce que l'agent de test d'application doit faire à cette étape.
- (Facultatif) Ajoutez un indice pour fournir des informations supplémentaires afin d'aider l'agent de test d'application à comprendre votre application et à la parcourir lors de cette étape.
- Ajoutez une assertion d'écran final pour aider l'agent App Testing à déterminer quand l'étape a été correctement effectuée. Cette affirmation ne doit faire référence qu'à ce qui est visible à l'écran.
- Cliquez sur Enregistrer une fois que vous avez terminé de personnaliser votre test.
Exemple de scénario de test
Voici un exemple de création d'un scénario de test à l'aide de l'agent App Testing :
Titre test |
Chargements de la page d'accueil |
Objectif |
Charger la page d'accueil |
Indice |
Passez les écrans d'accueil. Fermez les pop-ups. Ne vous connectez pas. |
Assertion sur l'écran final |
La page d'accueil principale de l'application est visible à l'écran, toutes les images sont chargées et aucune erreur ne s'affiche. |
Exécuter un test
La façon dont vous exécutez vos tests dépend de la façon dont vous créez et gérez vos cas de test. Si vous définissez des scénarios de test à l'aide de fichiers YAML, vous exécuterez ces tests à l'aide de la CLI Firebase. Si vous créez vos cas de test dans la console App Distribution, vous les exécuterez depuis la console ou à l'aide de l'un des outils CLI App Distribution.
Utiliser les fichiers YAML
Les cas de test définis dans les fichiers YAML peuvent être exécutés à l'aide de la CLI Firebase.
- Installez la dernière version de la CLI Firebase ou appliquez la mise à jour correspondante. Nous vous recommandons de télécharger le fichier binaire autonome de l'interface de ligne de commande spécifique à votre OS.
- Connectez-vous et vérifiez que vous pouvez accéder à vos projets. Notez que si vous utilisez la CLI Firebase dans un environnement d'intégration continue, vous pouvez également vous authentifier avec un compte de service ou en utilisant login:ci.
Exécutez la commande
apptesting:execute. Exemple :firebase apptesting:execute \ --app=1:1234567890:android:0a1b2c3d4e5f67890 \ --test-dir=./mytests \ ./app/build/outputs/apk/debug/app-debug.apk
| apptesting:execute [options] [/path/to/app/binary] | |
|---|---|
--app
|
Obligatoire : ID d'application Firebase de votre application. Vous trouverez l'ID de l'application dans la console Firebase, sur la page Paramètres généraux.
|
--test-dir
|
Chemin d'accès à un répertoire contenant des fichiers YAML de scénarios de test. La commande effectue une recherche récursive dans ce répertoire. Les fichiers peuvent donc être organisés dans des sous-répertoires (facultatif). Si cette option n'est pas définie, "./tests" est utilisé par défaut. |
--test-devices ou --test-devices-file
|
Les appareils de test sur lesquels vous souhaitez distribuer des versions à la fonctionnalité de l'agent de test d'application. Vous pouvez spécifier les appareils de test sous forme de liste séparée par des points-virgules : --test-devices
"model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Vous pouvez également spécifier le chemin d'accès à un fichier texte brut contenant une liste de dispositifs de test séparés par des points-virgules : --test-devices-file
"/path/to/test-devices.txt" Vous pouvez rechercher les modèles d'appareils disponibles à l'aide de la gcloud CLI. |
--test-non-blocking
|
Si cette option est définie, la commande lance les tests, puis renvoie immédiatement une réponse au lieu d'attendre qu'ils se terminent. |
--test-file-pattern
|
Modèle d'expression régulière. Seuls les tests contenus dans les fichiers correspondant à ce modèle seront exécutés. |
--test-name-pattern
|
Modèle d'expression régulière. Seuls les tests dont le nom à afficher correspond à ce modèle seront exécutés. |
/path/to/app/binary
|
Facultatif : chemin d'accès au binaire de votre application. Si cet élément est omis, l'agent utilisera la dernière version importée dans App Distribution pour l'application spécifiée. |
Utiliser la console App Distribution
Pour exécuter des cas de test stockés dans App Distribution, vous pouvez utiliser la console Firebase, la CLI Firebase ou les plug-ins Gradle ou fastlane de App Distribution.
Importer et exporter des scénarios de test avec des fichiers YAML
L'importation de scénarios de test à partir de fichiers YAML est utile lorsque vous souhaitez gérer des scénarios de test en dehors de la console Firebase. Il peut également être utile d'exporter des cas de test pour les déplacer entre des projets. Vous pouvez utiliser un LLM pour affiner les scénarios de test existants ou en créer d'autres. Vous pouvez importer et exporter des scénarios de test depuis la page "Scénarios de test" de la console Firebase ou de manière programmatique à l'aide de la CLI Firebase. Pour obtenir un exemple de scénario de test YAML, consultez Créer un scénario de test YAML.
Afficher les résultats de vos tests
Vous pouvez consulter les résultats de vos tests sur la page Releases, dans l'onglet Agent de test d'application d'une release. Le bouton Afficher les détails ouvre la boîte de dialogue "Résultats du test", qui affiche les éventuels problèmes, les captures d'écran de l'application et les actions effectuées par Gemini lors du test.
Si un test inclut des actions rejouées, vous pouvez afficher l'exécution du test guidé par l'IA d'origine ou vider le cache.
Pour en savoir plus sur les résultats de vos tests, consultez le tableau suivant :
| Icône | Nom | Description |
|---|---|---|
| spark | Action d'IA | Indique que l'agent App Testing a utilisé Gemini pour décider d'effectuer une action ou de mettre fin à l'étape. |
| rediffusion | Action réeffectuée | Indique que l'agent App Testing a rejoué une action à partir d'une exécution réussie précédente du test. |
| spark | Assertion d'IA | Indique que l'agent App Testing a utilisé Gemini pour valider une assertion d'écran final, après avoir rejoué les actions d'une exécution précédente réussie du même test. |
Déboguer les résultats de vos tests
Si les résultats de vos tests sont différents de ce à quoi vous vous attendiez, vous pouvez les déboguer à l'aide du bouton Afficher la vue de l'agent sous Afficher les détails sur la page "Résultats des tests". La vue de l'agent vous montre les éléments à l'écran que l'agent App Testing a pu détecter en utilisant les informations d'accessibilité de l'application. Si vous souhaitez examiner de plus près ce que l'agent a vu, vous pouvez télécharger ces informations à partir du menu à développer.
Vous pouvez également utiliser le bouton Afficher les artefacts sur la page "Résultats des tests" pour consulter toutes les vidéos, tous les journaux et tous les autres artefacts Cloud associés aux résultats de vos tests.
Limites et problèmes connus
La version preview de l'agent de test d'application présente certaines limites connues :
- Étant donné que l'agent de test d'application utilise l'IA générative pour tester votre application, il effectue parfois des actions différentes tout en suivant les mêmes instructions.
- L'agent App Testing n'est compatible qu'avec les actions suivantes : appuyer, saisir du texte, balayer vers le haut/le bas/la gauche/la droite, appuyer de manière prolongée, faire glisser et déposer, revenir en arrière et attendre.
- L'agent de test d'application rencontre des difficultés pour exécuter des tests ne contenant qu'une seule étape nécessitant de nombreuses actions. Il est plus performant lorsque les tâches complexes sont décomposées en plusieurs étapes plus courtes.
- Il arrive que l'agent de test d'application ne fasse pas défiler l'écran pour afficher d'autres éléments. Cela se produit plus souvent lorsqu'il n'y a aucune indication visuelle de la possibilité de faire défiler la page. Pour contourner ce problème, vous pouvez utiliser le champ "hints" pour suggérer le défilement.
- L'agent App Testing a parfois du mal à compter, par exemple à effectuer une action un nombre spécifique de fois.
- L'agent App Testing ne peut pas naviguer dans votre application si
FLAG_SECUREest activé. Au lieu de captures d'écran de votre application, il ne verra qu'un écran vide.
Tester les quotas
Pendant la version preview, les tests guidés par l'IA seront proposés sans frais dans la limite d'un quota. La limite de quota par défaut est de 200 tests par mois et par projet Firebase.
Notez que si vous choisissez d'exécuter plusieurs scénarios de test ou le même scénario de test sur plusieurs appareils, cela compte comme plusieurs tests. Par exemple, si vous exécutez deux cas de test sur deux appareils, cela compte comme quatre tests au total.
Pour augmenter votre quota au-delà de la limite par défaut, contactez l'assistance Firebase en expliquant votre cas d'utilisation.