accueilinsightsl’intelligence artificielle au service de l’automatisation des tests
quality assurance & testing

l’intelligence artificielle au service de l’automatisation des tests

Franck Jarre , QAT Practice Representative for Paris Office · octobre 02, 2023

l’Intelligence Artificielle

Il y a quelques mois, l’intelligence artificielle (IA) était un sujet encore peu discuté. Aujourd’hui, elle est au centre de nombreuses conversations. Les pionniers de l’informatique moderne aspiraient à augmenter l’intellect humain et à étendre nos capacités au-delà des limites de notre intelligence collective. En concevant le « calculateur pensant » dans les années 1950, ils ont initié une évolution rapide vers l’IA, posant les fondations d’une technologie qui aurait un impact considérable sur le monde dans les décennies à venir.

Les intelligences artificielles sont généralement classées en deux catégories principales : l’IA curative et l’IA générative :

  • L’IA curative interprète les données existantes pour extraire des informations précieuses, aider à la prise de décisions ou prédire des résultats, en utilisant des techniques d’apprentissage automatiques. Par exemple, elle peut être employée pour analyser les données d’une application en production et aider ainsi à diagnostiquer des erreurs, ou encore, sur Internet, l’IA va intervenir en sélectionnant les publicités à afficher, et générer ainsi un processus de vente.
  • L’IA générative, telle que les modèles ChatGPT, Bard, Claude2, Midjourney etc., crée de nouvelles données à partir des existantes, en générant de nouvelles informations, telles que des images, de la musique, des voix ou des textes, grâce à des techniques comme les réseaux antagonistes génératifs (GANs).

Les IA génératives se sont démocratisées depuis 6 ans, mais ne sont accessibles au grand public que depuis début 2020. Cependant, grâce à l’évolution de la fonction Chat du modèle GPT, leur accessibilité a augmenté de manière significative. Un (1) million d’utilisateurs se sont inscrits sur ChatGPT lors de la première semaine de lancement. Nous avons assisté à une véritable révolution dans l’acceptation et l’accès à ces IA, bien que leur technologie sous-jacente n’ait pas connu de transformation majeure.

L’IA est désormais omniprésente : jusqu’à quel point réalisons-nous vraiment que nos actions quotidiennes reposent sur l’IA ?
Si l’IA est présente dans presque tout ce que nous utilisons, des thermostats aux systèmes d’irrigation, elle offre également des opportunités dans de nouveaux domaines, tels que les véhicules autonomes, la recherche pharmaceutique et l’agriculture de précision. L’IA constitue une rupture technologique passionnante pour les développeurs en charge de créer des solutions puissantes, innovantes, et de résoudre des problèmes complexes.

Autrefois réservée aux chercheurs et aux institutions, l’IA est maintenant accessible aux acteurs de la tech grâce à la disponibilité récente d’infrastructures, de plateformes et de services. Ces derniers, présents dans le cloud, permettent de développer des solutions basées sur l’IA, en incluant le Machine Learning, l’exploration des connaissances, les agents intelligents et les modèles préformés, sans nécessité de connaissances spécialisées.

Ces dernières années, l’IA a connu une croissance exponentielle, favorisée par d’énormes quantités de données numériques, et une puissance de calcul massive. C’est ainsi que des technologies avancées, comme la compréhension du langage naturel, l’analyse des sentiments, la reconnaissance vocale et la compréhension des images, ont pu s’ancrer dans des applications multi-sectorielles.

La qualité d’écriture d’une IA telle que ChatGPT a été une véritable révé(o)la(u)tion pour les utilisateurs, offrant un progrès notable. Cependant, il est important de noter que ChatGPT n’écrit pas au sens traditionnel du terme, elle effectue des calculs. Lorsqu’un philosophe écrit, il choisit consciemment chaque mot qui suit. En revanche, lorsque ChatGPT « écrit », elle calcule le mot le plus probable à suivre en se basant sur les données sur lesquelles elle a été formée. Elle prédit le mot suivant en utilisant des méthodes statistiques.

L’objectif le plus recherché de l’IA est d’améliorer et de faciliter la vie quotidienne. Depuis toujours, les utilisateurs ont rêvé de pouvoir dialoguer de manière sensée avec les ordinateurs, exprimer leurs besoins, leurs idées, en utilisant un langage naturel « homme-machine » : en somme, parler à l’ordinateur, qui nous répondrait. L’IA conversationnelle transforme le modèle d’interaction de commandes spécifiques à un domaine et axées sur la machine, en interfaces conversationnelles centrées sur l’humain et l’expression. Avec l’IA conversationnelle, les développeurs peuvent faire en sorte que les ordinateurs communiquent comme des humains, en reconnaissant les mots utilisés, en comprenant l’intention de leurs interlocuteurs, et en répondant de manière simple et naturelle.

L’Intelligence Artificielle (IA) représente désormais un investissement massif, le marché mondial étant estimé à 136,6 milliards de dollars en 2022, et devrait atteindre 1 811,8 milliards de dollars d’ici 2030.
Cette croissance des dépenses en IA est prévue pour perdurer, toutes entreprises, régions et secteurs d’activité confondus.

1 : https://techjury.net/blog/ai-statistics/

l’automatisation des tests

Dans le monde du développement logiciel, les tests automatisés jouent un rôle crucial. Ils permettent de garantir la qualité du logiciel, de détecter les bugs et les erreurs avant qu’ils n’affectent les utilisateurs finaux, et de faciliter le processus de déploiement continu.

Cependant, les approches traditionnelles des tests automatisés présentent des défis et des limitations. Elles peuvent être coûteuses, chronophages, fortement consommatrices de ressources humaines, et ne pas suivre suffisamment rapidement le rythme des évolutions logicielles.

C’est là que l’intelligence artificielle entre en jeu. L’émergence de l’IA a transformé de nombreux domaines, y compris celui des tests automatisés. Grâce à ses capacités d’apprentissage automatique, de traitement du langage naturel et de vision par ordinateur, l’IA peut automatiser les tests de manière plus efficace et plus précise, tout en réduisant les coûts et la dépendance aux ressources humaines.

Les 3 problèmes majeurs rencontrés traditionnellement avec l’automatisation de l’interface utilisateur sont :

Les tests ne sont pas stables et ne se déroulent pas comme convenu.
Pourquoi l’automatisation est-elle donc si fragile ?

Exemple :

Ci-dessus, après une mise à jour de la version de l’application, l’affichage du menu déroulant « Status » est passé de l’aspect 1 à l’aspect 2. Pour les utilisateurs, cette modification n’a aucune incidence, car ils auront toujours, au final, devant eux, une liste déroulante de sélection d’une valeur.

En revanche, comme nous pouvons le voir ci-dessous, le code lié au changement de technologie est totalement différent. Comme les tests automatisés interagissent systématiquement avec le code de l’application, cela impliquera d’adapter les tests automatisés incluant la fonctionnalité « Status ».

     

L’automatisation est dépendante de la maitrise des technologies sous-jacentes.

L’automatisation intervient bien souvent trop tardivement. Généralement quand on souhaite automatiser un test, on doit attendre que l’application soit construite, déployée et stabilisée, afin d’éviter de changer trop fréquemment les objets en raison des développements.

Pour résoudre ce problème et adopter une approche shift-left, il y a bien sûr l’approche du développement guidé par le comportement (BDD) : elle permet de décrire rapidement le comportement attendu, base essentielle pour les développeurs et les acteurs métier. On retrouve souvent cette approche avec des outils d’automatisation tels que Selenium. Mais là encore, il faut attendre que l’application soit construite et disponible avant de lancer les scripts.

C’est ici qu’interviennent des solutions éditeur LowCode/NoCode, qui, grâce à des règles d’automatisation augmentées à la puissance de l’IA, proposent une approche extrême du shift-left.

Intéressons-nous à un acteur majeur et leader du marché, qui se différencie particulièrement en ce domaine : Tricentis.

Tricentis, l’automatisation et l’IA : un modèle visionnaire

Tricentis est un éditeur de logiciels international, qui a révolutionné l’industrie en proposant des solutions innovantes. Au cœur de cette avancée technologique se trouve Tricentis Tosca, propulsé par l’intelligence artificielle, qui propose LA solution innovante de pointe du marché. Cette solution vient pallier la pression constante exercée sur les équipes Agile et DevOps pour effectuer des tests rapides sur les nouvelles technologies. Elle s’appuie sur des intelligences artificielles s’articulant autour de 3 domaines :

Vision AI : l’automatisation est basée sur des indices visuels, indépendante de la plateforme ou de la technologie sous-jacente, y compris les applications de bureau à distance fournies avec CITRIX ou VMWare.

Self-healing AI : les tests sont autocorrectifs, et à l’épreuve du futur. Ils peuvent être réutilisés même après des changements technologiques majeurs et des mises à niveau.

Risk AI : disponible dans LiveCompare, l’IA a été formée sur des dizaines de millions de lignes de codes de projets open source sur GitHub. Elle est capable de prédire les analyses de risques liées aux modifications de code, de mesurer la couverture de code, et de déterminer là où des optimisations doivent être mises en œuvre.

focus sur vision AI 

Introduit pour la première fois en 2020 dans Tosca 14, Vision AI est une approche révolutionnaire de l’automatisation de l’interface utilisateur, alimentée par l’IA, qui permet aux équipes d’automatiser, indépendamment de la technologie sous-jacente. Grâce au Machine Learning,

Vision AI peut voir et diriger toute interface à la manière d’un humain.
Vision AI se base sur un moteur d’automatisation optique reposant sur des réseaux de neurones à apprentissage profond, formé sur 9 millions d’objets, riche de 12,5 millions d’exemples.

Ce moteur ne cesse de s’enrichir en connaissances, lui permettant de reconnaître avec une aisance déconcertante tous les objets présents à l’écran. Tout repose sur l’automatisation de l’interface utilisateur. L’automatisation en langage naturel est possible, car elle est basée sur le visuel, elle fonctionne donc sur tout ce qu’elle peut voir. L’IA scanne l’écran 40 fois par seconde, et si un changement survient, Vision AI comprend les objets modifiés.

Cette caractéristique rend l’automatisation « future-proof » et aussi adaptable que le cerveau humain. Pour la première fois, il est possible de véritablement anticiper les tests de l’interface utilisateur, mettre en place une véritable approche shift-Left et faire du InSprint.

Avec Vision AI, il est possible d’élaborer l’automatisation sur la base d’une simple maquette ou d’une description de l’interface utilisateur, avant même la rédaction du code, cela permet de tester bien plus tôt dans le cycle de développement.

Il est possible de concevoir les cas de tests automatisés, même si l’application cible n’existe pas. On peut décrire comment le test se déroule, et lorsque l’application est prête, on peut lancer les tests directement.

Grâce à Vision AI, on peut capturer des maquettes et réaliser des cas de tests.

A partir d’une simple image.

Ou bien, directement à partir d’une photo, qui illustre le design attendu et dessiné sur un tableau blanc durant une réunion.

Etape 1 : Capture de la photo grâce à Vision AI

 

Etape 2 : Vision AI détecte les éléments sur la photo

 

Etape 3 : Renommage et configuration du module capturé

Etape 4 : Exécution du cas de test incluant le module

quels sont, pour résumer, les bénéfices de Vision AI ?

Flexibilité et résilience
Automatisation stable d'une version à l'autre et auto-réparatrice. Apprentissage rapide et analyse de nouvelles applications et éléments. Peu, voire aucune maintenance en cas de changements.
Déplacement de l'automatisation des tests vers le shift-left
Ne nécessite pas de construire une interface utilisateur au préalable. Crée l'automatisation des tests à partir de la description d'une action. L'exécution des tests automatisés commence dès la livraison de l'application.
Mise à l'échelle de l'automatisation des tests à travers l'entreprise
Met l'IA à disposition des développeurs, testeurs et utilisateurs métier sur demande. Fonctionne avec les applications existantes, actuelles et nouvelles prometteuses, grâce à la technologie de reconnaissance d'images. Intégrée aux solutions de Tricentis.
Diapositive précédente
Diapositive suivante

conclusion

 

L’avenir des tests automatisés est à portée de main, et l’intelligence artificielle y contribue pleinement. La symbiose parfaite entre l’humain et la technologie est désormais lancée.

Comme nous l’avons développé, les éditeurs leader tels que Tricentis, lancent aujourd’hui des solutions d’IA révolutionnaires, dans une véritable approche shift-left, rendant l’automatisation possible dès les premières étapes du développement.

C’est un avenir passionnant qui nous attend.

Itecor est prêt à vous accompagner dès maintenant dans cette aventure, et à garantir la qualité de vos logiciels et le succès de vos projets.

plus d'insights

les tests automatisés dans le cadre du développement de logiciels modernes


digital solutionsquality assurance & testing

avril 08, 2024

migration et automatisation d’un patrimoine de tests selenium vers tosca


quality assurance & testing

avril 08, 2024

securing digital frontiers: cybersecurity for a large-scale digital transformation


quality assurance & testing

mars 13, 2024

contactez-nous