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

Duración:
30'
Nivel:
principiante
Curso relacionado:

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.

https://www.youtube.com/watch?v=4_ZEEX1x17k

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

https://www.imaginaformacion.com/wp-content/uploads/2019/12/pruebas-android-studio-y-matriz-de-ejecucion.jpg

Resultado de la prueba

https://www.imaginaformacion.com/wp-content/uploads/2019/12/resultado-prueba-android-studio-y-matriz-de-ejecucion.jpg

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.

https://www.imaginaformacion.com/wp-content/uploads/2019/12/seccion-test-lab-consola-firebase.jpg

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.

https://www.imaginaformacion.com/wp-content/uploads/2019/12/listado-apps-test-lab.jpg

Seleccionaremos cualquier matriz de resultados.

https://www.imaginaformacion.com/wp-content/uploads/2019/12/matriz-de-resultados-pruebas-test-lab.jpg

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

También podemos encontrarnos con errores.

https://www.imaginaformacion.com/wp-content/uploads/2019/12/matriz-de-resultados-errores-pruebas-test-lab.jpg

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

https://www.imaginaformacion.com/wp-content/uploads/2019/12/detalles-ejecucion-pruebas-test-lab-1024x493.jpg

Ejemplo de Vídeo

https://www.imaginaformacion.com/wp-content/uploads/2019/12/ejemplo-de-video.gif

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

Solicita información sobre Android 11

En Imagina llevamos más de 11 años ofreciendo formación para empresas, estamos especializados en el área técnica y de ofimática, adaptando nuestras formaciones a vuestras necesidades. Déjanos tus datos, y nos pondremos en contacto contigo para informarte sobre el curso que mejor se ajuste a lo que buscas. Cuéntanos tus necesidades y podremos asesorarte sobre la modalidad que mejor se adapte: En directo, En directo a Medida u Online.

España