(+34) 673 566 782 - (+34) 960 653 052 formacion@imaginagroup.com

Firebase Test Lab: Ya puedes testar tus apps en la nube

Test Lab es una infraestructura contenida en Firebase que nos permite probar nuestra app en dispositivos ubicados en los servidores de Google. Esto nos permite cambiar la configuración de los dispositivos y ver los resultados de la ejecución de nuestra app con todas las variaciones.

De todas las pruebas, obtendremos registros, vídeos y capturas de pantalla. Además Test Lab utiliza dispositivos reales en un centro de producción. Esto permite obtener información fidedigna del rendimiento de nuestra app.

Por último, tiene como ventaja que no es necesario tener una gran batería de móviles para realizar las pruebas, cosa bastante común hace unos años.

Es un servicio freemium, es decir, si superamos una cuota concreta, deberemos cambiar de plan o pagar por uso.

Fases de implementación

Las fases para hacer deploy en Test Lab son:

  • Preparar la app para ejecutar las pruebas.
  • Elegir entorno y matriz de pruebas.
  • Ejecutar las pruebas y medir los resultados.

Pasemos a detallar cada uno de estos puntos.

Preparar la app para ejecutar las pruebas

Para iOS, hemos de utilizar XCTest y para Android podemos utilizar Espresso y UI Automator 2.0.

Gracias a estos frameworks, podremos realizar pruebas unitarias y pruebas de interfaz, emulando el comportamiento del usuario.

Elegir entorno y matriz de pruebas

  • Dimensiones de prueba: atributos del dispositivo con los que realizas pruebas para tu app, como el modelo del dispositivo, la versión de SO, la configuración regional y la orientación de la pantalla.
  • Ejecuciones de prueba: ejecuciones de pruebas individuales. Cada una tiene una combinación única de las dimensiones seleccionadas.
  • Matriz de prueba: los resultados de las ejecuciones de la prueba en las dimensiones seleccionadas. Si una ejecución de prueba falla en la matriz,Test Lab considera que toda la matriz falló.

Ejecutar las pruebas y medir los resultados

Tendremos 3 alternativas:

  • Utilizar Android Studio para probar nuestra app desde el entorno de programación.
  • Usar la interfaz de línea de comandos de gcloud y ejecutar pruebas desde la línea de comandos de forma interactiva. Se pueden lanzar comandos y pruebas automáticas.
  • La IU de Test Lab en Firebase console nos permite subir un ejecutable de la app e iniciar pruebas desde el navegador.

Tipos de Pruebas

Existen tres tipos de pruebas

  • Pruebas de instrumentación
  • Pruebas Robo
  • Pruebas de Bucle de Juego

Dependiendo del tipo de nuestra aplicación, elegiremos un tipo u otro.

Pruebas de instrumentación

Son pruebas unitarias que se realizan en dispositivos físicos o virtuales, pero sin necesidad de que tengamos el móvil en modo desarrollo.

No obstante, son pruebas mucho más lentas que las que se pueden hacer en local, porque conllevan un análisis más profundo del contexto del dispositivo.

Android Studio y Matriz de Ejecución

Prueba en Android Studio y Matriz de Ejecución

 

Resultado de la prueba

Resultado de la prueba en Android Studio y Matriz de Ejecución

 

Pruebas Robo

Robo test analiza la estructura de la interfaz nuestra app y la explora de manera metódica y automática, simulando las acciones de los usuarios.

A diferencia de UI/Application Exerciser Monkey test, Robo test siempre simula las acciones del usuario en el mismo orden, con lo que la ejecución en varios dispositivos siempre tendrá una relación. Esto hace que Robo test encuentre errores que pueden ocurrir al cambiar el tamaño de la pantalla o dependan de las características del dispositivo.

Pruebas de Bucle de Juego

Es un framework que nos ofrece Firebase para poder probar los juegos que desarrollemos.

Para ello, hemos de describir exactamente el comportamiento (a nivel de código) que queramos que tenga la ejecución y a partir de ahí, se lanzará el juego en modo automático.

Resultados

Podemos utilizar la interfaz de Test Lab para analizar los resultados de nuestras pruebas.

Para ello, accederemos a la sección de Test Lab dentro de la consola de Firebase.

Sección de Test Lab de la consola de Firebase

Tipos de Resultados

Hay cuatro tipos de resultados en Test Lab:

  • Correcto : No se encontraron errores.
  • Con errores : Se encontró al menos un error.
  • No concluyente : Los resultados de la prueba no fueron concluyentes, posiblemente debido a un error de Test Lab.
  • Omitida : Los valores de dimensión seleccionados para algunas ejecuciones de prueba en la matriz no eran compatibles. Esto ocurre cuando los dispositivos seleccionados son incompatibles con uno o más niveles de la API de Android.

Resultados

Veremos una serie de pruebas dentro de esa sección. Primero seleccionaremos la app cuyas pruebas queramos visualizar.

Listado de apps en Test Lab para visualizar las pruebas

 

Seleccionaremos cualquier matriz de resultados.

Matriz de resultados de las pruebas realizadas en Test Lab

En este caso, todos las pruebas se han ejecutado correctamente.

 

También podemos encontrarnos con errores.

Matriz de resultados con los errores de las pruebas realizadas en Test Lab

 

Al hacer click en cualquier ejecución, veremos una serie de detalles sobre la prueba.

Detalles de las pruebas realizadas al hacer clic sobre cualquier ejecución

Ejemplo de Vídeo

Ejemplo de Vídeo

Eventos

Para poder enlazar los eventos de errores con Cloud Functions, disponemos de IssueBuilder, que nos permite registrar 3 tipos de eventos:

  • onNew. Cuando aparece un error nuevo.
  • onRegressed. Cuando reaparece un error que supuestamente ya se había resuelto.
  • onVelocityAlert. Cuando un error ocurre de una forma más frecuente que en compilaciones anteriores.

Resultados

Nos encontraremos con:

  • Problemas detectados durante la prueba (en caso de error)
  • Resultados (en el caso que nuestra prueba recopile información).
  • Descripción de la prueba de Robo.
  • Valores de los registros de la prueba.
  • Capturas de pantalla realizadas por la prueba.
  • Vídeos realizados de la prueba.
  • Y el análisis de Rendimiento de la ejecución.

Métricas de Rendimiento

  • Hora de inicio de la app
  • Uso de CPU
  • Uso de memoria
  • Actividad de la red
  • Fotogramas por segundo
  • Estadísticas gráficas

Uso de cookies: Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies

ACEPTAR
Aviso de cookies