Freigeben über


Datengesteuertes Testen

Datengesteuertes Testen ist eine Testmethodik, bei der die Eingabe- und Ausgabewerte eines Tests vom Code getrennt sind. Dieser Formalismus bedeutet in der Regel, dass eine kleine Investition in die Erstellung eines etwas generischeren Testcodes es ermöglicht, eine große Anzahl von Testfällen zu schreiben, indem einfach die beteiligten Daten identifiziert werden.

Datengesteuertes Testen eignet sich hervorragend für Testbereiche, die mit einer Reihe von Eingabewerten arbeiten, die ihr Verhalten definieren. Beim Testen einer API können beispielsweise die Eingabe- und Ausgabeparameter als Datenquelle definiert werden, und der Testcode nutzt die Daten, macht die API aufruft und überprüft die Ergebnisse.

Unterstützung für datengesteuerte Tests in TAEF

TAEF bietet eine Vielzahl von Optionen zum Erstellen von datengesteuerten Tests. Lassen Sie uns diese Optionen verstehen, damit Sie auswählen können, welche am besten zu Ihrem Testszenario passt.

Tabellenbasierte datengesteuerte Testlösung ermöglicht es Ihnen, die Datenparametervariationen präzise zu steuern und die Parametertypen zu definieren. Die DataSource ist in diesem Fall eine Tabelle, die in einer XML-Datei definiert ist. Sie können die Parametertypen (int, unsigned int, size_t, bool, double, DWORD, __int64 usw. und deren homogene Arrayvariante) angeben oder den Typ standardmäßig auf WEX::Common::String (nativ) oder Zeichenfolge (verwaltet) festlegen. Jede Zeile in der Tabelle ist eine Gruppe von Variationen der Parameterwerte. Die Testmethode wird für jede Zeile in der Tabelle erneut aufgerufen. Hier sehen Sie einen Codeausschnitt einer XML-Datenquelle für tabellenbasierte datengesteuerte Tests:

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>

Weitere Informationen: Tabellenbasierte datengesteuerte Tests.

Die Unterstützung für datengesteuerte Tests mit geringem Gewicht bietet nicht die vollständige Genauigkeit, die die tabellenbasierte datengesteuerte Testlösung bietet. Zur Verdeutlichung: Bei datengesteuertem Testen mit geringem Gewicht werden Datenparameter auf WEX::Common::String(native) oder String(managed) gegenüber den verschiedenen Typen beschränkt, die von der tabellenbasierten datengesteuerten Testlösung unterstützt werden. Wenn Sie jedoch nach einer kostengünstigen und schnellen Datenvariation (z. B. ein oder zwei Parametern) suchen, um eine Testmethode datengesteuert zu machen, und eine XML-Datei hinzufügen, da die Datenquelle den Aufwand nicht wert zu sein scheint, könnte ein leichtes datengesteuertes Testen genau das sein, wonach Sie suchen. Ein großartiges Beispiel hierfür ist ein Entwickler, der einen Komponententest für eine API mit openThemeData(...) schreibt und die API anhand von "Button", "Listbox" und "ScrollBar" überprüfen möchte. Es kann eine zu große Überladung sein, eine XML-DataSource-Datei dafür zu erstellen, aber mit einer leichten datengesteuerten Testunterstützung könnte dies effizient im Quellcode selbst durchgeführt werden. Wenn mehr als ein Parameter angegeben ist, generiert TAEF eine kombinatorische n-Wege-Erweiterung von Parametern im Hintergrund, und die Testmethode wird für jede Kombination aufgerufen. Weitere Informationen: Datengesteuerte Tests mit geringem Gewicht.

Die n-Way-kombinatorische Erweiterung, die leichte datengesteuerte Tests bietet, könnte teuer werden und geringere Renditen bieten, wenn das Testszenario komplexer wird. In einem solch komplexen Testszenario ist möglicherweise die von PICT-basierte datengesteuerte Testlösung angebotene pairwise Independent Combinatorial Testing (PICT) das, was Sie suchen. PICT bietet einen großen Wert, indem ein kompakter Satz von Parameterergebnissen generiert wird, um eine umfassende Abdeckung der Parameter zu erhalten. Hier finden Sie Links, um mehr über PICT und die Verwendung dieser Lösung auf PICT-basierten datengesteuerten Testlösungen zu erfahren.

Mithilfe der WMI-basierten datengesteuerten Testunterstützung können Sie Ihren Tests auch Eine Vorbedingung hinzufügen und Informationen (Daten) basierend auf den auf dem Testcomputer verfügbaren Ressourcen abrufen. Beispielsweise, wenn Sie den Test nur ausführen möchten, wenn der Computer in die Domäne eingebunden ist und Sie beim Ausführen des Tests auch die Domänennameninformationen benötigen. Die DataSource ist in diesem Fall eine WQL-Abfrage. Erfahren Sie mehr darüber, wie Sie WMI-basierte datengesteuerte Tests in Ihrem Testszenario nutzen können.

Wenn Sie alle oben aufgeführten Optionen beachten, können Sie auch ein Design entwickeln, bei dem eine Kombination der oben genannten Optionen geeignet erscheinen kann. Beispielsweise können Sie eine WMI-Abfrage verwenden, um Informationen zu allen Druckern abzurufen, die mit dem Testcomputer verbunden sind, aber es könnte eine andere Gruppe von Parametern geben, die im Voraus mithilfe eines tabellenbasierten datengesteuerten Testkonstrukts definiert werden können. Mehrere DataSource-Spezifikationen können auch nützlich sein, wenn die Daten Ihres Tests aus zwei separaten Tabellen stammen sollen, sodass jede Tabelle für andere Tests wiederverwendbar ist. Lesen Sie die Details dazu, wie Sie mehrere Datenquellen für einen Test angeben und welche Einschränkungen dabei gelten: Angeben mehrerer Datenquellen

In diesem Abschnitt