L’automatisation est aujourd’hui une composante incontournable des projets IT, que ce soit pour assurer la qualité des applications développées, ou accélérer leurs déploiements.
Pour autant, l’automatisation n’est pas un sujet nouveau. De nombreux frameworks évolués ont été développés, et sont souvent disponibles gratuitement. Utilisez les si vous voulez éviter l’ornière ! Enfin, les dernières évolutions technologiques, souvent liées à l’IA, pourraient bien révolutionner l’automatisation dans un avenir proche.
La nécessité d’utiliser des frameworks évolués
L’automatisation a depuis quelques années connu un net regain d’intérêt, et cet engouement continue de croître de façon exponentielle.
Pourquoi un intérêt grandissant pour l’automatisation ? Tout simplement car, de plus en plus, il est impossible de tester uniquement à la main, et raisonnablement espérer que les applications fonctionneront correctement. Egalement, lorsqu’on analyse les activités des testeurs, on peut assez facilement trouver des tâches basiques et répétitives. Ces tâches, qui manquent de sens pour un testeur, sont faciles à automatiser.
Il apparaît que, malgré des années d’existence, les outils d’automatisation semblent toujours manquer de maturité.
Pourtant, la création des tests automatisés parait souvent relativement aisée, en particulier en utilisant les outils d’automatisation qui proposent un mode enregistrement. Certains outils permettent également d’aider à la création des jeux de données, et ainsi, tester facilement différentes combinatoires. Mais les automates ainsi créés manquent de fiabilité et de robustesse.
Les raisons de ces instabilités s’expliquent par le fait que les applications à automatiser évoluent sans cesse, et que cela perturbe le fonctionnement de l’automate, et ce, même si les changements ne sont pas visibles à l’écran. Egalement, le système d’information peut subir des ralentissements qui peuvent faire échouer l’exécution des automates. Enfin, le moindre évènement inattendu, tel que l’apparition d’une nouvelle fenêtre popup, va bloquer l’automate.
Pour fiabiliser les tests automatisés, et ainsi limiter grandement la maintenance nécessaire, il va invariablement falloir que l’automaticien fournisse un effort non négligeable, développer l’automatisation comme une application à part entière (avec les bonnes pratiques du développement), et souvent qu’il utilise des techniques nécessitant plusieurs années d’expérience dans le domaine.
Afin d’accélérer le développement des automates, et de limiter au maximum le coût de la maintenance, il apparaît indispensable d’utiliser un framework d’automatisation.
Mais tout d’abord, qu’est-ce qu’un framework d’automatisation ? C’est un ensemble de composants logiciels et de code, qui vont permettre d’organiser les développements suivant un schéma prédéfini. Dit autrement, ce sont des outils et des méthodes qui vont nous aider à faire mieux, et en moins de temps.
Aubay a développé en interne plusieurs frameworks d’automatisation pour différents outils, et en particulier pour Selenium, qui est un outil Open source très largement utilisé pour automatiser les applications web. Ce framework, appelé FASe (pour “Framework d’Automatisation pour Selenium”), a pour principaux objectifs de :
- Simplifier le code, en créant une surcouche à Selenium et en fournissant une boîte à outils
- Implémenter les bonnes pratiques des tests automatisés (Référentiel d’objets centralisé, approche par mots clés, pilotage par les données…)
- Réduire le temps d’analyse des résultats d’exécution, avec un rapport détaillé
Ce framework facilite la prise en main de Selenium, qui peut s’avérer complexe pour un débutant, et garantit l’application des bons usages. Il constitue un cadre et une boite à outils avec des fonctions de base, des squelettes et des exemples types. Avec l’aide de FASe, un consultant ayant un minimum de compétences de programmation peut faire sa première automatisation de tests dès la première journée.
Quelques tendances des outils d’automatisation
Même si, comme décrit en préambule, les outils d’automatisation semblent encore assez peu matures, certaines innovations pourraient révolutionner l’automatisation dans un avenir proche.
Low Code Automation
Comme son nom l’indique, le low code automation a pour vocation de réduire le code nécessaire pour créer un script automatisé, voire de faire presque disparaitre tout code.
Il peut s’agir de surcouches à des librairies d’automatisation, telles Selenium ou Appium. On pourrait ici citer FASe, développé par Aubay, ou d’autres frameworks populaires comme Robot Framework ou Selenide. Dans le cas des surcouches, le code est largement simplifié, et ne nécessite souvent pas de grandes compétences en développement.
Un deuxième type d’approche low code est apparu ces dernières années avec des outils d’automatisation dédiés à la RPA (Robotic Process Automation), tels Blue Prism ou UiPath. Les tests ne sont plus écrits avec du code, mais se matérialisent par des workflow graphiques, constitués de l’assemblages de “briques” paramétrables et prêtes à l’emploi.
AI Automation
Des solutions avec une IA permettent déjà de traiter de nombreux sujets, en particulier dans le traitement et l’analyse des données.
Dans le cadre de l’automatisation des interfaces, l’IA (Intelligence Artificielle) et le ML (Machine Learning) étaient jusqu’à aujourd’hui peu présents. Mais des outils d’automatisation intégrants de l’IA, Open Sources ou payants, commencent à émerger. UiPath, par exemple, propose une extension dans le cloud nommée AI Computer Vision.
L’idée ici est d’analyser l’image de l’écran, et d’en analyser le contenu, quel que soit la technologie employée (web, client lourd, citrix…). L’outil d’automatisation, dopé à l’IA/ML, analyse l’écran, un peu comme le ferait un être humain. Par exemple, pour n’importe quel écran de connexion, il suffirait de donner un login et un mot de passe, et l’outil d’automatisation se chargerait du reste.
Pour l’instant encore incomplète et imparfaite, l’IA Automation devrait rapidement évoluer et, je l’espère, aider les automaticiens à développer des script plus fiables.
Self-healing capabilities
Et si les tests automatisés se réparaient tout seuls au fil du temps, sans intervention humaine ? Cette technologie existe déjà, mais reste encore à l’état embryonnaire.
Par exemple, l’outil UFT, de Micro Focus, intègre depuis de nombreuses année une option de “smart identification”, mais cette dernière est tellement imparfaite qu’il vaut souvent mieux ne pas l’activer. Selenium IDE possède également une fonctionnalité de “fallback locator”, avec 2 locators enregistrés par objet, dans le cas où le premier échouerait.
On est donc encore loin du “self-healing” pour les automates, mais dans un avenir que j’espère proche, notamment grâce à l’IA/ML, nous devrions être témoins d’une très forte amélioration.