Blog - Mr Suricate

L'APPORT DE L'IA DANS LES TESTS LOGICIELS - INTERVIEW DE BRUNO LEGEARD

Rédigé par Mr Suricate | 20 juin 2022 14:50:39

Depuis quelques années, les innovations en matière d'apprentissage automatique et d'intelligence artificielle contribuent à faire évoluer de nombreux secteurs d'activités. Le monde du test en fait partie. Mais comment l'IA peut-elle s'inscrire dans l'automatisation des tests ? Comment peut-elle aider les équipes métiers à mieux appréhender ce domaine ? Quels sont ses gains, ses risques et ses limites ? Découvrez la réponse à ces questions dans notre interview de Bruno Legeard.

Bruno Legeard est un expert de l'automatisation des tests, qui travaille depuis plusieurs années sur l'apport de l'IA pour faciliter les tests logiciels. Professeur de Génie Logiciel à l'Université de Franche-Comté, il encadre plusieurs thèses de Doctorat sur ce thème. Il est aussi l'un des co-fondateurs de Smartesting, qui développe des outils d'automatisation des tests à base d'IA, et il a contribué au sein de l'ISTQB à la nouvelle certification AI Testing.

Vous avez animé une conférence sur l’utilisation des traces d’exécution pour optimiser les tests automatisés de régression avec l’IA, pouvez-vous nous en dire un peu plus ? 

À partir du moment où on a pris conscience de ce besoin de l’automatisation des tests, la question c’est : “comment faire” ? Les pratiques courantes qui s’appuient sur le codage des scripts automatisés, sont des pratiques qui posent des difficultés aujourd’hui car elles induisent un effort de maintenance très important. Et c’est là qu’intervient l’apport de l’IA et de nouvelles technologies, pour réduire cet effort de maintenance, d’une part et pour s’assurer que les tests automatisés couvrent les parcours clés en production. C’est ce sujet-là que nous avons abordé et pour lequel nous avons proposé une solution basée sur l’IA qui est l’analyse des traces d’usage du logiciel pour compléter la couverture des tests automatisés. Tester les parcours qui comptent, en sachant le faire à partir de l’analyse de ce que fait vraiment l’utilisateur. 

Hormis cet effort de maintenance, quels sont les autres gains que l’IA peut apporter à l’automatisation des tests ? 

Il y a un ensemble de techniques qui commencent à apparaître, basées sur l’IA, sur plusieurs sujets liés à l’automatisation des tests. Par exemple, le fait de pouvoir identifier, lorsque le test automatisé est un test classique (un test de bout en bout web par exemple), lorsque ce test simule l’utilisateur, cela nécessite de pouvoir activer des objets de l’interface. Et souvent, les tests cassés viennent d’un changement sur ces objets graphiques. Et l’apprentissage automatique (machine learning) permet de retrouver le bon objet et de modifier automatiquement le script pour réparer le locator, c’est-à-dire la localisation de l’objet graphique qui doit être activé durant le test. Mais ça, ce n’est qu’un élément. 

Le deuxième sujet, c’est celui de la pertinence des tests automatisés, c’est-à-dire s’assurer en permanence que les parcours utilisateurs clés sont bien couverts par les tests automatisés. Et il y a un troisième sujet important, qui est le sujet de la priorisation des tests à l’exécution. Lorsque vous avez des tests de bout en bout, qui assurent que les parcours utilisateurs fonctionnent, l’exécution peut prendre du temps. Une des solutions à ce problème, c’est de pouvoir prioriser l’exécution des tests automatisés en fonction de l’apprentissage des résultats précédents, d’une prédiction de l’anomalie qui va être détectée.

 

L’idée, donc, c’est d’exécuter des scénarios qui seront plus souvent KO pour donner un statut rapide sur, par exemple, une correction d’erreur ?

Absolument. La magie de l’IA et du machine learning, c’est que ce ne sont pas des règles qu’on va humainement définir. C’est l’apprentissage du modèle, des algorithmes par les algorithmes, qui permet de prédire avec une bonne fiabilité. Imaginons qu’on ait 300 tests à exécuter, il y en a 17 qui vont échouer et révéler des anomalies. Avec la prédiction, ces 17 tests vont alors se retrouver dans les 20 premiers à exécuter. Si on a le temps d’exécuter ces 300 tests en 3 minutes, on ne va pas en avoir besoin, mais la réalité n’est souvent pas celle-là. La réalité, c’est que les 300 tests s’exécutent en 4/5h et on a donc un gros intérêt à avoir une priorisation fiable. Et l’IA, dans nos travaux, c’est une technique d’apprentissage supervisé, le fait qu’on apprenne à partir de l’historique, du contexte dans lequel le test s'exécute, de sa durée, des changements qui ont été fait, etc. Il faut voir l’IA comme un facilitateur au quotidien pour les testeurs. 

Au contraire, pour vous, quelles sont les limites de l'IA dans l’automatisation des tests ? 

Dans quelques années, ça me paraît assez clair que nous allons arriver à développer des systèmes de tests intelligents et autonomes. Il y a des choses en laboratoire qui commencent à apparaître autour de tests auto-adaptatifs. Le sujet n°1 c’est le test de régression, des tests qui sont pénibles à maintenir, à faire. Je parierais que d’ici 5 à 10 ans, on aura ce type de robot. On aura des capacités qui remplaceront la création des tests par des testeurs dans certains environnements et de façon automatique. Cela veut aussi dire les profils, les bonnes connaissances métiers, etc, c’est du travail un peu répétitif qui sera remplacé pour partie. Mais, les testeurs ont une très forte valeur ajoutée sur l’ensemble des activités d’ingénierie de la qualité, et la mise en place des robots de tests intelligents et autonomes viendra comme une aide et un renforcement de leurs activités

L’IA est un sujet assez complexe, selon vous, quels sont les défis que cela peut poser dans l’automatisation des tests ? 

Lorsqu’on utilise et qu’on met en œuvre des techniques d’apprentissage à partir de sources de données, si les sources de données ne sont pas fiables, alors les résultats de l’IA ne seront pas fiables. Si on cherche à prédire des taux d’anomalies ou des risques associés à différentes composantes logiciel en fonction de l’historique des développements, encore faut-il que ces données d’historique aient été archivées, maintenues et qu’elles soient fiables. C’est aussi une problématique, il ne suffira pas de dire : je n’ai qu’à prendre ce moteur d’IA pour avoir tel résultat, comme par exemple, faire une prédiction sur le taux d’erreur du composant. Si on n’a pas les bonnes données en amont, le composant ne donnera jamais rien. Les testeurs ont d’ailleurs un rôle à jouer dans le fait que les données utilisées par l’IA soient de bonne qualité.

*Test de bout en bout : Test d’un système intégré complet pour vérifier que l’ensemble des composants intégrés fonctionnent en environnement final sur des parcours utilisateurs ciblés.

*Scénario : Déroulé des différentes étapes à réaliser pour tester une ou plusieurs fonctionnalités sur une application web ou mobile.


 

Qu'avez-vous pensé de cette interview ? Profitez-en également pour découvrir nos autres interviews de Marc Hage Chahine et Xavier Blanc !