Probar las interacciones de los usuarios ayuda a garantizar que no encuentren resultados inesperados ni tengan una mala experiencia cuando interactúen con tu app. Debes adquirir el hábito de crear pruebas de la interfaz de usuario (IU) si necesitas verificar que la IU de tu app funciona correctamente.
Un enfoque para las pruebas de IU es hacer que un verificador humano realice un conjunto de operaciones de usuario en la app de destino y verifique que funciona de manera correcta. Sin embargo, este enfoque manual puede llevar mucho tiempo y ser propenso a errores. Un enfoque más eficaz consiste en escribir las pruebas de la IU de manera que las acciones del usuario se realicen de forma automatizada. El enfoque automatizado te permite ejecutar las pruebas de forma rápida y confiable de manera recurrente.
Las pruebas de IU inician una app (o parte de ella), luego simulan las interacciones del usuario y, finalmente, comprueban que la app reaccionó adecuadamente. Son pruebas de integración que pueden ir desde la verificación del comportamiento de un componente pequeño hasta una prueba de navegación grande que atraviesa todo un flujo de usuarios. Son útiles para detectar regresiones y verificar la compatibilidad con diferentes niveles de API y dispositivos físicos.
Cómo ejecutar pruebas en la IU
- Para ejecutar pruebas de IU instrumentadas con Android Studio, debes implementar el código de prueba en una carpeta de prueba de Android independiente:
src/androidTest/java
. El complemento de Android para Gradle compila una app de prueba basada en el código de prueba y, luego, la carga en el mismo dispositivo que la app de destino. En el código de prueba, puedes usar marcos de trabajo de prueba de la IU para simular las interacciones del usuario en la app de destino, con el fin de realizar tareas de prueba que cubran situaciones de uso específicas. - También puedes usar Robolectric para ejecutar pruebas de IU en la JVM.
Arquitectura y configuración de pruebas
La arquitectura de tu app debe permitir que las pruebas reemplacen partes de ella para probar objetos duplicados y debes usar bibliotecas que proporcionen utilidades para ayudar con las pruebas. Por ejemplo, puedes reemplazar un módulo de repositorio de datos por una versión en la memoria que le proporcione datos falsos y deterministas a la prueba.
El enfoque recomendado para reemplazar dependencias es la inyección de dependencias. Puedes crear tu propio sistema de forma manual, pero te recomendamos que uses un framework de DI como Hilt para ello.
¿Por qué probar las IUs automáticamente?
Una app para Android puede orientarse a miles de dispositivos diferentes en muchos niveles de API y factores de forma, y el alto nivel de personalización que el SO ofrece al usuario significa que tu app podría renderizarse de forma incorrecta o incluso fallar en algunos dispositivos.
Las pruebas de IU te permiten realizar pruebas de compatibilidad, que verifican el comportamiento de una app en diferentes contextos. Te recomendamos que ejecutes las pruebas de IU en dispositivos que varíen de las siguientes maneras:
- Nivel de API: 21, 25 y 30.
- Configuración regional: Inglés, árabe y chino
- Orientación: Vertical, horizontal.
Además, las apps deben verificar el comportamiento más allá de los teléfonos. Debes realizar pruebas en tablets, dispositivos plegables y otros dispositivos. Obtén más información para probar diferentes tamaños de pantalla.
Tipos de pruebas de IU
En esta sección, se describen dos tipos de pruebas de IU:
- Las pruebas de comportamiento analizan la jerarquía de la IU para hacer aserciones sobre las propiedades de los elementos de la IU.
- Las pruebas de captura de pantalla toman capturas de pantalla de una IU y las comparan con una imágenes aprobadas anteriormente.