Azure DevOps y App Center en lugar de granjas de prueba: simplifique y acelere el desarrollo móvil con servicios en la nube

Las pruebas de alta calidad aseguran la velocidad y el funcionamiento estable de las aplicaciones móviles, pero una variedad de dispositivos, sistemas operativos y sus versiones inflan las granjas de prueba, aumentan el costo de desarrollo y requieren mucho tiempo y esfuerzo. En este artículo, le mostraremos cómo reducir los costos de prueba con el servicio en la nube Visual Studio App Center, que integra más de cuatro mil dispositivos con diferentes sistemas operativos, y simplificar la distribución con la plataforma Azure DevOps.



Cómo probar aplicaciones móviles y cómo un desarrollador se parece a un agricultor


Uno de los principales problemas del desarrollo móvil es el mercado abarrotado. Según estudios de Adweek, Sensor Tower y Think with Google, el 80% de las aplicaciones no llegan a los usuarios debido a la baja calidad.



El éxito de la mayoría de las aplicaciones de campeón es fugaz. Durante un mes, los 25 principales se actualizan en un 74%. ¡Resulta que las tres cuartas partes de los líderes pierden sus posiciones en 30 días! Una de las principales razones de la decepción son los problemas con la velocidad: el 68% de los usuarios abandonan la aplicación y eligen otra si no se cargó en seis segundos.

Pero la aplicación no solo debe cargarse rápidamente, sino que también debe funcionar correctamente. Por lo tanto, implementar actualizaciones sin pruebas complejas en todos los tipos posibles de dispositivos y sistemas operativos es un riesgo injustificado. Pero en la práctica, esto no es tan simple: la increíble cantidad de teléfonos inteligentes, tabletas, sistemas operativos y sus versiones nos obliga a crear enormes matrices de prueba.



Si consideramos los sistemas operativos móviles, con iOS las cosas son más o menos malas. Por ejemplo, el año pasado la mayoría de los usuarios se sentaron en silencio en iOS 12. Es bueno desde el punto de vista de las pruebas que todos los dispositivos sean lanzados por un solo fabricante.



Android es más complicado: hay muchos tipos de sistemas operativos y sus versiones, entre los cuales es difícil destacar a los principales líderes. Y cada fabricante (Samsung, Xiaomi, Sony, etc.) tiene sus propios lanzadores no estándar, hacks, cambios en el sistema operativo y los servicios. Debido a esto, las granjas de pruebas móviles pueden contener decenas a cientos de dispositivos. Por ejemplo, en la foto, una granja de pruebas móviles de uno de los desarrolladores del juego.



Las granjas requieren apoyo continuo. Los dispositivos deben mantenerse actualizados, volviendo periódicamente a la configuración predeterminada, teniendo en cuenta la depreciación, etc. Los dispositivos en las granjas se deprecian y se vuelven obsoletos; debe actualizarlos constantemente para mantenerse al día con los dispositivos que utiliza su audiencia de aplicaciones. Y lo más importante, es difícil proporcionar acceso a dicha granja a un equipo distribuido de desarrolladores y evaluadores ubicados en diferentes ciudades. 



Después de realizar pruebas de "inicio", debe enviar la aplicación para probarla en dispositivos reales. La mejor manera es dar acceso temprano a la versión beta a sus empleados o personas externas, por ejemplo, fanáticos de la aplicación y fanáticos de nuevos productos. Los usuarios obtienen las primeras versiones, los desarrolladores tienen la oportunidad de probar todo lo que quieren en ellos. En esta etapa, necesitamos análisis complejos: qué funciones usa el usuario, qué pantallas accede con mayor frecuencia, cuánto tiempo pasa allí.

App Center –– una alternativa a las granjas




Microsoft mismo enfrentó el problema de probar aplicaciones móviles: en algún momento, el número de aplicaciones en desarrollo en MS superó las cien. Para simplificar esta tarea, una empresa basada en la nube de Xamarin creó el servicio en la nube de App Center: contiene miles de dispositivos reales en los que los desarrolladores pueden ejecutar pruebas sin preocuparse por comprar y mantener su propia granja.

App Center se puede conectar a GitHub, Bitbucket, GitLab o Azure DevOps. Visual Studio App Center cubre todos los marcos de desarrollo populares, lo que le permite crear y probar aplicaciones para todas las plataformas comunes.

Es como si el dispositivo estuviera en su infraestructura, por lo que puede organizar el proceso de integración continua (integración continua): el desarrollador confirma el código en el proyecto, inmediatamente la aplicación se construye automáticamente, se extiende a los dispositivos de prueba, se inician las pruebas. 

Beneficios de App Center




Más de cuatro mil dispositivos en la nube. Estos son dispositivos vivos reales. Cada modelo se presenta en varias copias. Durante las pruebas, puede tomar capturas de pantalla, mirar la aplicación a través de los ojos de los usuarios. Hay información detallada sobre cada dispositivo: quién lo produjo, qué recursos tiene, qué carga de CPU, velocidad de ejecución de la aplicación.



La presencia del SDK - kit de desarrollo de software , que está integrado en la aplicación y recopila datos: con qué éxito la instalación y el lanzamiento, cuántas fallas, fallas. Desde dispositivos en los que algo cayó, puede recolectar volcados, ver lo que sucedió durante la prueba de la aplicación. Esto facilita enormemente la solución de problemas de la aplicación. 



Informes detallados de prueba.Si la prueba no funciona con algún tipo de error, se toma una captura de pantalla de la pantalla del dispositivo en el que se realiza la prueba, en el momento en que la prueba tropieza con algo. Y vemos si la aplicación funciona o no y dónde se topa con problemas como resultado de una ejecución de prueba.



Colección de registros de operaciones del dispositivo , volcados de memoria, seguimientos de pila, informes de prueba para diagnosticar y solucionar problemas. Puede acceder a los dispositivos, bombear los registros y estudiar cuál era la carga en el procesador, cuánta memoria estaba ocupada. Tales cosas lo ayudarán a comprender rápidamente cuál fue el problema, por qué la aplicación se bloqueó o la prueba falló.



Análisis de uso de aplicaciones: qué tan rápido responde, cuánto tiempo lleva cambiar entre pantallas, qué rutas recorren los usuarios dentro de la aplicación y llegar a las pantallas. Puede averiguar en qué plataformas y versiones de SO su audiencia está utilizando la aplicación. Esto ayuda a ver la audiencia y los dispositivos, para comprender qué características pueden obtener estos dispositivos fácilmente. Y, en general, ¿puede la aplicación funcionar correctamente en los dispositivos de los usuarios? Tal análisis le permite priorizar las pruebas para varias plataformas y reducir la matriz de pruebas.



Proceso de distribución automatizado único. Si la aplicación está escrita para varios mercados, por ejemplo, para iOS y Android, entonces tiene que hacer mucho trabajo manual en el proceso de publicación de la aplicación. App Center tiene la capacidad de automatizar la distribución, y tan pronto como la aplicación haya pasado todas las pruebas, la compilación resultante se envía a las tiendas de forma automática o después de la aprobación del desarrollador.



Las actualizaciones automáticas se envían a probadores beta y grupos de usuarios internos después de cada confirmación. No es necesario enviar nada manualmente, además, el proceso le permite recibir comentarios rápidos de los evaluadores.

Cómo comenzar con App Center


Regístrese en el servicio y obtenga un período de prueba gratuito. Veamos cómo se ve en el mundo real.



La interfaz web del App Center es simple.



El proceso de creación de una nueva aplicación no es menos simple: especificamos el nombre, la plataforma y el sistema operativo.



Indicamos en qué repositorio se encuentra el código, después de lo cual comienza la sincronización automática.



Cuando se desarrolla para iOS, generalmente se requiere una MacBook para compilar la aplicación. Pero Appcenter le permite no tenerlo; implementa una máquina virtual especial en OSX con todas las herramientas necesarias. Puede agregar bibliotecas si necesita algo no estándar, que no sea un sistema limpio.



Una ventana con una terminal abierta. Se puede ver lo que sucede dentro de la máquina virtual. Los paquetes se agregan, se instalan usando NuGet. Tan pronto como la máquina virtual esté lista, comienza el proceso de compilación y ensamblaje. Por cierto, si hay un problema con la compilación, los registros se pueden descargar fácilmente desde esta interfaz.

¿Cómo se hace la compilación? Microsoft negoció con Apple y obtuvo una licencia para instancias virtuales de MacOS que se ejecutan dentro de la máquina virtual para realizar compilaciones. Entonces, desde el punto de vista de las licencias, todo está limpio, ¡Microsoft se ha encargado de todo!



La compilación está lista, es hora de probar la aplicación. Abra el conjunto de dispositivos y seleccione el dispositivo.



Para cada dispositivo, puede ver las características del modelo, las especificaciones, la versión del sistema operativo, la cantidad de dispositivos disponibles simultáneamente en la nube y otros parámetros.



Una vez que se ha creado el conjunto de dispositivos de prueba, las pruebas se llevará a cabo a su vez en cada uno de ellos. Por defecto, en la versión básica, las pruebas se realizan en un solo hilo. Puede variar la matriz de prueba ejecutando algunas pruebas en un conjunto grande de dispositivos, algunos en uno pequeño.

El tiempo estimado para completar la prueba es de un minuto por pantalla de aplicación. Si tiene 30-40 pantallas, entonces la prueba tomará aproximadamente 30-40 minutos para cada dispositivo. Para acelerar, puede poner pruebas en múltiples hilos en paralelo en múltiples dispositivos. Tendrá que pagar extra por esta opción.



Aquí puede configurar la distribución automática después de pasar las pruebas: la versión se distribuirá automáticamente en las tiendas de aplicaciones.



Si necesita probar la aplicación en un grupo de usuarios, antes de lanzarla al mercado, cree grupos que se ajusten a los empleados o usuarios que son leales a la aplicación. Tan pronto como realicemos la distribución, todos recibirán un correo electrónico con un enlace único para descargar la nueva versión. Después de tales pruebas, puede recopilar telemetría de "usuarios de prueba" y ver cómo funciona la aplicación en su hardware.



Aquí es donde te conectas a los mercados.



Para diagnosticar la aplicación, debe conectar el SDK. Y todos los lugares del código donde algo puede caer, rodean, intentan y atrapan. Cuando la aplicación se bloquea en el dispositivo del usuario, puede recibir volcados de memoria y realizar diagnósticos.



Analytics muestra cómo los usuarios utilizan las aplicaciones: coloque el mismo SDK y vea qué eventos aparecen dentro de la aplicación, en qué orden los visitantes se mueven entre pantallas.



Una opción para recopilar datos, métricas, todo tipo de información general. Qué tan rápido se abre la aplicación, cómo funciona. Todo esto se realiza sobre la base de Azure Cosmos DB, donde puede ver análisis bastante avanzados.



El SDK permite a los usuarios enviar notificaciones push para llamar la atención o informar sobre nuevas versiones de la aplicación. No solo es conveniente, sino también beneficioso: tales mensajes son muchas veces más baratos que los SMS.



Dentro de la aplicación, los usuarios pueden segmentarse según diversos criterios: tipos de dispositivos, geografía, etc., y realizar actividades de marketing basadas en los grupos resultantes.

Componentes principales de Azure DevOps


Las características de App Center (dispositivos en la nube, compilaciones, pruebas y distribución de software) son solo parte del proceso de desarrollo que complementa Azure DevOps. Esta plataforma donde puede crear paneles y paneles de tareas, almacenar conocimientos sobre el proyecto en la wiki, usar el repositorio de archivos y artefactos. Y si tiene que trabajar con un transportador complejo de fabricación de software, aquí puede configurar tuberías, especificar dónde estarán las compilaciones.



  • Tableros: un conjunto de herramientas para planificar el trabajo, la discusión, el monitoreo, etc. Tableros Kanban, tableros, tableros Scrum: todo esto es fácilmente personalizable para los detalles del proyecto y las características del equipo.
  • Pipelines — . . Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android iOS, Kubernetes.
  • Repos — Git. Marketplace - REST API. .
  • Artifacts — - Maven, npm, NuGet Python . CI/CD.

App Center Azure DevOps


Al registrarse en Appcenter.ms puede usar todas las funciones del Centro de aplicaciones durante dos meses de forma gratuita. Después del período de prueba, una compilación costará $ 40 por mes, pero puede ejecutarla un número ilimitado de veces. Esto es claramente más rentable que tener su propia granja de prueba móvil.

Azure DevOps es un servicio completamente gratuito si tiene un equipo de un máximo de cinco desarrolladores o si está realizando algún proyecto OpenSource. Repositorios, repositorios de códigos, tuberías, tableros: todo esto se proporciona de forma gratuita. 

Si desea saber más sobre esto o comenzar a usar la plataforma ahora, entonces estará interesado en Dev Bootcamp , nuestro maratón en línea para desarrolladores. Durante el evento a realizarse25-29 , , , Open Source-, OpenSource . Microsoft, . , !

All Articles