Les entreprises automatisent de plus en plus leurs tests pour gagner en coût, qualité et délais. L’intelligence artificielle (IA) suscite un vif intérêt pour améliorer cette automatisation. Cependant, derrière la communication enthousiaste sur les capacités de l’IA des outils de tests automatisés, il est légitime de se demander s’il s’agit d’un coup de communication ou d’une réalité opérationnelle.
Les tests automatisés consistent à exécuter, par un robot, des actions et d’en vérifier le résultat obtenu en le comparant à un résultat attendu. Ils permettent de détecter rapidement les erreurs et d’assurer la stabilité des applications.
Le terme Intelligence Artificielle est un terme qui recouvre des technologies diverses, nous utiliserons le terme IA de manière un peu généraliste alors que dans les faits, cela recouvre des technologies différentes comme la computer vision, l’IA générative, l’OCR, les réseaux de neurones. Nous ne rentrerons pas dans ce niveau de détail ici mais nous nous intéressons plutôt à l’usage.
Il existe une différence importante de l’utilisation de l’IA entre les outils gratuits d’automatisation de tests et ceux qui sont payants.
L’IA pour les outils open source d’automatisation de tests
Les outils gratuits et open-source d’automatisation de tests (Selenium, Cypress,…) sont largement répandus dans les entreprises du fait de leur gratuité, de leur compatibilité avec d’autres solutions, de l’utilisation de langages standards et du fait de l’absence de dépendance avec un éditeur. Cependant, le développement, la maintenance ou la mise à jour du code et du framework peuvent être complexes pour les non-développeurs et présenter un risque de faible productivité ou encore de « réinventer la roue ». A noter que ces types d’outils se limitent à des technologies WEB.
L’intégration de l’intelligence artificielle générative GITHUB Copilot/ Chat GPT dans ce contexte peut aider à générer des scripts de test, accélérant ainsi le processus de développement des tests. Il est possible via un prompt en donnant en entrée une suite d’étapes de tests, de demander à l’IA de générer une partie du code dans un langage donné, par exemple Selenium. Les résultats sont positifs si le prompt est suffisamment précis et si on lui donne tous les éléments en entrée. L’IA générative ne doit toutefois être considérée que comme une assistance, une aide au développement.
Il existe par ailleurs des outils payants à base d’IA qui peuvent être de bons compléments aux outils open source.
Citons par exemple Applitools Eyes. Applitools Eyes est un plugin qui peut contrôler visuellement un écran entier ou par zone entre deux exécutions.
L’IA pour les outils d’automatisation de tests payants sous licence
Les principaux avantages des outils payants d’automatisation de tests sont de faciliter le développement des scripts automatisés avec des fonctionnalités avancées telles que la capture d’écran et de reconnaissance d’objets, d’être en lowcode/no code, d’effectuer des tests automatisés sur tous types de technologies. Ces outils limitent donc fortement le recours au code. Dans certains cas, les éditeurs ont même des solutions adaptées pour l’automatisation sur les solutions progicielles du marché comme SAP ou Salesforce.
Ces outils ont déjà pour la plupart intégré l’IA. Quelques usages sont donnés ci-dessous. Certains outils sont cités à titre d’exemple mais la liste est loin d’être exhaustive a fortiori avec un marché qui change rapidement.
La reconnaissance des objets via computer vision
La computer vision permet d’identifier les objets par reconnaissance d’image d’un objet (champ de saisie, liste déroulante…) sans passer par du code (identifiant de l’objet, Xpath…). Le principal avantage est d’augmenter la robustesse car on ne s’appuie que sur l’apparence et on se dédouane de toute la programmation ou dépendance avec le codage de l’application à tester. Citons UIPAth Test suite, Eggplant, UFT d’OpenText …
La description des scenarios par NLP Natural Language Programming
L’utilisateur décrit le scénario en langage naturel et l’outil interprète ces actions directement sur l’IHM. Citons Leapwork, NLP Builder d’Applitools…
L’autoréparation
L’autoréparation (ou SelfHealing en anglais) est un mécanisme interne à l’outil qui permet au script de ne pas échouer quand un objet a faiblement changé (changement d’identifiant de l’objet, changement de position…). Citons Eyes d’Applitools, UFT One & ValueEdge d’OpenText …
L’exploration systématique d’un site
Des outils comme AIQ Platform de Appvance permettent une exploration systématique d’un site. Cet outil, en lui communiquant une URL, navigue dans un site web et reporte tous les chemins qu’il a pu parcourir et au passage note tous les endpoints (webservice) par lesquels il a pu passer ou bien au contraire lorsqu’il a été bloqué.
La génération de données
Des fonctionnalités permettent de générer des jeux de données aléatoires ou obéissant à des règles de génération facilitant ainsi le remplissage de certains formulaires par exemple des noms de villes, des IBAN pour un pays en particulier en encore des numéros de carte bleues. Citons UIPATH Testsuite, UFT One d’OpenText…
La comparaison d’écrans automatiques
Cela permet de comparer en automatique les écrans d’une exécution de tests par rapport à une exécution de référence. Ces comparateurs peuvent prendre en compte soit des zones soit les écrans en entier. Citons Eyes d’AppliTools, VisualTest de SmartBear, UFTOne d’OpenText…
L’IA permet aussi de faciliter l’automatisation des autres activités de tests
L’exécution de tests n’est pas la seule activité à pouvoir être automatisée. D’autres activités de tests peuvent être automatisées comme l’aide à l’identification des tests.
Par exemple, un outil comme Gravity de Smartesting va utiliser l’IA pour proposer des contextes à tester par analyse des processus réellement joués par les utilisateurs en production en particulier par l’analyse de logs. Cela permet d’identifier les cas les plus critiques.
Conclusion
Les résultats obtenus avec l’IA sont impressionnants. Certes il y a encore des limites ou des réserves (des comportements hallucinatoires ou aléatoires, un usage sur du volume encore assez faible). Mais les choses évoluent très vite. Restez donc à l’écoute. L’intégration de l’IA dans les tests automatisés est une opportunité à ne pas manquer. Que vous soyez débutant ou expert, explorez ces outils et découvrez comment ils peuvent améliorer vos processus de test.