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

appium

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 鈥渢raducir鈥 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:

descarga (2)

  • 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/