Test basato sui dati
Data Driven Testing è 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 che può eseguire test per tutti i dati di test da una tabella e aspettarsi l'output del test nella stessa tabella. È anche chiamato test guidato da tabella o test parametrizzato.
Framework basato sui dati
Data Driven Framework è un framework di test di automazione in cui i valori di input vengono letti dai file di dati e archiviati in variabili negli script di test. Consente ai tester di costruire casi di test positivi e negativi in un unico test. I dati di input nel framework basato sui dati possono essere archiviati in una o più origini dati come .xls, .xml, .csv e database.
In questo tutorial imparerai
- Che cos'è il test basato sui dati?
- Perché i test basati sui dati?
- Come creare un framework di automazione basata sui dati
- Best practice per i test basati sui dati:
- Vantaggi dei test basati sui dati
- Svantaggi dei test basati sui dati:
Perché i test basati sui dati?
Il test basato sui dati è importante perché i tester hanno spesso più set di dati per un singolo test e la creazione di test individuali per ogni set di dati può richiedere molto tempo. Il test basato sui dati aiuta a mantenere i dati separati dagli script di test e gli stessi script di test possono essere eseguiti per diverse combinazioni di dati di test di input e i risultati dei test possono essere generati in modo efficiente.
Esempio:
Ad esempio, vogliamo testare il sistema di accesso con più campi di input con 1000 diversi set di dati.
Per verificarlo, puoi adottare i seguenti approcci diversi:
Approccio 1) Creare 1000 script uno per ogni set di dati ed eseguire ogni test separatamente uno per uno.
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 test dalle righe di Excel uno per uno ed esegui lo script.
Nei tre scenari indicati, i primi due sono laboriosi e richiedono molto tempo. Pertanto, è ideale seguire il terzo approccio.
Pertanto, il terzo approccio non è altro che un framework basato sui dati.
Come creare un framework di automazione basata sui dati
Considera di voler testare la funzionalità di accesso di un'applicazione.
Passaggio 1) Identifica i casi di test
- Inserisci nome utente e password corretti - Accesso riuscito
- Immettere il nome utente errato e la password corretta - Accesso non riuscito
- Immettere il nome utente corretto e la password errata - Accesso non riuscito
Passaggio 2) Creare passaggi dettagliati per i precedenti 3 casi di test
Caso di test n. | Descrizione | Passaggi del test | Dati di test | risultati aspettati |
---|---|---|---|---|
1 | Controlla il login per avere credenziali valide |
| Nome utente: password valida: valida | Accesso riuscito |
2 | Controlla l'accesso per le credenziali non valide |
| Nome utente: password non valida: valida | Login fallito |
3 | Controlla l'accesso per le credenziali non valide |
| Nome utente: password valida: non valida | Login fallito |
Passaggio 3) Crea script di prova
Se si osservano le fasi del test Rimanere comuni durante le 3 fasi del test. È necessario creare uno script di test per eseguire questi passaggi
// Questo è uno pseudo codice// Fase di prova 1: avvio dell'applicazionedriver.get ("URL dell'applicazione");// Fase di prova 2: immettere il nome utentetxtbox_username.sendKeys ("valid");// Fase 3 del test: immettere la passwordtxtbox_password.sendKeys ("invalid");// Fase di prova 4: verifica dei risultatiSe (Schermata successiva) stampa con successo altrimenti Fallito
Passaggio 4) Crea un excel / csv con i dati del test di input
Passaggio 5) Passaggio Modifica dello script per eseguire il loop sui dati di test di input. Anche i comandi di input dovrebbero essere parametrizzati
// Questo è uno pseudo codice// Gira 3 voltefor (i = 0; i & lt; = 3; i ++) {// Legge i dati da Excel e li archivia nelle variabiliint input_1 = ReadExcel (i, 0);int input_2 = ReadExcel (i, 1);// Fase di prova 1: avvio dell'applicazionedriver.get ("URL dell'applicazione");// Fase di prova 2: immettere il nome utentetxtbox_username.sendKeys (input_1);// Fase 3 del test: immettere la passwordtxtbox_password.sendKeys (input_2);// Fase di prova 4: verifica dei risultatiSe (Schermata successiva) stampa correttamentealtrimenti fallire}
Sopra ci sono solo 3 casi di test. Lo script di test può essere utilizzato per eseguire il ciclo sui seguenti casi di test semplicemente aggiungendo i valori dei dati di test a Excel
- Inserisci nome utente e password errati - Accesso non riuscito
- Immettere il nome utente e la password corretti vuoto - Accesso non riuscito
- Immettere il nome utente vuoto e la password vuota - Accesso non riuscito
E così via
Best practice per i test basati sui dati:
Di seguito vengono fornite le migliori pratiche di test per i test basati sui dati:
- È ideale utilizzare informazioni realistiche durante il processo di test basato sui dati
- La navigazione del flusso di test deve essere codificata all'interno dello script di test
- Guida le API virtuali con dati significativi
- Utilizza i dati per generare asserzioni dinamiche
- Verifica risultati positivi e negativi
- Riutilizza i test funzionali basati sui dati per la sicurezza e le prestazioni
Vantaggi dei test basati sui dati
Data-Driven offre molti vantaggi, alcuni dei quali sono:
- Consente di testare l'applicazione con più set di valori di dati durante il test di regressione
- I dati di test e di verifica possono essere organizzati in un solo file ed è separato dalla logica del test case.
- Sulla base dello strumento, è possibile avere gli script di test in un unico repository. Ciò rende i testi facili da capire, mantenere e gestire.
- Le azioni e le funzioni possono essere riutilizzate in diversi test.
- Alcuni strumenti generano automaticamente i dati del test. Ciò è utile quando sono necessari grandi volumi di dati di test casuali, il che aiuta a risparmiare tempo.
- I test basati sui dati possono eseguire qualsiasi fase dello sviluppo. Le cure di un test basato sui dati sono generalmente unite in un unico processo. Tuttavia, può essere utilizzato in più casi di test.
- Consente a sviluppatori e tester di avere una chiara separazione per la logica dei loro casi di test / script dai dati di test.
- Gli stessi casi di test possono essere eseguiti più volte, il che aiuta a ridurre i casi di test e gli script.
- Eventuali modifiche nello script di test non hanno effetto sui dati di test
Svantaggi dei test basati sui dati:
Alcuni svantaggi del metodo di test dell'automazione basata sui dati sono:
- La qualità del test dipende dalle capacità di automazione del team di implementazione
- La convalida dei dati è un'attività che richiede tempo durante il test di grandi quantità di dati.
- La manutenzione è un grosso problema in quanto è necessaria una grande quantità di codice per i test basati sui dati.
- Sono richieste competenze tecniche di alto livello. Un tester potrebbe dover imparare un linguaggio di scripting completamente nuovo.
- Ci sarà più documentazione. Principalmente correlato alla gestione degli script, all'infrastruttura dei test e ai risultati dei test.
- Per creare e gestire i file di dati è necessario un editor di testo come Blocco note.
Conclusione:
- Data-driven è un framework di automazione dei test che memorizza i dati dei test in una tabella o in un foglio di calcolo.
- Nel framework di automazione del test basato sui dati, i dati di input possono essere archiviati in una o più origini dati come xls, XML, csv e database.
- Creare un test individuale per ogni set di dati è un processo lungo e dispendioso in termini di tempo. Il framework Data Driven Testing risolve questo problema mantenendo i dati separati dai test funzionali.
- In Data Driven Testing, è un'opzione ideale per utilizzare informazioni realistiche
- Consente l'applicazione di test con più set di valori di dati durante il test di regressione
- Lo svantaggio di questo metodo è che dipende dalle capacità di automazione del team di implementazione