Automatisation de la génération de scénarios de test dans le développement logiciel
Cet article présente une méthode pour générer des scénarios de test à partir de exigences en langage naturel.
― 10 min lire
Table des matières
- Comprendre la génération de scénarios de test
- Génération automatique de scénarios de test
- Contexte industriel
- Exemples d'exigences et de scénarios de test
- Approche de génération de scénarios de test basée sur la RAG
- Collecte d'entrée et génération de prompt
- Récupération de contexte
- Génération de scénarios de test
- Évaluation de l'approche automatisée
- Résultats de l'évaluation
- Retours d'experts et perspectives
- Conclusion
- Source originale
- Liens de référence
Les scénarios de test sont des instances spécifiques qui décrivent une séquence d'actions destinée à valider comment une application logicielle fonctionne. Ils décrivent les conditions dans lesquelles le logiciel opère et les résultats attendus, assurant que le logiciel est testé en profondeur. Ces scénarios sont particulièrement importants pour examiner une application sous différentes conditions, y compris les cas extrêmes, pour déceler des problèmes et confirmer la performance et la fiabilité globales.
Créer des scénarios de test manuellement peut être un processus long et compliqué. Ça nécessite une compréhension approfondie du logiciel et du domaine concerné. Comme beaucoup d'équipes font déjà face à des contraintes de temps et de budget, cette tâche impose un lourd fardeau aux ingénieurs en Exigences et aux équipes de test. Il y a donc un besoin d'une façon automatisée de générer ces scénarios.
Cet article parle d'une méthode pour générer des scénarios de test à partir d'exigences en langage naturel, utilisant une technologie avancée impliquant de grands modèles de langage (LLMs) et la génération augmentée par récupération (RAG). Cette méthode permet d'intégrer des connaissances spécifiques au domaine avec les capacités de génération des LLMs. L'approche a été appliquée à deux projets dans une organisation, qui a dû faire face au défi des exigences bilingues en allemand et en anglais.
Les scénarios de test doivent être étroitement alignés avec les exigences sous-jacentes tout en couvrant divers aspects de la fonctionnalité prévue du logiciel. Les scénarios générés doivent également être clairs et compréhensibles pour des experts, les rendant pratiques pour les tests.
Cette méthode a été évaluée à travers des interviews avec des experts du secteur. Le sondage a porté sur cinq dimensions importantes : pertinence, couverture, exactitude, cohérence et faisabilité. Les résultats ont indiqué que l'approche automatisée montre un bon potentiel pour générer efficacement des scénarios de test, malgré quelques défis comme la prise en charge des exigences bilingues.
Comprendre la génération de scénarios de test
La génération de scénarios de test est une étape clé dans l'assurance qualité du logiciel. Ça implique de définir des situations et des séquences d'actions pour valider la fonctionnalité d'une application par rapport à ses exigences. Les scénarios de test sont essentiels car ils simulent les interactions utilisateur et les comportements du système, garantissant que le logiciel peut être fiable dans des situations réelles. Ces scénarios aident également à identifier des problèmes potentiels tôt dans le processus de développement, ce qui peut réduire les coûts de maintenance et gagner du temps.
Les scénarios de test peuvent être formatés de différentes manières, comme des étapes séquencées dans des diagrammes ou des notations formelles, ou via des annotations en langage naturel. Cependant, créer ces scénarios manuellement est une tâche intensive qui nécessite beaucoup de temps et de ressources. Les défis incluent le fait de négliger des cas extrêmes spécifiques, de maintenir les scénarios face à des exigences changeantes, et d'échelonner le processus pour des projets plus importants.
Une approche automatisée peut aider à relever ces défis en générant des scénarios de test qui répondent à toutes les exigences fonctionnelles et capturent les cas extrêmes que les processus manuels pourraient manquer. Cela peut mener au développement d'un logiciel plus robuste et fiable.
Génération automatique de scénarios de test
Cet article examine la génération de scénarios de test à partir d'exigences en langage naturel en utilisant des techniques à la pointe du Traitement du langage naturel (NLP). Les LLMs, formés sur une large gamme de textes, peuvent lire et interpréter des exigences logicielles complexes et les traduire en scénarios de test détaillés.
Cependant, les LLMs ont parfois du mal avec des questions spécifiques au domaine et peuvent produire des informations incorrectes. Un problème courant avec les LLMs génératifs est de générer des informations inexactes, surtout pour des tâches qui dépassent les données d'entraînement des LLMs. Pour aborder ce défi, la génération augmentée par récupération (RAG) est utilisée pour améliorer les LLMs.
La RAG combine la récupération de données externes avec les capacités de génération de texte des LLMs. Lorsqu'une requête est présentée, le système de récupération récupère des informations pertinentes, qui sont ensuite intégrées dans la réponse générée par le LLM. Cette approche aide à garantir que les scénarios générés sont non seulement contextuellement pertinents mais aussi précis.
Ce travail a été réalisé en étroite collaboration avec une organisation de services postaux, où deux projets avec des exigences bilingues ont été analysés. Les exigences comprenaient des fonctionnalités liées aux calculs de taxe sur la valeur ajoutée (TVA) et à la pré-sélection automatisée du courrier.
Contexte industriel
L'organisation impliquée est un fournisseur de services postaux international, et sa division informatique gère la plupart des opérations informatiques de l'entreprise. L'application logicielle principale utilisée pour la livraison et les processus postaux est essentielle aux opérations de l'organisation. Des améliorations au logiciel sont régulièrement apportées, nécessitant la génération continue de nouveaux scénarios de test qui doivent être alignés avec les fonctionnalités existantes.
Beaucoup des exigences du projet étaient spécifiées dans un mélange d'allemand et d'anglais. Les aspects bilingues proviennent du contexte historique de l'organisation et de son mouvement vers l'internationalisation. Cela ajoute de la complexité à la création de solutions automatisées pour les processus d'ingénierie des exigences.
Exemples d'exigences et de scénarios de test
Pour illustrer le processus Automatisé, des exigences spécifiques et des scénarios de test correspondants ont été analysés. Les exigences comprenaient la possibilité de changer les taux de TVA pour certaines villes mentionnées dans la documentation de l'organisation et de s'assurer que le bouton de changement s'affiche uniquement lorsque des conditions spécifiques sont remplies.
Le scénario de test détaillant les étapes pour valider ces exigences incluait des actions comme ouvrir l'application, scanner des articles avec le drapeau TVA, et vérifier le taux affiché. Cet exemple met en évidence les défis rencontrés lorsqu'il s'agit d'exigences bilingues, car les mots-clés et les processus peuvent être spécifiques à l'organisation.
Approche de génération de scénarios de test basée sur la RAG
La méthode proposée pour générer des scénarios de test implique plusieurs étapes clés :
Collecte d'entrée et génération de prompt
Le processus commence par la collecte d'exigences en langage naturel, une brève description du scénario de test à générer, et des exemples optionnels de scénarios de test. Les exigences d'entrée doivent être organisées en fonction des fonctionnalités. Le prompt généré à partir de cette entrée est ensuite utilisé dans les étapes suivantes du processus.
Récupération de contexte
Avec le prompt en place, la prochaine étape est de récupérer le contexte nécessaire à partir d'un corpus spécifique au domaine. Ce corpus contient des informations pertinentes qui peuvent informer la génération de scénarios de test. Le contexte aide à garantir que les scénarios générés sont précis et pertinents.
Génération de scénarios de test
Après la récupération de contexte, le LLM est utilisé pour générer le scénario de test basé sur le prompt d'entrée et les passages de contexte sélectionnés. Cette étape peut également inclure un ensemble de termes de glossaire pour fournir un contexte supplémentaire et maintenir une terminologie spécifique. Le processus de génération doit se conformer aux limites de jetons inhérentes aux LLMs, nécessitant l'inclusion sélective d'informations pertinentes.
Évaluation de l'approche automatisée
L'évaluation de cette approche automatisée implique deux questions de recherche principales :
- Quelle configuration produit les résultats les plus précis pour la génération de scénarios de test ?
- Les praticiens trouvent-ils les scénarios de test générés utiles ?
Pour répondre à la première question, plusieurs configurations de l'approche ont été testées, faisant varier des facteurs tels que le modèle sélectionné et la technique de prompt utilisée. Pour la deuxième question, des retours ont été recueillis auprès d'experts qui ont évalué les scénarios de test générés en fonction de leur pertinence, couverture, exactitude, cohérence et faisabilité.
Résultats de l'évaluation
L'évaluation a révélé que les techniques de prompt à peu d'exemples offraient de meilleurs résultats que celles à zéro exemple. Cela souligne l'importance de fournir des exemples pour guider efficacement le modèle. Cependant, augmenter le nombre de morceaux de contexte n'a pas systématiquement amélioré les performances à travers toutes les configurations de modèles.
Les experts ayant évalué les scénarios de test générés les ont trouvés généralement cohérents et faisables. Bien qu'il y ait eu un consensus sur la pertinence et la couverture, la variabilité dans l'exactitude indique des domaines à améliorer. Cela suggère un besoin d'expertise dans le domaine pour affiner les scénarios générés.
Retours d'experts et perspectives
Les retours des experts ont révélé plusieurs domaines clés pour l'amélioration et le développement futur. Maintenir la terminologie spécifique au domaine a été souligné comme un défi, suggérant un besoin de dictionnaire standardisé de termes pour éviter des problèmes de traduction.
De plus, la qualité des données d'entrée impacte directement celle des résultats. Les experts ont souligné que si les données d'entrée sont floues ou ambiguës, les résultats refléteront cela. Ainsi, garantir une haute qualité dans les exigences originales est crucial.
Le rôle de l'expertise humaine dans la supervision et le raffinage des scénarios générés a également été souligné. Les experts ont noté que des testeurs expérimentés pouvaient rapidement identifier et corriger les problèmes dans les scénarios générés, renforçant l'importance d'une boucle de rétroaction dans le processus de génération.
Enfin, les experts ont exprimé un intérêt à utiliser l'approche pour des projets en cours, indiquant une disposition à adopter cette solution automatisée tout en reconnaissant la nécessité d'un raffinement supplémentaire avant une intégration complète.
Conclusion
Cet article a discuté d'une approche automatisée pour générer des scénarios de test à partir d'exigences en langage naturel qui combine efficacement les capacités des grands modèles de langage avec des techniques de récupération. L'évaluation a montré un bon potentiel dans la capacité de la méthode à générer des scénarios de test pertinents, cohérents et faisables.
Les idées obtenues des retours d'experts aideront à améliorer encore l'approche et à l'intégrer dans des applications pratiques. En regardant vers l'avenir, des études plus approfondies et des améliorations dans l'intégration des connaissances spécifiques au domaine et la qualité des données d'entrée seront des étapes vitales pour une mise en œuvre plus large dans différents contextes.
Titre: Generating Test Scenarios from NL Requirements using Retrieval-Augmented LLMs: An Industrial Study
Résumé: Test scenarios are specific instances of test cases that describe actions to validate a particular software functionality. By outlining the conditions under which the software operates and the expected outcomes, test scenarios ensure that the software functionality is tested in an integrated manner. Test scenarios are crucial for systematically testing an application under various conditions, including edge cases, to identify potential issues and guarantee overall performance and reliability. Specifying test scenarios is tedious and requires a deep understanding of software functionality and the underlying domain. It further demands substantial effort and investment from already time- and budget-constrained requirements engineers and testing teams. This paper presents an automated approach (RAGTAG) for test scenario generation using Retrieval-Augmented Generation (RAG) with Large Language Models (LLMs). RAG allows the integration of specific domain knowledge with LLMs' generation capabilities. We evaluate RAGTAG on two industrial projects from Austrian Post with bilingual requirements in German and English. Our results from an interview survey conducted with four experts on five dimensions -- relevance, coverage, correctness, coherence and feasibility, affirm the potential of RAGTAG in automating test scenario generation. Specifically, our results indicate that, despite the difficult task of analyzing bilingual requirements, RAGTAG is able to produce scenarios that are well-aligned with the underlying requirements and provide coverage of different aspects of the intended functionality. The generated scenarios are easily understandable to experts and feasible for testing in the project environment. The overall correctness is deemed satisfactory; however, gaps in capturing exact action sequences and domain nuances remain, underscoring the need for domain expertise when applying LLMs.
Auteurs: Chetan Arora, Tomas Herda, Verena Homm
Dernière mise à jour: 2024-04-19 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2404.12772
Source PDF: https://arxiv.org/pdf/2404.12772
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.