L'intelligence artificielle (IA) a transformé et continuera de transformer l'assurance qualité (QA) ; nous, en tant que testeurs, devons donc nous y préparer. Les outils de test basés sur l'IA permettront d'automatiser les tâches répétitives, d'anticiper les problèmes et d'améliorer l'efficacité et la précision. Cela libère du temps pour des tâches créatives, mais impose en même temps de nouvelles exigences aux testeurs. Ceux qui seront capables de travailler avec des systèmes basés sur l’IA et de tirer parti des tests basés sur l’IA seront très recherchés. À l’avenir, l’automatisation des tests ne consistera pas à opposer les testeurs à l’IA, mais plutôt à déterminer comment tester en utilisant l’IA.
Voici quelques exemples illustrant comment les testeurs peuvent tirer parti de l’IA dans leur travail.
Générer des cas de test
Grâce à l’IA, il est possible de générer des cas de test de différentes manières ; l’une des méthodes courantes consiste à utiliser l’apprentissage automatique (ML). L'apprentissage automatique est un type d'IA qui permet aux ordinateurs d'apprendre à partir de données sans être explicitement programmés. Dans le domaine des tests, l'apprentissage automatique peut être utilisé pour mieux comprendre le logiciel et son comportement. En analysant le code, l'IA peut identifier des sources d'erreurs potentielles. Ces sources d'erreurs peuvent ensuite être utilisées pour générer des cas de test conçus pour détecter les erreurs potentielles avant qu'elles ne se produisent.
Le traitement du langage naturel (NLP) est une autre branche de l’IA qui permet à l’interaction entre les humains et les ordinateurs de reproduire autant que possible le langage naturel. Le recours au NLP évite aux testeurs d’avoir à apprendre de nouvelles règles ou syntaxes pour différents langages de programmation. La création et la maintenance des scripts de test peuvent être longues et fastidieuses, mais grâce à l’automatisation sans script via le TAL, les scripts sont rédigés en langage naturel, ce qui présente notamment l’avantage d’une courbe d’apprentissage réduite. Contrairement à la plupart des outils d’automatisation qui nécessitent des connaissances en programmation. Un autre avantage réside dans une meilleure compréhension et une lisibilité accrue, ce qui permet à tous les membres de l’équipe d’examiner les cas de test selon les besoins. L’utilisation d’un anglais courant permet à tous les membres de l’équipe de créer des cas de test, et les responsables produit ou chefs de projet peuvent intervenir pour améliorer la couverture et la qualité des tests.
En analysant la documentation utilisateur et les exigences, l’IA peut identifier des scénarios d’utilisation potentiels. Ces scénarios peuvent ensuite servir à générer des cas de test simulant la manière dont les utilisateurs utiliseront le logiciel. À mesure que l’apprentissage automatique tire des enseignements des exécutions de test précédentes, analyse les résultats et identifie des schémas clés, il sera possible de repérer les cas de test répétitifs ou moins importants et d’améliorer la suite de tests.
Tests visuels
Il n’est pas rare que l’on exige, par exemple, d’offrir une expérience utilisateur cohérente, que l’utilisateur utilise Firefox sur son ordinateur portable ou Chrome sur son smartphone. De plus, les utilisateurs ont de plus en plus besoin d’accéder aux applications sur divers appareils, tels que les tablettes et les appareils portables. Pour les testeurs, cela peut se traduire par un nombre ingérable de cas de test d’interface utilisateur sur tous les navigateurs et appareils. Il devient alors impossible de suivre le rythme, et le recours à la vérification visuelle par IA peut constituer une solution adaptée.
Les tests visuels basés sur l’IA consistent à générer, analyser et comparer des images afin de détecter d’éventuelles variations des valeurs de pixels, appelées « différences visuelles ». Un outil d’exécution de tests est nécessaire pour mener ces tests visuels, en combinaison avec un framework d’automatisation de navigateur permettant de simuler le comportement de l’utilisateur. Des captures d’écran sont réalisées à des moments prédéfinis et servent de résultats attendus pour les comparaisons ultérieures. Pendant l’exécution du test, tout changement éventuel déclenche une capture d’écran qui est ensuite comparée à l’image de référence. En cas d’écart, le test est signalé comme ayant échoué et un rapport automatique est généré à l’intention de l’équipe d’assurance qualité.
Tests auto-corrigés et adaptatifs
L’automatisation des tests basée sur l’IA peut être auto-corrigée, ce qui signifie qu’elle peut s’adapter aux changements apportés au logiciel ou à l’environnement de test sans nécessiter d’intervention manuelle. Cela s’avère précieux dans les environnements de développement agiles où les changements sont fréquents. Les tests ayant échoué sont détectés au cours du processus de test, et bon nombre d’entre eux échouent en raison d’une mauvaise maintenance. Cela signifie que le service d’assurance qualité consacre du temps à corriger des bogues de test, temps qui pourrait être consacré à la correction de bogues logiciels. La maintenance manuelle des tests peut également retarder le développement et le lancement du produit. L’automatisation des tests auto-réparatrice réduit (voire élimine) la maintenance manuelle des tests. Cela se traduit par une diminution du nombre de tests échoués et une vision plus à jour de l’état d’avancement des tests.
Trop souvent, les tests échouent en raison de modifications apportées aux objets ou à leurs propriétés dans l’interface utilisateur. C’est là que le mode de fonctionnement auto-réparateur basé sur l’IA s’avère utile. Les objets peuvent être détectés même après la modification de leurs propriétés, ce qui élimine de fait la nécessité de modifier le script.
Au lieu de faire échouer le test, l’IA modifie automatiquement le script pour l’adapter aux nouvelles propriétés de l’objet. La fonctionnalité d’auto-correction analyse, évalue, sélectionne et modifie le script selon les besoins en une fraction de seconde. Cela permet de gagner du temps et d’ajouter un niveau supplémentaire d’automatisation afin de réduire encore davantage les interventions manuelles.
Résumé
L’IA est en cours de développement et présente un fort potentiel pour prendre en charge les tâches « traditionnelles » du testeur, telles que la création, l’exécution et la maintenance des cas de test. L’IA est capable d’analyser de grandes quantités de données et de proposer des scénarios de test complets qui permettent d’atteindre des niveaux de couverture plus élevés et de mieux identifier les bugs potentiels. La précision et la rapidité s’en trouvent accrues, ce qui se traduit par une réduction du nombre de bugs et des mises en production plus rapides. Cette nouvelle ère des tests basés sur l’IA se traduit par une augmentation de la production et allège la charge de travail du testeur. À l’avenir, les testeurs ne seront plus « simplement » des testeurs, mais devront évoluer vers des penseurs stratégiques dotés d’une compréhension approfondie tant des aspects techniques que des exigences métier.
On pourrait penser que le testeur sera remplacé à l’avenir, mais il ne faut pas sous-estimer les compétences humaines. L’IA n’est efficace que dans la mesure où les données sur lesquelles elle a été entraînée le permettent et ne peut remplacer l’intuition ou la créativité humaines. Certes, elle est prometteuse pour automatiser les tâches répétitives, mais elle ne peut pas remplacer la réflexion critique et les compétences en résolution de problèmes dont dispose le testeur. L’IA ne peut pas apporter l’intelligence émotionnelle nécessaire pour comprendre le produit du point de vue de l’utilisateur et s’identifier à son expérience. Cette limite signifie que l’IA peut passer à côté d’erreurs ayant un impact négatif sur l’expérience utilisateur. L’avenir de l’assurance qualité réside dans la recherche d’un juste équilibre entre l’IA et les tests effectués par des humains, où les outils basés sur l’IA aident le testeur à accomplir ses tâches avec plus d’efficacité et de précision. Les testeurs désireux de se former à l’IA et d’investir dans des outils de test basés sur l’IA seront bien placés pour réussir dans l’avenir de l’automatisation des tests.