Pruebas automatizadas para aplicaciones móviles: Calabash for dummies (1/2)

Si ya conoces Calabash, y trabajas regularmente con ello, u otros frameworks para la automatización de pruebas de aceptación para aplicaciones móviles, ahórrate este post.
Siguiendo la línea de los post ¿Qué es Jenkins? Explicado en menos de 10 min para quienes no lo conocen o Simplifica drásticamente la administración de sistemas: Puppet en 10 min., este post está pensado para aquellos que no van a trabajar directamente con Calabash, pero están interesados en conocer este mundillo, y también para aquellos que sí que puede que algún día quieran implantar la automatización de pruebas de aceptación para aplicaciones móviles, y quieren empezar por aquí el camino que les queda por recorrer para conocer realmente esta práctica, y que en 10 min quieran quedarse con la idea principal. Así que ¡vamos allá!
Nota, si no estás familiarizado con BDD te recomiendo leer antes estos post:

 

¿Qué es Calabash?  

Calabash, traducido en español como calabaza, es un framework de software libre (mantenido aquí) que te permite escribir y ejecutar pruebas funcionales automatizadas contra la interfaz de usuario de una aplicación móvil, tanto en Android como en iOS (ya sea en dispositivos o en emuladores).
Resumidamente, Calabash funciona lanzando de manera automatizada interacciones de interfaz de usuario, como presionar botones, introducir texto, la validación de las respuestas, etc.
En la siguiente imagen se puede ver la estructura de cómo se integra Calabash, con los casos de prueba usando Cucumber (te recomiendo aquí, si no conoces Cucumber leer este post primero), y así ejecutar y validar las aplicaciones en Android e iOS:
estructura calabash
 

Las “queris” en Calabash

A día de hoy, se ha implementado un lenguaje de consulta para Calabash, Calabash Query Language (y se sigue trabajando en ello). La API de Calabash Android Ruby API y Calabash iOS Ruby API tienen métodos de consulta que seleccionan objetos visibles en la pantalla en tu aplicación. Los métodos de consulta cogen un argumento de tipo string que describe los objetos que se «consultan». La sintaxis de las consultas se basa en UIScript (aquí te dejo información sobre UIScript). Si quieres saber más sobre las consultas y las sintaxis de Calabash te dejo un link.
En la siguiente imagen, podemos ver una consulta, en la que  hay dos botones: una con el texto «Aceptar» para el botón con id  «Button1», y el otro con el texto «Rechazar» e id «button2». Además contiene la posición de cada uno de los botones, si están o no habilitados para su uso, etc.
consulta calabash
Acciones como tocar (u otros gestos) se puede hacer de dos maneras:  

  • Se puede hacer una consulta mediante touch function (por ejemplo touch(«button text:’Accept'»))
  • O se puede almacenar el resultado de una consulta pasado en una variable: btn = query(«button text:’Accept'»)  y luego touch(btn).

Además se puede navegar por la jerarquía de vistas, desplazarse de arriba a abajo, y también  se puede extraer propiedades por ejemplo texto de esta manera text(), getText() o isText().
Si quieres ver todos los comandos puedes usar query(«*»). Aquí puedes encontrar más información sobre las querys.

Terminando

Calabash fue desarrollado por LessPainful y comprado por Xamarin. Está basado en Cucumber y desarrollado en Ruby, no obstante, se pueden usar otros lenguajes, ya que Calabash es independiente del lenguaje utilizado para el desarrollo.
A parte de para ejecutar y validar pruebas de aceptación, otra de las grandes utilidades de Calabash es que al estar vinculado con Xamarín Test Cloud, los casos de prueba con Calabash se pueden configurar para ejecutarse en cientos dispositivos móviles proporcionando información en tiempo real entre otras cosas, permitiendo así comparar y validar fácilmente los resultados de las pruebas y el aspecto visual de su aplicación a través de diferentes dispositivos y diferentes Sistemas Operativos.
Calabash está pensado para ser usado en un modelo de Testing BDD, de esto ya hemos hablado mucho, si es necesario puedes leer los enlaces al principio de este post. En la segunda parte de este post, que saldrá el lunes que viene, trataré específicamente Calabash y BDD
 

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *