Rivoluzionare il testing del software: come gli LLM stanno potenziando la generazione automatizzata di casi di test e dati

Foto di Ashok Pallamala
3 lettura minima
Riassumere questo con l'AI

Perché utilizzare gli LLM per la generazione di casi di test e dati di test?

La generazione di casi di test efficaci e dati di test realistici è stata a lungo un collo di bottiglia nel ciclo di vita dello sviluppo software. I metodi tradizionali si basano spesso sulla creazione manuale, che può richiedere molto tempo, essere soggetta a errori umani e non sempre garantire il livello desiderato di copertura dei test. La mancanza di strumenti automatizzati affidabili per questo compito cruciale ci ha spinto a esplorare soluzioni all'avanguardia.
Per colmare questa lacuna, abbiamo sfruttato la potenza dei modelli linguistici di grandi dimensioni (LLM) per generare sia casi di test che dati di test corrispondenti da parametri di input strutturati. Con questo approccio, siamo stati in grado di raggiungere una copertura di test del 90%, riducendo significativamente lo sforzo di controllo qualità fino al 90%e consentendo ai team di concentrarsi sui test esplorativi e sulla strategia di qualità.

Flusso di lavoro:

Presentazione di SnapLogic AgentCreator la generazione di test basati sull'intelligenza artificiale

Per rendere operativa questa soluzione, abbiamo creato un'applicazione UI che interagisce con il nostro SnapLogic interno. Questa app raccoglie dall'utente informazioni di alto livello sul contesto di test, tra cui:

  • Dettagli della storia dell'utente

  • Informazioni sull'endpoint

  • Informazioni sul cliente/connettore

Una volta inviate, queste informazioni vengono inoltrate a SnapLogic, dove vengono analizzate e trasmesse a pipeline secondarie attivate dinamicamente, ciascuna delle quali è personalizzata per un tipo di test specifico:

  1. Test funzionali

  2. Convalida del tipo di dati

  3. Test delle prestazioni

  4. Test di sicurezza

  5. Test proxy e di rete

Dettagli della pipeline:

La pipeline principale di Snaplogic riceverà l'input dell'utente, analizzerà i dettagli e richiamerà le pipeline secondarie per ciascun tipo di test.

Come funziona: pipeline di generazione dei test basata su LLM

Ogni pipeline secondaria compone dinamicamente un prompt utilizzando SnapLogic Prompt Generator Snap, inserendo i parametri di input rilevanti per il tipo di test.

Questo prompt viene quindi inviato ad Anthropic Claude 3, il nostro LLM preferito, tramite lo snap Anthropic Calude su AWS Messages. L'LLM elabora il contesto e restituisce un elenco dettagliato di:

  • Sommari dei casi di prova

  • Descrizioni dei casi di test

  • Risultati attesi

  • Inserisci i dati di prova in formato JSON strutturato

Questi risultati vengono analizzati all'interno di SnapLogic, convertiti in una struttura leggibile e compilati in un rapporto di test completo.

Pipeline dei bambini

Generatore di prompt

Il contesto del prompt verrà generato dinamicamente per ogni tipo di test con i parametri di input forniti.

Il prompt verrà inviato al modello LLM anthropic.claude-3-5-sonnet utilizzando Anthropic Calude su AWS Messages snap. LLM Analizza il formato di input fornito e genera casi di test strutturati con dati di test 

Formato di output della struttura LLM

LLM genererà casi di test e dati di test per ogni scenario di test insieme a una descrizione adeguata, alla funzionalità prevista e alla priorità di ciascun caso di test.

Rapporto completo dei test

Una volta che LLM avrà generato i casi di test e i dati di test per tutti i tipi di test, verrà generato il rapporto di test finale in Google Spreadsheet con tutti i dettagli.

Generazione manuale vs generata da LLM dei casi di test

AspettoProcesso manualeProcesso guidato da LLM
Tempo richiestoDa 3 a 4 giorniDa 15 a 20 minuti
Generazione di casi di testEseguito manualmente dagli ingegneriAutomatizzato da LLM
Preparazione dei dati di provaSforzo manuale per ogni casoGenerato automaticamente con contesto
Convalida del tipo di datiCasi limite/errori scritti manualmenteCasi completi, non validi e malformati generati automaticamente
Priorità dei casi di testIdentificato manualmente (P0, P1, P2)Assegnato automaticamente da LLM in base all'impatto
Casi di test delle prestazioniRichiede una pianificazione significativaGenerato con dati di prova e obiettivi di prestazione
Riduzione dello sforzoRichiede molto impegno e tempoRisparmio di tempo superiore al 90%
Spostamento del fuocoScrittura e pianificazioneConvalida e ottimizzazione
Foto di Ashok Pallamala
Architetto QA presso SnapLogic
Categoria: Tecnica