Test basati sui dati
I test basati sui dati sono una metodologia di test in cui i valori di input e output di un test sono separati dal codice. Questo formalismo significa in genere che un piccolo investimento nel rendere il codice di test un po 'più generico consente di scrivere un numero elevato di test case semplicemente identificando i dati coinvolti.
I test basati su dati sono ideali per le aree di test che funzionano con un set di valori di input che definiscono il loro comportamento, ad esempio durante il test di un'API, i parametri di input e output possono essere definiti come origine dei dati e il codice di test utilizza i dati, effettua chiamate API e convalida i risultati.
Supporto dei test basati sui dati in TAEF
TAEF offre diverse opzioni per la creazione di test basati sui dati. È possibile comprendere queste opzioni in modo da poter scegliere quale si adatta meglio allo scenario di test.
La soluzione di test basata su dati basata su tabelle consente di controllare con granularità fine sulle variazioni dei parametri di dati e di definire i tipi di parametri. DataSource in questo caso è una tabella definita in un file XML. È possibile specificare i tipi di parametro(int, senza segno int, size_t, bool, double, DWORD, __int64 e così via e la relativa variante di matrice omogenea) oppure avere il tipo predefinito su WEX::Common::String (nativo) o stringa (gestita). Ogni riga nella tabella è un set di varianti sui valori dei parametri. Il metodo di test verrà richiamato nuovamente per ogni riga nella tabella. Ecco un frammento di codice di un'origine dati XML per i test basati sui dati basati su tabelle:
1 <?xml version="1.0"?>
2 <Data>
3 <Table Id ="Table1">
4 <ParameterTypes>
5 <ParameterType Name="Size">Int32</ParameterType>
6 <ParameterType Name="Color">String</ParameterType>
7 </ParameterTypes>
8 <Row>
9 <Parameter Name="Size">12</Parameter>
10 <Parameter Name="Color">Blue</Parameter>
11 </Row>
12 <Row>
13 <Parameter Name="Size">4</Parameter>
14 <Parameter Name="Color">White</Parameter>
15 </Row>
16 <Row>
17 <Parameter Name="Size">9</Parameter>
18 <Parameter Name="Color">Black</Parameter>
19 </Row>
20 </Table>
21 </Data>
Per altre informazioni: Test basati sui dati basati su tabelle.
Il supporto per i test basati sui dati di peso leggero non offre la fedeltà completa offerta dalla soluzione di test basata sui dati basata su tabelle. Per chiarire: i test basati su dati con peso leggero limitano i parametri di dati come WEX::Common::String(native) o String(managed) come rispetto ai vari tipi supportati dalla soluzione di test basata sui dati basata su tabelle. Tuttavia, se si sta cercando una variazione di dati a basso costo e rapida (ad esempio uno o due parametri) per creare un metodo di test basato sui dati e l'aggiunta di un file XML come DataSource sembra non vale la pena dei problemi, i test basati sui dati di peso leggero potrebbero essere esattamente ciò che si sta cercando. Un ottimo esempio di questo è uno sviluppatore che scrive un unit test per un'API dice OpenThemeData(...) e vuole verificare l'API su "Button", "Listbox" e "ScrollBar". Potrebbe essere troppo un overload per creare un file XML DataSource per questo, ma con il supporto dei test basati sui dati di peso leggero, questa operazione potrebbe essere eseguita in modo efficiente nel codice sorgente stesso. Se viene specificato più di un parametro, TAEF genererà un'espansione combinatoria n-way dei parametri dietro la scena e il metodo di test verrà richiamato per ogni combinazione. Per altre informazioni: test basati sui dati di peso leggero.
L'espansione combinatoria n-way che offre test basati su dati di peso leggero, potrebbe ottenere costi costosi e fornire una riduzione delle restituzioni quando lo scenario di test diventa più complesso. In uno scenario di test complesso, Pairwise Independent Combinatorial Testing (PICT) offerto dalla soluzione di test basata su DATI basati su PICT può essere ciò che si sta cercando. PICT offre un sacco di valore generando un set compatto di risultati dei parametri per ottenere una copertura completa sui parametri. Scopri i collegamenti per altre informazioni su PICT e su come usare questa soluzione nella soluzione di test basata su dati basati su PICT .
Usando il supporto dei test basati sui dati basato su WMI , è anche possibile aggiungere precondizione ai test e ottenere informazioni (dati) in base alle risorse disponibili nel computer di test. Ad esempio, se si vuole eseguire il test solo se il computer è aggiunto al dominio e sono necessarie anche le informazioni sul nome di dominio quando si esegue il test. DataSource in questo caso è una query WQL. Altre informazioni su come sfruttare i test basati sui dati basati su WMI nello scenario di test.
Tenere presente tutte le opzioni elencate in precedenza, è anche possibile che si verifichi un design in cui una combinazione delle opzioni precedenti potrebbe sembrare adatta. Ad esempio, è possibile usare una query WMI per ottenere informazioni su tutte le stampanti connesse al computer di test, ma è possibile definire un altro set di parametri che possono essere definiti in anticipo usando un costrutto di test basato su tabelle. Più specifiche di DataSource possono essere utili anche se si desidera che i dati del test vengano provenienti da due tabelle separate, consentendo quindi la riutilizzabilità di ogni tabella tra altri test. Leggere i dettagli su come specificare più origini dati per un test e quali vincoli si applicano durante questa operazione: Specifica di più origini dati
In questa sezione
- Test basati sui dati in linguaggi di scripting
- Origine dati tabella
- Tipi di parametri nelle origini dati tabella
- Esempio di test basato su dati semplice
- Esempio di test basato sui metadati
- Esempio di test basato su dati di supporto di array
- Classe basata sui dati
- Origine dati PICT
- Origine dati WMI
- Test basati sui dati con peso leggero
- Esecuzione di test basati sui dati
- Più origini dati