Vous connaissez les LLM – Large Language Model – qui sont les modèles d’IA générative utilisés par ChatGPT de OpenAI ou Gemini de Google par exemple. Ces modèles LLM ont été récemment dotés d’une capacité dite de vision, permettant l’analyse d’images (des schémas, des captures d’écran par exemple) combinée avec les capacités de raisonnement et de génération de texte. On appelle ces modèles mixtes des VLM – Vision-Language Model.
L’Ère des Modèles de Vision : une nouvelle révolution IA pour le test
Pour nous, testeurs augmentés par l’IA, c’est un progrès majeur!
Dans mon précédent blog sur les techniques de requêtage des IA, j’avais mentionné l’apport de la vision au sein des LLM pour améliorer les réponses des IA génératives sur des tâches de test, comme la génération de données de test. Ce nouvel article se focalise sur l’apport Vision & Génération par l’IA : une avancée majeure pour notre domaine des tests logiciels.
Les modèles de vision en pratique
Les grands modèles de langage sont entraînés sur de très grands jeux de données textuelles pour générer des nouveaux textes. Par exemple des cas de test ou du code de test. Récemment, ces LLM ont intégré un module de vision. Ces modules de vision ont progressé rapidement, pour atteindre des capacités bluffantes dans les dernières versions disponibles des LLM. Par exemple GPT-4o de OpenAI, Claude-3.5 de Anthropic et Gemini-1.5 de Google, mais aussi dans des LLM sous licence open-source, LLaVA par exemple.
Le module de vision ajoute la capacité d’interprétation des images vers du texte. Cela permet d’enrichir la requête au modèle en combinant du texte et une ou plusieurs images, par exemple des captures d’écran ou des schémas de spécification de l’application.
Ces modules de vision n’ont rien à voir avec la génération d’images par l’IA tels que DALL-E ou Midjourney. Un module de vison interprète une image et produit du texte, alors que les générateurs d’images produisent des images à partir d’une requête textuelle.
Prenons un exemple illustrant l’apport de la vision dans les LLM : voici une capture d’écran d’un site eCommerce de démonstration. https://spree-multi-vendor-demo.herokuapp.com/
Considérons la requête suivante à une IA générative visuelle avec la capture d’écran dans la requête :
“Voici la capture d’écran d’une boutique en ligne. Quels sont les articles proposés sur l’image ? Puis-je trouver une chemise ? À quel prix ?”
Voici la réponse avec Claude 3.5 Sonnet de Anthropic :
Oui, vous pouvez trouver une chemise sur cette image de boutique en ligne. Les articles proposés sont :
- Robe à volants (Flounced Dress) à 98,99 $
- Veste de motard en daim (Suede Biker Jacket) à 95,99 $
- Pantalon brillant (Shined Pants) à 86,99 $
- Chemise slim à carreaux (Checked Slim Fit Shirt) à 80,99 $
- Pull à manches longues (Long Sleeve Jumper) à 74,99 $
- Robe évasée élégante (Elegant Flared Dress) à 71,99 $
La chemise que vous recherchez est la « Checked Slim Fit Shirt » (Chemise slim à carreaux) au prix de 80,99 $.
L’image montre également une interface de boutique en ligne avec des options de filtrage par couleur, longueur, taille, prix et vendeur. Il y a aussi un menu en haut avec des options comme « SHOP », « BRANDS », « START SELLING » et « CONTACT US ».
Pas mal, non ?
Cette réponse du LLM montre différentes capacités des modules de vision : identifier les différents composants visuels de l’image (par exemple ici les photos des articles proposés à la vente), réaliser la reconnaissance des textes écrits et les traduire si besoin dans la langue de la requête, associer ces différents éléments pour apporter une compréhension de l’image grâce à la combinaison avec les capacités textuelles des LLM.
Cela ouvre des perspectives très intéressantes pour les activités de test. Nous allons pouvoir donner du contexte au modèle d’IA en combinant des images et des données textuelles, par exemples :
- des User Stories avec leurs critères d’acceptation et les captures des écrans concernés pour générer des cas de test et des données de test ;
- des exigences fonctionnelles et des diagrammes décrivant le comportement de l’application pour la conception des tests assistée par l’IA ;
- des rapports d’anomalies issus des tests automatisés et les captures d’écran au moment de la détection de ces anomalies, pour l’analyse et la synthèse des problèmes rencontrés lors des tests ;
- des critères d’acceptation d’une User Story et les images de maquettes IH/M de l’application pour des tâches d’analyse de la complétude et de la correction de ces critères d’acceptation ;
- etc…
Tester avec l’IA générative augmentée par la vision
L’IA générative est rentrée dans le quotidien de nombreux testeurs et les cas d’usage deviennent de plus en plus clairs pour gagner en productivité et en vélocité pour les activités des tests logiciels. Chez Smartesting, nous développons des outils de tests basés IA depuis toujours, et l’IA générative en est un accélérateur :
- pour YEST, outils de conception visuelle des tests, pour optimiser et refactorer une suite de tests ;
- pour Gravity, plateforme de tests centrés sur l’analyse des parcours utilisateurs, pour interpréter les parcours, et faciliter l’analyse de la couverture de l’usage par les tests ;
- Et aussi au travers de notre formation à l’IA générative pour les tests, qui s’appuie sur 8 ateliers de mise en pratique pour développer les savoir-faire en IA des professionnels des tests logiciels.
L’IA générative renforce la productivité des équipes sur une grande partie des activités de test,. Ces bénéfices sont renforcés par les capacités apportées par ces LLM avec module de vision. Dans le tableau ci-dessous, nous reprenons 4 groupes d’activités de test. Nous listons des exemples de tâches bénéficiant de l’IA générative, et un exemple d’utilisation du module de vision.
Tableau : l’IA générative avec vision pour quatre groupes d’activités de test.
Groupe d’activités de test | Apport de l’IA générative | Apport de la vision – Exemple |
Analyse de test | – Automatisation de l’analyse des exigences. – Identification des conditions de test. | – Interprétation des maquettes d’IH/M combinées avec les exigences / User Stories. |
Conception des tests | – Création automatisée de scénarios de test. – Optimisation des scénarios pour une couverture maximale avec un minimum de tests. | – Utilisation de captures d’écran pour générer des cas de test en couverture des critères d’acceptation et des conditions de test. |
Implémentation des tests | – Définition des données nécessaires pour les tests manuels- Génération des scripts de test automatisés. | – Génération de données de test concrètes à partir de l’analyse de captures d’écran en usage pilote ou en tests exploratoires. |
Analyse des résultats de test | – Analyse des résultats de test pour identifier les anomalies.- Synthètiser différents résultats de test et fournir des tendances. | – Analyse visuelle pour comparer les résultats attendus avec les captures d’écran des résultats obtenus, facilitant la détection des anomalies. |
Bien sûr, ce tableau n’est pas exhaustif, mais il donne des exemples de l’apport de l’IA générative avec la vision. Nottament pour gagner en productivité et en vélocité dans nos activités au quotidien.
Dans l’article précédent sur les techniques de requêtage des LLM, nous avions vu l’apport du module de vision pour analyser des captures d’écran et générer les données de test. Vous pouvez retrouver cet exemple ici.
Dans cet article, nous illustrons la puissance combinée des capacités de vision et de génération des LLM sur un autre exemple. Il s’agit de la génération de critères d’acceptation dans le contexte de l’analyse de test d’une application web.
Génération de critères d’acceptation pour une User Story donnée par analyse d’une maquette IH/M
Cet exemple prend en entrée une maquette d’IH/M et une User Story pour demander au LLM de générer les critères d’acceptation.
La maquette IH/M utilisée est celle de la page paiement d’un site de eCommerce – Source : https://ecommerceuxdesign.com/post/checkout-types-2 – Août 2024
Nous utilisions l’IA pour nous aider à formuler les critères d’acception liés à nos User Stories. Voici un exemple de requête pour cette tâche, avec l’image précédente jointe :
#Contexte
Je travaille sur les tests d’une application web de eCommerce. L’image ci-jointe est la maquette de la page de paiement. Ton rôle est de m’aider à créer les critères d’acceptation pour la User Story des options de livraison.
#Instructions
1- Pour la User Story donnée ci-dessous, écrit une liste de critères d’acceptation mettant en relation les différents aspects de l’IH/M donné en image ci-jointe.
2- Vérifie que les critères d’acceptation que tu as générés sont complets et cohérents vis-à -vis de l’image ci-jointe.
#Données
User Story :
En tant que client, je veux pouvoir choisir entre différentes options de livraison (standard, express, jour ouvrable suivant) afin de recevoir ma commande selon mes préférences de délai et de coût.
Voici la réponse du LLM (avec Claude 3.5 Sonnet) :
D’après la maquette fournie et la User Story donnée, voici une liste de critères d’acceptation pour les options de livraison :
- L’interface affiche une section intitulée « SELECT SHIPPING OPTION » (Sélectionner l’option de livraison).
- Trois options de livraison sont proposées :
- Standard Shipping (Livraison standard)
- Next Business day (Jour ouvrable suivant)
- Express Shipping (Livraison express)
- Chaque option de livraison est accompagnée d’une case à cocher pour permettre la sélection.
- Le prix correspondant à chaque option de livraison est clairement affiché à droite de chaque option.
- Une seule option de livraison peut être sélectionnée à la fois.
- La sélection d’une option de livraison met à jour automatiquement le récapitulatif de la commande dans la section « SUMMARY OF GOODS » (Résumé des articles).
- Le coût de livraison sélectionné est affiché dans le récapitulatif sous la ligne « Shipping » (Livraison).
- Le total de la commande (« Total ») est mis à jour pour inclure le coût de l’option de livraison sélectionnée.
- Par défaut, l’option de livraison la moins chère (probablement la livraison standard) est présélectionnée.
- L’utilisateur peut changer son choix d’option de livraison à tout moment avant de finaliser la commande.
- Le bouton de validation de la commande (non visible sur cette maquette) ne devrait être activé que si une option de livraison est sélectionnée.
Ces critères d’acceptation couvrent les principaux aspects de la fonctionnalité de sélection des options de livraison tels qu’ils apparaissent sur la maquette fournie. Ils sont cohérents avec l’image et répondent à la User Story en permettant au client de choisir entre différentes options de livraison selon ses préférences de délai et de coût.
Voici quelques considérations issues de cette expérience :
Rédaction de la requête :
- La requête utilisée est structurée en trois parties Contexte / Instructions / Données. Structurer les requêtes à l’IA générative est une bonne pratique qui permet d’améliorer le résultat en sortie. Nous avons présenté une structure type dans un article de blog précédent à retrouver ici.
- La technique de requêtage utilisée combine la demande de génération avec une demande d’auto-vérification du résultat par le LLM. (cf. item 2 de l’instruction donnée dans la requête) de façon à en augmenter la qualité.
Analyse du résultat :
Le LLM utilise l’analyse de l’image jointe mais aussi ses connaissances propres :
On peut constater dans le critère d’acceptation numéro 11 une référence à un bouton de validation qui n’est pas présent sur l’image. C’est la puissance de l’apprentissage du LLM sur une grande quantité de données (dont des sites de eCommerce) qui vient compléter l’analyse de l’image fournir : les capacités de vision et de génération du LLM se combinent.
Les critères d’acceptation
Les critères d’acceptation générés sont cohérents, assez complet, mais bien sûr pouvant être détaillés ou complétés. L’intérêt de l’IA ici est d’être un assistant et d’apporter des suggestions, pas de remplacer l’analyste de test.
La question à se poser est bien sûr de savoir si nous avons gagné du temps avec l’IA générative sur cet exemple :
Cela dépend certainement de votre degré d’expertise métier. Pour moi, la réponse est clairement oui. Il faut 3 minutes pour créer la requête (pour une personne formée à l’IA générative et aux techniques de requêtage). Il faut 10 secondes pour obtenir le résultat de l’IA qui peut constituer un point de départ pour la suite du travail sur les scénarios de test d’acceptation.
Choix du LLM avec vision :
Comme montré sur la capture d’écran ci-dessous, nous avons mis en concurrence 3 modèles d’IA générative avec module de vision. Ils ont traité la même requête en parallèle : Claude-3.5-Sonnet, GPT-4o et Gemini-1.5-Pro. Sur notre exemple, les résultats sont très proches, et il est difficile de donner un gagnant. Mais un bénéfice immédiat de cette génération par 3 LLM permet de compléter le résultat d’un LLM pour le résultat d’un autre LLM, avec un gain en termes de complétude. De plus, on constate un progrès rapide vis-à-vis des versions antérieures (Claude-3, GTP-4 et Gemini v1). C’est de bon augure pour la suite et les prochaines versions de ces LLM qui seront encore améliorées.
Conclusion
Les capacités de l’IA générative pour nos activités de test se renforcent avec l’arrivée du module de vision. Pour requêter un modèle d’IA, nous pouvons maintenant combiner nos intrants textuels et visuels. C’est un vrai plus car cela accélère la création des requêtes en donnant une information contextuelles très précises au LLM, combinant images et textes.
Cette capacité de combiner vision et génération des LLM ouvre de nombreux cas d’usage pour les activités de test. Aussi bien pour l’analyse de test, la conception de test, l’implémentation des tests et l’analyse de rapports d’anomalies. Et cette liste est loin d’être exhaustive, car de nombreux autres cas d’usage sont à découvrir et à expérimenter.
Mais l’IA reste perfectible et demande un savoir-faire pour l’utiliser de façon efficace. C’est ce que nous proposons à Smartesting, à la fois dans les produits YEST et GRAVITY qui intègrent des services IA de façon fluide, et au travers de notre formation à l’IA pour les tests, visant l’acquisition par la pratique des connaissances et savoir-faire requis.