Research Article

PreventativeTestPro: Een schaalbaar hybride testframework dat gebruikmaakt van observability en generatieve AI voor proactieve softwarekwaliteitsengineering

DOI:

10.3791/69316

March 24th, 2026

In This Article

Summary

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

PreventativeTestPro is een AI-gedreven testframework dat gebruikmaakt van observabiliteitsdata en grote taalmodellen om rootcause-analyse, testgeneratie en continue validatie te automatiseren, met als doel de betrouwbaarheid van software te verbeteren en kwaliteitsborging voor zowel frontend als backend systemen te optimaliseren om efficiënter beheer van supporttickets te bevorderen.

Abstract

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

Dit artikel introduceert een geavanceerd, schaalbaar testsysteem dat observability-gedreven automatisering integreert met AI-versterkte proactieve kwaliteitsengineering om hedendaagse softwareleveringsproblemen aan te pakken. Het voorgestelde systeem versterkt PreventativeTestPro, een open-source, hybride testplatform dat black-box en white-box methodologieën combineert, door een innovatieve, observabiliteitsgebaseerde testorkestratielaag te integreren. Het platform maakt gebruik van logs, metrics, gebeurtenissen en traces naast browser- en server-side monitoring om afwijkingen snel te identificeren, de selectie van testgevallen te verbeteren en de creatie van functionele, prestatie- en beveiligingstestsuites te automatiseren. Een onderscheidend kenmerk is de integratie van grote taalmodellen (LLM's) om inzichten in de worteloorzaak te bieden en autonoom nieuwe testcases te construeren op basis van productiegedrag en geïdentificeerde afwijkingen, waardoor adaptieve regressiedekking en intelligente remediatie worden geboden.

Het systeem faciliteert gelijktijdige testuitvoering met onmiddellijke, door AI aangestuurde loganalyse, wat een continue feedbackloop tussen operaties en testen bevordert. Het is gevalideerd in verschillende bedrijfsscenario's, waaronder microservices-gebaseerde SaaS-platforms en SAP BTP-ecosystemen. Empirische bevindingen van vier productie-implementaties en een bètagroep van 49 ingenieurs wijzen op een daling van tot 30% in gemiddelde tijd tot oplossing, meer dan 95% naleving van SLA's en aanzienlijke verbeteringen in zowel testdekking als defecttraceerbaarheid. De moeiteloze verbinding met industriestandaardtools illustreert de plug-and-play mogelijkheden.

Dit onderzoek presenteert een uitgebreide, tool-onafhankelijke en vooruitstrevende kwaliteitsengineeringmethodologie die consistent is met agile en DevOps-principes. Toekomstige initiatieven omvatten dynamische anomalieclassificatie via machine learning, uitbreiding naar mobiele en gebruikerservaringsgerichte systemen, en uitgebreide mogelijkheden voor grote taalmodellen voor domeinspecifieke testontwikkeling en foutvoorspelling.

Introduction

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

De toenemende populariteit van het agile paradigma in softwarebedrijven heeft geleid tot een groeiende interesse in continue integratieomgevingen. De voordelen van dergelijke systemen omvatten de naadloze integratie van regelmatige programmawijzigingen, wat resulteert in versnelde en kosteneffectieve softwareontwikkeling. Daardoor zal het taken als bouwprocedures, testuitvoering en rapportage van testresultaten efficiënt beheren. Softwaretesten wordt al geïmplementeerd sinds het ontstaan van software engineering. De praktijk van softwaretesten werd toegepast om de kwaliteit van software te beoordelen1. Testen omvat een reeks acties gericht op het detecteren en oplossen van mogelijke fouten in software voordat deze aan eindgebruikers wordt uitgezet. Softwaretesten is een kostbare fase in het ontwikkelingsproces2. De kosten van softwaretesten en -debugging bedragen meer dan 50 procent van de totale ontwikkelingskosten: 3,4. De kosten van regressietesten zijn afhankelijk van de complexiteit van de toepassing en de omvang van de testsuite5.

Agile methodologie leidt tot snelle veranderingen in de productie, wat op zijn beurt leidt tot een hoog aantal ondersteuningsproblemen door feedback. Het beheren van supportproblemen is een zeer belangrijke en cruciale verantwoordelijkheid, zoals blijkt uit het feit dat 68% van de consumenten bereid is een premie te betalen voor producten en diensten van een bedrijf dat bekendstaat om uitstekende klantenservice6. Volgens een onderzoek is 86% van de klanten die uitstekende klantenservice ontvangen, op delange termijn eerder loyale pleitbezorgers voor het bedrijf 7. Volgens een onderzoek is 89% van de kopers eerder geneigd om herhaalde aankopen te doen als ze een gunstige klantenservice-ervaring hebben gehad8. Volgens een onderzoek is 93% van de klanten geneigd herhaalaankopen te doen bij bedrijven die uitzonderlijke klantenservice bieden9. Om uitstekende klantenservice te bieden, is het essentieel om supportverzoeken snel en effectief op te lossen met een hoog kwaliteitsniveau. Het kwaliteitselement is cruciaal bij het nastreven van snellere levering, aangezien de kosten voor het oplossen van supportproblemen met de tijd en escalatieniveau10 stijgen.

Om hoge kwaliteit te krijgen, is het noodzakelijk om supportproblemen te lokaliseren en aan te pakken, terwijl er een uitgebreide testdekking voor regressietests op het ticket wordt gegarandeerd. Deze taak is complex en heeft geleid tot een toename van operationele moeilijkheden, namelijk het snel detecteren en oplossen van ondersteunende problemen. Ondersteuningsproblemen, waaronder uiteenlopende problemen zoals verminderde systeemprestaties of onvoorziene storingen, doen zich vaak voor tijdens de operationele fase van softwaresystemen. Als deze problemen niet snel worden ontdekt en opgelost, kunnen ze leiden tot aanzienlijke periodes van inactiviteit, ontevredenheid van consumenten en financiële tegenslagen. De huidige methoden om observabiliteitsinformatie te gebruiken voor testbehoeften worden vaak beperkt door handmatige procedures, responsieve in plaats van proactieve tactieken en een tekortkoming in het integreren van anomaliedetectie met testuitvoering. Er is een duidelijk gebrek aan proactieve detectie van ondersteuningsproblemen met behulp van realtime observabiliteitsdata en de automatische uitvoering van geschikte testgevallen om waarschijnlijke storingen vooraf te voorkomen.

Het ontbreken van een uitgebreide, uniforme oplossing heeft veel nadelige gevolgen voor het onderhoud en de betrouwbaarheid van de software. Deze factoren omvatten langdurige periodes van systeeminactiviteit veroorzaakt door vertraagde identificatie van problemen, verhoogde handarbeid bij het vinden van relevante testgevallen en verminderd vertrouwen in de betrouwbaarheid van het systeem. Bovendien leidt het niet nauwkeurig koppelen van geïdentificeerde afwijkingen aan testgevallen tot tekortkomingen in testdekking, wat kan leiden tot onopgeloste belangrijke problemen.

De fundamentele reden voor dit verschil kan worden toegeschreven aan de gefragmenteerde structuur van bestaande monitoring- en testsystemen. Veel huidige systemen missen de capaciteit om observabiliteitsdata-analyse soepel te integreren met de uitvoering van relevante testcases. Bovendien belemmert de afhankelijkheid van vaste regels en menselijke procedures om onregelmatigheden te associëren met testgevallen de mogelijkheid om nieuwe problemen snel en nauwkeurig op te lossen.

Om inzicht te krijgen in hoe de sector omgaat met ondersteuningsproblemen en preventieve tests uitvoert, hebben we een beschrijvend onderzoek uitgevoerd door professionals uit het vakgebiedte interviewen. Op basis van de interviewgegevens is benadrukt dat het grootste obstakel bij de implementatie van een oplossing de onvoldoende tijd is om kwaliteit te garanderen. Tijdens het interview werden verschillende zorgen gemeld, waaronder het bijscholen van individuen, onderhoudskosten, lage opbrengst op investering en de keuze en integratie vangereedschappen 11. Deze informatie is ook bevestigd in Katalons "The State of Quality Report 2024"12.. Voordat we oplossingen gaven voor de in de interviews genoemde problemen, voerden we een vergelijkende beoordeling uit van tools om te zien of er bestaande tools of algoritmes zijn die de genoemde zorgen aanpakken 13,14. We missen nu de benodigde tools of algoritmes die specifiek zijn ontworpen om de moeilijkheden die in de interviews werden besproken aan te pakken.

Dit werk introduceert een innovatieve methode die observabiliteitsdata gebruikt om ondersteuningsproblemen in een vroeg stadium (zelfs voordat ze worden gemeld) te detecteren en passende testgevallen uit te voeren, waardoor de betrouwbaarheid en robuustheid van softwaresystemen worden verbeterd. Deze strategie is gebaseerd op het gebruik van observabiliteitsdata om afwijkingen te identificeren, verbanden te leggen met waarschijnlijke problemen en de uitvoering van gerichte testgevallen te starten die zeer waarschijnlijk de onderliggende oorzaak van het probleem zullen onthullen. De voorgestelde oplossing is bedoeld om de kloof tussen softwareoperaties en testen te overbruggen, zodat er proactief en snel op supportproblemen kan worden gereageerd. De voorgestelde oplossing maakt het mogelijk om nieuwe testgevallen aan te maken als deze in de suite ontbreken, waardoor de testdekking verbetert. De voorgestelde strategie is ook bedoeld om de zorgen aan te pakken die in de interviews en in het rapport van Katalon 11,12,13,14 zijn geuit.

Observabiliteit verwijst in de context van regeltheorie naar de mate waarin de interne toestanden van een systeem kunnen worden afgeleid uit de externe outputs. In de software-engineering verwijst het idee van observabiliteit naar het vermogen om de conditie van een softwaresysteem te monitoren en te begrijpen door gebruik te maken van outputs zoals logs, metrics, traces en gebeurtenissen 15,16,17. Onze literatuuranalyse omvat een onderzoek naar observabiliteit en het gebruik ervan bij softwaretesten. We vonden echter beperkte beschikbare literatuur over dit onderwerp. Daarom hebben we ook discussies opgenomen over innovatieve preventieve tests en gerelateerd onderzoek. Onze literatuuroverzicht is verder onderverdeeld in drie verschillende groepen.

Bogatinovski et al.18 presenteren CLog, een contextbewust neuraal netwerk en clusteringstechniek die is ontworpen om onstabiele loggegevens en onvoldoende foutdekking aan te pakken door significante subprocessen te identificeren en storingen te detecteren tijdens plotselinge contextovergangen. Busby et al.19 stellen een log-gebaseerde methodologie voor het genereren van geanonimiseerde testcases, waarbij gebruikerssequenties voor replicatie worden voorspeld zonder persoonlijke gegevens; echter, gelijktijdigheid en variaties op loggerniveau blijven belangrijke beperkingen bestaan. Lee en Kang20 stellen voor om een testarchitectuur te implementeren voor softwareproductlijntesten om de observabiliteit en controleerbaarheid te verbeteren in aanwezigheid van variabiliteitsmechanismen. Het QEX-model21 combineert gegevens van verschillende testbronnen om duidelijke, nuttige informatie te geven terwijl tests worden uitgevoerd. Lal en Kumar,22, benadrukken het belang van het kunnen zien en beheersen van intelligente tests. Ze stellen voor om AI-gestuurde automatisering te gebruiken om testen sneller, efficiënter en grondiger te maken. Briand et al.23 illustreren de toepassing van aspectgeoriënteerd programmeren in Java voor de effectieve instrumentatie van contracten en invarianten, terwijl Baral en Offutt24 het probleem van foutieve testbeweringen benadrukken die leiden tot "blinde tests", die geen onjuist gedrag identificeren.

Rott25 bespreekt dat de moderne analyses en visualisaties binnen Teamscale het softwaretestproces benadrukken door testers toegang te geven tot de verwerkte artefacten die specifiek zijn voor de vereiste problemen en situaties. Collins en Lucena26 benadrukken het belang van het uitvoeren van veel tests in de CI-pijplijn voordat ze in productie worden gezet. Ze zeggen dat gelaagd testen een goede manier is om zeker te zijn dat het product van hoge kwaliteit is en om ondersteuningsproblemen te verminderen.

BugSwarm27 biedt een methode om fouten in CI-tests te onderzoeken door de onderliggende oorzaken te correleren met hun respectievelijke oplossingen. Dudila en Letia28 onderzoeken white-box en black-box testmethodologieën en suggereren een samenhangende strategie om debugging-inspanningen tijdens het ontwikkelingsproces te beperken. Fushihara et al.29 onderzochten "testgeuren" in Python-applicaties en analyseerden hun voortgang via codewijzigingen om het beheer van testcode te verbeteren. SUPERNOVA30 is een systeem voor het selecteren van tests en het voorkomen van fouten, waarbij data, automatisering en machine learning worden gebruikt om kwaliteitsborging te verbeteren. Araujo31 stelt een onderhoudsstrategie voor die zich richt op softwareveroudering. Deze strategie gebruikt corrigerend onderhoud wanneer codewijzigingen mogelijk zijn en preventieve strategieën wanneer wijzigingen systeemuitval kunnen veroorzaken, wat het aantal servicestoringen verlaagt. Andrew et al.32 onderzoeken geparalleliseerde mutatietesten, een proces waarbij klassen herhaaldelijk worden gemuteerd, getest en opnieuw geladen totdat alle varianten zijn beoordeeld. Dunn et al.33 stellen beveiligingskwetsbaarheidsmetrics voor die gewichten toewijzen aan componenten om het belang van grondig testen te benadrukken. Tot slot gebruiken Huo et al.34 een sequentiële setindex om defectlocaties te vinden en problemen te bevestigen. Dit toont aan dat de oorzaken vaak gekoppeld zijn aan de meeste mislukte testgevallen in softwareapplicaties.

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

Protocol

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

Samenvatting van systeemarchitectuur en prototype:

Dit onderzoek presenteert een verbeterd en aanpasbaar prototypesysteem, PreventativeTestPro, dat een proactieve kwaliteitsengineeringbenadering illustreert door gebruik te maken van observabiliteitsdata en grote taalmodellen (LLM's) om de oplossing van supportproblemen verder te verbeteren. Het systeem streeft ernaar moderne softwareleveringsproblemen aan te pakken door het automatiseren van anomaliedetectie, analyse van de worteloorzaken en de intelligente uitvoering en ontwikkeling van testgevallen voor onopgeloste dekking met behulp van synthetische monitoring, observabiliteitsdata en GenAI-integratie. De architectuur is modulair en bestaat uit drie kerncomponenten: Observability Data Collector and Analyzer, GenAI-gedreven intelligentielaag en Test Orchestration and Execution Engine, zoals in detail gespecificeerd in Figuur 1.

figure-protocol-1
Figuur 1: De input-output van het voorgestelde systeem. Observabiliteitsgegevens, samen met observeroutput, testrepository en mappingregels, worden als input geleverd naast BHRAMARI testbeds, die AI-gedreven testbeds construeren om de robuustheid van testcases te vergroten. Het voorgestelde systeem genereert instrumentatie van anomalieën, door AI gegenereerde aanbevelingen, uitvoering van relevante testcases, documentatie en rapportage, evenals het identificeren en creëren van ontbrekende testcases. Klik hier om een grotere versie van deze figuur te bekijken.

Figuur 2 toont de architectuur van de voorgestelde benadering. De figuur illustreert de invoer, verwerking en uitvoer van het systeem. Het biedt ook een uitgebreide weergave van het systeem, die vervolgens wordt vertaald in een uitleg om het begrip van de onderliggende kenmerken te vergroten.

figure-protocol-2
Figuur 2: Systeemarchitectuur van het voorgestelde systeem met observability data collector en analyzer, GenAI-gedreven intelligentielaag en testorkestratie en uitvoeringsengine. Deze figuur illustreert de interne architectuur van het PreventativeTestPro-systeem, opgedeeld in drie lagen: De Observability Collector Layer verzamelt gegevens uit meerdere bronnen, waaronder browsergebeurtenissen, logs, HAR-bestanden, backendlogs, metrics en traces. De Generative AI Intelligence Layer gebruikt deze data om worteloorzaakanalyses uit te voeren, anomalieën te prioriteren en autonoom testcases (UI, API, handmatig) en documentatie te creëren via LLM's. De BHARAMARI-module zet ook nieuwe testomgevingen op. Test Orchestration and Execution Engine koppelt afwijkingen aan testcases, voert tests gelijktijdig uit, evalueert uitkomsten en informeert engineeringteams, ticketsystemen en dashboards voor realtime toezicht en resolutiemonitoring. Klik hier om een grotere versie van deze figuur te bekijken.

De Observability Data Collector and Analyzer-module dient als een sensorisch systeem van het platform, dat continu gegevens verzamelt van de te beoordelen applicatie op grote schaal, met meerdere aspecten. In het geval van frontendmonitoring worden synthetische monitoringagenten ingezet om browser-side gebeurtenissen te monitoren, zoals Document Object Model (DOM)-structuren, gebruikersacties zoals klikken, hovers en inputs, en HAR-bestanden die netwerk- en API-verzoek- en responsinformatie vastleggen. PreventativeTestPro is ook ingebouwd in OBSERVER om de mogelijkheden van browsers te vergroten. Backendmonitoring richt zich op loganalyse, waarbij server-side observabiliteitsinformatie wordt opgevraagd en verwerkt, waaronder applicatielogs, fout-, informatie- en debugberichten, stacktrace- en uitzonderingslogs, prestatiemetrics zoals responstijden en tracering met technologieën zoals OpenTelemetry of New Relic. Het systeem werkt met synthetische agenten die gebruikersverkeer en interactie simuleren, en logverzamelaars condenseren binnenkomende realtime data. De verzamelde gegevens worden vervolgens genormaliseerd naar gestructureerde formaten en aan andere verwerkingseenheden gegeven om verder te worden geanalyseerd.

De essentie van PreventativeTestPro is een GenAI-gedreven intelligentielaag die gebruikmaakt van grote taalmodellen (LLM's) zoals GPT om observabiliteitsdata te lezen en te analyseren, en om reacties te contextualiseren en te genereren. De module voert root cause analysis uit: het proces van het interpreteren van root cause logs en traces om technische fouten te verklaren in termen die begrijpelijk zijn, zoals een NullPointerException op een bepaalde coderegel en de veronderstelde oorzaak van het probleem, zoals een niet-geïnitialiseerde variabele. Bij het genereren van testcases gebruikt het systeem automatische tests die worden gegenereerd door uitzonderingspatronen of een reeks gebeurtenissen om te zetten in uitvoerbare testscripts, bijvoorbeeld Selenium- of API-tests, maar produceert het ook mensleesbare testprocedures die kwaliteitsbegeleidingsmedewerkers kunnen uitvoeren. De API-tests zijn geëvolueerd door de transformatie van HAR- en tracelogs naar een reeks API-verzoeken met de verwachte asserties, en alle gegenereerde testgevallen worden verder verbeterd met effectieve testomgevingen door te integreren met BHRAMARI. Verdere verbeteringen, verbeteringen in testdekking en CI/CD-integratiemogelijkheden worden voorgesteld in het aanbevelingssysteem, afhankelijk van het geanalyseerde systeemgedrag. De AI Engine gebruikt gestructureerde observabilitydata via prompt engineering en contextverrijking om logcontext te presenteren met prompttemplates die gestructureerde queries doorgeven aan de LLM, en genereert uiteindelijk output in functionele vorm, zoals codefragmenten, testcase-specificaties en natuurlijke taaldocumentatie.

De Test Orchestration and Execution Engine-module verzorgt testprioriteit, planning en uitvoering, waardoor geautomatiseerde validatie mogelijk is op basis van details van codewijzigingen, tags en anomaliemapping. Het toewijzen en selecteren van de test houdt in dat afwijkingen in kaarten of instrumentatiepatronen worden gekoppeld aan bekende testgevallen met behulp van een Mapping Rules Engine, en vervolgens worden de testgevallen uitgevoerd volgens de vastgestelde mapping. De functies van gelijktijdige testuitvoering maken het mogelijk om verschillende soorten tests gelijktijdig uit te voeren, zoals functionele, prestatie- of beveiligingstests in verschillende omgevingen, en het coördineren van het gebruik van Selenium, JMeter en ZAP als instrumenten in de automatiseringspijplijnen. De implementatie van de feedbackloop zorgt ervoor dat de resultaten van uitvoeringen worden geregistreerd, en in geval van testfouten worden wijzigingen gecommuniceerd aan ondersteuningssystemen, waaronder Jira en Azure DevOps, om deze te volgen en op te lossen.

Hypothese:

H1 (Operationele Efficiëntie): Er wordt verondersteld dat de combinatie van observabiliteitsdata en AI-gedreven intelligentie operationele metrics zal verbeteren, met name door de gemiddelde tijd tot oplossing (H1a), de gemiddelde tijd om te analyseren (H1b), de gemiddelde tijd om productieproblemen te detecteren (H1c) en de gemiddelde tijd om oplossingen in productie uit te rollen (H1d) te verkorten. Deze wijzigingen zouden het makkelijker moeten maken om aan Service Level Agreement (SLA)-eisen (H1e) te voldoen door detectie, analyse en implementatie te versnellen, terwijl systeemdowntime tot een minimum wordt beperkt.

H2 (Testeffectiviteit): Er wordt ook aangenomen dat de effectiviteit van softwaretesten zal verbeteren met meer testdekking (H2a), het parallel uitvoeren van testcases (H2b) en slimme testprioritering (H2c). AI-gegenereerde aanbevelingen (H2D) worden ook verwacht te helpen bij zowel testen als operationele workflows. Dit helpt om bugs sneller te vinden, feedbackloops te versnellen en kwaliteitsborgingspraktijken te ondersteunen die preventief en langdurig zijn.

Reikwijdte en doelgroep:

Dit prototype toont het algemene systeemontwerp, het hoofdidee en hoe je het PreventativeTestPro-framework stap voor stap opzet en uitvoert. Het gaat ook in detail in op hoe je de juiste testomgevingen/voorbeeldinvoer opzet en geeft tips over hoe je problemen kunt oplossen. De inhoud is bedoeld voor softwarekwaliteitsingenieurs die de basis van Java al kennen en willen leren hoe preventief testen worden gebruikt om software betrouwbaarder en efficiënter te maken.

Omgevingsopstelling:

Aanvullend Bestand 1 bevat een stapsgewijze beschrijving en het programma dat nodig is voor communicatie met PreventativeTestPro. Dit omvat instructies voor het installeren van de benodigde omgeving, hoe de diensten van het hulpmiddel te starten en te stoppen, en een duidelijke uitleg van het fundamentele gebruik van het gereedschap. Voor een meer gedetailleerde documentatie, samen met instructies over het gebruik van geavanceerde tools, installatie-instructies en andere organisatorische details, raadpleeg de officiële GitHub-bronnen die aan het project zijn gewijd: de specifieke Wiki-pagina op de locatie van de https://github.com/sohambpatel/PreventativeTests/wiki en de hoofd-README op https://github.com/sohambpatel/PreventativeTests?tab=readme-ov-file/readme.

Voorbeeldinvoer:

De voorbeeldinvoerbestanden zijn te vinden in de GitHub-repository: https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/Inputs. Het framework kan de vooraf ingestelde testcases en datasets van deze bestanden direct uitvoeren. Ze worden gebruikt als referentie-ingangen om de omgevingsopstelling te controleren en dezelfde resultaten te verkrijgen als beschreven in dit protocol.

Voorbeelduitvoer:

De GitHub-repository (https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/SampleOutputs) bevat concrete voorbeelden van de uitvoerdata van het preventieve testframework in ruwe vorm. Via deze bestanden kunnen gebruikers direct de lay-out en details van de gegenereerde rapporten en statistieken bekijken, waarmee de resultaten van de tool tijdens de werking worden getoond. Deze gids is relevant voor het kennen van de datapijplijn en het bevestigen van het verwachte raamwerkgedrag bij het recreëren van het experimentele proces.

Uitvoeringsprototype:

Deze sectie geeft een gedetailleerde, stapsgewijze handleiding over hoe je het PreventativeTestPro-framework gebruikt. Om gebruikers te helpen de workflow te reproduceren, wordt elke stap in volgorde beschreven. Deze sectie presenteert de uitvoeringsstappen in een gestructureerd formaat om het reproduceren van resultaten gemakkelijker te maken, belangrijke checkpoints aan te wijzen en ervoor te zorgen dat het PreventativeTestPro-framework consistent kan worden gebruikt in verschillende experimentele of operationele omgevingen.

In deze stap kan de PreventativeTestPro GUI worden gebruikt om de beste preventieve testworkflow te kiezen. Figuur 3 toont vijf keuzes, die elk staan voor een andere stap in het testproces: parallel testen uitvoeren, de testsuite creëren uit monitoringoutput door bestaande testgevallen te prioriteren, handmatige testcases aanmaken, geautomatiseerde testgevallen creëren en de oorzaak vinden. Wanneer de gebruiker een keuze maakt, start de aangewezen workflow. Daarna kunnen in latere fasen extra modi worden toegevoegd (zoals AI-gestuurde testcasegeneratie of root cause analyse). Deze goed georganiseerde interface biedt een manier om preventieve teststudies uit te voeren die herhaald kunnen worden en in kleinere delen kunnen worden opgesplitst.

figure-protocol-3
Figuur 3: Gebruikersinterface 1 van het systeem. Deze figuur toont de gebruikersinterface van PreventativeTestPro, waarmee men kunt kiezen uit vijf verschillende manieren om preventief testen uit te voeren: 1. Preventieve test, parallelle uitvoering: Start testen, 2. Preventieve test, afronding van testsuite gebaseerd op synthetische appmonitoring, 3. Preventieve test, het genereren van handmatige testcases met GenAI, 4. Preventieve test, het genereren van geautomatiseerde testgevallen met GenAI, 5. Preventieve test, Root Cause Analyse met GenAI. Er kan maar één optie tegelijk worden gekozen. Het modulaire ontwerp maakt het eenvoudiger om preventief testen uit te voeren en voegt AI-gestuurde testcreatie en diagnostiek toe. Klik hier om een grotere versie van deze figuur te bekijken.

Figuur 4 toont de Parallel Execution-interface van het framework. In deze stap voert de gebruiker de URL in van de applicatie die hij wil testen en het absolute pad naar het eigenschappenbestand met de configuratie-instellingen. Nadat de invoer is ingesteld, kan de gebruiker tegelijkertijd beginnen met het uitvoeren van tests door op de knop Start Testing te klikken, die ook de te testen website monitort en de beveiligings-, prestatie-, console- en JavaScript-logs genereert. Men kan de lopende uitvoering stoppen door op de knop Testen stoppen te klikken. De knop 'Aanbeveling opvragen' geeft je AI-gestuurde inzichten uit de geregistreerde logs. Dit ontwerp zorgt ervoor dat meerdere testcategorieën (functioneel, performance en security) tegelijkertijd draaien, waardoor problemen sneller worden gevonden.

figure-protocol-4
Figuur 4: Gebruikersinterface 2 van het systeem. Deze figuur toont de Parallel Execution-modus van het PreventativeTestPro-framework. De gebruiker specificeert de doelapplicatie-URL en het pad naar een eigenschappenbestand met configuratiedetails. Opties zijn onder andere Start Testing (om functionele, beveiligings- en prestatietests parallel uit te voeren en de logs vast te leggen), Stop Testing (om uitvoering te stoppen) en Get Recommendation (om AI-gedreven inzichten uit logs en metrics te verkrijgen). Klik hier om een grotere versie van deze figuur te bekijken.

Figuur 5 toont de monitoring-gebaseerde testfinalisatie-interface van het PreventativeTestPro-framework. In deze stap stelt de gebruiker het pad in voor het monitoringsuitvoerbestand, de JSON-padquery om fout- of uitzonderingsknopen te krijgen, en het testrepositorypad om de gemaakte gevallen op te slaan. Nadat de invoer is ingesteld, kan de gebruiker eerst de namen van de klasse en methode die erbij horen krijgen en vervolgens de testcases uit de testpull sorteren op basis van de gevonden klasse en methode. Deze stap van prioritering laat zien hoe monitoringdata effectief de testgevallen kunt rangschikken.

figure-protocol-5
Figuur 5: Gebruikersinterface 3 van het systeem. Deze figuur laat zien hoe je een testsuite in het PreventativeTestPro-framework kunt prioriteren met behulp van synthetische monitoringsoutputs. De gebruiker typt het pad naar het monitoringsuitvoerbestand in, het JSON-pad om uitzonderingen/fouten te krijgen, en het pad naar de testrepository (offline). De opties Get Class/Method Name en Get Test Cases kunnen worden gebruikt om mapping anomalieën om te zetten in testgevallen die men kan uitvoeren. Dit zorgt ervoor dat runtime-problemen worden meegenomen in het testproces. Klik hier om een grotere versie van deze figuur te bekijken.

Figuur 6 toont de Manual Test Case Generation-interface van PreventativeTestPro. In deze stap vertelt de gebruiker het programma waar het stacktracebestand kan vinden dat de anomalie toont door het absolute pad naar het stacktracebestand en het pad naar het configuratie-eigenschappenbestand te geven. Zodra de invoer is ingesteld, kan men de optie Generate Test Cases uitvoeren, waarmee de anomalie wordt omgezet in gestructureerde, handmatige testcases. Dit zorgt ervoor dat eerder voorkomende runtime-fouten altijd worden meegenomen in het testproces. Het framework maakt het eenvoudiger om testcases te creëren door het proces te automatiseren. Dit vermindert handmatig werk, verbetert de testdekking, maakt tests betrouwbaarder, en voorkomt dat hetzelfde probleem zich opnieuw voordoet. Deze stap is een zeer belangrijke schakel tussen het vinden van problemen en ervoor zorgen dat de kwaliteit goed is voordat het gebeurt.

figure-protocol-6
Figuur 6: gebruikersinterface 3 van het systeem. Deze figuur toont de interface voor het genereren van testgevallen van PreventativeTestPro. Het zet anomaliestacksporen om in handmatige testgevallen in de Behavior Driven Development (BDD) die gebruikt kunnen worden. De gebruiker geeft de paden naar het stack trace-bestand en het properties-bestand en klikt vervolgens op "Genereer Testcases" om automatisch gevallen te maken die overeenkomen met de gevonden fout. Dit zorgt ervoor dat runtime-problemen altijd worden omgezet in regressietests die herhaald kunnen worden. Klik hier om een grotere versie van deze figuur te bekijken.

Figuur 7 toont de geautomatiseerde testcase-generatieinterface van PreventativeTestPro. In deze stap geeft de gebruiker het absolute pad naar het observability JSON-uitvoerbestand en het pad naar het configuratiebestand van de eigenschap. Wanneer op de knop Genereren Geautomatiseerde Testcases wordt geklikt, verwerkt het systeem de monitoringsgegevens en maakt het testcases die kunnen worden uitgevoerd om dezelfde problemen te tonen als die werden waargenomen.

figure-protocol-7
Figuur 7: Gebruikersinterface 4 van het systeem. Deze figuur toont de geautomatiseerde testcase-generatieinterface van PreventativeTestPro, die tests maakt die kunnen worden uitgevoerd met observabiliteitsdata. De gebruiker geeft het pad naar het properties-bestand en het observability JSON-uitvoerbestand. Vervolgens klikken ze op "Genereer geautomatiseerde testcases" om scripts te maken die uitgevoerd kunnen worden (in Selenium- en TestNG-formaat). Klik hier om een grotere versie van deze figuur te bekijken.

figure-protocol-8
Figuur 8: Gebruikersinterface 5 van het systeem. Deze figuur toont de anomalie-instrumentatieinterface van PreventativeTestPro voor Root Cause Analysis (RCA). De gebruiker geeft het pad naar het properties-bestand en het stack trace-bestand, en kiest vervolgens RCA om AI-gedreven analyse te starten. Deze stap verandert gedetecteerde afwijkingen in gestructureerde diagnostische inzichten, die ervoor zorgen dat fouten op een herhaalbare en probleemspecifieke manier kunnen worden opgelost. Klik hier om een grotere versie van deze figuur te bekijken.

Probleemoplossing:

Tabel 1 toont de belangrijkste probleemoplossingspunten die alleen over de applicatiecode gaan. Deze punten zijn een snelle manier om te onthouden hoe je codeproblemen kunt oplossen die ontstaan bij het draaien van het PreventativeTestPro-framework. De projectdocumentatie biedt meer informatie en stapsgewijze instructies voor lezers die meer hulp willen bij het oplossen van problemen die de algehele functionaliteit van de applicatie beïnvloeden. De volledige bron is te vinden via de link: https://github.com/sohambpatel/PreventativeTests/wiki/How-to-use%3F. Deze extra referentie zorgt ervoor dat gebruikers niet alleen codeerproblemen oplossen, maar ook leren hoe ze functies kunnen troubleshooten, waardoor ze het framework effectiever kunnen gebruiken.

FoutgedragOorzaakHoe los je het op?
De aanvraag start nietJava Path is niet ingesteldStel in de Environment-variabele de JAVA_HOME
Server faalt bij opstartPort 8080/9090 in gebruik (specifiek bij gebruik van Docker)Update Docker-poortmapping
GenAI-inhoud is nulDe token kan verlopen zijnGenereer het token en werk de config.properties bij voordat je dat als invoer invoert.
De browserinstantie die door het framework wordt gegenereerd, maakt geen verbinding met het netwerkOfwel draait de ZAP-server niet, of de ZAP-inloggegevens zijn onjuistZet de ZAP AAN voordat je de applicatie start; als het nog steeds draait en het probleem blijft bestaan, werk dan de ZAP-gegevens bij in de config.properties voordat je dat als invoer invoert.

Tabel 1: Veelvoorkomende voorgestelde systeemfouten en snelle oplossingen. Deze tabel toont de veelvoorkomende applicatiespecifieke fouten, probleemoplossing en snelle oplossingen die kunnen worden toegepast om de problemen op te lossen.

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

Results

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

Aanvankelijk deelden we de resultaten uit de casestudy's die in samenwerking met verschillende industrieën werden uitgevoerd in realtime. Daarnaast hebben we de uitkomsten geleverd van de bètatesters die dit kader en algoritme hebben gebruikt, samen met de laatste observaties over potentiële risico's voor de validiteit van de resultaten.

Resultaten van de casestudy uit de industrie:

Op basis van ons onderzoek, dat z...

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

Discussion

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

Dit onderzoek presenteert PreventativeTestPro, een uitgebreid test- en observabiliteitsplatform dat synthetische monitoring, observabiliteitsdata en generatieve AI-gedreven automatisering integreert om de kwaliteitsborging van software te verbeteren. Het systeem bestaat uit drie fundamentele modules: een observability data collector en analyzer, een generatieve, AI-gedreven intelligentielaag en een testorkestratie- en uitvoeringsengine. Gezamenlijk creëren deze componenten een feedbacklu...

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

Disclosures

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

De auteurs geven aan dat zij geen bekende concurrerende financiële belangen of persoonlijke relaties hebben die het werk in dit artikel zouden kunnen beïnvloeden. Wij bevestigen dat Tweelingen alleen werden toegepast op het gebied van grammaticale polijsting en herformulering van zinnen om ze makkelijker leesbaar te maken. Om correct en ethisch correct te zijn, hebben de auteurs alle door AI voorgestelde veranderingen zorgvuldig herzien om de oorspronkelijke wetenschappelijke connotatie te behouden.

Acknowledgements

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

De auteur spreekt zijn dank uit voor de aanzienlijke steun en samenwerking die de volgende organisaties gedurende dit onderzoek hebben geboden. De gezamenlijke experimentele casestudy's met deze bedrijven waren cruciaal voor het onderbouwen van het voorgestelde hulpmiddel en de methode. Dankbaarheid gaat uit naar GazonTech, Lopa Engineering, Afour Technologies, QJ Technologies en SecureLayer7 voor het verlenen van toegang tot praktische omgevingen, technische inzichten en waardevolle input tijdens de experimentele fase. Hun actieve betrokkenheid vergrootte de praktische betekenis en bruikbaarheid van de onderzoeksresultaten aanzienlijk. De auteur spreekt zijn diepe dankbaarheid uit voor hun bereidheid om deel te nemen aan academisch onderzoek en hun toewijding aan innovatie en voortdurende verbetering op het gebied van software-engineering en cybersecurity.

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

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
Apache MavenApache Software Foundation3.9.6Afhankelijkheids- en projectbeheertool voor Java-projecten
ChatGPT (GPT-3.5 Turbo API)OpenAIhttps://platform.openai.com/api-keysVoor het genereren van AI-gebaseerde testaanbevelingen uit logs, het genereren van handmatige testgevallen, het genereren van geautomatiseerde testgevallen en het verkrijgen van de oorzaakanalyse
Computer (ontwikkelings-/testmachine)Standaard desktop/laptop-Gebruikt voor het ontwikkelen, uitvoeren en testen van PreventativeTestPro
Schijfruimte--Minimaal 10 GB vrije schijfruimte aanbevolen voor logs, rapporten en testartefacten
DockerDocker Inc.27 (https://docs.docker.com/desktop/setup/install/windows-install/) Gebruikt voor containerisatie om reproduceerbaarheid tussen omgevingen te garanderen
GitGit SCMgit versie 2.45.2.windows.1Versiebeheersysteem gebruikt voor ontwikkeling en samenwerking
GitHub-repositoryGitHubhttps://github.com/sohambpatel/PreventativeTestsOpenbare repository met broncode, documentatie, datasets en voorbeelden
Google ChromeGoogle140.0.7339.128Primaire browser gebruikt voor synthetisch bewaken en testen
JavaOracle / OpenJDK21.0.2Gebruikt voor softwareontwikkeling en uitvoering van PreventativeTestPro
BesturingssysteemPlatformonafhankelijk-Tool werkt op elk besturingssysteem met Java en Maven geïnstalleerd (Windows, Linux, macOS)
OWASP ZAPOWASP Foundation2.14.0Beveiligingsscan- en kwetsbaarheidsdetectietool
Processor--Intel i5 of hoger (of equivalent) aanbevolen voor parallelle uitvoering en AI-verwerking
RAM--Minimaal 8 GB RAM aanbevolen voor het uitvoeren van tests en browsergebaseerd bewaken

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