L'intelligence artificielle (IA) a changé et continuera de changer l'assurance qualité, ce qui signifie que nous, en tant que testeurs, devons être prêts. Les outils de test alimentés par l'IA automatiseront les tâches répétitives, prédiront les problèmes et amélioreront l'efficacité et la précision. Cela laisse plus de temps pour les tâches créatives, mais impose en même temps de nouvelles exigences aux testeurs. Ceux qui ont la capacité de travailler avec des systèmes basés sur l'IA et de bénéficier de tests avec l'IA seront très demandés. L'automatisation des tests à l'avenir ne consiste pas à opposer les testeurs à l'IA, mais plutôt à savoir comment tester à l'aide de l'IA.
Voici comment les testeurs peuvent bénéficier de l'IA dans leur travail.
Générer des scénarios de test
Avec l'IA, il est possible de générer des cas de test de différentes manières et une méthode courante consiste à utiliser l'apprentissage automatique. L'apprentissage automatique est un type d'IA qui permet aux ordinateurs d'apprendre à partir de données sans être explicitement programmés. Dans les tests, l'apprentissage automatique peut être utilisé pour apprendre à connaître le logiciel et son comportement. En analysant le code, l'IA peut identifier des sources potentielles d'erreurs. Ces sources d'erreur 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 l'homme et l'ordinateur d'imiter autant que possible le langage naturel. L'utilisation du NLP signifie que les testeurs n'ont pas à apprendre de nouvelles règles ou syntaxes pour différents langages de programmation. La création et la maintenance de scripts de test peuvent être longues et fastidieuses, mais avec l'automatisation sans script grâce au NLP, les scripts sont écrits en langage naturel et l'un des avantages est la faible courbe d'apprentissage. Contrairement à la plupart des outils d'automatisation qui nécessitent des connaissances en programmation. Un autre avantage est l'amélioration de la compréhension et de la lisibilité qui permet à tous les rôles au sein de l'équipe de réviser les cas de test si nécessaire. L'utilisation d'un anglais simple permet à tous les membres de l'équipe de créer des cas de test, et les propriétaires de produits ou les chefs de projet peuvent intervenir et augmenter la couverture et la qualité des tests.
En analysant la documentation et les besoins des utilisateurs, l'IA peut identifier des scénarios d'utilisation potentiels. Ces scénarios peuvent ensuite être utilisés pour générer des cas de test qui simulent la manière dont les utilisateurs se serviront du logiciel. Au fur et à mesure que l'intelligence artificielle apprend des tests précédents, analyse les résultats et trouve des modèles cruciaux, il sera possible de trouver des cas de test répétitifs ou moins importants et d'améliorer la suite de tests.
Test visuel
Il n'est pas rare que des exigences telles que la fourniture d'une expérience utilisateur cohérente, qu'un utilisateur ait Firefox sur son ordinateur portable ou Chrome sur son smartphone, soient posées. De plus, les utilisateurs ont de plus en plus besoin d'accéder aux applications sur différents appareils tels que les tablettes et les wearables. Pour les testeurs, cela peut signifier un nombre inhumain de cas de tests d'interface utilisateur sur tous les navigateurs et appareils. Il est donc impossible de suivre le rythme et le besoin de vérification visuelle par l'IA peut devenir une solution appropriée.
Les tests visuels d'intelligence artificielle consistent à générer, analyser et comparer des images afin de détecter d'éventuels changements dans les valeurs des pixels, connus sous le nom de "différences visuelles". Un programme de test est nécessaire pour exécuter les tests visuels en combinaison avec un cadre d'automatisation du navigateur pour imiter le comportement de l'utilisateur. Des captures d'écran sont réalisées à des moments précis et utilisées comme résultats attendus lors de comparaisons ultérieures. Pendant l'exécution du test, toute modification éventuelle déclenche une capture d'écran et est comparée à l'image de référence. En cas d'écart, le test est marqué comme ayant échoué et un rapport automatique est généré pour que l'assurance qualité puisse l'examiner.
Auto-réparation et tests adaptatifs
L'automatisation des tests alimentée par l'IA peut être auto-réparatrice, ce qui signifie qu'elle peut s'adapter aux changements dans le logiciel ou l'environnement de test sans nécessiter d'intervention manuelle. Cette caractéristique est précieuse dans les environnements de développement agiles où les changements sont fréquents. Les tests qui échouent sont découverts au cours du processus de test, et nombre d'entre eux échouent en raison d'une mauvaise maintenance. Cela signifie que l'assurance qualité passe du temps à corriger les bogues des tests alors qu'elle pourrait le faire pour le logiciel. La maintenance manuelle des tests peut également retarder le développement et le lancement du produit. L'automatisation des tests à autorégénération réduit (voire élimine) la maintenance manuelle des tests. Cela permet de réduire le nombre de tests échoués et d'avoir une vision plus actualisée de l'état 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 modus operandi d'auto-réparation alimenté par l'IA s'avère utile. Les objets peuvent être détectés même après que leurs propriétés ont été modifiées, ce qui élimine 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 fonction d'autoréparation permet de gratter, d'évaluer, de sélectionner et de modifier le script en fonction des besoins en une fraction de seconde. Cela permet de gagner du temps et d'ajouter une couche supplémentaire d'automatisation pour réduire encore l'intervention manuelle.
Pour résumé
L'IA est en cours de développement et a un grand 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 a la capacité d'analyser de grandes quantités de données et de fournir des scénarios de test complets qui conduisent à des niveaux de couverture plus élevés et à une meilleure identification des bogues potentiels. La précision et la rapidité augmentent, ce qui permet de réduire le nombre de bogues et d'accélérer les mises en production. La nouvelle ère des tests basés sur l'IA entraîne une augmentation de la production et soulage les testeurs d'une partie de leur charge de travail. À l'avenir, les testeurs ne seront pas "simplement" des testeurs, mais devraient devenir des penseurs stratégiques ayant une compréhension approfondie des aspects techniques et des exigences de l'entreprise.
Il peut sembler que le testeur sera remplacé à l'avenir, mais les compétences humaines ne doivent pas être sous-estimées. L'IA ne vaut que ce que valent les données sur lesquelles elle a été formée et ne peut remplacer l'intuition ou la créativité humaine. Bien sûr, elle est prometteuse lorsqu'il s'agit d'automatiser des tâches répétitives, mais elle ne peut pas remplacer la pensée critique et les compétences en matière de résolution de problèmes que possède 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 limitation signifie que l'IA peut manquer des erreurs qui ont un impact négatif sur l'expérience de l'utilisateur. L'avenir de l'assurance qualité réside dans la recherche d'un juste équilibre entre l'IA et les tests humains, où les outils basés sur l'IA aident le testeur à accomplir ses tâches de manière plus efficace et plus précise. Les testeurs désireux de s'informer sur l'IA et d'investir dans des outils de test alimentés par l'IA seront bien placés pour réussir dans l'avenir de l'automatisation des tests.
Paul Singh
Paul Singh est un résolveur de problèmes analytique qui s'intéresse vivement à la technologie. Il aime travailler en équipe car il aime interagir avec d'autres personnes. Paul a notamment travaillé sur des tests exploratoires pour les appareils mobiles et le web, ainsi que sur l'automatisation en C# et Selenium.