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:
Test funzionali
Convalida del tipo di dati
Test delle prestazioni
Test di sicurezza
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.

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
| Aspetto | Processo manuale | Processo guidato da LLM |
|---|---|---|
| Tempo richiesto | Da 3 a 4 giorni | Da 15 a 20 minuti |
| Generazione di casi di test | Eseguito manualmente dagli ingegneri | Automatizzato da LLM |
| Preparazione dei dati di prova | Sforzo manuale per ogni caso | Generato automaticamente con contesto |
| Convalida del tipo di dati | Casi limite/errori scritti manualmente | Casi completi, non validi e malformati generati automaticamente |
| Priorità dei casi di test | Identificato manualmente (P0, P1, P2) | Assegnato automaticamente da LLM in base all'impatto |
| Casi di test delle prestazioni | Richiede una pianificazione significativa | Generato con dati di prova e obiettivi di prestazione |
| Riduzione dello sforzo | Richiede molto impegno e tempo | Risparmio di tempo superiore al 90% |
| Spostamento del fuoco | Scrittura e pianificazione | Convalida e ottimizzazione |




