Comienza a realizar pruebas para Android con Firebase Test Lab

Firebase Test Lab te permite probar tu app en diversos dispositivos y configuraciones. En esta guía de introducción, se proporcionan una ruta de implementación que puedes seguir y una introducción a las ofertas de Test Lab para Android.

Si necesitas información sobre las cuotas y los planes de precios de Test Lab, consulta el artículo sobre uso, cuotas y precios.

Conceptos clave

Cuando ejecutas una prueba o un conjunto de casos de prueba con los dispositivos y las configuraciones que seleccionaste, Test Lab ejecuta la prueba en tu app en un lote y muestra los resultados como una matriz de pruebas.

Dispositivos × ejecuciones de prueba = matriz de pruebas

Dispositivo
Un dispositivo físico o virtual (solo Android) en el que se ejecuta una prueba, como un teléfono, una tablet o un dispositivo wearable. En una matriz de pruebas, los dispositivos se identifican por el modelo, la versión del SO, la orientación de la pantalla y la configuración regional (también conocida como configuración geográfica y de idioma) del dispositivo.
Prueba, ejecución de prueba
Una prueba (o un conjunto de casos de prueba) que se ejecutará en un dispositivo. Puedes ejecutar una prueba por dispositivo o, de manera opcional, fragmentar la prueba y ejecutar sus casos de prueba en dispositivos diferentes.
Matriz de pruebas
Contiene los estados y resultados de las ejecuciones de prueba. Si falla una ejecución de prueba en una matriz, falla toda la matriz.

Paso 1: Prepara la prueba para subirla a Test Lab

Tipos de pruebas disponibles

Puedes ejecutar las siguientes pruebas con Test Lab. Ten en cuenta que todos los tipos de prueba tienen un límite de ejecución de 45 minutos en dispositivos físicos y 60 minutos en dispositivos virtuales. Cualquier excepción no detectada generará un error en la prueba.

  • Prueba de instrumentación o prueba de unidades instrumentadas: Es una prueba escrita con los frameworks Espresso o UI Automator. Con esta prueba, puedes realizar aserciones explícitas sobre el estado de tu app para verificar la funcionalidad correcta con las API de AndroidJUnitRunner.

  • Prueba Robo: Es una prueba automatizada que analiza la IU de tu app y, luego, la explora de manera metódica, ya que simula actividades del usuario sin necesidad de que escribas código. Consulta Primeros pasos con las pruebas Robo para obtener más información.

  • Prueba de bucle de juego: Es una prueba que usa un “modo de demostración” para simular las acciones del jugador en las apps de videojuegos. Esta es una manera rápida y escalable de verificar que tu juego funcione bien para los usuarios. Cuando eliges ejecutar una prueba de bucle de juego, puedes hacer lo siguiente:

    • Escribir pruebas nativas de tu motor de juegos

    • Evitar escribir el mismo código para diferentes IU o frameworks de prueba

    • De manera opcional, crear varios bucles para que se ejecuten en una única ejecución de prueba (consulta Comienza a realizar pruebas de bucle de juego para obtener más información). También puedes organizar los bucles con etiquetas para hacer un seguimiento de ellos y volver a ejecutar bucles específicos

    Consulta Ejecutar una prueba de bucle de juego si necesitas instrucciones para ejecutar esta prueba con Test Lab.

Herramientas para ejecutar la prueba

Puedes elegir las siguientes herramientas para ejecutar tu prueba:

También puedes probar tu app sin costo con Test Lab cuando subes y publicas los archivos APK de tu app en Play Store con los canales alfa o beta. Si necesitas más información, consulta Usa los informes previos al lanzamiento para identificar problemas y la información sobre las pruebas Robo.

Paso 2: Elige el dispositivo de prueba

Test Lab admite pruebas en varias marcas y modelos de dispositivos Android que están instalados y se ejecutan en un centro de datos de Google. Las pruebas realizadas en dispositivos de Test Lab te ayudan a detectar problemas que podrían no ocurrir cuando pruebas tu app con emuladores en Android Studio. Para obtener más información, consulta los dispositivos disponibles.

Paso 3: Revisa los resultados de la prueba

Sin importar cómo inicies tus pruebas, Test Lab administra todos los resultados y te permite verlos en línea.

El resumen de resultados de la prueba se almacena automáticamente y se puede ver en Firebase console. Contiene los datos más pertinentes para tu prueba, incluidos videos específicos de casos de prueba, capturas de pantalla y la cantidad de pruebas superadas, fallidas o que recibieron resultados no concluyentes, entre otros.

Los resultados de prueba sin procesar contienen registros de prueba y detalles de fallas de la app, y se almacenan automáticamente en un bucket de Google Cloud. Si especificas un bucket, eres responsable del costo del almacenamiento. Si no especificas un bucket, Test Lab crea uno sin costo para ti.

Para obtener más detalles, consulta Analiza los resultados de Firebase Test Lab.

Cuando inicias una prueba desde Android Studio, también puedes revisar los resultados en el entorno de desarrollo.

Limpieza de los dispositivos

En Google, tomamos muy en serio la seguridad de los datos de tus apps. Seguimos las prácticas recomendadas estándar de la industria para quitar datos de las apps y restablecer la configuración del sistema en los dispositivos físicos después de cada ejecución de prueba a fin de garantizar que estén listos para ejecutar nuevas pruebas. Para los dispositivos en los que podemos escribir en la memoria flash una imagen de recuperación personalizada, lo hacemos entre distintas ejecuciones de pruebas como medida de seguridad adicional.

En el caso de los dispositivos virtuales de Test Lab, las instancias de dispositivos se borran después de usarse, de manera que cada ejecución de prueba utiliza una nueva instancia de dispositivo virtual.


Servicios de Google Play y Test Lab

Por lo general, los dispositivos de Test Lab se ejecutan en la versión más reciente del SDK de Servicios de Google Play, pero algunos pueden requerir algunos días para actualizarse después de la actualización de una nueva versión del SDK. Ten en cuenta que es posible que encuentres problemas de compatibilidad con algunos dispositivos.

Permite que los dispositivos de prueba accedan a los servidores de backend privados

Algunas apps para dispositivos móviles deben comunicarse con servicios de backend privados a fin de funcionar correctamente durante la prueba. Si tus servidores de backend están protegidos por reglas de firewall, puedes permitir el acceso de los dispositivos físicos y virtuales de Test Lab mediante los bloques de direcciones IP que se indican a continuación para abrir rutas en tu firewall.

Publicidad para dispositivos móviles

Test Lab proporciona una infraestructura escalable que automatiza las pruebas de apps y, lamentablemente, a esta función la pueden utilizar de forma inadecuada aplicaciones maliciosas diseñadas para generar ingresos por anuncios fraudulentos.

Haz lo siguiente para mitigar este problema:

  • Si usas proveedores de publicidad digital de terceros (por ejemplo, redes de publicidad o plataformas orientadas a la demanda) o trabajas con ellos, te recomendamos usar anuncios de prueba en lugar de anuncios reales durante el desarrollo y las pruebas de la app.

  • Si debes usar anuncios reales en tu prueba, notifica a los proveedores de publicidad digital con los que trabajas para que filtren los ingresos y todo el tráfico correspondiente generado en Test Lab con los bloques de direcciones IP que se indican a continuación. No es necesario que notifiques a los proveedores de anuncios que pertenecen a Google. Test Lab se encarga de eso.

Direcciones IP que usan los dispositivos de Test Lab

Todo el tráfico de red generado por dispositivos de Test Lab se origina desde los siguientes bloques de direcciones IP. También puedes acceder a la lista con el comando gcloud beta firebase test ip-blocks list en la CLI de gcloud. La lista se actualiza en promedio una vez al año.

Plataforma y tipo de dispositivo Bloque CIDR de direcciones IP
Dispositivos físicos de iOS y Android, dispositivos virtuales ARM

70.32.128.0/19 (agregado en febrero de 2022)

108.177.6.0/23

108.177.18.192/26 (agregado en febrero de 2022)

108.177.29.64/27 (expandido en febrero de 2022)

108.177.31.160/27 (agregado en febrero de 2022)

199.36.156.8/29 (agregado en febrero de 2022)

199.36.156.16/28 (agregado en febrero de 2022)

209.85.131.0/27 (agregado en febrero de 2022)

2001:4860:1008::/48 (agregado en febrero de 2022)

2001:4860:1018::/48 (agregado en febrero de 2022)

2001:4860:1019::/48 (agregado en febrero de 2022)

2001:4860:1020::/48 (agregado en febrero de 2022)

34.68.194.64/29 (agregado en feb‑2022)

Dispositivos virtuales de Android (no ARM)

34.68.194.64/29 (agregado en noviembre de 2019)

34.69.234.64/29 (agregado en noviembre de 2019)

34.73.34.72/29 (agregado en noviembre de 2019)

34.73.178.72/29 (agregado en noviembre de 2019)

34.74.10.72/29 (agregado en febrero de 2022)

34.136.2.136/29 (agregado en febrero de 2022)

34.136.50.136/29 (agregado en febrero de 2022)

34.145.234.144/29 (agregado en febrero de 2022)

35.192.160.56/29

35.196.166.80/29

35.196.169.240/29

35.203.128.0/28

35.234.176.160/28

35.243.2.0/27 (agregado en julio de 2019)

35.245.243.240/29 (agregado en febrero de 2022)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

Ya no se usan los bloqueos de IP del dispositivo

74.125.122.32/29 (se quitó en febrero de 2022)

216.239.44.24/29 (se quitó en febrero de 2022)