Delen via


Gegevensgestuurd testen

Gegevensgestuurd testen is een testmethodologie waarbij de invoer- en uitvoerwaarden van een test worden gescheiden van de code. Dit formalisme betekent meestal dat een kleine investering in het maken van de testcode iets algemener maakt dat een groot aantal testcases kan worden geschreven door simpelweg de gegevens te identificeren die betrokken zijn.

Gegevensgestuurd testen is ideaal voor testgebieden die werken met een set invoerwaarden die hun gedrag definiëren, bijvoorbeeld bij het testen van een API, kunnen de invoer- en uitvoerparameters worden gedefinieerd als een gegevensbron en de testcode verbruikt de gegevens, de API-aanroepen maakt en de resultaten valideert.

Ondersteuning voor gegevensgestuurde tests in TAEF

TAEF biedt verschillende opties voor het ontwerpen van gegevensgestuurde tests. Laten we deze opties begrijpen, zodat u kunt kiezen welke optie het beste past bij uw testscenario.

Met een op tabellen gebaseerde gegevensgestuurde testoplossing kunt u nauwkeurig worden gecontroleerd op de variaties van de gegevensparameters en kunt u de parametertypen definiëren. De DataSource in dit geval is een tabel die is gedefinieerd in een XML-bestand. U kunt de parametertypen (int, unsigned int, size_t, bool, double, DWORD, __int64 etc. en hun homogene matrixvariant) opgeven of het type standaard hebben op WEX::Common::String (systeemeigen) of tekenreeks (beheerd). Elke rij in de tabel is een reeks variaties op de parameterwaarden. De testmethode wordt opnieuw aangeroepen voor elke rij in de tabel. Hier volgt een fragment van een XML-gegevensbron voor gegevensgestuurde tests op basis van tabellen:

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>

Meer informatie: gegevensgestuurd testen op basis van tabellen.

De ondersteuning voor lichtgewicht gegevensgestuurd testen biedt niet de volledige nauwkeurigheid die de oplossing voor gegevensgestuurde tests op basis van tabellen biedt. Ter verduidelijking: Bij gegevensgestuurd testen met een lichtgewicht aanpak worden gegevensparameters beperkt tot WEX::Common::String(native) of String(managed), in tegenstelling tot de verschillende types die door de tabelgebaseerde gegevensgestuurde testoplossing worden ondersteund. Maar als u op zoek bent naar een goedkope en snelle gegevensvariatie (bijvoorbeeld een of twee parameters) om een gegevensgestuurde testmethode te maken en een XML-bestand toe te voegen omdat de DataSource de moeite niet waard lijkt te zijn, kan het eenvoudig gegevensgestuurde testen precies zijn wat u zoekt. Een goed voorbeeld hiervan is een ontwikkelaar die een eenheidstest schrijft voor een API, bijvoorbeeld OpenThemeData(...) en de API wil verifiëren op basis van 'Button', 'Listbox' en 'ScrollBar'. Het kan te veel overbelasting zijn om hiervoor een XML-gegevensbronbestand te maken, maar met lichtgewicht gegevensgestuurde tests kan dit efficiënt in de broncode zelf worden gedaan. Als er meer dan één parameter is opgegeven, genereert TAEF een N-weg combinatorische uitbreiding van parameters achter de schermen en wordt de testmethode voor elke combinatie uitgevoerd. Meer informatie: Lichtgewicht gegevensgestuurd testen.

De n-weg-combinatorische uitbreiding die lichtgewicht gegevensgestuurd testen biedt, kan duur worden en minder rendement opleveren naarmate het testscenario complexer wordt. In een dergelijk complex testscenario is Pairwise Independent Combinatorial Testing (PICT) dat wordt aangeboden door de op PICT gebaseerde testoplossing voor gegevensgestuurde tests mogelijk wat u zoekt. PICT biedt veel waarde door een compacte set parameterresultaten te genereren om uitgebreide dekking te krijgen over de parameters. Ontdek koppelingen om meer te leren over PICT en hoe u deze oplossing kunt gebruiken in gegevensgestuurde testen op basis van PICT.

Met behulp van de WMI-ondersteuning voor gegevensgestuurde tests kunt u ook een voorwaarde toevoegen aan uw tests en informatie (gegevens) verkrijgen op basis van de resources die beschikbaar zijn op de testmachine. Als u de test bijvoorbeeld alleen wilt uitvoeren als de machine lid is van een domein en u ook de domeinnaamgegevens nodig hebt wanneer u de test uitvoert. De DataSource in dit geval is een WQL-query. Meer informatie over het gebruik van op WMI gebaseerde gegevensgestuurde tests in uw testscenario.

Als u rekening houdt met alle bovenstaande opties, kunt u ook een ontwerp bedenken waarbij een combinatie van de bovenstaande opties mogelijk past. U kunt bijvoorbeeld een WMI-query gebruiken om informatie op te halen over alle printers die zijn verbonden met de testmachine, maar er kan een andere set parameters zijn die vooraf kunnen worden gedefinieerd met behulp van een gegevensgestuurde testconstructie op basis van tabellen. De specificatie van meerdere datasources kan ook nuttig zijn, als u wilt dat de gegevens van uw test afkomstig zijn uit twee afzonderlijke tabellen, waardoor elke tabel opnieuw kan worden gebruikt voor andere tests. Lees de details over het opgeven van meerdere DataSources voor een test en welke beperkingen van toepassing zijn terwijl u dit doet: Meerdere gegevensbronnen opgeven

In dit onderdeel