Allá por verano, ya escribí acerca de la automatización de pruebas para aplicaciones móviles utilizando Calabash como framework, y el desarrollo guiado por el comportamiento, es decir, BDD (te dejo también un post sobre BDD):
- Pruebas automatizadas para aplicaciones móviles: Calabash for dummies (1/2).
- Pruebas automatizadas para aplicaciones móviles: Calabash for dummies (2/2). Calabash y BDD
Y además, hicimos un vídeo-demo, de 1 minuto, sobre cómo automatizar pruebas para aplicaciones móviles, lo puedes ver aquí.
Hoy con este post quiero ir más allá hablando de Xamarin Test Cloud para probar y ejecutar nuestras aplicaciones en cientos de dispositivos, ya que una de las características de Calabash (desarrollado por LessPainful y comprado por Xamarin) es estar vinculado con Xamarin Test Cloud.
¿Qué es Xamarin Test Cloud?
Tradicionalmente, hacer pruebas contra interfaz de usuario es muy costoso (ya lo decía Mike Cohn en su libro “Succeeding with Agile” ), se requiere una gran cantidad de mano de obra para implementar la aplicación, probarla y usarla verificando que se comporta correctamente.
Además, si multiplicas ese esfuerzo/coste por cada prueba que haya que hacer, así como por cada dispositivo en el que haya que probar, se dispara el coste de manera exponencial, lo que hace poco eficaz las pruebas contra interfaz de usuario.
Xamarin Test Cloud es un servicio basado en la nube que ofrece una forma automatizada de hacer pruebas de aceptación contra interfaz de usuario de aplicaciones móviles a través de cientos de diferentes dispositivos (puedes ver aquí esta colección de dispositivos) haciendo estas pruebas mucho menos costosas que manualmente.
Ejecutar la aplicación y las pruebas en Xamarin Test Cloud es conceptualmente similar a la realización de pruebas en local, a excepción de que Xamarin Test Cloud recoge las pruebas y las ejecutará en los dispositivos seleccionados (se pueden seleccionar en función del fabricante, del sistema operativo, o incluso su popularidad en el mercado).
Una vez que se ha desarrollado una funcionalidad y su prueba en local, estos se suben al Test Cloud que, instalará la aplicación y ejecutará las pruebas en cientos de dispositivos reales (los que hayas seleccionado). Una vez que todas las pruebas se han completado, Test Cloud enviará una notificación con los resultados de las pruebas.
En la siguiente imagen os dejo gráficamente este recorrido de manera muy sencilla:
Estas pruebas contra interfaz de usuario automatizadas pueden ser escritas usando dos framework:
- Xamarin.UITest: permite escribir los test en C# usando una librería muy popular para pruebas, como es Unit (puedes leer más sobre este framework aquí).
- Calabash: permite escribir los test en Ruby utilizando Cucumber, por ello es un framework muy adecuado para usar BDD, como os cuento en los post del principio (puedes leer más sobre Calabash aquí).
En 233 Grados de TI, usamos y recomendamos Calabash para estas pruebas porque usamos BDD para el desarrollo (aquí te dejo un post en el que te muestro las diferencias entre Calabash y Appium, otro framework de automatización de pruebas móviles), pero…
Qué framework debo usar… ¿Xamarin.UITest o Calabash?
En la propia página, Xamarín nos proporciona un diagrama de flujo a modo de guía general para ayudar a decidir qué framework utilizar para escribir pruebas de Test Cloud Xamarin, puedes ver este flujo aquí.
Básicamente este diagrama se resume en, si la aplicación se ha desarrollado con Xamarín utilizar el framework Xamarin.UITest, en caso contrario, utilizar Calabash para escribir nuestros test.
Utilizando App Explorer para probar la aplicación
Hay dos maneras de utilizar Test Cloud para probar la aplicación (no las únicas pero sí las más usadas). La primera de ellas, la que más fácil es Cloud App Explorer, en la cual básicamente se arrastra la aplicación al Test Cloud (ahora lo explico con más detalle).
La segunda opción es crear pruebas automatizadas contra interfaz de usuario utilizando el framework Calabash. Estas pruebas se cargan con la aplicación y son ejecutadas en Test Cloud. Las pruebas en Calabash son similares a las pruebas unitarias, excepto que prueban la interacción con la interfaz de usuario validando que el comportamiento sea correcto, mientras que las pruebas unitarias prueban y verifican el funcionamiento de partes específicas de una aplicación
App Explorer es muy fácil de usar, basta con desarrollar y generar la aplicación (un archivo .ipa para iOS, o un archivo .apk para Android), subir a la aplicación a la web Xamarin Test Cloud, elegir los dispositivos donde se quiere probar, comenzar las pruebas, y luego esperar los resultados, como bien se puede ver en la primera imagen.
App Explorer es una manera casi sin esfuerzo de hacer la validación a través de una variedad de dispositivos de forma rápida. Cuando App Explorer ejecuta en un caso de fracaso (por ejemplo, que la aplicación se bloquee, que haya algún tipo de error, etc.), informará del error y cuál fue la causa.
De manera muy resumida, App Explorer funciona definiendo en primer lugar diferentes “Tours” de su aplicación (un Tour es una serie de acciones tales como hacer clic en los botones, la navegación alrededor, etc.) en un único dispositivo de referencia, re-desplegando esa aplicación a todos los dispositivos que haya elegido para probarlo. Puedes leer más sobre esto aquí.
Terminando…
Todo esto que os estoy contando, permite a cualquier persona asegurar que su aplicación funciona correctamente y de manera eficiente a través de una variedad de dispositivos, con el mínimo esfuerzo. Debido a que el servicio de Xamarin está basado en la nube, los esfuerzos de mantenimiento y adquisición se retiran del consumidor, para que este pueda centrarse en su aplicación.
Algunas empresas que usan Xamarín son Microsoft que anunciaban en febrero de 2016 que adquirirán Xamarin para sus pruebas (aquí puedes ver más de por qué Microsoft adquiere Xamarín y su suite de herramientas), y también SAP usará Xamarín.
Hasta aquí el post de hoy, seguiré en post posteriores hablando de ello e investigando, puesto que me parece muy interesante y realmente efectivo =).
- Debes crear apps sin saber programar (no hay que saber nada) + Crea Test con IA + Scrum es el nuevo Excel - 12 septiembre, 2024
- Las 6 técnicas prompting + 1ª Ley del Manager Oscuro + Mantenlo sencillo, estúpido - 5 septiembre, 2024
- Guía de Métricas Ágiles (versión agosto 2024) - 22 agosto, 2024
Buenos días, apenas estoy empezando en este mundo de Xamarin, mi enfoque sera realizar las pruebas y la verdad estoy un poco enredada no se por donde empezar, si alguien pudiera ayudarme se lo agradecería mucho puesto que estoy muy interesada en esta metodología.