search
top

Pruebas automatizadas para aplicaciones móviles: Calabash for dummies (2/2). Calabash y BDD

Si utilizamos BDD (entendiendo qué es BDD), el uso de Calabash nos va a resultar de gran utilidad. Esto es así, debido a que hace uso de Gherkin el cual nos permite escribir especificaciones en un lenguaje natural y comprensible por todo el mundo, tanto negocio como desarrollo como QA.

Una vez que tengamos instalado Calabash, accediendo a la carpeta (en mi caso es la siguiente ruta C:\Ruby193\lib\ruby\gems\1.9.1\gems\calabash-android-0.5.14) podemos ver una carpeta que contiene el esqueleto de Calabash (features-skeleton).

Esqueleto calabash

El archivo .feature que se crea por defecto contiene lo siguiente:

scenario

La carpeta step_definitions contendrá un archivo con extensión .rb llamado “calabash_steps.rb” donde se añadirán los pasos a seguir de nuestro escenario. Además hay que añadir “require ‘calabash-android/calabash_steps’” para poder hacer uso y todos los pasos/usos que proporciona Calabash . Aquí puedes ver ejemplos de pasos que se pueden hacer o aquí.

calabash steps

En la carpeta support uno de los archivos que nos encontramos es “env.rb” donde se le indica a Cucumber qué librerías tiene que cargar. En este archivo hay que añadir en ese archivo la línea de código “require ‘calabash-android/cucumber’”.

calabash cucumber

A continuación os dejo un ejemplo de una feature (ya sabéis, uno o más escenarios, que corresponde más o menos a los posibles resultados de los casos de uso) y el código para pasar los casos de pruebas (step_definitions) usando Cucumber y Calabash.

scenario ejemplo

STEPS SINGIN32

Como ya he comentado, la primera imagen de arriba es un archivo .feature de Cucumber y Calabash. Un archivo .feature describe el comportamiento previsto de la aplicación. En el ejemplo tenemos una función que describe la funcionalidad de registrarse en una página.

 Cada línea después de “Scenario” corresponde a un paso. En Calabash, se puede hacer una de las siguientes cosas:

  • Hacer una acción del usuario (como un toque en la pantalla, deslizar el dedo, desplazamiento, etc.),
  • Hacer una afirmación (como “Then I should see details for…”)
  • O tomar una captura de pantalla.

En la segunda imagen vemos el código para que pase esos casos de prueba, añadiendo en la primera línea de código “require ‘calabash-android/calabash_steps’” como decía anteriormente.

Funcionalidades como por ejemplo screen-shot hace una captura de cómo la aplicación se ve en un momento determinado durante la prueba. Las imágenes pueden ser revisadas debido a errores gráficos, algo difícil de hacer mediante afirmaciones, además comparar las capturas de cientos de dispositivos de diferentes sistemas operativos puede ser realmente útil. Este tipo de informe de pruebas visuales, es parte de lo que ofrece el Servicio LessPainful.

 

¿Por qué Calabash?

A día de hoy, existen muchos frameworks, para la automatización de pruebas de aceptación, como son robotium, appium… no obstante a continuación, os voy a resumir algunas ventajas de usar Calabash:

  • Como ya he mencionado antes, es multiplataforma (Android e iOS)
  • Se puede configurar para ejecutarse en cientos de diferentes dispositivos.
  • Permite el testing sobre aplicaciones nativas, ya sabes aquellas que se programan teniendo en cuenta las particularidades de cada plataforma, e híbridas.
  • Como ya he dicho, independiente del lenguaje utilizado en el desarrollo.
  • Open source.

 

 Terminando…

A pesar de haber diferentes opciones para automatizar pruebas de aceptación para apps móviles como por ejemplo los ya mencionados appium o robotium, usar Calabash es la mejor opción para BDD, sobre todo gracias a Gherkin, ya que representa la forma en la que se escriben estas pruebas en texto plano, (igual en un futuro escribo comparando todas estas opciones). Desde luego, con todo lo que nos aporta esta buena práctica, merece la pena llevarla a cabo.

 

María Morales

María Morales

Practitioner at 233 Grados de TI
Interesada y apasionada en todo aquello que tenga relación con metodologías ágiles y calidad software, gestión de proyectos, modelos de procesos, DevOps y sobre todo en gestión de equipos.

Actualmente, colabora activamente con la Empresa y Comunidad 233, dando formación y mentoring ágil además de organizando eventos, charlas e iniciativas para difundir el conocimiento sobre Ingeniería del Software.

Profesionalmente dedicada al mentoring ágil en 233 Grados de TI, calidad software, testing ágil, a la implantación en importantes organizaciones de Scrum, agilidad, DevOps, Product Owner, peopleware, automatización de pruebas web y móviles con BDD, Calabash.

Certificada por la Scrum Manager como Scrum Manager con credenciales de profesora, entre otras certificaciones, como por ejemplo en GIT y GitHub.
María Morales

3 Respuestas to “Pruebas automatizadas para aplicaciones móviles: Calabash for dummies (2/2). Calabash y BDD”

  1. Eider Mauricio Aristizábal Erazo dice:

    Hola!
    Tengo las siguientes inquietudes:

    1. ¿Es necesario instrumentar el código fuente de la aplicación para poder automatizarla?
    2. ¿Funciona para aplicaciones nativas Android?

  2. María dice:

    Hola Eider.

    ¿En primer lugar, a que te refieres con instrumentar el código fuente?

    En cuanto a la segunda pregunta, permite el testing sobre aplicaciones nativas e híbridas.

  3. Álvaro dice:

    Hola Maria,

    Antes de nada felicitarte por las publicaciones, estoy comenzando en el mundillo de automatización móvil y me resulta muy interesante.

    En mi caso, necesito automatizar muchos test de aplicaciones a terceros (e.g establecer una llamada de VoIP entre dos usuarios de WhatsApp) ¿Podrías hacer esto con Calabash? ¿Alguna recomendación para este tipo de pruebas?

    Muchas gracias!

Dejar una respuesta

Tu dirección de correo electrónico no será publicada.

top