Yest pour l'industrie

L’industrie regroupe une très grande diversité de domaines : automobile, ferroviaire, aéronautique, énergie, dispositifs médicaux, électronique, et bien d’autres. Chacun de ces secteurs possède ses propres spécificités. Mais tous partagent un ensemble de caractéristiques fondamentales qui structurent leurs activités d’ingénierie et de production.

Dans l’industrie, la gestion des exigences et la traçabilité sont essentielles. Les revues régulières assurent la qualité et la conformité. Elles aident à maîtriser les risques et à garantir un suivi rigoureux. Ces pratiques renforcent la sécurité et répondent aux normes strictes de secteurs comme l’aéronautique ou le médical.

Par ailleurs, les industries se distinguent par un taux d’automatisation élevé, bien plus important que dans l’IT. L’intégration de bancs de tests ,les chaînes de production et les outils d’analyse en continu imposent une rigueur et une fiabilité accrues.

Les environnements de test sont également très diversifiés, allant des simulations logicielles pures (SIL – Software-in-the-Loop) aux bancs physiques intégrant le matériel réel (HIL – Hardware-in-the-Loop). Sans oublier les nombreux modèles numériques utilisés en amont. Ces différentes phases de validation exigent une capacité à gérer des configurations multiples et à assurer une couverture de test exhaustive.

Enfin, il existe dans ces secteurs une réelle habitude d’utilisation de modèles. Que ce soit dans l’ingénierie système, la simulation multiphysique ou la conception fonctionnelle. La modélisation devient un outil incontournable pour valider les concepts, prédire les performances et réduire les cycles de développement.

Ces environnements industriels requièrent par conséquent des outils de test adaptables à des processus complexes, et ce, en couvrant les aspects mentionnés précédemment. C’est précisément ce que permet Yest.

Gestion des exigences et la traçabilité

Dans le domaine industriel, la gestion des exigences et la traçabilité constituent des enjeux majeurs. Leur complexité, le nombre élevé d’exigences, ainsi que les multiples combinaisons nécessaires pour les couvrir, rendent ces activités particulièrement exigeantes. Pour y répondre, des revues régulières sont indispensables afin de s’assurer de la bonne compréhension des exigences et de leur couverture exhaustive.

Yest répond à ces défis en s’appuyant sur une approche par modèles pour générer automatiquement les scénarios de test. Les modèles intègrent des tables de décision où chaque ligne décrit un cas de test précis. Ce cas de test étant en lien direct avec une ou plusieurs exigences à valider. Les tables permettent d’illustrer de manière explicite toutes les combinatoires nécessaires pour garantir une couverture complète. De plus, la représentation sous forme de table facilite grandement les revues menées par les équipes Vérification & Validation. Les tables offrent un support succinct de revue des combinatoires et le modèle lui illustre la vision globale.

A noter que Yest permet de faire le lien avec les exigences issues de vos outils habituels de gestion d’exigences. Par exemple, comme Jira, Polarion ou d’autres solutions similaires, grâce à ses add-ons dédiés. Chaque scénario de test généré peut ainsi être directement relié à un ensemble d’exigences, assurant une traçabilité complète.

Grâce à cette approche orientée modèle, un test unique peut couvrir plusieurs exigences tout en respectant les règles métiers. Ceci est essentiel pour la validation des systèmes industriels complexes. Une fois générés, les tests peuvent être exportés vers vos environnements automatisés ou manuels, en conservant l’intégralité des liens avec les exigences. Cette continuité garantit une traçabilité complète, conforme aux standards réglementaires et aux attentes des audits qualité.

Automatisation

L’industrie exige un haut niveau d’automatisation pour tester les nombreuses configurations possibles d’un même test. Yest s’inscrit dans cette dynamique et automatise intelligemment les tests avec différentes combinaisons. 

Il peut arriver de démarrer l’automatisation sans base : ce qui limite la visibilité sur les tests automatisés. La documentation se résume alors aux commentaires dans le code. Parfois, on part d’une base de tests manuels et on souhaite les automatiser. Dans ce cas, on perd souvent le lien entre test manuel et script automatisé. Dans les deux cas, il est assez difficile de garantir que les scripts couvrent exhaustivement les exigences. 

De plus, pendant la phase de conception des tests manuels, une attention particulière porte sur la sélection des données et combinatoires pertinentes. Ce travail d’optimisation des jeux de données est souvent réitéré lors de l’automatisation. Ce qui entraine une duplication des efforts et une perte de vélocité sur les itérations.

Comment Yest répond aux défis de l’automatisation

Pour répondre à ces défis, Yest propose des mécanismes qui facilitent la transition des tests manuels aux scripts automatisés paramétrés. Yest utilise la technique de Keyword Driven Testing, qui génère les scripts à partir de mots clés. Ces mots clés représentent des fonctions exécutant des actions sur le système testé. Sur un banc d’essai ou un simulateur, ils activent ou configurent un dispositif, par exemple. Les mots clés peuvent s’écrire dans différents langages, ce qui permet à Yest de s’adapter à tout environnement d’automatisation. Et, nous collaborons étroitement avec nos clients pour adapter nos add-ons à leurs besoins spécifiques. 

Le principe de l’automatisation dans Yest est de relier chaque étape de test aux mots clés correspondants. Les tests uniformes générés par Yest facilitent ce travail de liaison des mots clés. En effet, en transcrivant un test, on participe à l’automatisation des autres tests du périmètre. En complément, durant cette phase, il est possible de générer des combinaisons de jeux de données tout en restant fidèle aux règles métiers.

Cette méthode garantit que le script automatisé reproduit fidèlement le test manuel. Ceci permet ainsi d’assurer la traçabilité avec les exigences et une couverture optimale des combinatoires de données. Par ailleurs, le support visuel du modèle facilite la compréhension rapide des tests manuels par les automaticiens. Réduisant significativement le temps d’analyse des tests pour l’automaticien. Cette méthode offre donc une visibilité stratégique sur l’exécution des tests automatisés, un enjeu majeur tant pour les équipes Vérification & Validation que pour les équipes Systèmes et Développement.

Gestion de la complexité des environnements

Les environnements de test variés, allant des simulations logicielles (SIL) aux bancs physiques intégrant du matériel réel, exigent la répétition des mêmes tests avec des variantes adaptées à chaque contexte. Yest facilite la gestion de cette complexité grâce à l’utilisation de modèles et la distinction claire entre la phase de conception des tests (modele , tables de décision, scénarios de test) et la phase d’implémentation (jeux de données, publication vers un outil de test management).

Avec Yest, il est possible de créer des modèles communs à plusieurs environnements ainsi que des modèles spécifiques. Lors de la conception des tests, on sélectionne et assemble les modèles pertinents pour s’adapter précisément à l’environnement ciblé. La même approche s’applique aux jeux de données, que l’on peut segmenter par système. Cela garantit ainsi que les configurations déployées correspondent bien à chaque système.

Cette approche de découpage et de segmentation des modèles et des jeux de données optimise significativement le processus de conception des tests. Elle réduit les redondances en favorisant la réutilisation des composants communs. Le tout en garantissant une adaptation précise à chaque environnement spécifique. Ainsi, les ingénieurs V&V évitent de repartir systématiquement de zéro à chaque nouveau contexte. Ce qui permet alors d’améliorer la productivité et la cohérence des tests. Par ailleurs, cette approche garantie la cohérence entre scénarios et configurations propres à chaque système testé, renforçant la qualité globale et la fiabilité des validations. 

Les modèles pour valider efficacement les systèmes

Enfin, dans l’industrie, la représentation d’une partie de la spécification sous forme de modèle est assez courante. Il existe donc une habitude à l’usage des modèles qui peut être mise au service de la conception de test. Par exemple, l’usage de machines à états est assez courant. On peut avoir, dans Yest, deux approches pour effectuer les tests correspondants :

  • Une reproduction « à l’identique » de la machine à états sous forme de parcours Yest. Cette technique permet de garantir une couverture complète des transitions, mais produit des tests sans thématique particulière. Donc, la lisibilité de ces tests n’est pas garantie, car ils ne présentent pas la dimension métier en usage réel.
  • Une construction de parcours plus orienté test qui « déplie » la machine à états. Cette technique permet d’avoir un meilleur contrôle des objectifs de test. De plus, elle offre une plus grande lisibilité, tant au niveau du modèle que des tests eux-mêmes sur ce qui est réalisé. Un avantage supplémentaire est de permettre à l’ingénieur Vérification & Validation de mieux tester la spécification elle-même, en revisitant l’usage des machines à états d’un point de vue plus extérieur. Ainsi, la maîtrise de la couverture des transitions peut être conservée, en passant par des informations supplémentaires qui indiqueront les transitions devant être exercées.

Conclusion

Yest répond aux besoins spécifiques des environnements industriels en intégrant la gestion des exigences, la traçabilité et une automatisation avancée des tests. Son approche basée sur les modèles, une pratique largement maîtrisée dans l’industrie, facilite son adoption et son intégration dans les environnements existants.

L’objectif de Yest est d’assurer une couverture complète et fiable des exigences tout en proposant une automatisation flexible et adaptée aux différents contextes industriels. Grâce à l’utilisation des modèles, Yest offre une visibilité claire sur l’ensemble des étapes du processus de test, de la conception à l’exécution, renforçant ainsi la maîtrise, la qualité et la cohérence des validations.

Contactez-nous pour organiser une démonstration de Yest et échanger sur la manière dont il peut s’adapter à votre environnements industriel. 

Yest bénéfices

Tester avec l’IA générative : Comment se lancer vraiment est la grande question du moment pour les organisations de test.
Car, une fois passée l’étape de découverte, qui permet de confirmer la puissance des capacités des modèles d’IA pour les tests, il faut sortir du bricolage pour obtenir un vrai impact et un ROI mesuré. Et, ce n’est pas si simple !

Cet article accompagne la sortie de la première édition de notre guide pratique de l’IA générative pour les tests, en posant trois questions clés.

Tester avec l’IA générative :

  • Pour quoi faire ?
  • Pour quels cas d’usage ?
  • Comment démarrer et continuer ?

Tester avec l’IA générative : pour quoi faire ?

La réponse est limpide : pour gagner en productivité et en vélocité dans nos activités de test.

La fréquence des mises en production s’accélère, la complexité des systèmes à tester augmente, la demande de qualité est forte. En conséquence, il faut gagner en productivité dans nos activités de test, et l’IA générative est là pour cela.

Nous n’avons pas encore de statistiques précises sur les gains de productivité mesurés pour les métiers du test, car la diffusion de l’IA générative y est trop récente. 

Mais, nous avons des statistiques pour les activités des développeurs. Les deux graphiques suivants sont issus de l’enquête de Stack Overflow : 2024 Developer Survey, avec des réponses obtenues auprès de près de 30 000 développeurs professionnels.

Les chiffres sont parlants :

  • 76,7 % des développeurs professionnels ayant répondu utilisent ou ont prévu d’utiliser l’IA générative très prochainement pour les aider dans leurs activités ;
  • 82,7 % de ceux qui utilisent l’IA indiquent les gains de productivité comme un bénéfice obtenu.

Les trois activités principales assistées par l’IA mentionnées par les développeurs sont : l’écriture du code (pour 82 % des répondants), la recherche de réponses sur des questions liées au code (67,5 %), et le débogage du code (56,7 %). L’utilisation de l’IA pour l’écriture et l’amélioration du code est le focus principal. Ce qui est bien compréhensible puisque ceci est l’activité principale des développeurs.

A notre connaissance, il n’existe pas, à ce jour, d’étude de même nature pour les professionnels des tests logiciels. Mais, on peut faire deux hypothèses :

  • L’usage de l’IA générative par les professionnels des tests logiciels est très certainement bien moindre actuellement que celle des développeurs.
  • Une raison vient de la grande diversité des tâches de test. Les activités des testeurs sont très variées et se répartissent sur l’ensemble du cycle de test. L’utilisation de l’IA pour les tests s’en trouve forcément plus diversifiée et son infusion dans le quotidien des testeurs sera plus progressive.

Tester avec l’IA générative : pour quels cas d’usage ?

La réponse est limpide : potentiellement, pour l’ensemble des activités de test.

Considérons les sept groupes d’activité des tests logiciels selon ISTQB – International Software Testing Qualification Board – Testeur Certifié de Niveau Fondation, 

Tester avec l’IA générative : pour quels cas d'usage ?

Figure : Groupes d’activités de test suivant ISTQB Testeur Certifié Niveau Fondation – Version 4.0

Pour chaque groupe d’activités des tests logiciels, voici des cas d’usage de l’IA générative pour améliorer la productivité.

Planification des tests :

  • Génération automatique de plans de test basés sur les spécifications du projet.
  • Suggestion de stratégies de test adaptées au contexte du projet.
  • Estimation du temps et des ressources nécessaires pour les tests.

Analyse de test :

  • Analyse automatique des exigences pour identifier les scénarios de test pertinents.
  • Détection des ambiguïtés ou incohérences dans les spécifications.
  • Suggestion de cas de test couvrant différents aspects fonctionnels et non fonctionnels.
  • Analyse des risques pour identifier les zones les plus critiques à tester en fonction de l’historique des défauts et de l’importance des fonctionnalités.

Conception des tests :

  • Génération automatique de cas de test basés sur les spécifications.
  • Création de jeux de données de test variés et réalistes.
  • Suggestion de scénarios de test pour couvrir les cas limites et les exceptions.

Implémentation des tests :

  • Génération de code de test automatisé.
  • Conversion de cas de test écrits en langage naturel en scripts de test exécutables
  • Maintenance des scripts de test.
  • Suggestions d’optimisation du code de test existant.

Exécution des tests :

  • Exécution optimisée des tests.
  • Détection automatique des anomalies.
  • Priorisation intelligente des tests à exécuter en fonction du contexte et des changements.
  • Analyse en temps réel des résultats de test pour identifier rapidement les anomalies.
  • Génération automatique de rapports de test détaillés.

Clôture des tests :

  • Analyse des résultats de test pour générer des résumés et des recommandations.
  • Identification des tendances et des modèles dans les défauts trouvés.
  • Suggestion d’améliorations pour les futures phases de test.

Pilotage et Contrôle des tests :

  • Tableau de bord dynamique avec prévisions et analyses en temps réel.
  • Alertes automatiques sur les risques ou les retards potentiels.
  • Recommandations pour l’allocation optimale des ressources de test.

Ces cas d’usage ne donnent pas une liste exhaustive, mais montrent la grande diversité de l’apport de l’IA générative pour les tests, et le potentiel de gains en productivité et en vélocité.

Face à une telle profusion de cas d’usage, le monde du test est un peu désorienté…

Quel cas d’usage est prioritaire, par quoi commencer, où seront les gains les plus importants ?

Malheureusement, comme souvent en test logiciel, il n’y a pas une réponse unique s’appliquant à tous les cas. La raison vient de la diversité des contextes, des maturités en test et des processus et des habitudes de travail déjà en place. Les gains obtenus avec l’IA générative vont dépendre de votre capacité à bien utiliser l’IA, mais aussi de la qualité des données que nous allons utiliser pour nourrir cette IA.

Prenons un exemple en analyse et conception de tests : vous souhaitez utiliser l’IA générative pour accélérer la création des conditions de test à partir des User Stories et des critères d’acceptation. Très bien. Mais si vos critères d’acceptation sont lacunaires, pensez-vous réellement que les résultats seront à la hauteur de vos espérances ? Imaginez maintenant que vos critères d’acceptation soient de bonnes qualités, mais que les testeurs, non formés aux techniques de requêtage des modèles d’IA, créent des requêtes faibles avec des résultats médiocres. Là aussi, vos résultats ne seront pas ceux attendus.

Les gains obtenus avec l’IA vont donc varier en fonction de différents critères spécifiques à votre organisation. Notamment la qualité de vos données et celle de vos savoir-faire en IA générative. Il vous faut donc une véritable stratégie d’intégration pour infuser l’IA générative dans vos activités de test.

Tester avec l’IA générative : comment démarrer et comment continuer ?

La réponse est limpide : de façon progressive et structurée.

La figure suivante propose une approche par étapes pour commencer puis pour progresser dans la mise en œuvre de l’IA générative pour les tests.

Tester avec l’IA générative

Étape 1 : Découvrir 

Tout d’abord, il est important de découvrir les possibilités offertes par l’IA en initiant la formation des équipes, en mettant en place les accès nécessaires aux modèles de langage (LLM), et en expérimentant avec des cas d’usage initiaux. 

Étape 2 : Initialiser et cadrer l’usage

Une fois ces fondations posées, il convient de prioriser les cas d’usage pertinents, de développer les compétences internes, de mutualiser le savoir-faire acquis, et d’évaluer et d’intégrer les outils de test basés sur l’IA générative. 

Étape 3 : Exploiter / Itérer

Pour exploiter pleinement le potentiel de ces technologies, il faut les intégrer dans les flux de travail existants des testeurs. Ceci, en sélectionnant les traitements les plus performants, en évaluant régulièrement l’évolution des outils LLM, et en mesurant l’impact sur la transformation des pratiques de test. 

Cette démarche progressive et structurée vise à maximiser les bénéfices de l’IA générative tout en minimisant les risques associés à son implémentation. 

Mais, au fur et à mesure que vous avancez, de nombreuses questions se posent et de multiples choix sont à réaliser, des risques sont à éviter. Le tout, faisant émerger une nouvelle pratique des tests logiciels, assistée par l’IA.

Car il s’agit bien d’une transformation profonde des méthodes de travail que vous allez progressivement réaliser. Et comme toute transformation, sa réussite va dépendre de votre engagement, de l’adhésion des équipes et de la bonne exécution des étapes de la démarche.
Vous pourrez découvrir dans notre eBook Tester avec l’IA générative – Guide pratique, une vision à 360° des aspects clés pour réussir votre parcours.