Appium: un aliado para la automatización de pruebas en aplicaciones móviles
Vivimos en un mundo donde las aplicaciones móviles se han convertido en herramientas básicas de nuestra vida cotidiana. A través de ellas y desde la comodidad de la palma de nuestra mano, podemos acceder a nuestras redes sociales, navegar por la web o consultar nuestro e-mail, entre un sinfín de otras posibilidades.
No obstante, a muchos nos ha pasado de toparnos con distintos errores al utilizar nuestras aplicaciones predilectas; errores que incomodan bastante nuestra experiencia de usuario. Aplicaciones que se cierran solas o que simplemente no hacen lo que deberían, son algunos de los típicos errores a los que nos podemos enfrentar.
Por razones obvias, para los desarrolladores de aplicaciones móviles es deseable poder detectar y corregir estos errores cuanto antes, sobre todo, antes de que la aplicación pase a manos de los usuarios o clientes finales. Para conseguir esta detección temprana de errores, se debe someter la aplicación a un proceso de inspección y pruebas llamado Testing, que asegure el correcto funcionamiento de la misma.
Appium al rescate
Es sabido que hoy en día existen una enorme variedad de dispositivos y plataformas móviles (como Android e iOS), las cuales, a su vez, cuentan con distintas versiones. Esto lleva a que el Testing de aplicaciones móviles puede volverse bastante complejo y demandarnos mucho tiempo y esfuerzo. Pero es aquí en donde Appium nos puede dar una gran mano.
Appium es una herramienta o más precisamente, un servidor escrito en node.js, que permite ejecutar pruebas para verificar automáticamente las propiedades y el comportamiento de los distintos elementos (botones, cajas de texto, listados, etc.) que componen la interface gráfica de una aplicación móvil. Por comportamiento de los elementos entiéndase el resultado o la acción que esperamos al interactuar con los mismos.
Por ejemplo, supongamos que queremos probar el inicio de sesión en una determinada app, prueba que por lo general supone ingresar distintas combinaciones de nombre de usuario y contraseñas válidos e inválidos, en campos de texto de un formulario, para luego hacer tap en un botón que envía dichos datos para que sean verificados. Todas estas acciones pueden ser realizadas automáticamente por pruebas que le indiquen a Appium cómo y dónde localizar los elementos (campos de texto y botón, en este caso) y qué datos (usuario y contraseña) o acciones (tap en botón) se deben realizar. Asimismo, luego de realizadas ciertas acciones, vamos a poder recuperar datos y propiedades de los elementos de la interface gráfica de la aplicación, para comprobar que las mismos sean correctos.
Entonces, gracias a Appium, podremos verificar automáticamente el funcionamiento de nuestra aplicación en una variedad de dispositivos y plataformas móviles. Esto sin dudas representa una enorme ventaja, puesto que estamos ahorrando todo el tiempo y el esfuerzo que nos llevaría ejecutar todas esas pruebas manualmente.
Una herramienta para múltiples plataformas y tipos de app
Otro aspecto interesante de Appium es que es independiente de la plataforma móvil. Esto significa que las pruebas que se ejecutan con Appium corren en todas las plataformas móviles soportadas: Android, iOS y FirefoxOS, sin la necesidad de adaptarlas a cada plataforma específica. Este aspecto resulta muy ventajoso, ya que si, por ejemplo, queremos probar el funcionamiento de una aplicación móvil que está disponible para Android e iOS, escribimos las pruebas por única vez y luego podremos ejecutarlas contra la app instalada en ambas plataformas, siendo Appium el que se encarga de “traducir” los comandos de nuestras pruebas a comandos específicos de cada plataforma.
Finalmente, la última característica destacable de Appium es que nos permite ejecutar pruebas automatizadas para los tres tipos de aplicaciones móviles:
- Nativas: aquellas que se desarrollaron utilizando el conjunto de herramientas de desarrollo, provistas por la propia plataforma (Android, iOS, etc.), conjunto que comúnmente se denomina SDK (Software Development Kit, por sus siglas en inglés).
- Mobile web: son aplicaciones desarrolladas utilizando los lenguajes de la web: HTML5, CSS y JavaScript, de manera que son accedidas desde el navegador web de nuestro dispositivo móvil.
- Híbridas: como su nombre lo indica, son una combinación entre una app nativa y una web mobile, ya que se ejecutan dentro de un contenedor nativo conocido como WebView, que permite acceder tanto al contenido web de la app (parte web mobile) como a algunas acciones nativas de la plataforma (parte nativa).
Autor: Mauricio Camacho – Equipo de QA de Fx2 (a.k.a. @MCamachoX)
Link de interés: http://appium.io/