Accueil Nos publications Blog [Microsoft Experiences’16] Tester, Monitorer et Déployer son application mobile

[Microsoft Experiences’16] Tester, Monitorer et Déployer son application mobile

header-ms-experiencesDans cette session sous-titrée “Permis de tester”, Nicolas Humann, Adrien Siffermann et Philippe Sentenac nous accueillent pour nous faire découvrir les usages du « testing mobile » et comment Visual Studio Team Services, Xamarin Test Cloud & Hockey App, permettent d’améliorer la qualité des applications mobiles pour iOS, Android & Windows.

Visual Studio Team Services et Hockey App

Après un rapide rappel sur le Mobile DevOps, la présentation se centre sur l’interconnexion entre Visual Studio Team Services et Hockey App. Une fois l’application buildée avec VSTS, Hockey App peut s’occuper de sa distribution (en beta) ainsi que du crash reporting et du monitoring. Il est possible de suivre les actions des utilisateurs (leur manière de naviguer dans l’application), et de récupérer leurs feedbacks accompagnés d’un screenshot et d’un fichier JSON contenant toutes sortes d’informations. Une task est alors créée automatiquement dans VSTS, avec tous les tags liés au type de feedback et à la plateforme concernée.

Après un crash quelconque de l’application, un rapport, contenant des informations comme la stacktrace, est envoyé à Hockey App au moment du lancement suivant de l’application. Tous les crashs de mêmes types sont regroupés et un bug est créé dans VSTS, toujours avec les tags spécifiques au contexte du crash.

La délicate phase de tests

L’accent est ensuite mis sur la phase de tests, souvent oubliée ou négligée dans les projets. Le grand nombre de plateformes et devices rend cette phase délicate, alors qu’elle est cruciale : face à une application défaillante, 80% des utilisateurs la désinstallent et 66% vont lui mettre une note sur le store inférieure à la moyenne. De manière générale, 60% des utilisateurs abandonnent si l’application ne répond pas dans les 3 secondes. Ceci est valable pour le store public, mais aussi en B2B, où une discussion à la machine à café peut anéantir en quelques minutes des mois de développement.

On parle souvent du nombre conséquent de devices Android (19000) mais ce n’est pas le seul problème puisque 74 configurations différentes sont possibles sur iOS. Rien qu’aux Etats-Unis, ce n’est pas moins de 134 tests de devices différents qui sont nécessaires pour couvrir 80% des utilisateurs.

Alors comment effectuer les tests de manière efficace, quand le test manuel sur chaque device est inenvisageable, les simulateurs peu fiables, et que le remoting vers des devices reste un test manuel chronophage, sans parler des problèmes de lenteurs d’accès ?

Xamarin Test Cloud

Xamarin Test Cloud permet d’effectuer des séries identiques de tests d’interface rapides sur des devices physiques. Les derniers OS (et leurs dernières betas) et les derniers devices du marché sont représentés. Des rapports sont présentés sous forme de screenshots avec des informations détaillées comme l’utilisation mémoire et processeur. Cela permet de tester le parcours d’un utilisateur sur l’interface et des itérations rapides de test.

Les tests sont écrits en C# ou en Ruby, un SDK complet est disponible pour arriver à faire toutes sortes d’actions sur l’application. Il est possible de tester directement en local sur le simulateur, sur un device, ou d’envoyer l’application contenant l’agent de test à Xamarin Test Cloud. Il est ainsi possible de tester les applications Xamarin mais aussi les applications natives ou hybrides.

Une démo plus que des mots

Une démo nous permet ensuite de suivre la création d’un projet UI Test App pour iOS, Android ou cross platform et d’enregistrer un test avec le simulateur. Il suffit d’exécuter des actions sur le simulateur (par exemple un clic sur un bouton) et l’action est transcrite en code. Il est possible, après coup, d’ajouter des commandes de screenshot et de les nommer.
L’identification des éléments se fait par ID voire par invocation Javascript. Le speaker nous précise que l’utilisation d’ID dans le développement mobile n’étant pas systématique c’est une nouvelle bonne pratique à utiliser.
Une fois le test créé, il suffit de builder (l’agent de test est alors ajouté au livrable) et de déployer dans le simulateur, et le test s’exécute. Etant dans Visual Studio, il est aussi possible d’utiliser le débugger.

L’agent de test ne permet pas, par exemple, de cliquer sur les boites de dialogues système (l’exemple de l’autorisation GPS est donné) mais les speakers assurent qu’environ 80% des tests d’interface d’une application sont possibles.
Il est aussi précisé que, pour générer une application avec l’agent de test, une application android déjà compilée suffit, mais que, pour les applications iOS, le code source de l’application est nécessaire.

On nous montre ensuite comment sélectionner sur Xamarin Test Cloud sur quels devices on veut tester notre application, via une petite interface. Des filtres sont disponibles pour déterminer la disponibilité et le temps d’attente des devices (ce sont des devices physiques, donc plus ou moins disponibles). L’interface nous génère une ligne de commande de laquelle on peut extraire les informations “devices” et “series” à reporter dans Hockey App qui s’occupera d’envoyer l’application sur XTC.

Efficace et sécurisé

Une fois les tests exécutés, l’interface de XTC nous permet de lister tous les screenshots demandés dans le test avec des informations détaillées prises au moment du screenshot, par exemple l’état de la mémoire. Les screenshots permettent aussi de détecter au passage des problèmes d’affichage sur tel ou tel device.

L’accent est mis sur la sécurité : Xamarin Test Cloud est localisé dans un datacenter au Danemark mais tous les devices sont hard reset après chaque volée de tests. Les IP du datacenter sont disponibles (195.249.159.238-239), il suffit de les autoriser afin de permettre l’accès à un éventuel backend pendant les tests.

Un tour d’horizon des concurrents conclut la présentation. Google Cloud Test lab propose plus de 20 devices, AWS Devices en propose plus de 200, mais Xamarin Test Cloud en comporte plus de 2000 et des demandes d’ajout de nouveaux devices sont possibles.

© SOAT
Toute reproduction interdite sans autorisation de la société SOAT