Azure DevOps et App Center au lieu de batteries de tests: simplifiez et accélérez le développement mobile avec les services cloud

Des tests de haute qualité garantissent la vitesse et le fonctionnement stable des applications mobiles, mais une variété d'appareils, de systèmes d'exploitation et de leurs versions gonfle les batteries de tests, augmente les coûts de développement et prend beaucoup de temps et d'efforts. Dans cet article, nous allons vous montrer comment réduire les coûts de test à l'aide du service cloud Visual Studio App Center, qui intègre plus de quatre mille appareils avec différents systèmes d'exploitation, et simplifier la distribution à l'aide de la plateforme Azure DevOps.



Comment tester des applications mobiles et comment un développeur ressemble à un agriculteur


L'un des principaux problèmes du développement mobile est le marché bondé. Selon les études d'Adweek, Sensor Tower et Think with Google, 80% des applications n'atteignent pas les utilisateurs en raison de leur mauvaise qualité.



Le succès de la plupart des applications championnes est éphémère. Depuis un mois, le top 25 est mis à jour de 74%. Il s'avère que les trois quarts des dirigeants perdent leurs positions en 30 jours! L'une des principales raisons de la déception est les problèmes de vitesse: 68% des utilisateurs quittent l'application et en choisissent une autre si elle ne se charge pas dans les six secondes.

Mais l'application doit non seulement se charger rapidement, mais également fonctionner correctement. Le déploiement de mises à jour sans tests complexes sur tous les types d'appareils et de systèmes d'exploitation possibles est donc un risque injustifié. Mais en pratique, ce n'est pas si simple: la quantité folle de smartphones, tablettes, systèmes d'exploitation et leurs versions nous oblige à créer d'énormes matrices de test.



Si nous considérons les OS mobiles, alors avec iOS, les choses ne sont pas mal du tout. Par exemple, l'année dernière, la plupart des utilisateurs se sont assis tranquillement sur iOS 12. Il est bon du point de vue des tests que tous les appareils soient commercialisés par un seul fabricant.



Android est plus compliqué: il existe de nombreux types d'OS et leurs versions, parmi lesquels il est difficile de distinguer les principaux leaders. Et chaque fabricant (Samsung, Xiaomi, Sony, etc.) a ses propres lanceurs non standard, hacks, changements dans le système d'exploitation et les services. Pour cette raison, les batteries de tests mobiles peuvent contenir des dizaines à des centaines d'appareils. Par exemple, sur la photo - une batterie de tests mobiles d'un des développeurs de jeux.



Les fermes ont besoin d'un soutien continu. Les appareils doivent être tenus à jour, en revenant périodiquement aux paramètres par défaut, en tenant compte de la dépréciation, etc. Les appareils dans les batteries de serveurs sont dépréciés et deviennent obsolètes; vous devez les mettre à jour en permanence pour suivre les appareils que votre audience d'application utilise. Et surtout, il est difficile de donner accès à une telle batterie à une équipe distribuée de développeurs et de testeurs situés dans différentes villes. 



Après avoir effectué des tests "à domicile", vous devez envoyer l'application à tester sur de vrais appareils. La meilleure façon est de donner un accès précoce à la version bêta à vos employés ou à des personnes externes, par exemple, les fans de l'application et les fans de nouveaux produits. Les utilisateurs obtiennent les premières versions, les développeurs ont la possibilité de tester tout ce qu'ils veulent sur eux. À ce stade, nous avons besoin d'analyses complexes: quelles fonctions l'utilisateur utilise, quels écrans accèdent le plus souvent, combien de temps il y passe.

App Center –– une alternative aux fermes




Microsoft lui-même a été confronté au problème du test des applications mobiles: à un moment donné, le nombre d'applications en cours de développement chez MS a dépassé la centaine. Pour simplifier cette tâche, une entreprise cloud de Xamarin a créé le service cloud App Center: il contient des milliers de vrais appareils sur lesquels les développeurs peuvent exécuter des tests sans se soucier d'acheter et de maintenir leur propre batterie de serveurs.

App Center peut être connecté à GitHub, Bitbucket, GitLab ou Azure DevOps. Visual Studio App Center couvre tous les cadres de développement populaires, vous permettant de créer et de tester des applications pour toutes les plates-formes courantes.

C'est comme si l'appareil était dans votre infrastructure, vous pouvez donc organiser le processus d'intégration continue (intégration continue): le développeur valide le code dans le projet, immédiatement l'application se construit automatiquement, se propage aux appareils de test, les tests sont lancés. 

Avantages d'App Center




Plus de quatre mille appareils dans le cloud. Ce sont de vrais appareils vivants. Chaque modèle est présenté en plusieurs exemplaires. Pendant les tests, vous pouvez prendre des captures d'écran, regarder l'application à travers les yeux des utilisateurs. Il y a des informations détaillées sur chaque appareil: qui l'a produit, quelles ressources il possède, quelle charge CPU, vitesse d'exécution de l'application.



La présence du SDK - kit de développement logiciel , qui est intégré dans l'application et recueille les données: le succès de l'installation et du lancement, le nombre d'échecs, les plantages. À partir d'appareils sur lesquels quelque chose est tombé, vous pouvez collecter des vidages, regarder ce qui s'est passé pendant le test d'application. Cela facilite grandement le dépannage de l'application. 



Rapports de test détaillés.Si le test ne fonctionne pas avec une sorte d'erreur, une capture d'écran est prise à partir de l'écran de l'appareil sur lequel le test est effectué, au moment où le test bute sur quelque chose. Et nous voyons si l'application fonctionne ou non et où elle tombe sur des problèmes à la suite d'un test.



Collection de journaux d'opération de périphérique , vidages de mémoire, traces de pile, rapports de test pour diagnostiquer et résoudre les problèmes. Vous pouvez accéder aux périphériques, pomper les journaux et étudier la charge du processeur, la quantité de mémoire occupée. De telles choses vous aideront à comprendre rapidement quel était le problème, pourquoi l'application s'est bloquée ou le test a échoué.



Analyse de l'utilisation des applications: la rapidité avec laquelle il répond, le temps qu'il faut pour basculer entre les écrans, les chemins empruntés par les utilisateurs dans l'application et les écrans. Vous pouvez savoir sur quelles plates-formes et versions de système d'exploitation votre public utilise l'application. Cela permet de voir le public et les appareils, de comprendre quelles fonctionnalités ces appareils peuvent facilement tirer. Et en général, l'application peut-elle fonctionner correctement sur les machines des utilisateurs. Ces analyses vous permettent de hiérarchiser les tests pour différentes plates-formes et de réduire la matrice de test.



Processus de distribution automatisé unique. Si l'application est écrite pour plusieurs marchés, par exemple, pour iOS et Android, vous devez effectuer un travail manuel important lors de la publication de l'application. L'App Center a la capacité d'automatiser la distribution, et dès que l'application a passé tous les tests, la version résultante est envoyée aux magasins automatiquement ou après approbation par le développeur.



Les mises à jour automatiques sont envoyées aux bêta-testeurs et aux groupes d'utilisateurs internes après chaque validation. Rien ne doit être envoyé manuellement, de plus, le processus vous permet de recevoir des commentaires rapides des testeurs.

Comment démarrer avec l'App Center


Inscrivez-vous au service et bénéficiez d'une période d'essai gratuite. Voyons à quoi cela ressemble dans le monde réel.



L'interface Web de l'App Center est simple.



Le processus de création d'une nouvelle application n'est pas moins simple: nous précisons le nom, la plateforme et le système d'exploitation.



Nous indiquons dans quel référentiel se trouve le code, après quoi la synchronisation automatique démarre.



Lors du développement pour iOS, un MacBook est généralement requis pour créer l'application. Mais Appcenter vous permet de ne pas l'avoir; il déploie une machine virtuelle spéciale sur OSX avec tous les outils nécessaires. Vous pouvez ajouter des bibliothèques si vous avez besoin de quelque chose de non standard, autre qu'un système propre.



Une fenêtre avec un terminal ouvert. On peut voir ce qui se passe à l'intérieur de la machine virtuelle. Les packages sont ajoutés, installés à l'aide de NuGet. Dès que la machine virtuelle est prête, le processus de compilation et d'assemblage démarre. Par ailleurs, s'il y a un problème avec la construction, les journaux peuvent être facilement téléchargés à partir de cette interface.

Comment se fait la compilation? Microsoft a négocié avec Apple et a obtenu une licence pour les instances MacOS virtuelles qui s'exécutent à l'intérieur de la machine virtuelle pour effectuer des builds. Donc, du point de vue des licences, tout est propre, Microsoft s'est occupé de tout!



La build est prête, il est temps de tester l'application. Ouvrez le jeu de périphériques et sélectionnez le périphérique.



Pour chaque appareil, vous pouvez afficher les caractéristiques du modèle, les spécifications, la version du système d'exploitation, le nombre d'appareils simultanément disponibles dans le cloud et d'autres paramètres.



Une fois votre ensemble d'appareils de test créé, des tests seront exécutés à tour de rôle sur chacun d'eux. Par défaut, dans la version de base, les tests ont lieu dans un seul thread. Vous pouvez varier la matrice de test en exécutant certains tests sur un grand nombre d'appareils, d'autres sur un petit.

Le temps estimé pour terminer le test est d'une minute par écran d'application. Si vous disposez de 30 à 40 écrans, le test prendra environ 30 à 40 minutes pour chaque appareil. Pour accélérer, vous pouvez placer des tests dans plusieurs threads en parallèle sur plusieurs appareils. Vous devrez payer un supplément pour cette option.



Ici, vous pouvez configurer la distribution automatique après avoir réussi les tests: la version sera automatiquement présentée dans les magasins d'applications.



Si vous devez tester l'application sur un groupe d'utilisateurs, avant de lancer sur le marché, nous créons des groupes qui conviennent aux employés ou aux utilisateurs fidèles à l'application. Dès que nous aurons effectué la distribution, ils recevront tous un e-mail avec un lien unique pour télécharger la nouvelle version. Après de tels tests, vous pouvez collecter la télémétrie auprès des "utilisateurs de test" et voir comment l'application fonctionne sur leur matériel.



C'est là que vous vous connectez aux marchés.



Pour diagnostiquer l'application, vous devez connecter le SDK. Et tous les endroits du code où quelque chose peut tomber, entourez-le et essayez de l'attraper. Lorsque l'application se bloque sur la machine utilisateur, vous pouvez recevoir des vidages sur incident et effectuer des diagnostics.



Analytics montre comment les utilisateurs traitent les applications: mettez le même SDK et voyez quels événements apparaissent dans l'application, dans quel ordre les visiteurs se déplacent entre les écrans.



Une option pour collecter des données, des métriques, toutes sortes d'informations de frais généraux. La rapidité d'ouverture de l'application, son fonctionnement. Tout cela se fait sur la base d'Azure Cosmos DB, où vous pouvez regarder des analyses assez avancées.



Le SDK permet aux utilisateurs d'envoyer des notifications push pour attirer l'attention ou informer sur les nouvelles versions de l'application. Non seulement pratique, mais également bénéfique: ces messages sont beaucoup moins chers que les SMS.



À l'intérieur de l'application, les utilisateurs peuvent être segmentés selon divers critères: types d'appareils, géographie, etc., et mener des activités de marketing en fonction des groupes résultants.

Composants Azure DevOps principaux


Les fonctionnalités de l'App Center - appareils dans les nuages, versions, tests et distribution de logiciels - ne sont qu'une partie du processus de développement qu'Azure DevOps complète. Cette plate-forme où vous pouvez créer des tableaux de bord et des tableaux de tâches, stocker des connaissances sur le projet dans le wiki, utiliser le référentiel pour les fichiers et les artefacts. Et si vous devez travailler avec un convoyeur complexe de fabrication de logiciels, vous pouvez ici configurer des pipelines, spécifier où seront les builds.



  • Tableaux - un ensemble d'outils pour planifier le travail, la discussion, le suivi, etc. Tableaux Kanban, tableaux de bord, tableaux Scrum - tout cela est facilement personnalisable pour les spécificités du projet et les fonctionnalités de l'équipe.
  • 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


En vous inscrivant sur Appcenter.ms, vous pouvez utiliser gratuitement toutes les fonctionnalités de l'App Center pendant deux mois. Après la période d'essai, une version coûtera 40 $ par mois, mais vous pouvez l'exécuter un nombre illimité de fois. C'est clairement plus rentable que d'avoir sa propre ferme de test mobile.

Azure DevOps est un service entièrement gratuit si vous avez une équipe d'un maximum de cinq développeurs ou si vous réalisez un projet OpenSource. Référentiels, référentiels de code, pipelines, cartes - tout cela est fourni gratuitement. 

Si vous voulez en savoir plus à ce sujet ou commencer à utiliser la plate-forme maintenant, alors vous serez intéressé par Dev Bootcamp - notre marathon en ligne pour les développeurs. Pendant l'événement qui se tiendra25-29 , , , Open Source-, OpenSource . Microsoft, . , !

All Articles