Xamarin Test Cloud que es

Los usuarios móviles están quizás entre los consumidores más exigentes de software hoy en día, y esperan que las aplicaciones móviles sean sensibles, libres de errores y de bajo costo. Las aplicaciones que no cumplan con esta expectativa se desinstalarán rápidamente y se le asignará una calificación muy baja.

La forma más efectiva de validar el comportamiento de una aplicación es ejecutándola y usándola. Si se comporta como se esperaba, sin fallar o devolver resultados incorrectos, entonces la aplicación está en buena forma y puede ser liberada a los usuarios sin preocuparse de que causará frustración o será inutilizable. Este proceso, de probar la interfaz de usuario mediante el uso de una aplicación y la interacción con ella, se conoce como prueba de aceptación de la interfaz de usuario.

Tradicionalmente, sin embargo, la aceptación de interfaz de usuario ha sido extremadamente caro debido a su naturaleza manual. Históricamente ha requerido mucha mano de obra para desplegar la aplicación y luego usarla, verificando que se comporta correctamente. Multiplicar que por cada construcción que necesita pruebas, así como cada dispositivo y sistema operativo en el que se necesita la prueba, y el costo puede dispararse exponencialmente, lo que significa que las pruebas de aceptación de la interfaz de usuario ha estado fuera del alcance de casi todas las organizaciones, .

Xamarin Test Cloud es una solución basada en la nube que proporciona herramientas que admiten pruebas automatizadas de aceptación de la interfaz de usuario de aplicaciones móviles a través de cientos de dispositivos diferentes. Esto permite a cualquier persona asegurarse de que su aplicación se realiza correctamente y eficientemente a través de una variedad de dispositivos con el mínimo esfuerzo. Además, debido a que se basa en la nube, los esfuerzos de mantenimiento y adquisición se eliminan del consumidor de prueba, que puede centrarse en comprobar que la aplicación funciona correctamente.

El ecosistema Xamarin Test Cloud consta de las siguientes partes:

  • Xamarin.UITest – Este es un marco que permite que las pruebas se escriban en C # utilizando la popular biblioteca de pruebas de NUnit. Este marco es adecuado para los equipos que ya están capacitados para escribir pruebas NUnit y / o desarrollar sus aplicaciones móviles con Xamarin.
  • Test Cloud – Test Cloud es un servicio basado en la nube que consiste en miles de dispositivos móviles físicos. Los usuarios suben sus aplicacionesy pruebas a Test Cloud, que instalará las aplicaciones en los dispositivos y ejecutará las pruebas. Cuando se completan las pruebas, Test Cloud, los resultados se ponen a disposición de los usuarios a través de un fácil de usar e informativo basado en front-end para web.

 

  • Xamarin Test Recorder – Esta herramienta, todavía en desarrollo, puede simplificar la creación de pruebas y es ideal para alguien que es nuevo en Xamarin.UITest y no está familiarizado con las API. Los probadores pueden iniciar Test Recorder, conectarlo al dispositivo, simulador o emulador, y luego empezar a usar la aplicación para móviles. Test Recorder capturará las interacciones entre el usuario y la aplicación móvil y emitirá un Xamarin.UITest en C # para ese escenario.

El sistema Xamarin Test Cloud proporciona las bibliotecas y herramientas que permiten a los equipos crear pruebas automatizadas, ejecutarlas en una multitud de dispositivos y validar que el comportamiento es correcto. La aplicación móvil y las pruebas se suben a Xamarin Test Cloud, que instalará la aplicación y ejecutará las pruebas en cientos de dispositivos físicos. Esto se conoce como una prueba de ejecución . Cuando se complete la prueba, Test Cloud enviará una notificación con los resultados de la prueba. Este flujo de trabajo se puede ver en el siguiente diagrama:

La ejecución de prueba puede realizarse manualmente por un usuario o como parte de un flujo de trabajo de Integración continua (CI) que envía automáticamente nuevas compilaciones de aplicaciones a Xamarin Test Cloud cuando se comprueban los cambios de código:

 

La anatomía del marco de la nube de la prueba

Las interacciones automatizadas con una aplicación móvil requieren algún tipo de biblioteca de automatización que simule la acción de un usuario y permita que la prueba compruebe el estado de la interfaz de usuario para probar que la aplicación funciona correctamente. Tanto Android como iOS tienen sus propios marcos de automatización de UI propietarios. Estos dos conjuntos muy diferentes de API de prueba resultarían desafiantes para un probador que quiere escribir pruebas de plataforma cruzada. Para ayudar a resolver la preocupación, se instalarán uno o dos componentes auxiliares en el dispositivo móvil junto con la aplicación:

  • Xamarin Test Cloud Agent – Este es un servidor HTTP ligero que interactúa con las pruebas a través de JSON a través de HTTP. El Xamarin Test Cloud Agent es un intermediario que tomará las consultas (y en algunos casos, acciones) de las pruebas y las realizará en la aplicación que está siendo probada. El Xamarin Test Cloud Agent es necesario para las aplicaciones de Android y iOS, y tiene un papel ligeramente diferente en cada plataforma.

 

  • DeviceAgent – Se instala sólo las aplicaciones iOS que se construyen con Xcode 8. Lógicamente es muy similar a t Xamarin Test Cloud Agent – es responsable de realizar gestos y consultas avanzadas en las vistas de iOS, pero lo hace utilizando un conjunto diferente de API de prueba.

Xamarin Test Cloud Agent en Android

En Android, el Agente de Cloud Test de Xamarin es responsable de usar las API de automatización de Android para controlar la interfaz de usuario y localizar las vistas para que una prueba pueda interactuar con ellas. Se incluye en un APK separado y se ejecuta como una aplicación independiente, que tiene permiso para automatizar la aplicación bajo prueba. Esto es posible, porque cuando la prueba se implementa en el dispositivo móvil, UITest firmarán ambos paquetes de aplicaciones con la misma clave.

Xamarin Test Cloud Agent en iOS

Cloud Agent de prueba tiene un papel ligeramente diferente en las aplicaciones de iOS; por sí mismo, no automatiza la aplicación que se está probando. En su lugar, el Agente de la nube de prueba interrogará la ventana activa y recuperará información sobre las vistas para el usuario. La información de vista se devuelve al script de prueba. A continuación, el script de prueba automatizará la aplicación iOS con la ayuda de otro componente denominado DeviceAgent . El DeviceAgent simulará los gestos y las acciones para la prueba (usando la API de automatización proveer con Xcode 8) y si es necesario devolver el resultado de esas interacciones a la prueba:

El agente Xamarin Test Cloud está disponible a través de un paquete NuGet y debe incluirse en el paquete de aplicaciones antes de que se pueda ejecutar una prueba. El agente Xamarin Test Cloud sólo debe incluirse en las compilaciones de depuración de la aplicación. Apple rechazará las aplicaciones que se envíen con el Agente de Cloud de Prueba de Xamarin vinculado al Paquete de aplicaciones.

Las versiones más recientes de Calabash y UITest soportan pruebas con Xcode 7 y Xcode 8. El verison de Xcode usado para construir la aplicación determinará qué API de automatización nativa se usa para automatizar la aplicación. El Marco de pruebas y compatibilidad con iOS para Calabash está determinado por la versión de Xcode que se utiliza. Vea la tabla abajo:

VERSIÓN DE IOS LOCAL CON XCODE 7 LOCAL CON XCODE 8
iOS7 UIAutomation n / A
IOS 8 UIAutomation n / A
IOS 9 UIAutomation DeviceAgent
IOS 10 n / A DeviceAgent

Por ejemplo, un Mac con Xcode 8 instalado podrá probar en dispositivos que ejecutan iOS 10 o iOS 9 usando DeviceAgent, pero no podría probar en iOS 8 o inferior.

El paquete NuGet de Agente de la nube de prueba de Xamarin es solo para aplicaciones Xamarin.iOS; No está disponible (o requerido) para las aplicaciones de Xamarin.Android.

Ejecución de pruebas en Xamarin Test Cloud

Ejecución de pruebas en Xamarin Test Cloud es conceptualmente similar a ejecutar pruebas localmente, excepto que Xamarin Test Cloud alberga las pruebas y las ejecutará en dispositivos seleccionados:

Para facilitar esto, las pruebas se cargan junto con la aplicación cuando se envía a Xamarin Test Cloud para pruebas. Xamarin Test Cloud reiniciará el dispositivo en un estado limpio, instalará la aplicación y ejecutará las pruebas.

Limitaciones

Las pruebas que se envían a Xamarin Test Cloud se añaden a una cola y se ejecutarán cuando los dispositivos estén disponibles. Una vez que ha comenzado una prueba, están sujetos a las siguientes limitaciones de tiempo en un dispositivo:

  • Las pruebas para una suscripción pagada se limitan a 360 minutos.
  • Las pruebas de una cuenta de prueba están limitadas a 90 minutos.
  • Las pruebas para una cuenta de la Universidad Xamarin están limitadas a 30 minutos.
  • Los Xamarin.UITests individuales no pueden exceder de 30 minutos cada uno.
  • Los pasos de Calabash individuales no pueden exceder de 10 minutos cada uno.
  • Las cuentas de la prueba y de la universidad se limitan a 10 funcionamientos de prueba por día.

ℹ Los tiempos anteriores no incluyen la espera de que un determinado dispositivo esté disponible, los dispositivos muy utilizados pueden requerir una larga espera.

No es posible realizar una prueba en Xamarin Test Cloud para realizar, simular / emular o controlar lo siguiente:

  • Regulación de la red
  • Inicio de la aplicación en la orientación específica del dispositivo
  • VPN en la red corporativa en lugar de abrir puertos al firewall
  • Integración con otras aplicaciones instaladas en el dispositivo

Xamarin Test Cloud no puede admitir las siguientes características de hardware:

  • Bluetooth
  • Aceleración WiFi
  • Cámara
  • Físicamente girando el dispositivo
  • Simulación de diferentes condiciones de la batería

Traducido al español de la documentación oficial

https://developer.xamarin.com/guides/testcloud/introduction-to-test-cloud/#The_Anatomy_of_the_Test_Cloud_Framework

Una aplicación de Azure IOT y Mobile de ejemplo

Hoy me puse depurar el proyecto MyDriving de Microsoft una serie de aplicaciones que demuestran el diseño e implementación de una solución completa de Internet de Cosas (IoT) que recopila la telemetría de los dispositivos, procesa esos datos en la nube y aplica el aprendizaje de la máquina para proporcionar una respuesta adaptativa. La demostración registra datos sobre viajes en automóvil utilizando tanto un teléfono móvil como un adaptador de Diagnóstico a bordo (OBD) que recopila información del sistema de control de su vehículo. El backend Azure utiliza estos datos para proporcionar retroalimentación sobre su estilo de conducción en comparación con otros usuarios.

Repositorio en

https://github.com/lawebdeprogramador/MyDriving