Covid-19, la qualité des applications mobiles plus critique que jamais
Le nombre d'applications mobiles croissant constamment, il est conseillé de les intégrer dans le processus qualité de l'entreprise, c'est-à-dire de les tester en interne en utilisant les pratiques et les outils mis à disposition par l'organisation.
La pandémie de coronavirus a ébranlé des économies entières. Une industrie s'est néanmoins révélée extrêmement résistante, celle des applications mobiles. Avec le recours massif au télétravail, les installations d'applications professionnelles ont considérablement augmenté, tout comme celles des applications de jeu ou de restauration. De nombreuses industries ont vu croître le nombre d'installation de leurs applications mobiles, mais aussi le nombre de sessions, ainsi que les revenus des applications payantes.
Mais dans ce contexte de travail à distance et sans accès direct aux terminaux mobiles habituels, comment continuer d'assurer le bon niveau de qualité de ces applications mobiles ?
L'accès à distance aux terminaux mobiles est devenu une nécessité pendant le confinement et le restera tant que les équipes seront en télétravail, et sans doute au-delà.
Tester n'importe où et sur n'importe quel terminal mobile
Au-delà des tests réalisés sur des émulateurs, il est fondamental de tester une application mobile sur des terminaux réels. Mais comment faire quand on ne dispose que de son téléphone, qui n'est pas forcément représentatif de ceux des utilisateurs de l'application mobile à tester ? La réponse est l'utilisation d'une solution permettant une prise en main à distance de terminaux mobiles réels. Cela permet d'avoir un pool de smartphones et tablettes représentatifs et de les mettre à disposition des développeurs et des testeurs.
Ces derniers peuvent ainsi les utiliser selon leurs besoins, que ce soit pour des tests manuels, des tests fonctionnels automatisés, des tests de performance ou encore pour déboguer le code de l'application suite à la découverte d'une anomalie.
Ces terminaux peuvent être hébergés dans le datacenter de l'entreprise ou dans le cloud pour une solution clé en main. Il est aussi possible d'adopter une approche hybride, avec un nombre réduit de terminaux mobiles en local (ceux qu'on utilise le plus) et l'accès ponctuel à des terminaux dans le cloud pour des tests sur des configurations moins courantes (sur AWS Device Farm par exemple).
Tests mobiles, les bonnes pratiques
1- Industrialiser les tests mobiles
Certaines équipes préfèrent déléguer les tests mobiles au sous-traitant qui développe l'application mobile. Cette approche engendre une perte de contrôle de la qualité de ces applications, qui ne passent pas par le processus qualité « standard » mis en place pour les autres applications.
Le nombre d'applications mobiles croissant constamment, il est conseillé de les intégrer dans le processus qualité de l'entreprise, c'est-à-dire de les tester en interne en utilisant les pratiques et les outils mis à disposition par l'organisation. Ceci permettra d'avoir une vision globale de la qualité de ces applications mobiles en temps réel et de réagir plus rapidement en cas de problème.
2 - Couvrir tous les aspects de la qualité
Une application mobile est une application comme les autres, qui doit être validée fonctionnellement pour vérifier qu'elle répond bien aux besoins exprimés par le métier. Il est également important de valider ses performances pour s'assurer que les temps de réponse observés par les utilisateurs seront bien conformes aux attentes.
Et enfin, sa sécurité doit être vérifiée, afin de détecter et de corriger d'éventuelles vulnérabilités.
Dans l'environnement de test, les connexions réseau sont souvent « idéales » (wifi) alors que les utilisateurs finaux seront confrontés à des connexions réseau diverses et variées (3G, 4G, etc.). Pour avoir des résultats de test pertinents et représentatifs de la réalité, il est donc crucial de prendre en compte cet aspect et d'utiliser des solutions d'émulation de conditions réseau en complément des outils de tests fonctionnels ou de performance. Ce type de solution permet de simuler des conditions réseau similaires à celles dans lesquelles les utilisateurs finaux se trouveront.
3 - Améliorer l'efficacité des tests avec l'automatisation
La cadence de sortie des versions des applications mobiles est très rapide - au moins une par mois. Il est donc fondamental d'automatiser les tests sur ces applications pour tenir le rythme. Il existe des solutions pour automatiser les tests fonctionnels, les tests de performance ou encore les tests de sécurité. Les approches utilisées pour développer les applications mobiles sont souvent agiles/DevOps. Les tests automatisés (ainsi que l'installation de l'application) peuvent être lancés directement depuis l'outil d'intégration continue, pour les exécuter automatiquement suite à un changement de code par exemple. Ceci permet de gagner du temps, de pouvoir jouer les tests encore plus souvent et donc d'améliorer le niveau de qualité.
Le challenge de l'automatisation des tests fonctionnels réside dans le fait que l'interface graphique de l'application mobile évolue constamment. Cela nécessite d'effectuer des mises à jour régulières dans les scripts ou au niveau des objets graphiques concernés. Si l'application est native et disponible sur iOS et Android, alors les tests automatisés sont en général dupliqués pour chaque OS, car les objets natifs sont différents sur chacun d'eux. Les frameworks de développement multi-plateformes permettent en théorie d'éviter cela. Mais ils sont encore peu utilisés et présentent d'autres inconvénients.
L'intelligence artificielle comme évolution naturelle
Au-delà des approches classiques d'automatisation évoquées, l'IA apparaît comme un accélérateur. Elle permet de disposer d'un automate pouvant reconnaître les objets à l'écran visuellement, comme le ferait un être humain, et ce, quelle que soit la technologie sous-jacente de l'application (web mobile, appli iOS ou Android native). Autrement dit, on utilise un moteur d'IA auquel on a appris des milliers d'images d'objets grâce au machine learning, que l'on peut enrichir si jamais certains objets de notre application ne sont pas reconnus. Ceci permet d'avoir non seulement un seul test automatisé pour ces trois technologies, mais également une maintenance allégée des tests grâce à cette reconnaissance visuelle.
Ainsi, plus besoin de retrouver un objet en utilisant ses propriétés. Enfin, elle permet d'écrire le test automatisé en langage naturel à travers une approche NLP pour qu'il puisse être directement créé et maintenu par des experts fonctionnels.
Lire aussi : Budgets, délais, legacy... Air France-KLM, Amadeus et Coopérative U face à la réalité du move-to-cloud
Dans le contexte actuel de Covid-19, la qualité des applications mobiles est plus importante que jamais, d'autant que de nombreuses études montrent l'importance de l'expérience utilisateur. Le niveau d'attente des utilisateurs sur ce type d'application est très élevé. C'est donc le bon moment pour démarrer ou accélérer les initiatives de testing mobile.
Sur le même thème
Voir tous les articles Business