Automatisation des tests sur mobile

Houda Malki
Xelops Technology
Published in
5 min readDec 15, 2022

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.

Qu’est-ce qu’un test automatisé ?

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.

Quels sont les types de tests sur le mobile ?

Les tests d’application sont classés en deux types :

Tests fonctionnels : Tester une application pour ses aspects fonctionnels. On vérifie chaque fonctionnalité de l’application pour s’assurer que tout fonctionne comme prévu. Les tests fonctionnels les plus connus sont :

o Tests unitaires : tester chaque fonction, module ou composant d’une application pour vérifier s’il fonctionne comme souhaité.

o Tests d’intégration : tester si les modules combinés fonctionnent correctement.

o Tests UI (User Interface) : permet de s’assurer que tous les champs, étiquettes, boutons et autres éléments à l’écran fonctionnent comme souhaité.

Tests non fonctionnels : tester les aspects non fonctionnels d’une application, tels que la performance, la sécurité, la haute disponibilité, etc.

Remarque : Dans cet article nous allons aborder principalement l’automatisation des tests UI.

Méthodologies de tests des applications mobiles ?

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.

Pourquoi automatiser les tests des applications mobiles ?

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.

Quand opter pour l’automatisation des tests ?

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 :

  • Le scénario de test, est-il coûteux à reproduire ?
  • La partie à automatiser, est-elle stable ?
  • La fréquence d’exécution du scénario, est-elle importante ?

Quand exécuter des tests ?

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.

Quand privilégier le test manuel ?

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.

Quels outils de test ?

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.

Solutions Cloud ?

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 :

Conclusion

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.

--

--