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



Google Developers Hackademy

Developer Bus 2013

En el último trimestre de 2013 iniciamos un proyecto llamado Developer Bus, una serie de eventos tipo hackaton con una componente de reality show. Con estos eventos, Google promueve el desarrollo local de aplicaciones útiles para las Pequeñas y Medianas Empresas (PyMES) de la región.
El Developer Bus es un concurso en cuatro ciudades de América Latina: Buenos Aires, Ciudad de México, Bogotá y Sao Paulo, en el que estamos reuniendo a talentosos desarrolladores, diseñadores y emprendedores para crear soluciones, utilizando tecnologías Google, dirigidas a PyMES.
Sabíamos que llegaríamos a muchos otros desarrolladores y entusiastas de tecnología en la región y en preparación para ello, gestamos otro proyecto subyacente; uno que involucra a expertos en nuestras comunidades locales, creatividad y mucho trabajo de diseño instruccional, validación y producción; para entregar a la comunidad de habla hispana cursos de alta calidad técnica, ágiles y divertidos.

Te presentamos Google Developers Hackademy

El primero de estos cursos, Introducción a Google Apps Script, fue creado y presentado por +Antonio Guzmán, uno de los organizadores de nuestro +GDG Androidtitlan en México. Es un curso dividido en cinco breves y emocionantes lecciones.
Si quieres empezar tu propia aventura con Google Apps Script, ve a tu sillón favorito con un café o un té y prepárate para disfrutar y aprender en Google Developers Hackademy:

¿Qué sigue?

Estamos trabajando en otros cursos para Google Developers Hackademy, introducción al Android SDK y Google Drive. A partir de ahí, dependerá de nuestros expertos y de las necesidades de nuestras comunidades.
Los estamos escuchando, ingresen a nuestra comunidad en Google+: Desarrolladores y no se pierdan los nuevos cursos en la serie, a través de Google Developers Live.

Fotografía Francisco Solsona
Francisco Solsona   +solsona | @solsona 

Francisco es gerente de relaciones para desarrolladores en América Latina norte para Google y se enfoca en fortalecer la comunidad de desarrolladores ejecutando programas estratégicos y empoderando a desarrolladores promoviendo eventos de alta calidad; así como fomentando su relación con inversionistas, empresas e instituciones educativas.

Developer Bus: la serie de eventos 2013 ha iniciado


El Developer Bus es un proyecto de Google para impulsar el crecimiento y mobilizar a las comunidades de desarrolladores en América Latina. Con una serie de eventos que pondrán a prueba tu imaginación y habilidades: un hackaton, con algunas secciones transmitidas en vivo a través de YouTube Live, capacitación y retos en línea para todo el mundo.
  1. Visita el sitio: http://developerbus.withgoogle.com
  2. Aún están abiertas las inscripciones para el evento en Buenos Aires
    1. Registro hasta el domingo 13 de octubre a las 23:59 UTC-3 (Nueva fecha)
    2. El Developer Bus Buenos Aires se llevará a cabo del 17 al 19 de octubre
  3. Siguenos en Google+
    1. Página de Desarrolladores LatAm
    2. Registrate a la comunidad de desarrolladores

Espera las inscripciones para las siguientes paradas del Developer Bus 2013, que son:
  • Ciudad de México, del 7 al 9 de noviembre.
  • Bogotá, del 14 al 19 de noviembre.
  • Sao Paulo, del 21 al 23 de noviembre.
Tendremos muchas noticias y sorpresas, siguenos en Google+.


En cada ciudad contamos con la participación de grandes amigos y referentes en los ecosistemas locales. Destacados miembros del gobierno, empresarios, inversionistas, desarrolladores y varias sorpresas.


No pierdas tiempo, ve al sitio del Developer Bus y registrate para participar; estamos buscando talentosos desarrolladores, diseñadores y gente de negocios.

¡Te esperamos en el Developer Bus!

Fotografía Francisco Solsona
Francisco Solsona   +solsona | @solsona 

Francisco es director de relaciones para desarrolladores en América Latina norte para Google y se enfoca en fortalecer la comunidad de desarrolladores ejecutando programas estratégicos y empoderando a desarrolladores promoviendo eventos de alta calidad; así como fomentando su relación con inversionistas, empresas e instituciones educativas.

MOOCs de Udacity: ahora también en español y portugués

Author PhotoPor Peter Lubbers, Chrome Developer Relations

Cursos en Línea Masivos y Abiertos o MOOC (siglas en inglés de massive open online courses) como el curso gratuito Udacity HTML5 Game Development course (CS255) tienen la increíble habilidad de llegar a una audiencia global, sin embargo, las barreras del idioma impiden que participen muchos estudiantes. Hoy anunciamos algunos pasos que hemos dado para romper dichas barreras.

Como parte de una iniciativa para apoyar a desarrolladores en mercados emergentes con entrenamiento de alta calidad en otros idiomas, Google financió un proyecto para traducir una buena porción del programa para desarrollo web de Udacity, tanto a español como a portugués brasileño. Específicamente, hicimos equipo con Udacity para agregar subtítulos traducidos para CS253 (desarrollo Web), CS255 (juegos en HTML5) y CS256 (Desarrollo web móvil, a punto de iniciar—¡regístrate gratis hoy mismo!).

+Nick Bortolotti, Developer Relations Program Manager en Google Buenos Aires, quien jugó un papel fundamental para empujar este proyecto dijo: "Esta es una contribución enorme para el ecosistema y la comunidad regional. Estoy muy emocionado por las nuevas formas y posibilidades. Estoy seguro que este contenido de alta calidad, por oradores de alto nivel, será una inspiración para desarrolladores talentosos latinoamericanos."

screenshot from Udacity course
 ¡Que empiece la fiesta!

Para ver las traducciones en vivo ve a, por ejemplo, www.udacity.com/course/cs255 e inicia la clase. Cuando estés en el salón viendo los videos, has click en el botón de Closed Captions (CC) en el visor de YouTube y selecciona Spanish (Mexico) o Portuguese (Brazil), para subtítulos en español y portugués, respectivamente.

Uno de los estudiantes de CS255, Edwin Rodolfo Maldonado Perez de la Ciudad de Guatemala en Guatemala, dijo: "En América Latina, si estudias en una escuela pública, no te enseñan un segundo idioma como el inglés. Cuando esos estudiantes de escuelas públicas crecen y buscan trabajo, no tienen tiempo o dinero para asistir a una escuela de idiomas. A partir de ahí es un problema del huevo y la gallina, donde para obtener un nuevo trabajo o mejorar tus habilidades técnicas, como aprender un nuevo lenguaje de programación, te encuentras con que casi toda la documentación está en inglés."

Las traducciones para CS253 y CS255 ya están vivas. ¡Que las disfrutes!


+Peter Lubbers es un Program Manager en el equipo Chrome Developer Relations, difundiendo las cosas buenas de HTML5 y Open Web. Es fundador del Grupo de Usuarios de HTML5 de  San Francisco --la primera y más grande reunión de desarrolladores HTML5 en el mundo, con más de 8,000 miembros. Peter es autor de "Pro HTML5 Programming" (Apress) y, si, la placa de su automóvil es HTML5. En sus ratos libres disfruta corriendo alrededor del lago Tahoe, sin parar, y lanzarse desde aviones.

Versión original publicada por +Scott Knaster, Editor.
Publicado en español por +Francisco Solsona, Developer Relations Regional Lead