El agente de pruebas de apps es un agente de generación, administración y ejecución de casos de prueba potenciado por Gemini en Firebase. Tú defines los objetivos de prueba en lenguaje natural, y el agente usa la IA para comprender tu app y navegar por ella, simular interacciones del usuario y entregar resultados de prueba detallados.
Cómo usa tus datos el agente de pruebas de apps
Gemini en Firebase proporciona el agente de pruebas de apps y se rige por las mismas condiciones. Consulta Cómo usa tus datos Gemini en Firebase para obtener más información sobre cómo Gemini en Firebase usa tus datos.
Antes de comenzar
Si aún no lo has hecho, registra tu app en Firebase.
Si no utilizas ningún otro producto de Firebase, solo debes crear un proyecto y registrar tu app. No es necesario que agregues ningún SDK a tu app. Sin embargo, si decides usar productos adicionales en el futuro, asegúrate de completar todos los pasos que se indican en Agrega Firebase con Firebase console.
Crea un caso de prueba
Para ejecutar pruebas guiadas por IA, el agente de pruebas de apps usa tus casos de prueba con lenguaje natural para probar la app.
Cada caso de prueba se divide en pasos, que se ejecutarán en secuencia. Los pasos te permiten dividir tu caso de prueba en fases, cada una con su propia aserción. El agente puede realizar muchas acciones durante un paso.
Existen dos formas de crear un caso de prueba: con un archivo YAML o con Firebase console. Los archivos YAML te permiten administrar los casos de prueba por tu cuenta, por lo general, en un repositorio de código fuente con versiones. De manera alternativa, Firebase console puede almacenar tus casos de prueba de forma remota junto con tus datos de App Distribution.
Usa archivos YAML
En el siguiente ejemplo, se muestra un archivo YAML que define dos casos de prueba:
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.
Puedes organizar grupos de pruebas en un solo archivo y separar estos paquetes de pruebas en varios archivos. Puedes sumar un caso de prueba previo agregando un ID a la prueba y, luego, haciendo referencia a ese ID con prerequisiteTestCaseId.
Usa la consola de App Distribution
También puedes crear y administrar tus casos de prueba en Firebase console. Para crear un caso de prueba, abre la página App Distribution de Firebase console y sigue estos pasos:
- En la pestaña Casos de prueba, haz clic en Caso de prueba nuevo. Si no quieres crear tu propio caso de prueba, puedes modificar o usar el caso de prueba de ejemplo proporcionado.
- En el diálogo Agregar caso de prueba, asigna un nombre al caso de prueba. Este se usa para identificar la prueba, pero el agente lo ignora.
- Opcional: Selecciona un caso de prueba de requisito previo que contenga pasos de configuración para ejecutar antes de la prueba principal. Si falla la prueba de requisito previo, toda la prueba se marcará como falla. Los pasos y los resultados de las pruebas principal y de requisito previo se mostrarán juntos en los resultados de la prueba.
- Considera dividir la prueba en varios pasos. Para ello, haz clic en el botón Agregar otro paso.
- Asigna a cada paso un Objetivo en el que se describa lo que debe hacer el agente de pruebas de apps durante ese paso.
- Opcional: Agrega una Pista para proporcionar información adicional que ayude al agente de pruebas de apps a comprender tu app y navegar por ella durante ese paso.
- Agrega Aserción de pantalla final para ayudar al agente de pruebas de apps a determinar cuándo se completó correctamente el paso. Esta aserción solo debe hacer referencia a lo que se ve en la pantalla.
- Haz clic en Guardar cuando termines de personalizar la prueba.
Ejemplo de caso de prueba
A continuación, se muestra un ejemplo de cómo crear un caso de prueba con el agente de pruebas de apps:
Título de prueba |
Carga de la página principal |
Objetivo |
Cargar la página principal |
Pista |
Navega por las pantallas de integración. Descarta las ventanas emergentes. No accedas. |
Aserción de pantalla final |
La página principal de la app se puede ver en la pantalla, se cargaron todas las imágenes y no se muestran errores. |
Ejecutar una prueba
La forma en que ejecutas tus pruebas depende de cómo creas y administras tus casos de prueba. Si defines casos de prueba con archivos YAML, ejecutarás esas pruebas con Firebase CLI. Si creas tus casos de prueba en la consola de App Distribution, los ejecutarás desde la consola o a través de una de las herramientas de la CLI de App Distribution.
Usa archivos YAML
Los casos de prueba definidos en archivos YAML se pueden ejecutar con Firebase CLI.
- Instala Firebase CLI o actualízala a la versión más reciente (recomendamos descargar el objeto binario independiente para la CLI específica de tu SO).
- Accede y prueba que puedes ingresar a tus proyectos. Ten en cuenta que, si usas Firebase CLI en un entorno de CI, también puedes autenticarte con una cuenta de servicio o con login:ci.
Ejecuta el comando
apptesting:execute. Por ejemplo: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
|
Obligatorio: El ID de app de Firebase de tu aplicación. Puedes encontrar el ID de la app en la página Configuración general de Firebase console.
|
--test-dir
|
Ruta de acceso a un directorio que contiene archivos YAML de casos de prueba. El comando buscará de forma recursiva en este directorio, por lo que los archivos se pueden organizar de manera opcional en subdirectorios. Si no se configura, se usa "./tests" de forma predeterminada. |
--test-devices o --test-devices-file
|
Los dispositivos de prueba a los que deseas distribuir las compilaciones con la función del agente de pruebas de aplicaciones. Puedes especificar los dispositivos de prueba como una lista de dispositivos de prueba separada por punto y coma: --test-devices
"model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
También puedes especificar la ruta de acceso a un archivo de texto sin formato que contenga una lista de dispositivos de prueba separados por punto y coma: --test-devices-file
"/path/to/test-devices.txt" Puedes buscar los modelos de dispositivos disponibles con gcloud CLI. |
--test-non-blocking
|
Si se configura, el comando iniciará las pruebas y, luego, devolverá un resultado de inmediato en lugar de esperar a que se completen. |
--test-file-pattern
|
Es un patrón de expresión regular. Solo se ejecutarán las pruebas contenidas en archivos que coincidan con este patrón. |
--test-name-pattern
|
Es un patrón de expresión regular. Solo se ejecutarán las pruebas con nombres visibles que coincidan con este patrón. |
/path/to/app/binary
|
Opcional: Es la ruta de acceso al objeto binario de tu app. Si se omite, el agente usará la última versión subida a App Distribution para la app especificada. |
Usa la consola de App Distribution
Para ejecutar casos de prueba almacenados en App Distribution, puedes usar Firebase console, Firebase CLI o los complementos de Gradle o fastlane de App Distribution.
Importa y exporta casos de prueba con archivos YAML
Importar casos de prueba desde archivos YAML es útil cuando deseas administrar casos de prueba fuera de Firebase console. También puede ser útil exportar casos de prueba para moverlos entre proyectos. Puedes usar un LLM para definir mejor los casos de prueba existentes o crear unos nuevos. Puedes importar y exportar casos de prueba desde la página Casos de prueba en Firebase console o de forma programática con Firebase CLI. Para ver un ejemplo de un caso de prueba en YAML, consulta Crea un caso de prueba en YAML.
Cómo ver los resultados de la prueba
Puedes ver los resultados de tus pruebas en la página Versiones, en la pestaña Agente de pruebas de apps de una versión. El botón Ver detalles abrirá el diálogo Resultados de la prueba y te mostrará los problemas, las capturas de pantalla de la app y el recorrido que realizó Gemini durante la prueba.
Si una prueba incluye acciones repetidas, puedes ver la ejecución de la prueba guiada por IA original o borrar la caché.
Para obtener más información sobre los resultados de la prueba, consulta la siguiente tabla:
| Ícono | Nombre | Descripción |
|---|---|---|
| spark | Acción de IA | Indica que el Agente de pruebas de apps usó Gemini para decidir tomar una acción o finalizar el paso. |
| replay | Se repitió la acción | Indica que el Agente de pruebas de apps reprodujo una acción de una ejecución anterior exitosa de la prueba. |
| spark | Aserción de IA | Indica que el Agente de pruebas de apps usó Gemini para validar una aserción de pantalla final después de reproducir acciones de una ejecución anterior exitosa de la misma prueba. |
Cómo depurar los resultados de la prueba
Si los resultados de la prueba son diferentes de lo que esperabas, puedes depurar la prueba con el botón de activación Mostrar vista del agente en Ver detalles en la página Resultados de la prueba. En la vista del agente, se muestran los elementos en pantalla que el agente de pruebas de apps pudo detectar cuando se usó la información de accesibilidad de la app. Si deseas analizar con mayor detalle lo que vio el agente, puedes descargar esa información desde el menú ampliado de acciones.
También puedes usar el botón Ver artefactos en la página Resultados de la prueba para ver todos los videos, registros y artefactos de Cloud de los resultados de la prueba.
Problemas conocidos y limitaciones
La vista previa del agente de pruebas de apps tiene algunas limitaciones conocidas:
- Debido a que el agente de pruebas de apps usa IA generativa para probar tu app, a veces realizará acciones diferentes sin dejar de seguir las mismas instrucciones.
- El agente de prueba de apps solo admite las siguientes acciones: presionar, ingresar texto, deslizar el dedo hacia arriba, abajo, izquierda o derecha, mantener presionado, arrastrar y soltar, volver y esperar.
- El agente de pruebas de apps tiene problemas para ejecutar pruebas que contienen un solo paso que requiere muchas acciones para completarse. Tiene un mejor rendimiento cuando las tareas complejas se dividen en varios pasos más cortos.
- A veces, el agente de pruebas de apps no se desplaza para exponer otros elementos fuera de la pantalla. Esto ocurre con mayor frecuencia cuando no hay una indicación visual de la capacidad de desplazamiento. Como solución alternativa, se puede usar el campo "Pistas" para sugerir el desplazamiento.
- A veces, el agente de pruebas de apps tiene problemas para contar, por ejemplo, realizar una acción una cantidad específica de veces.
- El agente de pruebas de apps no puede navegar por tu app si
FLAG_SECUREestá habilitado. En lugar de capturas de pantalla de tu app, solo se verá una pantalla en blanco.
Cuotas de prueba
Durante la vista previa, las pruebas guiadas por IA se ofrecerán sin costo dentro de un límite de cuota. El límite de cuota predeterminado es de 200 pruebas por mes por proyecto de Firebase.
Ten en cuenta que, si eliges ejecutar varios casos de prueba o el mismo caso de prueba en varios dispositivos, esto se cuenta como varias pruebas. Por ejemplo, si ejecutas 2 casos de prueba en 2 dispositivos, esto se cuenta como un total de 4 pruebas.
Para aumentar tu cuota por encima del límite predeterminado, comunícate con el equipo de asistencia de Firebase con tu caso de uso.