Cos'è il test basato sui dati?
⚡ Riepilogo intelligente
Il Data Driven Testing (DDT) è un metodo di test del software che memorizza i dati di test in tabelle o fogli di calcolo, consentendo a un singolo script di validare numerose combinazioni di input. Separa la logica di test dai dati, riducendo la duplicazione degli script e gli sforzi di manutenzione.

Test guidati dai dati
Test guidati dai dati è un metodo di test del software in cui i dati di test vengono archiviati in formato tabella o foglio di calcolo. Il test basato sui dati consente ai tester di inserire un singolo script di test in grado di eseguire test per tutti i dati di test da una tabella e aspettarsi l'output del test nella stessa tabella. Viene anche chiamato test guidato da tabelle o test parametrizzato.
Quadro basato sui dati
Quadro basato sui dati È un framework di test automatizzato in cui i valori di input vengono letti da file di dati e memorizzati in variabili all'interno degli script di test. Consente ai tester di creare casi di test sia positivi che negativi in un unico test. I dati di input in un framework basato sui dati possono essere memorizzati in una o più fonti di dati, come file .xls, .xml, .csv e database. Il diagramma seguente mostra il flusso dei valori di input dal file di dati allo script di test.
Perché i test basati sui dati?
Test guidati dai dati È importante perché i tester spesso hanno a disposizione più set di dati per un singolo test e la creazione di test individuali per ciascun set di dati può richiedere molto tempo. Il testing basato sui dati (data-driven testing) aiuta a mantenere i dati separati dagli script di test, e gli stessi script possono essere eseguiti per diverse combinazioni di dati di input, generando al contempo risultati efficienti.
Esempio:
Supponiamo di voler testare il sistema di accesso con più campi di input su 1000 set di dati diversi.
Per verificarlo, puoi adottare i seguenti approcci:
Approccio 1) Crea 1000 script, uno per ogni set di dati, ed esegui ogni test separatamente, uno alla volta.
Approccio 2) Modificare manualmente il valore nello script di test ed eseguirlo più volte.
Approccio 3) Importa i dati dal foglio Excel. Recupera i dati di prova dalle righe di Excel una alla volta ed esegui lo script.
Tra i tre scenari proposti, i primi due risultano laboriosi e dispendiosi in termini di tempo. Pertanto, è consigliabile seguire il terzo approccio.
Pertanto, il terzo approccio non è altro che un framework basato sui dati.
Tipi di dati di test nel testing basato sui dati
Il valore dei test basati sui dati dipende direttamente dalla qualità dei set di dati che vengono forniti agli script di test. Un file di dati ben progettato combina diverse categorie di dati di test in modo che un singolo script possa convalidare il comportamento normale, la gestione degli errori e i limiti in un'unica esecuzione:
- Dati positivi (validi): Input corretti, come un nome utente e una password validi, utilizzati per confermare che l'applicazione accetti ciò che dovrebbe accettare.
- Dati negativi (non validi): Input errati o non validi che devono essere rifiutati, come ad esempio una password errata o caratteri speciali in un campo numerico.
- Dati relativi ai confini: Valori ai limiti degli intervalli consentiti, come un nome utente di 1 carattere o di 255 caratteri, che spesso rivelano difetti nascosti.
- Dati vuoti o nulli: Campi vuoti che verificano la validità dei campi obbligatori e i messaggi di errore.
- Grandi volumi di dati: Registri generati in massa o in modo casuale, utilizzati per verificare le prestazioni e la stabilità in condizioni di carico realistiche.
Una volta raccolti i dati corretti, il passo successivo consiste nella costruzione della struttura vera e propria.
Come creare un framework di automazione basata sui dati
Supponiamo di voler testare la funzionalità di login di un'applicazione. Il diagramma di flusso qui sopra mostra il ciclo completo: identificare i casi di test, scrivere lo script di test comune, spostare i dati in un file esterno ed eseguire lo script su ogni riga di dati.
Passo 1) Identificare i casi di test
- Inserisci nome utente e password corretti: accesso riuscito
- Inserisci nome utente errato e password corretta – Errore di accesso
- Inserisci nome utente corretto e password errata – Errore di accesso
Passo 2) Crea passaggi di test dettagliati per i 3 casi di test sopra indicati
| Caso di prova# | Descrizione | Passaggi di prova | Dati di test | risultati aspettati |
|---|---|---|---|---|
| 1 | Controllare l'accesso per credenziali valide |
|
Nome utente: password valida: valida | Accesso riuscito |
| 2 | Controlla l'accesso per credenziali non valide |
|
Nome utente: password non valida: valida | Login fallito |
| 3 | Controlla l'accesso per credenziali non valide |
|
Nome utente: password valida: non valida | Login fallito |
Passo 3) Crea script di prova
Come potete osservare, i passaggi del test rimangono invariati in tutti e 3 i casi di test. È necessario creare uno script di test per eseguire questi passaggi:
// This is Pseudo Code
// Test Step 1: Launch Application
driver.get("URL of the Application");
// Test Step 2: Enter Username
txtbox_username.sendKeys("valid");
// Test Step 3: Enter Password
txtbox_password.sendKeys("invalid");
// Test Step 4: Check Results
If (Next Screen) print success else Fail
Passo 4) Crea un file Excel/CSV con i dati di test inseriti, come mostrato nel foglio di esempio qui sotto.
Passo 5) Modifica lo script in modo che esegua un ciclo sui dati di test in ingresso. Anche i comandi di input devono essere parametrizzati.
// This is Pseudo Code
// Loop 3 Times
for (i = 0; i & lt; = 3; i++) {
// Read data from Excel and store into variables
int input_1 = ReadExcel(i, 0);
int input_2 = ReadExcel(i, 1);
// Test Step 1: Launch Application
driver.get("URL of the Application");
// Test Step 2: Enter Username
txtbox_username.sendKeys(input_1);
// Test Step 3: Enter Password
txtbox_password.sendKeys(input_2);
// Test Step 4: Check Results
If(Next Screen) print success
else Fail
}
Sopra ci sono solo 3 casi di test. Lo script di test può essere utilizzato per eseguire un ciclo sui seguenti casi di test semplicemente aggiungendo i valori dei dati di test a Excel
- Inserisci nome utente e password errati – Accesso fallito
- Inserisci nome utente e password corretti vuoti – Accesso non riuscito
- Inserisci nome utente e password vuoti: accesso non riuscito
E così via
💡 Suggerimento: Memorizza il risultato atteso per ogni riga nello stesso file di dati utilizzato per gli input. Il tuo script potrà quindi confrontare automaticamente i risultati effettivi con quelli attesi, trasformando il file di dati in una suite di test completa e auto-verificante.
Una volta che la struttura è pronta, lo strumento giusto semplifica la gestione dei dati, l'esecuzione e la creazione di report.
i migliori strumenti di test basati sui dati
1) Prova sigma
Prova sigma è una piattaforma di test basata su cloud e basata sui dati che ho trovato preziosa per massimizzare la copertura dei test disaccoppiando la logica di test dai dati di test. È specificamente progettata per i team che devono convalidare le applicazioni su diversi set di dati, casi limite e scenari aziendali senza creare script di test ridondanti, semplificando l'intero flusso di lavoro dei test basati sui dati.
Durante i miei progetti di test basati sui dati, ho sfruttato le funzionalità di parametrizzazione di Testsigma per eseguire scenari di test identici su più combinazioni di dati provenienti da fonti esterne come file Excel e CSV. La capacità della piattaforma di iterare automaticamente le righe di dati ha ampliato significativamente la copertura dei miei test, mentre la reportistica granulare sui risultati a livello di dati mi ha aiutato a identificare rapidamente quali specifiche combinazioni di input hanno innescato errori nei livelli web, mobile e API.
Caratteristiche:
- Integrazione di fonti dati esterne: Questa funzionalità consente connessioni dirette a fogli di calcolo Excel, file CSV e tabelle di database per una gestione centralizzata dei dati di test. Elimina i valori hardcoded e consente di gestire i dati di test indipendentemente dalla logica di test. È possibile aggiornare i set di dati senza modificare gli script di test, garantendo flessibilità e manutenibilità. Io la uso per gestire in modo efficiente centinaia di varianti di dati mantenendoping scenari di test puliti e riutilizzabili.
- Iterazione automatizzata dei dati multi-riga: Testsigma esegue automaticamente scenari di test su più righe di dati in un'unica esecuzione, ampliando notevolmente la copertura. È possibile convalidare numerose combinazioni di input, condizioni al contorno e variazioni delle regole aziendali senza duplicare i casi di test. Questa funzionalità gestisce il sequenziamento dei dati e la logica di iterazione in modo trasparente. Ho trovato questa funzionalità particolarmente efficace per test di regressione completi con un overhead minimo di manutenzione degli script.
- Parametrizzazione del passaggio di test dinamico: Permette di sostituire valori statici con parametri dinamici che estraggono dati da fonti esterne durante l'esecuzione. È possibile configurare i passaggi del test per adattarli a input, condizioni e risultati attesi variabili in base ai valori del dataset. Questa funzionalità supporta trasformazioni di dati complesse e logica condizionale. Mi affido a questa funzionalità per creare scenari di test flessibili che si adattino a diversi requisiti aziendali e flussi di lavoro degli utenti.
- Report di esecuzione a livello di dati: La piattaforma genera report dettagliati che scompongono i risultati dei test in base alle singole combinazioni di dati, mostrando esattamente quali input sono stati superati o non superati. È possibile analizzare i modelli, identificare intervalli di dati problematici e trace errori relativi a righe specifiche del set di dati. Questa funzionalità fornisce dashboard visive e analisi esportabili per la comunicazione con le parti interessate. Consiglio di utilizzare queste informazioni per dare priorità al miglioramento della qualità dei dati e perfezionare le strategie relative ai dati di test.
- Supporto multipiattaforma basato sui dati: Testsigma estende le funzionalità basate sui dati ai test web, mobile e API all'interno di flussi di lavoro unificati. È possibile applicare gli stessi set di dati per convalidare la coerenza tra diversi livelli applicativi e tecnologie. Questa funzionalità garantisce una convalida end-to-end completa con flussi di dati parametrizzati. L'ho utilizzata per verificare che l'elaborazione dei dati back-end si riflettesse correttamente nelle interfacce front-end su più piattaforme contemporaneamente.
Pro
Contro
Prezzi:
- Prezzo: Prezzi personalizzati con funzionalità di test basate sui dati incluse come parte del piano di abbonamento completo
- Prova gratuita: Prova gratuita di 14 giorni
Prova gratuita di 14 giorni
2) Testiny
Testiny è una moderna piattaforma di gestione dei casi di test basata sul cloud che ho utilizzato per organizzare in modo efficiente i casi di test basati sui dati, mantenendoping separazione chiara tra logica di test e set di dati parametrizzati. È progettato per i team che devono gestire diverse combinazioni di dati in molte esecuzioni di test senza perdere tracabilità.
Mentre esegui progetti basati sui dati con TestinyHo apprezzato come le sue funzionalità di modifica in blocco e i modelli abbiano semplificato la scalabilità delle varianti di test su centinaia di righe di dati. La piattaforma si integra con Jira, GitHub e GitLab, quindi le combinazioni di dati non riuscite sono collegate al problema. trackers automaticamente.
Caratteristiche:
- Modifica in blocco dei casi di test: Testiny Consente di modificare, duplicare e parametrizzare molti casi di test contemporaneamente, velocizzando la creazione di varianti basate sui dati. È possibile applicare le modifiche a più cartelle in pochi secondi, senza dover intervenire su ogni singolo caso. Mi affido a questa funzionalità quando estendono la copertura a nuovi set di dati senza dover riscrivere gli script.
- Campi personalizzati per l'inserimento dei dati: Consente di definire campi personalizzati per progetto in modo che gli attributi del set di dati possano essere tracQuesti campi vengono aggiunti a ogni esecuzione del test. È possibile registrare in un unico luogo valori di input, risultati attesi e condizioni in modo chiaro. Utilizzo questi campi per semplificare la successiva verifica di scenari complessi e parametrizzati.
- Esecuzione del test in tempo reale Tracking: La piattaforma mostra lo stato di esecuzione in tempo reale tra i membri del team, in modo che le esecuzioni dei test basate sui dati rimangano trasparenti. È possibile assegnare casi, monitorare le percentuali di successo/fallimento e identificare le combinazioni di dati bloccate nel momento in cui si verificano. Trovo questo utile per mantenereping I responsabili del controllo qualità vengono informati senza la necessità di riunioni di stato continue.
- Report in formato PDF e condivisibili: Testiny Genera report PDF chiari con grafici e riepiloghi dell'esecuzione che puoi condividere con gli stakeholder non tecnici. Puoi filtrare per set di dati, milestone o release. Li invio alla fine di ogni sprint per comunicare lo stato di qualità.
- Problema nativo TracIntegrazioni ker: Si collega a Jira, GitHub, GitLab, Azure DevOps, Lineare, AsanaConfluence, Trello e monday.com consentono di trasformare rapidamente le righe di dati errate in ticket. In questo modo è possibile mantenere allineati i flussi di lavoro di esecuzione dei test e di sviluppo. Ho notato che ciò riduce drasticamente gli attriti nel passaggio di consegne tra i team di QA e di sviluppo.
Pro
Contro
Prezzi:
- Prezzo: Piano gratuito per un massimo di 3 utenti; i piani a pagamento variano in base al numero di utenti e includono l'assistenza premium.
- Prova gratuita: Prova gratuita di 21 giorni
Prova gratuita di 21 giorni
3) Testpad
Testpad È uno strumento di gestione dei test leggero e basato su checklist, a cui mi affido quando è necessario acquisire rapidamente scenari basati sui dati senza troppe formalità. È costruito attorno a checklist gerarchiche che consentono ai tester di raggruppare le varianti dei dati sotto casi principali ed eseguirle rapidamente.
Durante le mie sessioni basate sui dati con TestpadHo utilizzato la sua interfaccia basata sulla tastiera per generare decine di varianti di input in una sola sessione. Il supporto per i tester ospiti mi ha permesso di coinvolgere esperti del settore per convalidare combinazioni di dati particolari senza dover pagare per postazioni aggiuntive.
Caratteristiche:
- Liste di controllo gerarchiche per i test: Testpad Organizza i test parametrizzati in checklist annidate, consentendo di raggruppare le varianti di dati correlate sotto un unico caso principale. È possibile espandere e comprimere i rami per concentrarsi su set di dati specifici. Lo utilizzo per mantenere visivamente ordinate matrici di dati complesse.
- Modifica tramite tastiera: Consente di creare, indentare e riordinare gli elementi di test con scorciatoie da tastiera, velocizzando così la creazione di piani di test complessi basati sui dati. È possibile rimanere concentrati senza dover ricorrere al mouse. Ho riscontrato che questo riduce drasticamente il tempo necessario per acquisire nuove righe di dati.
- Accesso per i tester ospiti: Testpad Supporta un numero illimitato di tester ospiti senza costi per postazione, consentendoti di coinvolgere esperti del settore per specifiche combinazioni di dati. Puoi invitare le parti interessate a verificare i casi limite senza costi di licenza. Mi affido a questa funzionalità durante i test di accettazione da parte degli utenti con scenari parametrizzati.
- Report condivisibili istantaneamente: La piattaforma genera report leggeri che è possibile condividere tramite link, in modo da visualizzare i progressi senza dover aprire lo strumento. È possibile filtrare per tester, stato o ramo di test. Invio questi report ai product manager al termine di ogni ciclo di test basato sui dati.
- Problema TracCollegamento ker: Collega i test falliti ai ticket Jira o GitHub tramite semplici link, in modo che gli errori nelle righe di dati vengano indirizzati rapidamente al team di ingegneria. È possibile allegare il contesto direttamente da un elemento della checklist non riuscito. In questo modo, il tester può concentrarsi sull'esecuzione, lasciando che gli strumenti gestiscano l'instradamento.
Pro
Contro
Prezzi:
- Prezzo: I piani partono da 59 dollari al mese, con piani aziendali personalizzati disponibili per i team più numerosi.
- Prova gratuita: Prova Gratis 30 giorni
Prova gratuita di 30 giorni
migliori pratiche di test basati sui dati
Di seguito sono riportate le migliori pratiche di test per i test basati sui dati:
- L'ideale è utilizzare informazioni realistiche durante il processo di test basato sui dati
- La navigazione nel flusso di test deve essere codificata all'interno dello script di test
- Promuovi le API virtuali con dati significativi
- Utilizza i dati per promuovere asserzioni dinamiche
- Testare risultati positivi e negativi
- Riutilizzare i test funzionali basati sui dati per la sicurezza e le prestazioni
Vantaggi dei test basati sui dati
I test basati sui dati offrono numerosi vantaggi. Alcuni di questi sono:
- Consente di testare l'applicazione con più set di valori di dati durante Test di regressione
- I dati di test e i dati di verifica possono essere organizzati in un solo file ed è separato dalla logica del test case.
- Grazie a questo strumento, è possibile avere gli script di test in un unico repository. Ciò rende i test facili da comprendere, mantenere e gestire.
- Azioni e funzioni possono essere riutilizzate in diversi test.
- Alcuni strumenti generano automaticamente i dati di test. Ciò è utile quando sono necessari grandi volumi di dati di test casuali, consentendo di risparmiare tempo.
- I test basati sui dati possono essere eseguiti in qualsiasi fase dello sviluppo. I casi di test basati sui dati vengono generalmente integrati in un unico processo. Tuttavia, possono essere utilizzati in più casi di test.
- Consente a sviluppatori e tester di avere una chiara separazione della logica dei loro casi/script di test dai dati di test.
- Gli stessi casi di test possono essere eseguiti più volte, il che contribuisce a ridurre il numero di casi di test e di script.
- Qualsiasi modifica allo script di test non influisce sui dati di test
Svantaggi dei test basati sui dati
Alcuni svantaggi del metodo di test di automazione basato sui dati sono:
- La qualità del test dipende dalle competenze di automazione del team di implementazione.
- La convalida dei dati è un'attività che richiede molto tempo quando si testa una grande quantità di dati.
- La manutenzione rappresenta un problema importante, poiché i test basati sui dati richiedono una notevole quantità di codice.
- Sono richieste competenze tecniche di alto livello. Un tester potrebbe dover imparare un linguaggio di scripting completamente nuovo.
- Sarà disponibile ulteriore documentazione, principalmente relativa alla gestione degli script, all'infrastruttura di test e ai risultati dei test.
- Per creare e gestire file di dati è necessario un editor di testo come Blocco note.
Test basati sui dati vs. test basati sulle parole chiave
I principianti spesso confondono i test basati sui dati (data-driven testing) con i test basati su parole chiave (keyword-driven testing) perché entrambi separano la progettazione dei test dagli script di test. La differenza sta in ciò che viene esternalizzato: i test basati sui dati esternalizzano i valori di input, mentre i test basati su parole chiave esternalizzano le azioni stesse come parole chiave riutilizzabili. La tabella seguente confronta i due approcci:
| Parametro | Test guidati dai dati | Test guidati da parole chiave |
|---|---|---|
| Cosa viene esternalizzato? | Dati di prova (input e risultati attesi) | Azioni di prova (parole chiave come Accedi, Clic, Verifica) |
| Fonte di dati | Excel, CSV, XML o tabelle di database | Tabelle per parole chiave più tabelle dati opzionali |
| Competenze richieste | Conoscenza di base della programmazione | Maggiore impegno iniziale nella progettazione; meno codice da scrivere per creare nuovi test. |
| adatto per | Ripetere uno scenario con molte combinazioni di input | Creazione di numerosi scenari a partire da blocchi di azione riutilizzabili |
| Manutenzione | Aggiorna i file di dati senza modificare gli script. | Aggiorna la libreria di parole chiave quando cambia il comportamento dell'applicazione. |
Molti team combinano entrambi gli approcci in un framework ibrido, in cui le parole chiave definiscono azioni riutilizzabili e i file di dati esterni forniscono i valori per ogni esecuzione del test.






