Research Article

PreventativeTestPro : Un cadre de tests hybrides évolutif utilisant l’observabilité et l’IA générative pour une ingénierie proactive de la qualité logicielle

DOI:

10.3791/69316

March 24th, 2026

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

PreventativeTestPro est un cadre de test piloté par l’IA qui utilise des données d’observabilité et de grands modèles de langage pour automatiser l’analyse des causes profondes, la génération de tests et la validation continue, dans le but d’améliorer la fiabilité logicielle et d’optimiser l’assurance qualité pour les systèmes frontend et backend afin de faciliter une gestion plus efficace des tickets de support.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Cet article présente un système de test sophistiqué et évolutif qui intègre une automatisation pilotée par l’observabilité avec une ingénierie qualitative proactive augmentée par l’IA afin de relever les difficultés contemporaines de livraison logicielle. Le système suggéré améliore PreventivTestPro, une plateforme de test hybride open source qui combine méthodologies boîte noire et boîte blanche, en incorporant une couche innovante d’orchestration de tests basée sur l’observabilité. La plateforme utilise des journaux, des métriques, des événements et des traces en plus de la surveillance côté navigateur et côté serveur pour identifier rapidement les anomalies, améliorer la sélection des cas de test et automatiser la création de suites de tests fonctionnelles, de performance et de sécurité. Une caractéristique distinctive est l’intégration de grands modèles de langage (LLM) pour fournir des informations sur la cause profonde et construire de manière autonome de nouveaux cas de test basés sur les comportements de production et les anomalies identifiées, offrant ainsi une couverture de régression adaptative et une remédiation intelligente.

Le système facilite l’exécution simultanée de tests grâce à une analyse instantanée de journaux pilotée par l’IA, favorisant une boucle de rétroaction continue entre les opérations et les tests. Il a été validé dans plusieurs scénarios d’entreprise, notamment sur des plateformes SaaS basées sur des microservices et des écosystèmes SAP BTP. Les résultats empiriques de quatre déploiements en production et d’un groupe bêta de 49 ingénieurs indiquent une diminution allant jusqu’à 30 % du temps moyen jusqu’à la résolution, plus de 95 % de conformité aux SLA, et des améliorations substantielles à la fois de la couverture des tests et de la traçabilité des défauts. La connexion sans effort avec des outils standards de l’industrie illustre sa capacité plug-and-play.

Cette recherche présente une méthodologie d’ingénierie de qualité complète, indépendante des outils et tournée vers l’avenir, conforme aux principes de l’agilité et du DevOps. Les projets futurs incluent la classification dynamique des anomalies par apprentissage automatique, l’extension aux systèmes mobiles et orientés expérience utilisateur, ainsi qu’un renforcement des capacités de grands modèles de langage pour le développement de tests spécifiques à un domaine et la prévision des pannes.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

La popularité croissante du paradigme agile dans les entreprises du logiciel a suscité un intérêt croissant pour les environnements d’intégration continue. Les avantages de tels systèmes incluent l’intégration fluide de modifications régulières des programmes, ce qui permet une évolution logicielle accélérée et rentable. Par conséquent, il gérera efficacement des tâches telles que les procédures de construction, l’exécution des tests et le rapport des résultats des tests. Les tests logiciels sont mis en œuvre depuis les débuts de l’ingénierie logicielle. La pratique des tests logiciels a été mise en œuvre pour évaluer la qualité du logiciel1. Les tests englobent une série d’actions visant à détecter et résoudre toute erreur potentielle dans le logiciel avant son déploiement auprès des utilisateurs finaux. Le test logiciel est une étape coûteuse du processusde développement 2. Le coût des tests et débogages logiciels représente plus de 50 % du coût total dedéveloppement 3,4. Le coût associé aux tests de régression dépend de la complexité de l’application et de l’ampleur de la suite de tests5.

La méthodologie agile conduit à des changements rapides en production, ce qui entraîne un grand nombre de problèmes de support dus aux retours. Gérer les difficultés de support est une responsabilité très importante et cruciale, comme en témoigne le fait que 68 % des consommateurs expriment leur volonté de payer un supplément pour des produits et services d’une entreprise réputée pour offrir un excellent serviceclient 6. Selon une étude, 86 % des clients qui reçoivent un service client exceptionnel sont plus susceptibles de devenir des défenseurs fidèles de l’entreprise à longterme 7. Selon une étude, 89 % des acheteurs sont plus enclins à effectuer des achats répétés s’ils ont eu une expérience de service client favorable8. Selon une étude, 93 % des clients sont enclins à effectuer des achats répétés auprès d’entreprises offrant un service client exceptionnel9. Pour offrir un service client excellent, il est essentiel de résoudre rapidement et efficacement les demandes d’assistance avec un haut niveau de qualité. L’élément qualité est crucial pour viser une livraison plus rapide, car le coût de résolution des problèmes de support augmente avec le temps et le niveaud’escalade 10.

Pour obtenir une haute qualité, il est nécessaire de localiser et de résoudre les problèmes de support tout en garantissant une couverture complète des tests de régression sur le ticket. Cette tâche est complexe et a entraîné une augmentation des difficultés opérationnelles, notamment la détection et la résolution rapides des problèmes de soutien. Les difficultés de support, comprenant une grande variété de problèmes tels que la baisse des performances du système ou des dysfonctionnements imprévus, surviennent fréquemment au stade opérationnel des systèmes logiciels. Si ces difficultés ne sont pas rapidement identifiées et corrigées, elles peuvent entraîner de longues périodes d’inactivité, de mécontentement des consommateurs et des revers financiers. Les méthodes actuelles d’utilisation des informations d’observabilité pour les besoins de test sont souvent limitées par des procédures manuelles, des tactiques réactives plutôt que proactives, et une incapacité à intégrer la détection d’anomalies à l’exécution des tests. Il y a un manque évident de détection proactive des problèmes de support utilisant des données d’observabilité en temps réel et de l’exécution automatique des cas de test appropriés pour prévenir à l’avance des défaillances probables.

L’absence d’une solution globale et unifiée entraîne de nombreuses conséquences néfastes pour la maintenance et la fiabilité des logiciels. Ces facteurs incluent des périodes prolongées d’inactivité du système causées par le retard dans l’identification des problèmes, une augmentation du travail manuel pour localiser les cas de test pertinents, et une confiance réduite dans la fiabilité du système. De plus, l’incapacité à associer avec précision les anomalies identifiées aux cas de test entraîne des lacunes dans la couverture des tests, ce qui peut entraîner des problèmes importants non résolus.

La raison fondamentale de cette disparité peut être attribuée à la structure fragmentée des systèmes de surveillance et de test existants. De nombreux systèmes actuels ne peuvent pas intégrer de manière fluide l’analyse des données d’observabilité avec l’exécution de cas de test pertinents. De plus, la dépendance à des réglementations fixes et à des procédures humaines pour associer les irrégularités aux cas de test entrave la capacité de résoudre rapidement et précisément les nouveaux problèmes.

Pour mieux comprendre comment l’industrie gère les questions de soutien et réalise des tests préventifs, nous avons mené une étude de recherche descriptive en interviewant des professionnels dudomaine 11. D’après les données des entretiens, il a été souligné que le plus grand obstacle rencontré lors de la mise en œuvre de toute solution est le temps insuffisant pour garantir la qualité. Au cours de l’entretien, plusieurs préoccupations ont été relevées, notamment la mise en compétence des individus, les coûts de maintenance, le faible retour sur investissement, ainsi que le choix et l’intégration des outils11. Cette information a également été vérifiée dans le « Rapport sur l’état de la qualité 2024 » de Katalon12.. Avant de proposer des solutions aux problèmes évoqués lors des entretiens, nous avons mené une évaluation comparative des outils afin de voir s’il existe des outils ou des algorithmes répondant aux préoccupationsmentionnées 13,14. Nous manquons désormais des outils ou algorithmes nécessaires spécifiquement conçus pour répondre aux difficultés évoquées lors des entretiens.

Ce travail introduit une méthode innovante qui utilise les données d’observabilité pour détecter les problèmes de support à un stade précoce (même avant qu’ils ne soient rapportés) et réaliser des cas de test appropriés, améliorant ainsi la fiabilité et la robustesse des systèmes logiciels. Cette stratégie repose sur l’utilisation de données d’observabilité pour identifier les anomalies, établir des liens avec des problèmes probables et initier l’exécution de cas de test ciblés qui sont très susceptibles de révéler la cause sous-jacente du problème. La solution proposée vise à réduire la frontière entre l’exploitation logicielle et les tests, permettant une réponse proactive et rapide aux préoccupations du support. La solution proposée permet de créer de nouveaux cas de test si les cas de test manquent dans la suite, améliorant ainsi la couverture des tests. La stratégie proposée vise également à répondre aux préoccupations soulevées lors des entretiens et dans le rapport de Katalon11, 12, 13, 14.

L’observabilité, dans le contexte de la théorie du contrôle, fait référence à la mesure dans laquelle les états internes d’un système peuvent être déduits de ses sorties extérieures. Dans le domaine de l’ingénierie logicielle, l’idée d’observabilité fait référence à la capacité de surveiller et de comprendre l’état d’un système logiciel en utilisant des sorties telles que les journaux, les métriques, les traces et les événements15, 16, 17. Notre analyse de la littérature comprend un examen de l’observabilité et de son utilisation dans les tests logiciels. Cependant, nous avons trouvé peu de littérature disponible sur ce sujet. C’est pourquoi nous avons également inclus des discussions sur des tests préventifs innovants et des recherches associées. Notre revue de littérature est en plus classée en 3 groupes différents.

Bogatinovski et al.18 présentent CLog, un réseau de neurones contextuel et une technique de clustering conçus pour traiter des données de journal instables et une couverture insuffisante des pannes en identifiant des sous-processus importants et en détectant des pannes lors de transitions contextuelles soudaines. Busby et al.19 proposent une méthodologie basée sur des journaux pour générer des cas de test anonymisés, prédisant les séquences utilisateur pour la réplication sans données personnelles ; cependant, la concurrence et les variations au niveau des bûcherons persistent comme des contraintes importantes. Lee etKang 20 suggèrent de mettre en œuvre une architecture de test pour les tests de lignes de produits logiciels afin d’améliorer l’observabilité et la contrôlabilité en présence de mécanismes de variabilité. Le modèleQEX 21 combine des données provenant de différentes sources de test pour fournir des informations claires et utiles lors des essais. Lal etKumar, 22 ans, insistent sur l’importance de pouvoir voir et contrôler les tests intelligents. Ils suggèrent d’utiliser l’automatisation alimentée par l’IA pour rendre les tests plus rapides, plus efficaces et plus complets. Briand et al.23 illustrent l’application de la programmation orientée aspect en Java pour l’instrumentation efficace des contrats et des invariants, tandis que Baral et Offutt24 insistent sur le problème des affirmations erronées de test qui aboutissent à des « tests aveugles », qui n’identifient pas de comportements incorrects.

Rott25 explique que les analyses et visualisations modernes au sein de Teamscale mettent l’accent sur le processus de test logiciel en permettant aux testeurs d’accéder aux artefacts traités spécifiques aux problèmes et situations requis. Collins etLucena 26 insistent sur l’importance de réaliser de nombreux tests dans le pipeline CI avant de passer en production. Ils disent que les tests en couches sont un bon moyen de s’assurer que le produit est de haute qualité et de réduire les problèmes de support.

BugSwarm27 propose une méthode pour examiner les échecs des tests d’IC en corrélant les causes profondes avec leurs solutions respectives. Dudila etLetia 28 examinent les méthodologies de test en boîte blanche et boîte noire, suggérant une stratégie cohérente pour atténuer les efforts de débogage pendant le processus de développement. Fushihara et al.29 ont étudié les « odeurs de test » dans les applications Python, analysant leur progression par des modifications de code pour améliorer la gestion du code de test. SUPERNOVA30 est un système permettant de sélectionner les tests et de prévenir les pannes utilisant les données, l’automatisation et l’apprentissage automatique pour améliorer l’assurance qualité. Araujo31 propose une stratégie de maintenance axée sur le vieillissement des logiciels. Cette stratégie utilise la maintenance corrective lorsque des modifications de code sont possibles et des stratégies préventives lorsque les modifications pourraient provoquer des interruptions système, ce qui réduit le nombre de pannes de service. Andrew et al.32 étudient les tests de mutations parallélisées, un processus dans lequel les classes sont mutées, testées et rechargées à plusieurs reprises jusqu’à ce que tous les variants soient évalués. Dunn et al.33 proposent des indicateurs de vulnérabilité de sécurité qui attribuent des poids aux composants afin de souligner l’importance d’un test approfondi. Enfin, Huo et al.34 utilisent un index d’ensemble séquentiel pour localiser les défauts et confirmer les problèmes. Cela montre que les causes profondes sont souvent liées à la plupart des cas de test échoués dans les applications logicielles.

Access restricted. Please log in or start a trial to view this content.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Architecture système et résumé du prototype :

Cette recherche présente un système prototype amélioré et adaptable, PreventivtativeTestPro, qui illustre une approche proactive d’ingénierie qualité utilisant des données d’observabilité et de grands modèles de langage (LLM) pour améliorer davantage la résolution des problèmes. Le système vise à résoudre les problèmes modernes de livraison de logiciels en automatisant la détection d’anomalies, l’analyse des causes profondes, ainsi que l’exécution et le développement intelligents de cas de test pour une couverture non traitée en utilisant la surveillance synthétique, les données d’observabilité et l’intégration GenAI. L’architecture est modulaire et comprend trois composants principaux : le collecteur et analyseur de données d’observabilité, la couche d’intelligence pilotée par GenAI, et le moteur d’orchestration et d’exécution des tests, comme spécifié en détail à la Figure 1.

figure-protocol-1
Figure 1 : L’entrée-sortie du système proposé. Les données d’observabilité, ainsi que les résultats des observateurs, le dépôt de tests et les règles de cartographie, sont fournies en entrée aux côtés des bancs d’essai BHRAMI, qui construisent des bancs d’essai pilotés par l’IA pour renforcer la robustesse des cas de test. Le système proposé génère des instruments d’anomalies, des recommandations générées par l’IA, l’exécution de cas de test pertinents, la documentation et le rapport, ainsi que l’identification et la création de cas de test manquants. Veuillez cliquer ici pour voir une version agrandie de cette figurine.

La figure 2 présente l’architecture de l’approche suggérée. La figure illustre l’entrée, le traitement et la sortie du système. Il offre également une description complète du système, qui est ensuite traduite en une explication pour mieux comprendre les caractéristiques sous-jacentes.

figure-protocol-2
Figure 2 : Architecture système du système proposé avec collecteur et analyseur de données d’observabilité, couche d’intelligence pilotée par GenAI, et moteur d’orchestration et d’exécution de tests. Cette figure illustre l’architecture interne du système PreventivtativeTestPro, segmentée en trois couches : la couche Observability Collector agrège des données provenant de multiples sources, y compris les événements du navigateur, les journaux, les fichiers HAR, les journaux backend, les métriques et les traces. La couche d’intelligence générative d’IA utilise ces données pour effectuer une analyse des causes profondes, prioriser les anomalies et créer de manière autonome des cas de test (UI, API, manuel) et de la documentation grâce à l’utilisation de LLM. Le module BHARAMARI établit également de nouveaux bancs d’essai. Test Orchestration and Execution Engine cartographie les divergences en cas de test, exécute les tests simultanément, évalue les résultats et informe les équipes d’ingénierie, les systèmes de tickets et les tableaux de bord pour une supervision en temps réel et un suivi de résolution. Veuillez cliquer ici pour voir une version agrandie de cette figurine.

Le module Collecteur et Analyseur de Données d’Observabilité sert de système sensoriel de la plateforme, collectant en continu les données de l’application en évaluation à grande échelle, avec de multiples aspects. Dans le cas de la surveillance frontend, des agents de surveillance synthétiques sont déployés pour surveiller les événements côté navigateur, tels que les structures du Document Object Model (DOM), les actions des utilisateurs, telles que les clics, les flotteurs et les entrées, ainsi que les fichiers HAR capturant les informations de requête et de réponse réseau et API. PreventativeTestPro est également intégré à OBSERVER pour augmenter la capacité des navigateurs. La surveillance backend vise l’analyse des journaux, dans laquelle des informations d’observabilité côté serveur sont demandées et traitées, incluant les journaux d’application, les messages d’erreur, d’information et de débogage, les journaux de trace de pile et d’exceptions, les métriques de performance telles que les temps de réponse, et le traçage utilisant des technologies telles qu’OpenTelemetry ou New Relic. Le système fonctionnera avec des agents synthétiques qui simulent le trafic et l’interaction des utilisateurs, et les collecteurs de journal condensent les données entrantes en temps réel. Les données collectées sont ensuite normalisées en formats structurés et transmises à d’autres unités de traitement pour être analysées plus près.

L’essence de PreventativeTestPro est une couche d’intelligence pilotée par GenAI qui utilise de grands modèles de langage (LLM) tels que GPT pour lire et analyser les données d’observabilité et contextualiser et générer des réponses. Le module effectue une analyse de la cause fondamentale : le processus d’interprétation des journaux et des traces de cause fondamentale pour expliquer les défauts techniques en termes compréhensibles, tels qu’une NullPointerException sur une ligne de code particulière et la cause supposée du problème, comme une variable non initialisée. Dans la génération de cas de test, le système utilise des auto-tests générés en convertissant des motifs d’exception ou une séquence d’événements en scripts de test exécutables, par exemple des tests Selenium ou API, mais produit également des procédures de test lisibles par l’humain que le personnel de l’Assurance Qualité peut exécuter. Les tests API ont évolué via la transformation des journaux HAR et de trace en une séquence de requêtes API avec les assertions attendues, et tous les cas de test générés sont encore améliorés grâce à des bancs de tests efficaces grâce à l’intégration avec BHRAMARI. D’autres améliorations, des améliorations de la couverture des tests et des opportunités d’intégration CI/CD sont suggérées dans le système de recommandation, selon le comportement du système analysé. Le moteur d’IA utilise des données structurées d’observabilité via l’ingénierie des prompts et l’enrichissement du contexte pour présenter le contexte journal avec des modèles d’invite qui transmettent des requêtes structurées au LLM, et enfin génère des sorties sous forme fonctionnelle, telles que des extraits de code, des spécifications de cas de test et une documentation en langage naturel.

Le module Test Orchestration and Execution Engine gère la priorité des tests, la planification et l’exécution, permettant une validation automatisée basée sur les détails de couverture des modifications de code, les tags et la cartographie des anomalies. La correspondance et la sélection du test consistent à associer des anomalies dans les cartes ou les motifs d’instrumentation à des cas de test connus à l’aide d’un moteur de règles de cartographie, puis à exécuter les cas de test conformément à la cartographie établie. Les fonctionnalités d’exécution concurrente de tests permettent d’exécuter simultanément de nombreux types de tests, tels que des tests fonctionnels, de performance ou de sécurité dans différents environnements, et de coordonner l’utilisation de Selenium, JMeter et ZAP comme instruments dans les pipelines d’automatisation. L’implémentation de la boucle de rétroaction garantit que les résultats des exécutions sont enregistrés, et en cas d’échec de test, les modifications sont communiquées aux systèmes de support, y compris Jira et Azure DevOps, pour les suivre et les résoudre.

Hypothèse :

H1 (Efficacité opérationnelle) : Il est avancé que la fusion des données d’observabilité et du renseignement piloté par l’IA améliorera les indicateurs opérationnels, notamment en diminuant le temps moyen de résolution (H1a), le temps moyen d’analyse (H1b), le temps moyen de détection des problèmes de production (H1c) et le temps moyen de déploiement des correctifs en production (H1d). Ces changements devraient faciliter le respect des exigences d’Accord de niveau de service (SLA) (H1e) en accélérant la détection, l’analyse et le déploiement tout en limitant les temps d’arrêt système au minimum.

H2 (Efficacité des tests) : On pense également que l’efficacité des tests logiciels s’améliorera avec une couverture de test accrue (H2a), l’exécution de cas de test en parallèle (H2b) et la priorisation intelligente des tests (H2c). Les recommandations générées par l’IA (H2d) devraient également aider à la fois pour les tests et les flux de travail opérationnels. Cela aidera à détecter les bugs plus rapidement, à accélérer les boucles de rétroaction et à soutenir des pratiques d’assurance qualité préventives et durables.

Portée et public :

Ce prototype présente la conception globale du système, l’idée principale, ainsi que la manière de configurer et d’exécuter le cadre PreventivtativeTestPro étape par étape. Il explique aussi en détail comment configurer les bons bancs d’essai/entrées d’échantillons et donne des conseils pour résoudre les problèmes. Le contenu s’adresse aux ingénieurs en qualité logicielle qui connaissent déjà les bases de Java et souhaitent apprendre à utiliser les tests préventifs pour rendre les logiciels plus fiables et efficaces.

Configuration de l’environnement :

Le Fichier Supplémentaire 1 contient une description étape par étape et un programme nécessaires pour communiquer avec PreventivTestPro. Cela inclut des instructions pour installer l’environnement nécessaire, comment démarrer et arrêter les services de l’outil, ainsi qu’une explication claire de l’utilisation fondamentale de l’outil. Pour obtenir une documentation plus détaillée, ainsi que des instructions sur l’utilisation des outils avancés, des instructions de configuration et d’autres détails organisationnels, consultez les sources officielles GitHub dédiées au projet : la page Wiki spécifique à l’emplacement du https://github.com/sohambpatel/PreventativeTests/wiki et le README principal à https://github.com/sohambpatel/PreventativeTests?tab=readme-ov-file/readme.

Exemples d’entrées :

Les fichiers d’entrée d’exemple se trouvent dans le dépôt GitHub : https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/Inputs. Le framework peut exécuter immédiatement les cas de test prédéfinis et les ensembles de données de ces fichiers. Ils sont utilisés comme entrées de référence pour vérifier la configuration de l’environnement et obtenir les mêmes résultats que ceux décrits dans ce protocole.

Exemples de sorties :

Le dépôt GitHub (https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/SampleOutputs) contient des échantillons concrets des données de sortie du cadre de test préventif au format brut. Grâce à ces fichiers, les utilisateurs peuvent consulter directement la mise en page et les détails des rapports et métriques générés, démontrant les résultats obtenus par l’outil durant son fonctionnement. Ce guide est pertinent pour connaître le pipeline de données et confirmer le comportement anticipé du cadre lors de la recréation du processus expérimental.

Prototype d’exécution :

Cette section propose un guide détaillé, étape par étape, sur l’utilisation du framework PreventivTestPro. Pour aider les utilisateurs à reproduire le flux de travail, chaque étape est décrite dans l’ordre. Cette section présente les étapes d’exécution dans un format structuré afin de faciliter la reproduction des résultats, de signaler les points de contrôle importants et de garantir que le cadre PreventivatTestPro puisse être utilisé de manière cohérente à travers différents contextes expérimentaux ou opérationnels.

Dans cette étape, l’interface graphique PreventivtativeTestPro peut être utilisée pour choisir le meilleur flux de travail pour les tests préventifs. La figure 3 montre cinq choix, chacun représentant une étape différente du processus de test : exécuter des tests en parallèle, créer la suite de tests en surveillant les résultats en priorisant les cas existants, créer des cas de test manuels, créer des cas automatisés et trouver la cause profonde. Lorsque l’utilisateur fait un choix, le flux de travail désigné commence. Ensuite, des modes supplémentaires (comme la génération de cas de test pilotée par l’IA ou l’analyse de cause profonde) peuvent être ajoutés aux étapes ultérieures. Cette interface bien organisée permet de réaliser des études de tests préventifs qui peuvent être répétées et décomposées en parties plus petites.

figure-protocol-3
Figure 3 : Interface utilisateur 1 du système. Cette figure montre l’interface utilisateur de PreventativeTestPro, qui permet de choisir parmi cinq façons différentes de réaliser des tests préventifs : 1. Test préventif, exécution parallèle : début des tests, 2. Test préventif, finalisation de la suite de tests basée sur la surveillance d’applications synthétiques, 3. Test préventif, génération de cas de test manuels via GenAI, 4. Test préventif, génération de cas automatisés via GenAI, 5. Test préventif, Analyse de la cause profonde avec GenAI. Une seule option peut être choisie à la fois. La conception modulaire facilite la réalisation de tests préventifs et ajoute la création et le diagnostic de tests alimentés par l’IA. Veuillez cliquer ici pour voir une version agrandie de cette figurine.

La figure 4 montre l’interface d’exécution parallèle du framework. À cette étape, l’utilisateur saisit l’URL de l’application qu’il souhaite tester ainsi que le chemin absolu vers le fichier propriétés contenant les paramètres de configuration. Une fois les entrées définies, l’utilisateur peut commencer à exécuter les tests en même temps en cliquant sur le bouton Démarrer les tests, qui surveille également le site web testé et génère les journaux de sécurité, de performance, de console et JavaScript. On peut arrêter l’exécution en cours en cliquant sur le bouton Arrêter les tests. Le bouton Obtenir des recommandations permet d’obtenir des informations pilotées par l’IA à partir des journaux enregistrés. Cette conception garantit que plusieurs catégories de tests (fonctionnelles, performances et sécurité) s’exécutent simultanément, ce qui facilite la détection des problèmes plus rapidement.

figure-protocol-4
Figure 4 : Interface utilisateur 2 du système. Cette figure montre le mode d’exécution parallèle du framework PreventativeTestPro. L’utilisateur spécifie l’URL de l’application cible ainsi que le chemin vers un fichier propriétés contenant les détails de configuration. Les options incluent Start Testing (pour exécuter en parallèle des tests fonctionnels, de sécurité et de performance et enregistrer les journaux), Arrêter les tests (pour arrêter l’exécution) et Obtenir des recommandations (pour obtenir des insights pilotés par l’IA à partir des journaux et des métriques). Veuillez cliquer ici pour voir une version agrandie de cette figurine.

La figure 5 montre l’interface de finalisation des tests basée sur la surveillance du cadre PreventivTestPro. À cette étape, l’utilisateur définit le chemin pour le fichier de sortie de surveillance, la requête JSON pour obtenir les nœuds d’erreur ou d’exception, et le chemin du dépôt de test pour sauvegarder les cas créés. Une fois les entrées définies, l’utilisateur peut d’abord obtenir les noms de la classe et de la méthode qui les accompagnent, puis trier les cas de test à partir de la sélection de test en fonction de la classe et de la méthode trouvées. Cette étape de priorisation montre comment utiliser les données de surveillance pour classer efficacement les cas testés.

figure-protocol-5
Figure 5 : Interface utilisateur 3 du système. Cette figure montre comment prioriser une suite de tests dans le cadre PreventivtativeTestPro en utilisant des sorties de surveillance synthétiques. L’utilisateur tape le chemin vers le fichier de sortie de surveillance, le chemin JSON pour obtenir les exceptions/erreurs, et le chemin vers le dépôt de test (hors ligne). Les options Get Class/Method Name et Get Test Cases peuvent être utilisées pour transformer les anomalies de mappage en cas de test que l’on peut exécuter. Cela garantit que les problèmes d’exécution sont inclus dans le processus de test. Veuillez cliquer ici pour voir une version agrandie de cette figurine.

La figure 6 montre l’interface de génération manuelle de cas de test de PreventativeTestPro. À cette étape, l’utilisateur indique au programme où trouver le fichier de trace de pile qui montre l’anomalie en fournissant le chemin absolu vers le fichier de trace de pile et le chemin vers le fichier de propriétés de configuration. Une fois les entrées définies, on peut lancer l’option Générer des cas de test, qui transformera l’anomalie en cas de test manuels structurés. Cela garantit que les erreurs d’exécution déjà produites sont toujours incluses dans le processus de test. Le cadre facilite la création de cas de test en automatisant le processus. Cela réduit le travail manuel, améliore la couverture des tests et rend les tests plus fiables, et évite que le même problème ne se reproduise. Cette étape est un lien très important entre la détection des problèmes et la garantie que la qualité est bonne avant qu’elle ne se produise.

figure-protocol-6
Figure 6 : interface utilisateur 3 du système. Cette figure montre l’interface de génération de cas de test de PreventativeTestPro. Il transforme les traces de pile d’anomalies en cas de test manuels dans le Behavior Driven Development (BDD) qui peuvent être utilisés. L’utilisateur donne les chemins vers le fichier de trace de la pile et le fichier de propriétés, puis clique sur « Générer des cas de test » pour créer automatiquement des cas correspondant à la défaillance trouvée. Cela garantit que les problèmes d’exécution sont toujours transformés en tests de régression à répéter. Veuillez cliquer ici pour voir une version agrandie de cette figurine.

La figure 7 montre l’interface automatisée de génération de cas de test de PreventivtativeTestPro. À cette étape, l’utilisateur donne le chemin absolu vers le fichier JSON de sortie d’observabilité et le chemin vers le fichier de configuration de la propriété. Lorsque le bouton Générer des cas de test automatisés est cliqué, le système traite les données de surveillance et crée des cas de test qui peuvent être exécutés pour montrer les mêmes problèmes que ceux observés.

figure-protocol-7
Figure 7 : Interface utilisateur 4 du système. Cette figure montre l’interface automatisée de génération de cas de test de PreventativeTestPro, qui réalise des tests pouvant être exécutés à partir de données d’observabilité. L’utilisateur donne le chemin vers le fichier propriétés et le fichier JSON de sortie d’observabilité. Ensuite, ils cliquent sur « Générer des cas de test automatisés » pour créer des scripts pouvant être exécutés (au format Selenium et TestNG). Veuillez cliquer ici pour voir une version agrandie de cette figurine.

figure-protocol-8
Figure 8 : Interface utilisateur 5 du système. Cette figure montre l’interface d’instrumentation des anomalies de PreventativeTestPro pour l’analyse des causes profondes (RCA). L’utilisateur donne le chemin vers le fichier propriétés et le fichier de trace de la pile, puis choisit RCA pour lancer une analyse pilotée par l’IA. Cette étape transforme les anomalies détectées en analyses diagnostiques structurées, garantissant que les défauts peuvent être corrigés de manière répétée et spécifique au problème. Veuillez cliquer ici pour voir une version agrandie de cette figurine.

Dépannage :

Le tableau 1 présente les points de dépannage les plus importants qui concernent uniquement le code de l’application. Ces points sont un moyen rapide de se souvenir comment corriger les problèmes au niveau du code qui surviennent lors de l’exécution du framework PreventivTestPro. La documentation du projet fournit plus d’informations et des instructions étape par étape pour les lecteurs qui souhaitent plus d’aide pour résoudre des problèmes affectant la fonctionnalité globale de l’application. La ressource complète est disponible via le lien : https://github.com/sohambpatel/PreventativeTests/wiki/How-to-use%3F. Cette référence supplémentaire garantit que les utilisateurs non seulement corrigent les problèmes de codage mais apprennent aussi à dépanner des fonctions, leur permettant ainsi d’utiliser le framework plus efficacement.

Comportement d’erreurCause profondeComment réparer ?
La candidature ne commence pasJava Path n’est pas définiDans la variable Environnement, réglez la JAVA_HOME
Le serveur échoue au démarragePort 8080/9090 en usage (spécifiquement pendant l’utilisation de Docker)Mise à jour de la cartographie des ports Docker
Le contenu GenAI est nulLe jeton peut avoir expiréGénérez le jeton et mettez à jour les config.properties avant de fournir cela en entrée
L’instance du navigateur générée par le framework ne se connecte pas au réseauSoit le serveur ZAP ne fonctionne pas, soit les identifiants ZAP sont incorrectsAllumez le ZAP avant d’exécuter l’application, au cas où il fonctionnerait et que le problème persistait, mettez à jour les identifiants ZAP dans le config.properties avant de fournir cela en entrée

Tableau 1 : Erreurs de système proposées courantes et solutions rapides. Ce tableau présente les erreurs courantes spécifiques à l’application, le dépannage et les solutions rapides pouvant être appliquées pour résoudre ces problèmes.

Access restricted. Please log in or start a trial to view this content.

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Au départ, nous avons partagé en temps réel les résultats issus des études de cas menées en collaboration avec divers secteurs. De plus, nous avons fourni les résultats issus des testeurs bêta ayant utilisé ce cadre et cet algorithme, ainsi que les observations finales sur les risques potentiels pour la validité des résultats.

Résultats d’études de cas sectorielles :

Sur la base de nos recherches, qui se concentrent...

Access restricted. Please log in or start a trial to view this content.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Cette recherche présente PreventativeTestPro, une plateforme complète de tests et d’observabilité qui intègre la surveillance synthétique, les données d’observabilité et l’automatisation pilotée par l’IA générative pour améliorer l’assurance qualité logicielle. Le système se compose de trois modules fondamentaux : un collecteur et un analyseur de données d’observabilité, une couche d’intelligence générative pilotée par l’IA, et un moteur d’orchestration et d’exécution de tests. Ensemble,...

Access restricted. Please log in or start a trial to view this content.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Les auteurs affirment qu’ils n’ont aucun intérêt financier concurrent ou relation personnelle connue qui aurait pu influencer le travail rapporté dans cet article. Nous attestons que Gemini n’a été appliqué qu’à la correction grammaticale et à la reformulation des phrases pour les rendre plus faciles à lire. Pour être corrects et éthiquement corrects, les auteurs ont soigneusement révisé tous les changements suggérés par l’IA afin de préserver la connotation scientifique d’origine.

Acknowledgements

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

L’auteur exprime sa gratitude pour le soutien et la collaboration significatifs apportés par les organisations suivantes tout au long de cette recherche. Les études de cas expérimentales collaboratives avec ces entreprises ont été cruciales pour étayer l’outil et la méthode proposés. Je remercie GazonTech, Lopa Engineering, Afour Technologies, QJ Technologies et SecureLayer7 pour avoir permis d’accéder à un environnement pratique, des connaissances techniques et des contributions précieuses durant la phase expérimentale. Leur implication active a considérablement renforcé la portée pratique et l’utilité des résultats de la recherche. L’auteur exprime sa profonde gratitude pour leur volonté de participer à la recherche académique et leur engagement envers l’innovation et le développement continu dans les domaines de l’ingénierie logicielle et de la cybersécurité.

Access restricted. Please log in or start a trial to view this content.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
Apache MavenFondation Apache Software3.9.6Outil de gestion de dépendances et de projet pour les projets Java
ChatGPT (API GPT-3.5 Turbo)OpenAIhttps://platform.openai.com/api-keysPour générer des recommandations de test basées sur l’IA à partir de journaux, générer les cas de test manuels, générer les cas automatisés et obtenir l’analyse de cause profonde
Ordinateur (machine de développement/test)Ordinateur de bureau/portable standard-Utilisé pour développer, exécuter et tester PreventativeTestPro
Espace disque--Au moins 10 Go d’espace disque libre recommandés pour les journaux, rapports et artefacts de test
DockerDocker Inc.27 (https://docs.docker.com/desktop/setup/install/windows-install/)  ;Utilisé pour la conteneurisation afin d’assurer la reproductibilité à travers les environnements
GitGit SCMgit version 2.45.2.windows.1Système de contrôle de versions utilisé pour le développement et la collaboration
Dépôt GitHubGitHubhttps://github.com/sohambpatel/PreventativeTestsDépôt public contenant le code source, la documentation, les jeux de données et les exemples
Google ChromeGoogle140.0.7339.128Navigateur principal utilisé pour la surveillance et les tests synthétiques
JavaOracle / OpenJDK21.0.2Utilisé pour le développement logiciel et l’exécution de PreventivTestPro
Système d’exploitationPlateforme indépendante-L’outil fonctionne sur n’importe quel système d’exploitation avec Java et Maven installés (Windows, Linux, macOS)
OWASP ZAPFondation OWASP2.14.0Outil de balayage de sécurité et de détection de vulnérabilités
Processeur--Intel i5 ou supérieur (ou équivalent) recommandé pour l’exécution parallèle et le traitement par IA
RAM--Minimum 8 Go de RAM recommandés pour effectuer des tests et la surveillance via navigateur

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. A novel approach to multiple criteria based test case prioritization. Abid, R., Nadeem, A. 2017 13th International Conference on Emerging Technologies (ICET), Islamabad, Pakistan, , (2017).
  2. Khatibsyarbini, M., Isa, M. A., Jawawi, D. N., Tumeng, R. Test case prioritization approaches in regression testing: A systematic literature review. Inf Softw Technol. 93, 74-93 (2017).
  3. Enhanced weighted method for test case prioritization in regression testing using unique priority value. Ammar, A., Baharom, S., Ghani, A. A. A., Din, J. 2016 International Conference on Information Science and Security (ICISS), Pattaya, Thailand, , (1109).
  4. Using artificial bee colony for code coverage based test suite prioritization. Konsaard, P., Ramingwong, L. 2015 2nd International Conference on Information Science and Security (ICISS), Seoul, Korea, 10, Forthcoming.
  5. Rosero, R. H., Gómez, O. S., Rodríguez, G. Regression testing of database applications under an incremental software development setting. IEEE Access. 5, 18419-18428 (2017).
  6. Customer Service Expectations 2018. , Gladly. Available at: https://www.gladly.com/blog/2018-customer-service-expectations-survey/ (2018).
  7. Must-Know Customer Service Statistics. , Khoros. Available at: https://khoros.com/blog/must-know-customer-service-statistics (2025).
  8. State of the Connected Customer, 4th Ed. , Salesforce. Available at: https://c1.sfdcstatic.com/content/dam/web/en_us/www/documents/research/salesforce-state-of-the-connected-customer-4th-ed.pdf (2025).
  9. Customer Acquisition Study. , HubSpot. Available at: https://blog.hubspot.com/service/customer-acquisition-study (2025).
  10. IT Ticket Handling Best Practices. , Ivanti. Available at: https://www.ivanti.com/blog/it-ticket-handling-best-practices (2025).
  11. Patel, S., Patil, K., Chumchu, P. Quantitative data set on test prioritization and preventative tests. Mendeley Data. V2, (2023).
  12. State of Software Quality Report 2024. , Katalon. Available at: https://katalon.info/hubfs/download-content/ebook/State%20of%20Software%20Quality%20Report%202024.pdf (2025).
  13. Patel, S., Patil, K., Chumchu, P. OBSERVER: Observing Browser Synthetic Environments for Robotization, Verification, Efficiency, and Resilience. Softw Impacts. 24, 100752(2025).
  14. Patel, S., Patil, K., Chumchu, P. Comparative analysis of software solutions for preventative testing and test prioritization. Mendeley Data. V2, (2024).
  15. Intro to Synthetic Monitoring . , New Relic. Available at: https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/using-monitors/intro-synthetic-monitoring (2025).
  16. Observability Glossary. , SolarWinds. Available at: https://www.solarwinds.com/resources/it-glossary/observability (2025).
  17. Patel, S., Patil, K., Chumchu, P. BHRAMARI: Bug driven highly reusable automated model for automated test bed generation and integration. Softw Impacts. 21, 100687(2024).
  18. Failure identification from unstable log data using deep learning. Bogatinovski, J., Nedelkoski, S., Wu, L., Cardoso, J., Kao, O. 2022 22nd IEEE International Symposium on Cluster, Cloud and Internet Computing (CCGrid), Taormina, Italy, , (2022).
  19. Creating test cases for testing software using anonymized log data. U.S. Patent. , US11709764B2. USPTO (2023).
  20. Towards test architecture based software product line testing. Lee, J., Kang, S. 2014 IEEE 38th Annual Computer Software and Applications Conference (COMPSAC), Vasteras, Sweden, , (2014).
  21. QEX: Automated testing observability and QA developer experience framework. Locke, H. L., Ting Keshia, Y. K., Yu, J. C. K., Chua, H. Y. 2023 IEEE Conference on Software Testing, Verification and Validation (ICST), Dublin, Ireland, , (1109).
  22. Intelligent testing in software industry. Lal, A., Kumar, G. 2021 12th International Conference on Computing Communication and Networking Technologies (ICCCNT), Kharagpur, India, , (2021).
  23. Instrumenting contracts with aspect-oriented programming to increase observability and support debugging. Briand, L. C., Dzidek, W. J., Labiche, Y. 2005 21st IEEE International Conference on Software Maintenance (ICSM), Budapest, Hungary, , (1109).
  24. An empirical analysis of blind tests. Baral, K., Offutt, J. 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST), Porto, Portugal, , (1109).
  25. Rott, J. Test intelligence: How modern analyses and visualizations in Teamscale support software testing. 2022 1st International Workshop on Visualization in Testing of Hardware, Software, and Manufacturing (TestVis), Oklahoma City, OK, USA, , (2022).
  26. Collins, E. F., de Lucena, V. F. Software test automation practices in agile development environment: An industry experience report. 2012 7th International Workshop on Automation of Software Test (AST), Zurich, Switzerland, , (2012).
  27. BugSwarm: Mining and continuously growing a dataset of reproducible failures and fixes. Tomassi, D. A., Dmeiri, N., Wang, Y., Bhowmick, A., Liu, Y. C., Devan, P. T. 2019 IEEE/ACM International Conference on Software Engineering (ICSE), Montreal, Canada, , (2019).
  28. Towards combining functional requirements tests and unit tests as a preventive practice against software defects. Dudila, R., Letia, I. A. 2013 International Conference on Control Systems and Computer Science (ICCP), Sinaia, Romania, , (2013).
  29. Fushihara, Y., Aman, H., Amasaki, S., Yokogawa, T., Kawahara, M. A trend analysis of test smells in Python test code over commit history. 2023 49th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), Durres, Albania, , (2023).
  30. SUPERNOVA: Automating test selection and defect prevention in AAA video games using risk-based testing and machine learning. Senchenko, A., Patterson, N., Samuel, H., Ispir, D. 2022 IEEE Conference on Software Testing, Verification and Validation (ICST), Valencia, Spain, , (2022).
  31. A software maintenance methodology: An approach applied to software aging. Araujo, J., Melo, C., Oliveira, F., Pereira, P., Matos, R. 2021 IEEE International Systems Conference (SysCon), Vancouver, BC, Canada, , Forthcoming.
  32. Mutual Automobile Insurance Company. Mutation Testing in Parallel Threads. U.S. Patent. , US11163675B1. USPTO (2021).
  33. Machine learning-based decision-making for autonomous systems communication. U.S. Patent. , US11366748B1. USPTO (2022).
  34. Use sequential set index for root cause location and problem detection. U.S. Patent. Huo, Z. P., et al. , US11645142B1. USPTO (2023).
  35. Selenium WebDriver. , Selenium. https://www.selenium.dev (2025).
  36. The Katalon Platform. , Katalon. Available from: https://katalon.com (2025).
  37. Apache JMeter. , Apache Software Foundation. Available from: https://jmeter.apache.org (2024).
  38. OWASP ZAP (Zed Attack Proxy). , OWASP Foundation. Available from: https://www.zaproxy.org/ (2025).
  39. Xray by Xpand IT. Xray - Test Management for Jira. , Xray. Available from: https://www.getxray.app (2025).
  40. Tricentis Copilot. , Tricentis. Available from: https://www.tricentis.com/products/copilot/ (2025).
  41. SmartQ Tech Products. , SmartQ Technologies. Available from: https://www.thesmartq.com/smartq-tech-products/ (2025).

Access restricted. Please log in or start a trial to view this content.

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Hybrid TestingObservability AutomationGenerative AI TestingSoftware Quality EngineeringTest OrchestrationBlack Box TestingWhite Box TestingLog AnalysisRegression CoverageAnomaly Detection

Related Articles