Research Article

PreventativeTestPro: un framework di test ibrido scalabile che utilizza osservabilità e IA generativa per un'ingegneria proattiva della qualità del software

DOI:

10.3791/69316

March 24th, 2026

In This Article

Summary

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

PreventativeTestPro è un framework di test guidato dall'IA che utilizza dati di osservabilità e grandi modelli linguistici per automatizzare l'analisi delle cause radice, la generazione di test e la validazione continua, con l'obiettivo di migliorare l'affidabilità del software e ottimizzare l'assicurazione della qualità sia per i sistemi frontend che backend, per facilitare una gestione dei ticket di supporto più efficiente.

Abstract

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

Questo articolo introduce un sistema di test sofisticato e scalabile che integra l'automazione guidata dall'osservabilità con l'ingegneria proattiva della qualità potenziata dall'IA per affrontare le difficoltà contemporanee nella consegna del software. Il sistema suggerito arricchisce PreventativeTestPro, una piattaforma di test ibrida open-source che combina metodologie black-box e white-box, incorporando un innovativo livello di orchestrazione di test basato sull'osservabilità. La piattaforma utilizza log, metriche, eventi e tracce insieme al monitoraggio browser e lato server per individuare tempestivamente anomalie, migliorare la selezione dei casi di test e automatizzare la creazione di suite di test funzionali, di prestazioni e di sicurezza. Una caratteristica distintiva è l'incorporazione di grandi modelli linguistici (LLM) per fornire informazioni sulle cause radici e costruire autonomamente nuovi casi di test basati sui comportamenti produttivi e sulle anomalie identificate, fornendo così una copertura di regressione adattativa e una bonifica intelligente.

Il sistema facilita l'esecuzione simultanea dei test con un'analisi istantanea dei log guidata dall'IA, favorendo un ciclo di feedback continuo tra operazioni e test. È stato validato in diversi scenari aziendali, inclusi piattaforme SaaS basate su microservizi e ecosistemi SAP BTP. I risultati empirici di quattro implementazioni in produzione e di un gruppo beta di 49 ingegneri indicano una diminuzione fino al 30% del tempo medio alla risoluzione, oltre il 95% di conformità agli SLA e miglioramenti sostanziali sia nella copertura dei test che nella tracciabilità dei difetti. La connessione senza sforzo con strumenti standard del settore illustra la sua capacità plug-and-play.

Questa ricerca presenta una metodologia di ingegneria di qualità completa, indipendente dagli strumenti e lungimirante, coerente con i principi agile e DevOps. Le future iniziative comprendono la classificazione dinamica delle anomalie tramite machine learning, l'estensione a sistemi mobili e orientati all'esperienza utente, e l'aumento delle capacità di grandi modelli linguistici per lo sviluppo di test specifici per dominio e la previsione dei guasti.

Introduction

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

La crescente popolarità del paradigma agile nelle aziende software ha portato a un interesse crescente per gli ambienti di integrazione continua. I vantaggi di tali sistemi comprendono l'integrazione senza soluzione di continuità di modifiche regolari del programma, con conseguente accelerazione e in termini di costi dell'evoluzione del software. Di conseguenza, gestirà in modo efficiente compiti come le procedure di costruzione, l'esecuzione dei test e la reportistica dei risultati dei test. Il testing software è stato implementato fin dall'inizio dell'ingegneria del software. La pratica del testing software è stata implementata per valutare la qualità del software1. Il testing comprende una serie di azioni volte a rilevare e risolvere eventuali errori nel software prima del suo utilizzo agli utenti finali. Il testing software è una fase costosa del processodi sviluppo 2. Il costo dei test e del debug del software rappresenta oltre il 50 percento del costo totale disviluppo: 3,4. Il costo associato al test di regressione dipende dalla complessità dell'applicazione e dalla grandezza della suite di test5.

La metodologia agile porta a cambiamenti rapidi implementati in produzione, il che a sua volta comporta un alto numero di problemi di supporto dovuti al feedback. Gestire le difficoltà di supporto è una responsabilità molto significativa e critica, come dimostra il fatto che il 68% dei consumatori esprime la disponibilità a pagare un prezzo di più per prodotti e servizi di un'azienda rinomata per offrire un eccellente servizioclienti 6. Secondo uno studio, l'86% dei clienti che ricevono un servizio clienti eccellente ha maggiori probabilità di diventare fedeli sostenitori dell'azienda nel lungoperiodo 7. Secondo uno studio, l'89% degli acquirenti è più propenso a fare acquisti ripetuti se ha avuto un'esperienza di servizio clientifavorevole 8. Secondo uno studio, il 93% dei clienti è incline a effettuare acquisti ripetuti presso aziende che offrono un servizio clientieccezionale 9. Per offrire un servizio clienti eccellente, è essenziale risolvere tempestivamente ed efficacemente le richieste di supporto con un alto livello di qualità. L'elemento qualità è cruciale quando si punta a una consegna più rapida, poiché il costo per risolvere i problemi di supporto aumenta con il tempo e il livellodi escalation 10.

Per ottenere un'alta qualità, è necessario individuare e risolvere i problemi di supporto, garantendo al contempo una copertura completa dei test di regressione sul ticket. Questo compito è complesso e ha portato a un aumento delle difficoltà operative, in particolare nel rilevare e risolvere tempestivamente i problemi di supporto. Le difficoltà di supporto, che comprendono una vasta gamma di problemi come la diminuzione delle prestazioni del sistema o malfunzionamenti imprevisti, si presentano frequentemente durante la fase operativa dei sistemi software. Se queste difficoltà non vengono rapidamente individuate e risolte, possono portare a lunghi periodi di inattività, malcontento dei consumatori e crisi finanziarie. I metodi attuali di utilizzo delle informazioni di osservabilità per le esigenze di test sono spesso vincolati da procedure manuali, tattiche reattive piuttosto che proattive, e una carenza nell'integrare la rilevazione delle anomalie con l'esecuzione dei test. C'è una chiara carenza nel rilevamento proattivo dei problemi di supporto utilizzando dati di osservabilità in tempo reale e nell'esecuzione automatica dei casi di test appropriati per prevenire in anticipo probabili guasti.

L'assenza di una soluzione completa e unificata comporta molte conseguenze negative per la manutenzione e l'affidabilità del software. Questi fattori comprendono lunghi periodi di inattività del sistema causati dal ritardo nell'identificazione dei problemi, un aumento del lavoro manuale nella localizzazione dei casi di test pertinenti e una diminuzione della fiducia nell'affidabilità del sistema. Inoltre, il mancato assocchio accurato alle anomalie identificate ai casi di test porta a carenze nella copertura dei test, che possono portare a problemi importanti irrisolti.

La ragione fondamentale di questa disparità può essere attribuita alla struttura frammentata dei sistemi di monitoraggio e test esistenti. Molti sistemi attuali non hanno la capacità di integrare in modo fluido l'analisi dei dati di osservabilità con l'esecuzione di casi di test pertinenti. Inoltre, la dipendenza da regolamenti fissi e procedure umane per associare irregolarità ai casi di prova ostacola la capacità di risolvere rapidamente e con precisione nuovi problemi.

Per capire come il settore gestisce le questioni di supporto e conduce test preventivi, abbiamo condotto uno studio di ricerca descrittivo intervistando professionisti delsettore 11. Sulla base dei dati delle interviste, è stato sottolineato che il più grande ostacolo incontrato durante l'implementazione di qualsiasi soluzione è la mancanza di tempo per garantire la qualità. Durante l'intervista sono state evidenziate diverse preoccupazioni, tra cui l'aggiornamento delle competenze individuali, le spese di manutenzione, il basso ritorno sull'investimento e la selezione e integrazione deglistrumenti 11. Queste informazioni sono state verificate anche nel "The State of Quality Report 2024" di Katalon12.. Prima di fornire soluzioni per le problematiche menzionate nelle interviste, abbiamo condotto una valutazione comparativa degli strumenti per verificare se esistano strumenti o algoritmi esistenti che affrontino le preoccupazionimenzionate 13,14. Ora mancano gli strumenti o gli algoritmi necessari specificamente progettati per affrontare le difficoltà discusse nelle interviste.

Questo lavoro introduce un metodo innovativo che utilizza i dati di osservabilità per rilevare problemi di supporto nelle prime fasi (anche prima che vengano segnalati) ed eseguire i casi di test appropriati, migliorando così l'affidabilità e la robustezza dei sistemi software. Questa strategia si basa sull'utilizzo dei dati di osservabilità per identificare anomalie, stabilire collegamenti con problemi probabili e avviare l'esecuzione di casi di test mirati che sono altamente probabili a rivelare la causa sottostante del problema. La soluzione proposta intende colmare il divario tra operazioni software e test, consentendo una risposta proattiva e rapida alle preoccupazioni del supporto. La soluzione proposta consente la creazione di nuovi casi di test se questi casi mancano dalla suite, migliorando così la copertura dei test. La strategia proposta mira anche ad affrontare le preoccupazioni sollevate nelle interviste e nel rapporto di Katalon11, 12, 13, 14.

L'osservabilità, nel contesto della teoria del controllo, si riferisce alla misura in cui gli stati interni di un sistema possono essere dedotti dalle sue uscite esterne. Nel campo dell'ingegneria del software, il concetto di osservabilità si riferisce alla capacità di monitorare e comprendere le condizioni di un sistema software utilizzando output come log, metriche, tracce edeventi 15, 16, 17. La nostra analisi della letteratura include un esame dell'osservabilità e del suo utilizzo nei test software. Tuttavia, abbiamo trovato una letteratura limitata disponibile su questo argomento. Pertanto, abbiamo incluso anche discussioni su test preventivi innovativi e ricerche correlate. La nostra revisione della letteratura è ulteriormente suddivisa in 3 diversi gruppi.

Bogatinovski et al.18 presentano CLog, una tecnica di rete neurale e clustering consapevole del contesto progettata per affrontare dati di log instabili e copertura insufficiente dei guasti identificando sottoprocessi significativi e rilevando guasti in transizioni contestuali improvvise. Busby et al.19 propongono una metodologia basata su log per generare casi di test anonimizzati, prevedendo sequenze utente per la replica privi di dati personali; tuttavia, la concorrenza e le variazioni a livello del boscaiola persistono come vincoli significativi. Lee eKang 20 suggeriscono di implementare un'architettura di test per i test delle linee di prodotto software al fine di migliorare l'osservabilità e la controllabilità in presenza di meccanismi di variabilità. Il modelloQEX 21 combina dati provenienti da diverse fonti di test per fornire informazioni chiare e utili durante i test. Lal eKumar, 22 anni, sottolineano l'importanza di poter vedere e controllare i test intelligenti. Suggeriscono di utilizzare l'automazione basata sull'IA per rendere i test più veloci, efficienti e approfonditi. Briand et al.23 illustrano l'applicazione della programmazione orientata ad aspetti in Java per l'efficace strumentazione di contratti e invarianti, mentre Baral e Offutt24 sottolineano il problema delle affermazioni di test errate che portano a "test ciechi", che non identificano comportamenti errati (blind tests), che non identificano comportamenti erratti.

Rott25 spiega che le analisi e visualizzazioni moderne all'interno di Teamscale enfatizzano il processo di testing software permettendo ai tester di accedere agli artefatti elaborati specifici per i problemi e la situazione richiesta. Collins e Lucena26 sottolineano l'importanza di eseguire molti test nella pipeline CI prima di essere distribuiti in produzione. Dicono che il test stratificato sia un buon modo per assicurarsi che il prodotto sia di alta qualità e ridurre i problemi di supporto.

BugSwarm27 offre un metodo per esaminare i fallimenti dei test CI correlando le cause profonde con le rispettive soluzioni. Dudila e Letia28 esaminano metodologie di testing white-box e black-box, suggerendo una strategia coesa per mitigare gli sforzi di debug durante il processo di sviluppo. Fushihara et al.29 hanno indagato i "test smells" nelle applicazioni Python, analizzandone l'evoluzione attraverso modifiche del codice per migliorare la gestione del codice di test. SUPERNOVA30 è un sistema per selezionare i test e prevenire guasti che utilizza dati, automazione e apprendimento automatico per migliorare la garanzia della qualità. Araujo31 propone una strategia di manutenzione focalizzata sull'invecchiamento del software. Questa strategia utilizza la manutenzione correttiva quando sono possibili modifiche al codice e strategie preventive quando le modifiche potrebbero causare interruzioni del sistema, riducendo così il numero di guasti del servizio. Andrew et al.32 investigano il test di mutazione parallelizzato, un processo in cui le classi vengono ripetutamente mutate, testate e ricaricate fino a quando tutte le varianti sono state valutate. Dunn et al.33 propongono metriche di vulnerabilità di sicurezza che assegnano pesi ai componenti per sottolineare l'importanza di test approfonditi. Infine, Huo et al.34 utilizzano un indice di set sequenziale per individuare le posizioni dei difetti e confermare i problemi. Questo dimostra che le cause profonde sono spesso collegate alla maggior parte dei casi di test falliti nelle applicazioni software.

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

Protocol

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

Architettura del sistema e riassunto del prototipo:

Questa ricerca presenta un sistema prototipo migliorato e adattabile, PreventivtativeTestPro, che esemplifica un approccio proattivo di ingegneria della qualità utilizzando dati di osservabilità e grandi modelli linguistici (LLM) per migliorare ulteriormente la risoluzione dei problemi di supporto. Il sistema mira ad affrontare problemi moderni di consegna software automatizzando il rilevamento di anomalie, l'analisi delle cause radici e l'esecuzione e lo sviluppo intelligenti di casi di test per la copertura non affrontata utilizzando monitoraggio sintetico, dati di osservabilità e integrazione GenAI. L'architettura è modulare e comprende tre componenti principali: Observability Data Collector and Analyzer, GenAI-Driven Intelligence Layer e Test Orchestration and Execution Engine, come specificato in dettaglio nella Figura 1.

figure-protocol-1
Figura 1: L'input-output del sistema proposto. I dati di osservabilità, insieme all'output degli osservatori, al repository di test e alle regole di mappatura, sono forniti come input insieme ai banconi di prova BHRAMI, che costruiscono banchi di prova guidati dall'IA per migliorare la robustezza dei casi di test. Il sistema proposto genera strumentazione di anomalie, raccomandazioni generate dall'IA, esecuzione di casi di test pertinenti, documentazione e reportistica, nonché l'identificazione e la creazione di casi di test mancanti. Clicca qui per visualizzare una versione più grande di questa figura.

La Figura 2 mostra l'architettura dell'approccio suggerito. La figura illustra l'input, l'elaborazione e l'output del sistema. Fornisce inoltre una rappresentazione completa del sistema, che viene poi tradotta in una spiegazione per migliorare la comprensione delle caratteristiche sottostanti.

figure-protocol-2
Figura 2: Architettura di sistema del sistema proposto con raccoglitore e analizzatore dati di osservabilità, strato di intelligenza guidato da GenAI e motore di orchestrazione ed esecuzione dei test. Questa figura illustra l'architettura interna del sistema PreventativeTestPro, suddivisa in tre livelli: il Couch Observability Collector aggrega dati da più fonti, inclusi eventi del browser, log, file HAR, log backend, metriche e tracce. Il Generative AI Intelligence Layer utilizza questi dati per eseguire analisi delle cause radici, dare priorità alle anomalie e creare autonomamente casi di test (UI, API, manuale) e documentazione tramite LLM. Il modulo BHARAMARI istituisce anche nuovi banchi di prova. Test Orchestration and Execution Engine mappa le discrepanze ai casi di test, esegue test contemporaneamente, valuta i risultati e informa i team di ingegneria, i sistemi di ticketing e i dashboard per la supervisione in tempo reale e il monitoraggio della risoluzione. Clicca qui per visualizzare una versione più grande di questa figura.

Il modulo Observability Data Collector and Analyzer funge da sistema sensoriale della piattaforma, raccogliendo continuamente dati dell'applicazione in valutazione su larga scala, con molteplici aspetti. Nel caso del monitoraggio frontend, vengono distribuiti agenti di monitoraggio sintetici per monitorare eventi lato browser, come strutture Document Object Model (DOM), azioni utente come clic, hovers e input, e file HAR che catturano informazioni di richiesta e risposta di rete e API. PreventativeTestPro è integrato anche con OBSERVER per aumentare la funzionalità dei browser. Il monitoraggio backend si concentra sull'analisi dei log, in cui vengono richieste e elaborate le informazioni di osservabilità lato server, che includono log delle applicazioni, messaggi di errore, informativi e di debug, log di tracciamento e eccezioni dello stack, metriche di performance come i tempi di risposta e il tracciamento tramite tecnologie come OpenTelemetry o New Relic. Il sistema lavorerà con agenti sintetici che simulano il traffico e l'interazione degli utenti, e i raccoglitori di log condensano i dati in tempo reale in arrivo. I dati raccolti vengono quindi normalizzati in formati strutturati e consegnati ad altre unità di elaborazione per ulteriori analisi.

L'essenza di PreventivatativeTestPro è uno Strato-Intelligenza Guidato da GenAI che utilizza Large Language Models (LLM) come GPT per leggere e analizzare i dati di osservabilità, contestualizzare e generare risposte. Il modulo effettua l'analisi della causa radice: il processo di interpretazione dei log e delle tracce della causa radice per spiegare i guasti tecnici in termini comprensivi, come una NullPointerException su una particolare riga di codice e la causa assunta del problema, come una variabile non inizializzata. Nella generazione dei casi di test, il sistema utilizza auto-test generati convertendo pattern di eccezione o una sequenza di eventi in script di test eseguibili, ad esempio test Selenium o API, ma produce anche procedure di test leggibili dall'uomo che il personale di Quality Assurance può eseguire. I test API si sono evoluti attraverso la trasformazione di HAR e trace log in una sequenza di richieste API con le asserzioni attese, e tutti i casi di test generati sono ulteriormente arricchiti con banchi di test efficaci integrandosi con BHRAMARI. Ulteriori miglioramenti, miglioramenti nella copertura dei test e opportunità di integrazione CI/CD sono suggeriti nel sistema di raccomandazione, a seconda del comportamento analizzato del sistema. Il Motore AI utilizza dati di osservabilità strutturati tramite ingegneria dei prompt e arricchimento del contesto per presentare il contesto del log con template di prompt che passano query strutturate al LLM, e infine genera output in forma funzionale, come frammenti di codice, specifiche di casi di test e documentazione in linguaggio naturale.

Il modulo Test Orchestration and Execution Engine gestisce la priorità dei test, la pianificazione e l'esecuzione, consentendo la validazione automatica basata sui dettagli di copertura delle modifiche del codice, tag e mappatura delle anomalie. La mappatura e la selezione del test prevedono l'associazione di anomalie nelle mappe o nei pattern di strumentazione con casi di test noti utilizzando un Motore di Regole di Mapping e poi l'esecuzione dei casi di test in conformità con la mappatura stabilita. Le funzionalità dell'esecuzione simultanea dei test permettono di eseguire numerosi tipi di test simultaneamente, come test funzionali, di prestazione o di sicurezza in diversi ambienti e di coordinare l'uso di Selenium, JMeter e ZAP come strumenti nelle pipeline di automazione. L'implementazione del ciclo di feedback garantisce che i risultati delle esecuzioni vengano registrati e, in caso di fallimento del test, le modifiche vengano comunicate ai sistemi di supporto, inclusi Jira e Azure DevOps, per tracciarle e risolverle.

Ipotesi:

H1 (Efficienza Operativa): Si ipotizza che la fusione di dati di osservabilità e intelligenza guidata dall'IA migliorerà le metriche operative, in particolare riducendo il tempo medio di risoluzione (H1a), il tempo medio di analisi (H1b), il tempo medio per rilevare problemi di produzione (H1c) e il tempo medio per implementare le correzioni in produzione (H1d). Questi cambiamenti dovrebbero rendere più facile soddisfare i requisiti dell'Accordo sul Livello di Servizio (SLA) (H1e) accelerando rilevamento, analisi e implementazione, mantenendo al minimo i tempi di inattività del sistema.

H2 (Efficacia dei test): Si ritiene inoltre che l'efficacia dei test software migliori con una maggiore copertura dei test (H2a), l'esecuzione di casi di test in parallelo (H2b) e la priorità smart dei test (H2c). Le raccomandazioni generate dall'IA (H2d) sono inoltre destinate ad aiutare sia nei test che nei flussi di lavoro operativi. Questo aiuterà a individuare i bug più rapidamente, a velocizzare i circuiti di feedback e a supportare pratiche di assicurazione della qualità preventive e durature.

Portata e pubblico:

Questo prototipo mostra il design complessivo del sistema, l'idea principale e come configurare ed eseguire il framework PreventivatTestPro passo dopo passo. Entra anche nei dettagli su come impostare i bancchi di prova giusti/input di campione e fornisce consigli su come risolvere i problemi. Il contenuto è rivolto agli ingegneri della qualità del software che già conoscono le basi di Java e vogliono imparare a utilizzare i test preventivi per rendere il software più affidabile ed efficiente.

Configurazione dell'ambiente:

Il File Supplementare 1 contiene una descrizione passo dopo passo e un programma necessari per comunicare con PreventivTestPro. Questo include istruzioni per l'installazione dell'ambiente necessario, come avviare e interrompere i servizi dello strumento e una chiara spiegazione dell'uso fondamentale dello strumento. Per ottenere una documentazione più dettagliata, insieme a istruzioni su come utilizzare strumenti avanzati, istruzioni di configurazione e altri dettagli organizzativi, consulta le fonti ufficiali di GitHub dedicate al progetto: la pagina Wiki specifica nella posizione del https://github.com/sohambpatel/PreventativeTests/wiki e il README principale a https://github.com/sohambpatel/PreventativeTests?tab=readme-ov-file/readme.

Input di esempio:

I file di input di esempio si trovano nel repository GitHub: https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/Inputs. Il framework può eseguire immediatamente i casi di test preimpostati e i dataset di questi file. Vengono utilizzati come input di riferimento per verificare l'impostazione dell'ambiente e ottenere gli stessi risultati descritti in questo protocollo.

Esempi di output:

Il repository GitHub (https://github.com/sohambpatel/PreventativeTests/tree/main/preventativetestframework/SampleOutputs) contiene campioni concreti dei dati di output del framework di test preventivi in formato grezzo. Attraverso questi file, gli utenti possono visualizzare direttamente il layout e i dettagli dei report e delle metriche generate, dimostrando i risultati ottenuti dallo strumento durante il suo funzionamento. Questa guida è rilevante per conoscere la pipeline dati e confermare il comportamento previsto del framework durante la ricreazione del processo sperimentale.

Prototipo di esecuzione:

Questa sezione fornisce una guida dettagliata passo dopo passo su come utilizzare il framework PreventivatTestPro. Per aiutare gli utenti a riprodurre il flusso di lavoro, ogni fase viene descritta in ordine. Questa sezione presenta i passaggi di esecuzione in un formato strutturato per facilitare la riproduzione dei risultati, indicare i checkpoint importanti e garantire che il framework PreventivatTestPro possa essere utilizzato in modo coerente in diversi contesti sperimentali o operativi.

In questo passaggio, l'interfaccia grafica di PreventivtativeTestPro può essere utilizzata per scegliere il miglior flusso di lavoro per i test preventivi. La Figura 3 mostra cinque scelte, ognuna delle quali rappresenta un passaggio diverso nel processo di test: eseguire test in parallelo, creare la suite di test monitorando l'output dando priorità ai casi esistenti, creare casi di test manuali, creare casi di test automatizzati e trovare la causa principale. Quando l'utente fa una scelta, inizia il flusso di lavoro designato. Successivamente, modalità aggiuntive (come la generazione di casi di test guidata dall'IA o l'analisi della causa radice) possono essere aggiunte nelle fasi successive. Questa interfaccia ben organizzata offre un modo per condurre studi di test preventivi che possono essere ripetuti e scomposti in parti più piccole.

figure-protocol-3
Figura 3: Interfaccia utente 1 del sistema. Questa figura mostra l'interfaccia utente di PreventivaTestPro, che permette di scegliere tra cinque modi diversi per effettuare test preventivi: 1. Test preventivo, esecuzione parallela: inizio dei test, 2. Test preventivo, finalizzazione della suite di test basata sul monitoraggio delle app sintetiche, 3. Test preventivo, generazione di casi di test manuali usando GenAI, 4. Test preventivo, generazione di casi di test automatizzati usando GenAI, 5. Test preventivo, Analisi delle cause radici usando GenAI. Si può scegliere solo un'opzione alla volta. Il design modulare facilita la realizzazione di test preventivi e aggiunge la creazione e la diagnostica di test basate sull'IA. Clicca qui per visualizzare una versione più grande di questa figura.

La Figura 4 mostra l'interfaccia di esecuzione parallela del framework. In questo passaggio, l'utente inserisce l'URL dell'applicazione che vuole testare e il percorso assoluto verso il file delle proprietà che contiene le impostazioni di configurazione. Dopo aver impostato gli input, l'utente può iniziare a eseguire test contemporaneamente cliccando sul pulsante Start Testing, che monitora anche il sito web sotto test e genera i log di sicurezza, prestazioni, console e JavaScript. Si può interrompere l'esecuzione in corso cliccando sul pulsante Stop Testing. Il pulsante Ricevi Raccomandazioni permette di ottenere insight guidati dall'IA dai log registrati. Questo design garantisce che più categorie di test (funzionali, prestazioni e sicurezza) vengano eseguite contemporaneamente, rendendo più facile individuare i problemi più rapidamente.

figure-protocol-4
Figura 4: Interfaccia utente 2 del sistema. Questa figura mostra la modalità di esecuzione parallela del framework PreventivatTestPro. L'utente specifica l'URL dell'applicazione di destinazione e il percorso verso un file proprietà contenente dettagli di configurazione. Le opzioni includono Start Testing (per eseguire test funzionali, di sicurezza e di performance in parallelo e registrare i log), Stop Testing (per fermare l'esecuzione) e Get Recommendation (per ottenere insight guidati dall'IA da log e metriche). Clicca qui per visualizzare una versione più grande di questa figura.

La Figura 5 mostra l'interfaccia di Finalizzazione dei Test basata sul monitoraggio del framework PreventivTestPro. In questo passaggio, l'utente imposta il percorso per il file di output di monitoraggio, la query del percorso JSON per ottenere nodi di errore o eccezione, e il percorso del repository di test per salvare i casi creati. Dopo che gli input sono stati impostati, l'utente può prima ottenere i nomi della classe e del metodo che li accompagnano e poi ordinare i casi di test dal pull di test in base alla classe e al metodo trovati. Questo passaggio di prioritizzazione mostra come utilizzare i dati di monitoraggio per classificare efficacemente i casi di test.

figure-protocol-5
Figura 5: Interfaccia utente 3 del sistema. Questa figura mostra come dare priorità a una suite di test nel framework PreventivatTestPro utilizzando output di monitoraggio sintetico. L'utente inserisce il percorso verso il file di output di monitoraggio, il percorso JSON per ottenere eccezioni/errori e il percorso verso il repository di test (offline). Le opzioni Get Class/Method Name e Get Test Cases possono essere usate per trasformare le anomalie di mappatura in casi di test che si possono eseguire. Questo garantisce che i problemi di esecuzione siano inclusi nel processo di test. Clicca qui per visualizzare una versione più grande di questa figura.

La Figura 6 mostra l'interfaccia di Generazione Manuale dei Casi di Test di PreventativeTestPro. In questo passaggio, l'utente indica al programma dove trovare il file di traccia dello stack che mostra l'anomalia fornendo il percorso assoluto verso il file di traccia dello stack e il percorso verso il file delle proprietà di configurazione. Una volta impostati gli input, si può eseguire l'opzione Genera Casi di Test, che trasformerà l'anomalia in casi di test manuali strutturati. Questo garantisce che gli errori di esecuzione già avvenuti in precedenza siano sempre inclusi nel processo di test. Il framework rende più facile creare casi di test automatizzando il processo. Questo riduce il lavoro manuale, migliora la copertura dei test e rende i test più affidabili, evitando che lo stesso problema si ripeta di nuovo. Questo passaggio è un collegamento molto importante tra individuare i problemi e assicurarsi che la qualità sia buona prima che accada.

figure-protocol-6
Figura 6: interfaccia utente 3 del sistema. Questa figura mostra l'interfaccia di generazione dei casi di test di PreventativeTestPro. Trasforma le tracciazioni di stack anomalie in casi di test manuali nello Sviluppo Guidato dal Comportamento (BDD) che possono essere utilizzati. L'utente fornisce i percorsi verso il file di tracciamento dello stack e il file delle proprietà, poi clicca su "Genera Casi di Test" per creare automaticamente casi che corrispondono al guasto trovato. Questo garantisce che i problemi di esecuzione vengano sempre trasformati in test di regressione che possono essere ripetuti. Clicca qui per visualizzare una versione più grande di questa figura.

La Figura 7 mostra l'interfaccia di Generazione Automatica di Casi di Test di PreventivatTestPro. In questo passaggio, l'utente fornisce il percorso assoluto verso il file di output JSON dell'osservabilità e il percorso verso il file di configurazione della proprietà. Quando si preme il pulsante Genera Caso di Test Automatizzati, il sistema elabora i dati di monitoraggio e crea casi di test che possono essere eseguiti per mostrare gli stessi problemi che sono stati osservati.

figure-protocol-7
Figura 7: Interfaccia utente 4 del sistema. Questa figura mostra l'interfaccia automatizzata di generazione dei casi di test di PreventativeTestPro, che realizza test che possono essere eseguiti utilizzando dati di osservabilità. L'utente fornisce il percorso verso il file proprietà e il file di output JSON di osservabilità. Poi, cliccano su "Genera Casi di Test Automatizzati" per creare script che possono essere eseguiti (in formato Selenium e TestNG). Clicca qui per visualizzare una versione più grande di questa figura.

figure-protocol-8
Figura 8: Interfaccia utente 5 del sistema. Questa figura mostra l'interfaccia strumentale delle anomalie di PreventativeTestPro per l'Analisi delle Cause Radici (RCA). L'utente fornisce il percorso verso il file proprietà e il file di traccia dello stack, poi sceglie RCA per avviare l'analisi guidata dall'IA. Questo passaggio trasforma le anomalie rilevate in insight diagnostici strutturati, che garantiscono che i guasti possano essere risolti in modo ripetibile e specifico per il problema. Clicca qui per visualizzare una versione più grande di questa figura.

Risoluzione dei problemi:

La Tabella 1 mostra i punti di risoluzione dei problemi più importanti che riguardano solo il codice dell'applicazione. Questi punti sono un modo rapido per ricordare come risolvere problemi a livello di codice che sorgono durante l'esecuzione del framework PreventivatTestPro. La documentazione del progetto fornisce ulteriori informazioni e istruzioni passo dopo passo per i lettori che desiderano più aiuto per risolvere problemi che influenzano la funzionalità complessiva dell'applicazione. La risorsa completa può essere ottenuta dal link: https://github.com/sohambpatel/PreventativeTests/wiki/How-to-use%3F. Questo riferimento aggiuntivo garantisce che gli utenti non solo risolvano problemi di programmazione, ma imparino anche a risolvere i problemi delle funzioni, permettendo loro di utilizzare il framework in modo più efficace.

Comportamento dell'erroreCausa alla radiceCome risolverlo?
La domanda non sta iniziandoJava Path non è impostatoNella variabile Ambiente, imposta la JAVA_HOME
Il server si guasta all'avvioPorta 8080/9090 in uso (Specificamente durante l'uso di Docker)Aggiorna la mappatura delle porte Docker
Il contenuto GenAI è nulloIl token potrebbe essere scadutoGenera il token e aggiorna le config.properties prima di fornire questo come input
L'istanza del browser generata dal framework non si connette alla reteO il server ZAP non è in esecuzione oppure le credenziali ZAP sono errateAttiva lo ZAP prima di eseguire l'applicazione, nel caso in cui sia in esecuzione e il problema persista, aggiorna le credenziali ZAP nel config.properties prima di fornire questo input

Tabella 1: Errori di sistema comuni proposti e soluzioni rapide. Questa tabella mostra gli errori specifici comuni per applicazione, la risoluzione dei problemi e le soluzioni rapide che possono essere applicate per risolvere i problemi.

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

Results

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

Inizialmente, abbiamo condiviso in tempo reale i risultati derivanti dai casi studi condotti in collaborazione con vari settori. Inoltre, abbiamo fornito i risultati derivati dai beta tester che hanno utilizzato questo framework e algoritmo, insieme alle osservazioni finali sui potenziali rischi per la validità dei risultati.

Risultati di case study industriali:

Sulla base della nostra ricerca, che si concentra su a...

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

Discussion

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

Questa ricerca presenta PreventivaTestPro, una piattaforma completa di test e osservabilità che integra monitoraggio sintetico, dati di osservabilità e automazione guidata dall'IA generativa per migliorare la qualità del software. Il sistema è composto da tre moduli fondamentali: un raccoglitore e analizzatore di dati di osservabilità, uno strato di intelligenza generativa guidato dall'IA e un motore di orchestrazione ed esecuzione dei test. Collettivamente, questi componenti stabiliscon...

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

Disclosures

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

Gli autori dichiarano di non avere interessi finanziari concorrenti noti o relazioni personali che possano aver influenzato il lavoro riportato in questo articolo. Attestiamo che Gemini è stato applicato solo per la rifinitura grammaticale e la riformulazione delle frasi per renderle più facili da leggere. Per essere corretti e eticamente corretti, gli autori hanno accuratamente rivisto tutte le modifiche suggerite dall'IA per preservare la connotazione scientifica originale.

Acknowledgements

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

L'autore esprime gratitudine per il significativo supporto e la collaborazione forniti dalle seguenti organizzazioni durante questa ricerca. I casi di studio sperimentali collaborativi con queste aziende sono stati cruciali per sostenere lo strumento e il metodo proposti. La gratitudine è rivolta a GazonTech, Lopa Engineering, Afour Technologies, QJ Technologies e SecureLayer7 per aver concesso accesso a ambienti pratici, approfondimenti tecnici e preziosi contributi durante la fase sperimentale. Il loro coinvolgimento attivo ha notevolmente aumentato il significato pratico e l'usabilità dei risultati della ricerca. L'autore esprime profonda gratitudine per la loro disponibilità a partecipare alla ricerca accademica e per la loro dedizione all'innovazione e al continuo miglioramento nei campi dell'ingegneria del software e della 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.6Strumento di gestione delle dipendenze e dei progetti per progetti Java
ChatGPT (API GPT-3.5 Turbo)OpenAIhttps://platform.openai.com/api-keysPer generare raccomandazioni di test basate sull'IA dai log, generare i casi di test manuali, generare i casi di test automatizzati e ottenere l'analisi delle cause radici
Computer (Macchina di sviluppo/test)Standard Desktop/Laptop-Utilizzato per sviluppare, eseguire e testare PreventivTestPro
Spazio su disco--Almeno 10 GB di spazio libero su disco consigliati per log, report e artefatti di test
DockerDocker Inc.27 (https://docs.docker.com/desktop/setup/install/windows-install/) Utilizzato per la containerizzazione per garantire la riproducibilità tra gli ambienti
GitGit SCMGit versione 2.45.2.Windows.1Sistema di controllo versione utilizzato per lo sviluppo e la collaborazione
GitHub RepositoryGitHubhttps://github.com/sohambpatel/PreventativeTestsRepository pubblico contenente codice sorgente, documentazione, dataset ed esempi
Google ChromeGoogle140.0.7339.128Browser principale utilizzato per il monitoraggio e il test sintetico
GiavaOracle / OpenJDK21.0.2Utilizzato per lo sviluppo software e l'esecuzione di PreventivTestPro
Sistema operativoPiattaforma indipendente-Tool funziona su qualsiasi sistema operativo con Java e Maven installati (Windows, Linux, macOS)
OWASP ZAPFondazione OWASP2.14.0Strumento di scansione della sicurezza e rilevamento delle vulnerabilità
Processore--Raccomandato Intel i5 o superiore (o equivalente) per l'esecuzione parallela e l'elaborazione AI
RAM--Minimo 8 GB di RAM consigliati per eseguire test e monitorare tramite browser

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