Accélérez vos tests logiciels grâce à l’IA générative
L’IA générative fait partie des techniques de Deep Learning, la particularité de l’IA générative, c’est qu’il peut créer un continu original, comme du texte, des images, de la musique ou des vidéos à partir des données initiales en utilisant des réseaux neurones génératifs adverses (GANs) ou bien des modèles pré-entrainés.
IA générative conversationnelle – Les bases
L’IA générative conversationnelle est basée sur des modèles de traitement de langage naturel (NLP) capable de bien comprendre et de générer du texte fluide. Elles ont commencé avec des tâches comme résumer des textes ou comprendre les émotions dans des messages. Les chercheurs ont alors développé des modèles capables de générer du texte à partir de grandes quantités de données, qu’on appelle aujourd’hui des « Large Language Models » (LLM).
Pourquoi utiliser l’IA générative pour nos activités de test
L’amélioration de productivité et la vélocité sont les principales attentes de l’impact de l’IA générative pour les activités de test.
Elle permet d’interpréter les specs générer du code, améliorer les scénarios et les cas de tests, augmenter la couverture des tests. Ce qui permet de gagner du temps et améliorer l’efficacité du test.
Tester avec l’IA générative : quels cas d’usage ?
L’IA générative peut être utilisée dans divers cas dans le process de test :
- Interpréter des specs, des exigences, des images écrans, des cas de test, des rapports d’anomalies, etc.
- Générer des conditions de test, des cas de tests, du code de test, etc.
- Synthétiser des rapports d’avancement, d’anomalies, de couverture, etc.
- Évaluer / corriger la couverture de test, le code de test, etc.
Prompt engineering – Requêter un grand modèle de langage pour des tâches de tests
La technique de requetage ou prompting (en anglais) permet d’obtenir des résultats fiables et efficaces pour les modèles d’intelligence artificielle.
Elle consiste à formuler des instructions claires et spécifiques pour guider l’IA dans la génération de contenu, ce qui permet d’améliorer les résultats de l’IA et de réduire l’effort humain dans le process de test.
Les techniques qu’il faut connaître pour utiliser l’IA générative pour les tests, avec illustration sur des tâches de génération de tests :
- Requête structurée en 6 parties : Rôle, Contexte, Instructions, Contraintes, Format, Données
- Décomposer les instructions en étapes pour aider le modèle
- Demander au modèle de vérifier ses résultats ;
- Méta-requêtage : demander au modèle d’évaluer, d’améliorer ou de générer votre requête
Maîtriser les risques de l’IA générative
Bien que l’IA générative permette d’améliorer et accélérer le process de test de mais aussi, elle présente des risques qui sont principalement :
- Hallucinations, erreurs de raisonnement et biais de l’IA générative
- Risques de cybersécurité
- Consommation d’énergie / Impact CO2
- Perte de compétences
Hallucinations, erreurs de raisonnement et biais de l’IA générative
3 principaux problèmes à rencontrer lors de l’utilisation d’une IA générative :
1. Hallucinations : L’IA peut générer des informations fausses ou inexactes.
2. Erreurs de raisonnement : Dans le cas des problèmes complexes, L’IA peut ne pas pouvoir les résoudre comme il faut.
Exemple : Résoudre un problème de priorisation de cas de tests multicritères
3. Biais de génération : Les résultats de l’IA peuvent être biaisés en raison de ses données d’apprentissage, conduisant à une surreprésentation de certains cas et une sous-représentation d’autres.
La solution pour résoudre ces problèmes est de maîtriser ces risques dans l’usage de l’IA générative et de l’utiliser avec prudence. Donc on ne peut pas remplacer les testeurs humains complètement mais de s’en servir comme un outil d’aide en analyse et conception de tests. Les biais, notamment dans les données, peuvent entraîner des résultats incomplets ou déséquilibrés. Cependant il est donc important de ne jamais supposer que les résultats produits par l’IA sont parfaits et de rester vigilant face à ces limitations pour mieux les gérer.
Risques de cybersécurité
3 principaux risques de cybersécurité liés à l’utilisation de l’IA générative dans les tests logiciels:
- Fuite de données sensibles : L’utilisation de services d’IA générative pour traiter des informations confidentielles peut exposer les données à des risques d’évasion, surtout lorsque les spécifications sont envoyées sur Internet. Même si les données sont cryptées, elles sont vulnérables lorsqu’elles sont traitées sur des serveurs externes. La solution réside dans l’utilisation d’instances privées, le chiffrement de bout en bout, et des options qui limitent l’utilisation des données par les fournisseurs de services.
- Génération de code de test vulnérable : Les modèles d’IA peuvent produire des codes contenant des vulnérabilités de sécurité, notamment s’ils ont été formés sur des données de mauvaise qualité. Par exemple, une mauvaise gestion des requêtes SQL peut introduire des failles comme l’injection SQL. Une supervision humaine stricte est nécessaire pour valider et corriger les codes générés.
- Non-conformité aux normes et risques juridiques : L’IA peut faussement assurer qu’un code respecte des normes de certification (comme la DO-178C), mais l’erreur finale repose sur l’utilisateur. La vérification manuelle et outillée est obligatoire et cruciale pour garantir la conformité et éviter les erreurs non déterministes de l’IA.
Ces risques doivent être intégrés dans une politique de sécurité globale de l’entreprise.
Consommation d’énergie / Impact CO2
Les modèles LLM nécessitent une forte consommation énergétique et donc forte émission de CO2, bien sûr ça dépend toujours de la complexité de la tâche.
- Recherche web consomme 0.3Wh (watt-heure) d’énergie.
- Une tache de traduction d’un text de 15 lignes consomme quelques watt-heures soit plusieurs dizaines de fois plus qu’une recherche web.
- Génération d’images : Consomme de dizaines à centaines de watt-heures par image.
La majorité des tâches d’IA liées aux tests logiciels relèvent du traitement du langage (qu’il s’agisse de langage naturel ou de code informatique) et consomment donc généralement quelques wattheures par tâche.
Bonnes pratiques pour minimiser la consommation d’énérgie :
- Réduire la taille des modèles : Utiliser des modèles plus petits, adaptés à une tâche spécifique, permet d’obtenir des résultats similaires à ceux de modèles plus grands tout en réduisant la consommation énergétique.
- Éviter l’usage de l’IA quand un algorithme suffit : Il est parfois plus efficace d’utiliser un algorithme classique pour certaines tâches (comme le tri) plutôt que l’IA, afin de limiter les coûts de traitement.
- Efficacité des centres de données : La réduction de l’impact carbone passe aussi par l’efficacité des centres de données, grâce à l’usage d’énergies renouvelables et à l’optimisation des infrastructures de calcul. Cela peut guider le choix du fournisseur IA.
Perte de compétences
L’utilisation de l’IA générative dans une organisation présente un risque de perte de compétence, car plusieurs tâches peuvent être déléguées à l’IA et ça présente un vrai défi pour les compétences.
Pour gérer cette situation tout en conservant le savoir-faire humain, plusieurs stratégies émergent :
1. Formation et développement des compétences : L’ISTQB prévoit d’enrichir son corpus de qualification par une certification sur l’IA générative. Cela vise à renforcer les compétences en tests logiciels et à maîtriser les workflows hybrides, intégrant des tâches déléguées à l’IA sous supervision humaine.
2. Organisation du travail : Il est essentiel d’établir une organisation efficace, incluant des systèmes de rotation entre les rôles assistés par l’IA et les rôles traditionnels. Des flux de travail collaboratifs doivent être conçus pour favoriser la synergie entre humains et IA, tout en valorisant l’expertise humaine pour maintenir la motivation des équipes.
3. Gestion des connaissances : Une approche proactive est nécessaire pour intégrer l’IA tout en préservant le savoir-faire de l’entreprise. L’équipe peut utiliser des pratiques d’amélioration continue, telles que les rétrospectives, pour évaluer les résultats de l’IA et l’interaction entre les tâches humaines et celles assistées par l’IA.
Applications basées sur l’IA générative pour les tests
Les chatbots IA comme Copilot, Gemini ou ChatGPT sont utiles pour répondre à des requêtes variées dans les activités de test, mais ils ne s’intègrent pas toujours facilement dans les workflows de test existant. Cependant pour être vraiment efficaces, ces IA doivent s’intégrer de manière fluide dans les outils et processus utilisés par les équipes de test.
L’intégration se fait via des API de modèles LLM, permettant de créer des services IA adaptés aux tâches spécifiques. Cela implique de structurer les applications IA correctement, d’utiliser des techniques comme le RAG (Retrieval-Augmented Generation) et de veiller à ce que l’IA s’intègre naturellement aux outils de test.
Architectures des applications basées sur l’IA générative
Principalement, on a trois architectures d’applications basées sur l’IA générative :
1. Chatbot IA : L’utilisateur soumet une requête, et le modèle de langage (LLM) fournit une réponse.
2. RAG – Retrieval-Augmented Generation : L’utilisateur soumet une requête, et l’application IA l’enrichit en extrayant des informations pertinentes depuis une base de connaissances, ajoutant ainsi du contexte avant que la requête soit traitée par le LLM.
3. Agent basé LLM : Il s’agit d’une application conçue pour une tâche spécifique, qui utilise un ou plusieurs LLM pour le traitement des données. Cette architecture permet de « compléter » une tâche.
Techniques clés : RAG, Agents LLM et fine-tuning
RAG – Retrieval-Augmented Generation
La technique RAG (Retrieval-Augmented Generation) est une approche qui vise à enrichir une requête avec des informations pertinentes provenant d’une base de connaissances interne à l’entreprise. Cela permet d’améliorer la qualité et la pertinence des réponses fournies par un modèle de langage (LLM).
Comment cela fonctionne :
- La préparation des données consiste à découper les documents sources en extraits et à créer les bases vectorielles de ces extraits.
- La sélection des extraits lors d’une requête pour augmenter la requête au LLM.
Exemple: Analyse de test : mise à jour des conditions de test en lien avec des exigences modifiées.
Sources documentaires utilisées : Documents de spécifications dans leur version actuelle et précédente.
Apport du RAG: Les extraits des documents versionnés en relation avec les conditions de test à mettre à jour sont ajoutés automatiquement à la requête.
À noter cependant que le RAG est une technique qui demande une mise au point assez fine en fonction des types de documents à analyser et des tâches qui sont confiées à l’IA.
Agents LLM
Les agents LLM sont des applications d’IA générative capables d’effectuer des actions concrètes, telles que rechercher sur Internet, mettre à jour des bases de données ou interagir avec l’interface utilisateur d’une application. Si bien que ces architectures permettent de développer des outils de test intelligents et autonomes, adaptés à des tâches spécifiques et facilement contrôlables.
Fine-tuning de modèles d’IA générative
Le fine-tuning d’un LLM vise à optimiser les performances du modèle pour une tâche spécifique. L’objectif est d’ajuster légèrement les poids du modèle afin qu’il soit plus performant dans la gestion des particularités et des exigences de l’utilisation prévue.
Intégration de l’IA générative dans les activités et les outils de test
Pour résumer et faciliter l’intégration de l’IA générative dans les activités et les outils de test deux principales modalités à mettre en place par les organisations qui sont présentés dans la figure suivante :
Outils de test augmentés par l’IA et accès maîtrisés à des Chatbot IA : deux moyens complémentaires pour les services de test d’utiliser l’IA générative
- L’utilisation contrôlée des chatbots IA par les membres de l’équipe, afin de gérer les risques de fuite de données sensibles de l’entreprise et d’adopter de bonnes pratiques pour assurer efficacité et gains de productivité.
- L’exploitation des fonctionnalités d’IA intégrées dans les outils de test, à travers l’ensemble des activités liées aux tests, telles que l’analyse et la conception des tests, la gestion des tests, l’exécution et le reporting des tests, etc.
L’intégration de l’IA générative dans les outils de test et l’utilisation des chatbots IA sont complémentaires. Elle permet une assistance intégrée dans les flux de travail des testeurs tout en offrant flexibilité et liberté dans l’exécution des tâches. Par ailleurs, l’amélioration des outils de test existants par l’IA et l’émergence de nouveaux outils progressent rapidement.
Par exemple,YEST proposera des assistants pour optimiser les suites de tests, tandis que GRAVITY intégrera des accélérateurs basés sur l’IA pour l’analyse de la couverture et l’exécution par des Testeurs Virtuels.
Pour aller plus loin dans l’intégration de ces technologies, découvrez notre formation exclusive en partenariat avec UpSkill4IT : Accélérer les processus de test grâce à l’IA générative. Cette formation vous fournira les clés pour maîtriser les outils IA les plus performants et intégrer ces technologies dans vos propres environnements de test.