Automatisation des tests de non régression sur le monde desktop
Nous pouvons répartir le monde des tests fonctionnels et de non régression en deux « mondes technologiques» : les tests navigateurs et les tests applications mobiles. Les enjeux et les types de solutions disponibles sur ces deux environnements sont si différents que nous traiterons de la partie application mobile dans un prochain article. Focus du jour : le monde Desktop.
Les 3 principaux enjeux et difficultés de mise en oeuvre :
1 – Mise à jour des navigateurs en continu.
La mise à jour des navigateurs est très rapide (environ tous les 15 jours) et celle-ci est souvent automatique et obligatoire pour l’utilisateur final (sauf contextes spécifiques).
Il faut donc en permanence mettre à jour l’environnement des robots avec les dernières versions. Il faut s’assurer que le pilotage de la nouvelle version du navigateur reste entièrement opérationnel et n’entraîne pas de faux positifs/négatifs.
2 – Gestion des OS (Windows/MacOS/Linux).
Les Updates de sécurité des OS sont fréquentes voire très fréquentes. De la même manière que les navigateurs, ils sont souvent automatiques et obligatoires. Il faut donc toujours s’assurer que l’environnement d’exécution des robots est mis à jour en permanence.
Il faut une veille permanente pour assurer une évolution des robots au plus proche de leur environnement.
3 – Reproductibilité des contextes.
Il est important que chaque exécution soit initiée dans un contexte strictement identique et reproductible. Par exemple le navigateur doit systématiquement se retrouver dans un état initial identique à chaque nouveau test (ex : cache Vide, pas de cookies, …). Le Cloud est particulièrement adapté à ce contexte.
Sans cette condition, les cas de faux positifs/négatifs vont se multiplier et rendront les résultats des tests inexploitables.
Les 3 types d’outils d’automatisation
1 – Les outils open source : principalement la communauté SELENIUM
1 – 1 SELENIUM IDE (Scripting) est très populaire. Il s’agit d’un Plug-in Firefox & Chrome qui permet d’enregistrer des parcours et de les sauvegarder dans un format .SIDE (Json) (outil téléchargeable ici).
Les scripts Json sont utilisables dans beaucoup d’outils d’automatisation. C’est le standard des scripts de tests UI. « Command-line Runner » permet d’exécuter des scripts. SIDE en parallèle via un service Node.JS sur site ou en mode Cloud.
1 – 2 SELENIUM Webdriver / GRID SELENIUM Webdriver est un ensemble de composants logiciels qui permettent de piloter des navigateurs Web. C’est le Framework de référence pour automatiser les tests navigateurs. Il permet de coder des tests dans plusieurs langages de développement. L’automaticien est donc un développeur qui utilise son langage habituel (Java, C#, Python, …).
Pour l’exécution des tests en parallèle, il est possible de monter une SELENIUM GRID et de gérer le déroulé des tests. L’avantage est d’être libre de coder son propre moteur d’exécution et d’analyse, mais attention, c’est une charge de travail conséquente !
2 – Les outils Desktop sur site
Les outils « propriétaires », gratuits ou pas, peuvent être très évolués et couvrir plusieurs aspects des tests (conception, exécution, reporting, suivi, …). Il est important d’étudier les caractéristiques des différents outils en prenant soin de bien appréhender les risques décrits plus haut. La principale difficulté reste le déploiement sur une infrastructure locale à maintenir en permanence avec des mises à jour logicielles et matérielles quasi-permanentes.
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 (derniers navigateurs, smartphones, tablettes) à un tier 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 exposent.
Pour conclure.
Pour choisir le bon outil d’industrialisation de l’automatisation il vous faudra faire un bilan des compétences à votre disposition et du budget alloué à l’automatisation des tests. En fonction des résultats vous aurez les éléments nécessaires à la prise de décision. L’objectif est que l’outil utilisé vous permette d’améliorer la qualité du ressenti de vos internautes et ce en livrant plus vite et « sans » bugs ;-)
CloudNetCare
Pour que chaque clic soit une expérience réussie
On pilote vos tests, vous gardez le contrôle !
Grâce à notre expertise, vos applications et sites web restent fluides, sans bugs ni frictions, vous permettant de vous concentrer sur votre innovation et garantir ainsi une expérience utilisateur irréprochable.
Notre cabinet français d’experts en tests logiciels, automatise, gère et analyse vos tests quotidiennement pour détecter et corriger les dysfonctionnements avant qu’ils n’affectent vos utilisateurs.