Dela via


Datadriven testning

Datadriven testning är en testmetod där ett tests indata- och utdatavärden separeras från koden. Denna formalism innebär vanligtvis att en liten investering i att göra testkoden lite mer generisk gör att ett stort antal testfall kan skrivas genom att helt enkelt identifiera de data som ingår.

Datadriven testning är bra för testningsområden som fungerar med en uppsättning indatavärden som definierar deras beteende, till exempel när du testar ett API kan indata- och utdataparametrarna definieras som en datakälla och testkoden använder data, gör API-anropen och validerar resultatet.

Stöd för datadriven testning i TAEF

TAEF erbjuder en mängd olika alternativ för att redigera datadrivna tester. Låt oss förstå de här alternativen så att du kan välja vilken som passar bäst för ditt testscenario.

Med en tabellbaserad datadriven testlösning kan du få detaljerad kontroll över dataparametervariationerna och definiera parametertyperna. DataSource i det här fallet är en tabell som definierats i en XML-fil. Du kan ange parametertyperna (int, osignerad int, size_t, bool, double, DWORD, __int64 osv. och deras homogena matrisvariant) eller ha typen standard för WEX::Common::String (intern) eller sträng (hanterad). Varje rad i tabellen är en uppsättning varianter av parametervärdena. Testmetoden anropas igen för varje rad i tabellen. Här är ett kodfragment av en XML-datakälla för tabellbaserad datadriven testning:

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>

Läs mer: Tabellbaserad datadriven testning.

Stöd för datadriven testning med låg vikt ger inte den fullständiga återgivning som tabellbaserad datadriven testlösning erbjuder. För att förtydliga: Datadriven testning med låg vikt begränsar dataparametrarna till WEX::Common::String(native) eller String(managed) jämfört med de olika typer som stöds av den tabellbaserade datadrivna testlösningen. Men om du letar efter en billig och snabb datavariation (till exempel en eller två parametrar) för att göra en testmetod datadriven och att lägga till en XML-fil som DataSource inte verkar vara värt besväret, kan en lättviktslösning för datadriven testning vara exakt vad du letar efter. Ett bra exempel på detta är en utvecklare som skriver ett enhetstest för ett API, till exempel OpenThemeData(...) och vill verifiera API:et mot "Button", "Listbox" och "ScrollBar". Det kan vara för mycket av en belastning att skapa en XML DataSource-fil för detta, men med lättvikts datadriven testning kan detta göras effektivt i själva källkoden. Om mer än en parameter anges genererar TAEF en n-vägs kombinatorisk expansion av parametrar i bakgrunden och testmetoden anropas för varje kombination. Läs mer: Datadriven testning med låg vikt.

Den nätverkskombinatoriska expansion som datadriven testning med låg vikt erbjuder, kan bli dyr och ge minskande avkastning när testscenariot blir mer komplext. I ett sådant komplext testscenario kan Pairwise Independent Combinatorial Testing (PICT) som erbjuds av PICT-baserad datadriven testlösning vara det du letar efter. PICT ger mycket värde genom att generera en kompakt uppsättning parameterresultat för att få omfattande täckning över parametrarna. Ta reda på länkar för att lära dig mer om PICT och hur du använder den här lösningen på PICT-baserad datadriven testlösning .

Med hjälp av stöd för WMI-baserad datadriven testning kan du också lägga till förhandsvillkor för dina tester samt hämta information (data) baserat på de resurser som är tillgängliga på testdatorn. Om du till exempel bara vill köra testet om datorn är domänansluten och du också behöver domännamnsinformationen när du kör testet. DataSource i det här fallet är en WQL-fråga. Läs mer om hur du använder WMI-baserad datadriven testning i ditt testscenario.

Med tanke på alla alternativ som anges ovan kan du också komma med en design där en kombination av ovanstående alternativ kan verka lämplig. Du kanske till exempel vill använda en WMI-fråga för att få information om alla skrivare som är anslutna till testdatorn, men det kan finnas en annan uppsättning parametrar som kan definieras direkt med hjälp av en tabellbaserad datadriven testkonstruktion. Flera DataSource-specifikationer kan också vara användbara om du vill att testets data ska komma från två separata tabeller, vilket gör att varje tabell kan återanvändas i andra tester. Läs mer om hur du anger flera DataSources för ett test och vilka begränsningar som gäller när du gör det: Ange flera datakällor

I det här avsnittet