Les applications mobiles d’entreprise ont depuis longtemps été considérées comme des applications de coûts faibles et qui nécessitent peu de développement. Or, aujourd’hui, ces applications sont devenues un composant essentiel des canaux digitaux utilisés par le client. Ces applications doivent de plus en plus respecter des contraintes d’architecture, d’ergonomie, de sécurité, des SDK et librairies intégrées, d’interactions multiples avec des serveurs backend, etc.
Face à la dimension de plus en plus stratégique de ces applications et leur intégration forte avec les systèmes d’information des entreprises, assurer une phase de tests complète et rigoureuse à ces applications est devenue nécessaire pour offrir un produit de qualité aux client et éviter les pertes et dégâts que peut provoquer l’instabilité et les défaillances de ce type d’applications.
Dans ce cadre, la réalisation des tests d’une application mobile peut être une tâche fastidieuse notamment pour les applications mobile riches en fonctionnalités et qui sont fréquemment mises à jour. Ainsi, l’automatisation des tests de ces applications est fortement recommandée pour faciliter, industrialiser et améliorer la qualité de ces tests.
Un test automatisé est un ensemble de scripts développés par des équipes spécialisées afin d’exécuter différents types de tests d’une manière automatique et sans intervention humaine.
Les tests d’application sont classés en deux types :
Remarque : Dans cet article nous allons aborder principalement l’automatisation des tests UI.
Comme tout produit logiciel, il existe deux grandes méthodologies de tests des applications mobiles :
White box : désigne le cas où on aura besoin du code source pour écrire les tests. App & test sont exécutés sur le périphérique. Cette méthode peut être appliquée notamment pour les tests unitaires.
Black box : Le cas où on aura besoin juste du fichier apk pour écrire les tests.
L’automatisation des tests des applications mobiles permet de gagner du temps sur la durée en allégeant la charge de travail des équipes, d’économiser les coûts, d’optimiser l’efficacité et la pertinence des tests et d’assurer la qualité des applications et projets mobiles.
Même si l’automatisation présente plusieurs avantages, elle doit être bien réfléchie afin d’avoir toujours un équilibre entre le coût de mise en place et le gain produit.
Simplement, tous les cas de tests ne peuvent pas être automatisés, ci-dessous une liste non exhaustive des critères à vérifier :
Les tests automatisés doivent s’exécuter de préférence sur des environnements semblables à la production en termes de configuration, de données, etc. Une fois un script programmé, on peut l’exécuter autant de fois que nécessaire, obtenir un bilan rapide et ainsi prendre une décision en très peu de temps.
Le test manuel est indispensable pour déceler les bugs liés à l’expérience utilisateur, mais aussi dans certains cas de tests qui ne peuvent pas être automatisés ou si les coûts liés à la création des scripts ne sont pas compensés sur le long terme.
Il existe de nombreux outils d’automatisation des tests mobiles. Parmi eux, citons notamment :
UI Automator 2.0 : un outil de tests Android fournissant un ensemble d’API pour créer des tests d’interface utilisateur qui effectuent des interactions sur les applications utilisateur et les applications système.
Espresso : un outil de Google de tests automatisés qui permet de lancer des tests sur des machines x86 dans le cloud, dans un environnement multithread, permettant de simuler des interactions avec l’interface utilisateur pour exécuter des tests fonctionnels sur votre application Android.
XCTest : un outil pour écrire les tests unitaires pour les projets Xcode. Ces tests s’intègrent de manière transparente avec le workflow de test de Xcode.
Appium : un outil d’automatisation de tests utilisé avec des applications mobiles natives et hybrides.
Ci-dessous un tableau qui résume les caractéristiques et différences entre ces Outils et Frameworks :
Synchronisation : Pas besoin d’écrire les commandes wait.
CI : Intégration continue.
Firebase Test Lab : infrastructure de test d’applications mobiles sur des devices hébergés dans un centre de données Google.
Sauce Labs : fournisseur en ligne de tests multiplateformes. Il propose des tests Selenium, des tests mobiles et des tests JS unitaires sur plus de 500 plateformes .
AWS Device Farm : service de test d’applications qui permet d’exécuter les tests web et mobiles simultanément sur plusieurs navigateurs ou devices réels.
Microsoft Visual Studio App Center : ensemble de services de développement intégrés pour la génération, le test, la publication et la surveillance des applications mobiles et desktop.
Ci-dessous un tableau qui résume les caractéristiques et différences entre ces différentes solutions :
Dans cet article, nous avons présenté le rôle important que joue l’automatisation des tests dans le développement des applications mobile d’entreprise ainsi que les différents outils et solutions cloud utilisés notamment pour les tests d’Interface Utilisateur.
Dans le prochain article, nous aborderons les différentes étapes de configuration et d’utilisation de certains de ces outils et solutions cloud.