Published On: 11 octobre 20194,9 min read

Solutions et enjeux de l’automatisation des tests sur mobile.

Focus sur les enjeux actuels de l’automatisation grâce à nos retours d’expériences concrets et réussis d’industrialisation de tests automatisés. Dans cet article nous allons évoquer les avantages, les risques, et, surtout, les éléments à prendre en compte pour réussir un processus d’automatisation des tests de non régression sur mobile. Si vous avez encore des doutes sur les bénéfices de l’automatisation, nous avons un super article sur le sujet.

Les principaux enjeux de la mise en œuvre de l’automatisation sur mobile.

Faire le bon choix : Devices Réels vs Emulateurs
Il faut opérer un choix sur la couverture des devices en fonction des cas de tests. En effet, les simulateurs sont purement logiciels et facilement scalables mais ne testent pas le Hardware, ni des couches logicielles constructeur et opérateur (surtout dans le monde Android). En fonction des objectifs de vos tests vous pourrez déterminer la typologie des devices.

Comment aborder la segmentation (Hardware/Software) ?
La combinaison du nombre de devices par le nombre de versions d’OS devient vite exponentielle. Il faut donc faire un choix pragmatique idéalement basé sur les statistiques du parc réel des utilisateurs et revoir ce parc régulièrement.

Technologie de pilotage des devices
Vérifier que toutes les spécifications techniques pour les besoins des tests sont couvertes par l’outil (ex : URL profondes, envoi de SMS, …).

Gestion des packages & environnement de test (APP/IPA/APK)
Industrialiser les processus de génération de packages pour l’automatisation. Envisager la création d’un environnement Backend de test dédié (exemple : service d’authentification) avec des packages « buildés » en mode DEBUG.

Et de manière plus large il ne faut pas sous-estimer la gestion des problématiques hardware (mémoire/batteries/connectivité 4G …), pensez à anticiper la gestion des tests complexes : Géolocalisation, connexions Bluetooth, … et à gérer l’intégration continue (tests automatisés via API).

Lorsque vous aurez répondu à ces enjeux et effectué les choix déterminants pour le processus d’industrialisation de l’automatisation des tests vous serez alors de bonnes bases. Il ne vous reste “plus qu’à” sélectionner l’outil d’automatisation. Là aussi il y a plusieurs questions à se poser pour choisir l’outil qui conviendra le mieux à vos applications et notamment le niveau de services associés désiré. Pour « schématiser » nous distinguons 3 familles d’outils d’automatisation :

1 – Les outils open source : principalement la communauté APPIUM.
APPIUM est l’équivalent de SELENIUM dans les tests mobiles. Il s’agit d’un framework logiciel de pilotage générique agnostique au device. Il pilote aussi bien des devices Android réels ou simulateurs que des devices iOS. L’automaticien est donc un développeur qui utilise son langage habituel (Java, C#, Python, …) et qui code la logique fonctionnelle en Java, C# ou autre. Les tests ainsi créés peuvent être exécutés localement ou dans des Cloud privés.

2 – Les outils desktops
La principale difficulté reste le déploiement sur une infrastructure locale à maintenir en permanence sur des matériels en constante évolution (parc de téléphone / tablette). 

3 – Les services en mode SaaS
Les outils en mode SaaS déportent la problématique d’exécution dans des Clouds privés ou publics. Ils peuvent se contenter d’exécuter des scripts sur des devices ou embarquer toute une logique de gestion de scénario (mode Record/Replay, scripting, mots-clés) et d’analyse de résultats évolués (screenshots et vidéos des tests en erreur, comparaison d’images pour détection des régressions graphiques, etc.). 

L’intérêt principal est de déléguer toutes les problématiques de mise à disposition des ressources (smartphones, tablettes) à un tiers dont c’est le métier. Et bien sûr le paiement à l’usage. Il est important de valider l’ouverture des solutions SaaS et en particulier la richesse des API qu’ils proposent.

Lors du choix d’un outil d’automatisation, dans l’objectif d’industrialiser les processus de test, les deux axes principaux qui ont un impact direct sur le budget à consentir pour les tests sont :

  • L’effort nécessaire pour maintenir la couverture de test (maintenance des scénarios au cours des itérations) : c’est un impératif, sinon l’échec à long terme est presque obligatoire !
  • L’effort nécessaire pour maintenir l’infrastructure d’exécution en permanence à jour en phase avec le parc réel des utilisateurs (exemple : mise à jour des navigateurs, mise à jour des smartphones, …)

Pour conclure.

L’automatisation des tests logiciels est un secteur en mouvement permanent et les acteurs en présence doivent être de plus en plus réactifs. L’industrialisation des processus de tests n’est plus une option pour qui veut concevoir aujourd’hui un système logiciel fiable et évolutif. Le test est également un métier spécifique ; au-delà de la question « quel outil choisir ? » on peut aussi se demander « est-ce que j’automatise mes tests en interne ou est-ce que je mandate un tiers de confiance dont c’est le métier ? ». Dans les deux cas, la réponse dépend de votre métier, de votre contexte et votre stratégie IT. Les solutions existent et si le choix est celui de l’externalisation, la proximité est clairement un facteur de succès. Voilà, vous possédez désormais les clés pour mener à bien l’industrialisation de l’automatisation de vos tests de non régression sur mobile ! Et n’oubliez pas si besoin nous pouvons vous aider voire les réaliser pour vous, c’est notre métier ;-)

Testez plus vite et mieux avec les outils CloudNetCare

Une plateforme SaaS puissante au service de vos développements et de l’expérience de vos utilisateurs. Testez plus vite, plus souvent et mieux avec la plateforme d’automatisation des tests de CloudNetCare.

Testez plus vite
et mieux avec les outils
CloudNetCare

UX Functional testing

Plateforme SaaS de tests de montée en charge

UX Functional testing
UX Functional testing

Testez plus vite et mieux avec
les outils
CloudNetCare

UX Functional testing

Plateforme SaaS de tests de montée en charge

UX Functional testing
UX Functional testing