Archivos

Android, pruebas de UI automatizadas utilizando UIAutomator

El desarrollo de interfaces de usuario en el ambiente móvil tiene una gran relevancia y desde el ambiente de desarrollo generalmente cuesta encontrar modelos automatizados para realizar operaciones de pruebas que nos aseguren el buen comportamiento siguiendo las líneas de diseño e implementación oficiales.

Introducción

En este artículo les voy a presentar una opción para las pruebas automatizadas de UI en Android.


Vamos a necesitar dos herramientas para realizar las actividades propuestas:
  • uiautomatorviewer herramienta gráfica que permite escanear la UI.
  • uiautomator - Librería Java que posee APIs para realizar los UI Test funcionales.

Como se muestra en la Figura 1, mediante uiautomatorviewer podemos tomar un snapshot y dump de la UI de un dispositivo. (podemos analizar desde luego aplicaciones o lo que se esté ejecutando en el momento)



Figura 1. uiautomatorviewer, explorando el dump de la interfaz
Para el ejemplo explicativo, vamos a utilizar solo una demostración simple para identificar elementos de la UI y generar un test simulando comportamiento del usuario de forma automatizada.


Detalles a tener en cuenta de la configuración del entorno:
  1. SO de ejecución. MacOS.
  2. Eclipse (en el caso del ejemplo. Kepler)
  3. Proyecto Java tradicional
  4. JUnit 3 para el ejemplo
  5. Referenced Libraries
    1. uiautomator.jar
    2. android.jar

**Recuerda que debes seleccionar la versión Android sobre la que vas a trabajar,  en el ejemplo API level 19 - Android 4.4 )

Vamos a codificar comportamiento simple como les comenté en la introducción donde identificaremos elementos de la UI básica de mi dispositivo como muestra la Figura 2.

Figura 2. Entorno Eclipse configurado.

Construyendo el test de UI y desplegando el mismo

Nuestro simple objetivo para este ejemplo será darle instrucciones al test para que verifique el comportamiento de un elemento que tenga como texto “Play Store”, vamos a simular un click y aguardar hasta inicie la operación como muestra el Código 1.

Código 1 - Método de prueba implementado.
Una vez codificada la operación de prueba, vamos a compilar esta solución. Para esta actividad lo vamos a realizar desde la consola mediante ant build.

Nota: recuerda que debes ejecutar este comando desde la ubicación del proyecto, como muestra la Consola 1.

Consola 1. Compilación de la solución codificada.
Con la aplicación compilada, vamos a desplegar la aplicación al dispositivo testingAndroid.jar utilizando adb push como pueden ver en Consola 2.
Consola 2. Desplegando el test codificado al dispositivo.
Luego vamos a implementar un shell para ejecutar el test y visualizar los resultados, como muestra la Consola 3.
Consola 3 Realización exitosa del test
Veamos que ocurre si el test falla, esta se puede observar en la Consola 4.
Consola 4 Validación de un test que falla.
Referencias
  • UI Testing, Android Developers, developers.android.com, noviembre 2013.
  • UIAutomator, Android Developers, developers.android.com, noviembre 2013.

De esta forma simple mediante las herramientas disponibles que no entrega el equipo de Android podemos hacer pruebas automatizadas de nuestras UI móviles en Android.

Les dejo una implementación paso a paso en el siguiente video:


Código fuente disponible aqui.

+Nicolas Bortolotti Perfil | Blog |
Nicolás es director de relaciones para desarrolladores en Latinoamérica región sur para Google. El ha desarrollado comunidades académicas y de investigación en varios países de Latinoamérica sobre la plataforma de desarrollo web y mobile de Google. Además Nicolas es profesor universitario, donde trabaja fuertemente en arquitecturas de software, ambientes emergentes e innovación en modelos de ingeniería de software



Comments are closed.