30.4
Datentreiber

Der Ausdruck datengetriebenes Testen bezieht sich auf eine verbreitete Methode bei automatisierten Tests, bei der Testfälle mehrfach mit unterschiedlichen Datensätzen ausgeführt werden. Dank des flexiblen Variablenkonzepts in QF-Test gibt es keine Einschränkungen, wie diese Daten genutzt werden können. Die häufigste Verwendung ist sicherlich für Eingabewerte in 'Event' und erwartete Ergebnisse in 'Check' Knoten.

QF-Test's Mechanismus für datengetriebenes Testen besteht aus dem 'Datentreiber' Knoten, der benutzt wird um einen Datenkontext zur Verfügung zu stellen, und verschiedenen Arten von 'Daten' Knoten. Aktuell gibt es den 'Datentabelle' Knoten, der Daten in Form einer Tabelle in QF-Test selbst speichert, den 'CSV Datei' Knoten, der Daten aus einer CSV Datei, sowie den 'Datenbank' Knoten, der Daten aus einer Datenbank und den 'Excel Datei' Knoten, der Daten aus einer Excel Datei liest. Es wird auch ein Erweiterungs-API für den Zugriff auf beliebige externe Daten zur Verfügung gestellt.

Weitere Informationen über die Zusammenarbeit der verschiedenen Teile des Datentreiber-Mechanismus finden Sie in Kapitel 14.

30.4.1
'Datentreiber'

Außer seiner besonderen Position im 'Testfallsatz' verhält sich ein 'Datentreiber' wie eine normale 'Sequenz'. Er stellt den Kontext für einen oder mehrere 'Daten' Knoten bereit, für den sich diese während der Ausführung des 'Datentreibers' registrieren können. Der 'Testfallsatz' iteriert dann über die Datensätze, die von den registrierten 'Daten' Knoten zur Verfügung gestellt werden und führt seine Childknoten aus, wie in Kapitel 14 beschrieben. Für diesen Zweck muss ein 'Datentreiber' innerhalb eines 'Testfallsatz' Knotens platziert werden, zwischen die optionalen 'Abhängigkeit' und 'Vorbereitung' Knoten.

Enthalten in: 'Testfallsatz', 'Test'

Kinder: Beliebig

Ausführung: Wenn ein 'Testfallsatz' oder 'Test' ausgeführt wird, überprüft dieser, ob ein 'Datentreiber' vorhanden ist und führt ihn aus. Der Inhalt des 'Datentreiber' Knotens ist nicht auf 'Daten' Knoten beschränkt, sondern kann beliebige ausführbare Knoten enthalten, so dass jede Form von Vorbereitung realisiert werden kann, die für das Bereitstellen der Daten notwendig ist. Damit ist es auch möglich, 'Daten' Knoten wieder zu verwenden, indem man sie in einer 'Prozedur' platziert und diese aus dem 'Datentreiber' heraus aufruft. Jeder 'Daten' Knoten, der in einem 'Datentreiber' Kontext registriert ist, wird vom 'Testfallsatz' auf seine Daten hin abgefragt.

Attribute:

'Datentreiber' Attribute
Abbildung 30.15:  'Datentreiber' Attribute
'Name'

Der Name eines 'Datentreibers' ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Art der bereitgestellten Daten aussagen.

Variabel: Nein

Einschränkungen: Keine

'Name für Schleifendurchgang im Protokoll'

Hier kann ein eigener Name für die Iterationsschritte definiert werden, der dann im Protokoll verwendet wird. Dieser kann Variablen der gebundenen Daten enthalten um damit das Auffinden eines spezifischen Iterationsschrittes zu erleichtern.

Variabel: Ja

Einschränkungen: Nein

'Name für separates Protokoll'

Mit diesem Attribut kann ein Knoten als Bruchstelle zum Abteilen eines Protokolls markiert werden. Es legt den Dateinamen für das abgeteilte Protokoll fest. Nach jeder Iteration des 'Datentreibers' wird das zugehörige Protokoll aus dem Hauptprotokoll entfernt und als eingenständiges Protokoll gespeichert. Diese Operation ist vollständig transparent, da das Hauptprotokoll eine Referenz auf das abgeteilte Protokoll erhält und somit vollständig navigierbar bleibt. Näheres zu geteilten Protokollen finden Sie in Abschnitt 9.1.4.

Dieses Attribut hat keinen Effekt, wenn die Option Geteilte Protokolle erzeugen deaktiviert ist oder geteilte Protokolle durch explizite Angabe von -splitlog im Batchmodus ausgeschaltet werden.

Es ist nicht nötig für Eindeutigkeit der Dateinamen für abgeteilte Protokolle zu sorgen. Wo nötig hängt QF-Test eine Zahl an den Dateinamen an, um Konflikte zu vermeiden. Der Dateiname darf Verzeichnisse enthalten und es können - analog zur Angabe des Dateinamens für das Protokoll im Batchmodus - folgende Platzhalter in Kombination mit einem '%' oder '+' Zeichen verwendet werden:

Zeichen Bedeutung
% '%'-Zeichen.
+ '+'-Zeichen.
i Die aktuelle Runid wie mit -runid [<ID>] angegeben.
r Die Fehlerstufe des abgeteilten Protokolls.
w Die Anzahl der Warnungen im abgeteilten Protokoll.
e Die Anzahl der Fehler im abgeteilten Protokoll.
x Die Anzahl der Exceptions im abgeteilten Protokoll.
t Der Threadindex zu dem das abgeteilte Protokoll gehört (für Tests mit parallelen Threads).
y Das aktuelle Jahr (2 Ziffern).
Y Das aktuelle Jahr (4 Ziffern).
M Der aktuelle Monat (2 Ziffern).
d Der aktuelle Tag (2 Ziffern).
h Die aktuelle Stunde (2 Ziffern).
m Die aktuelle Minute (2 Ziffern).
s Die aktuelle Sekunde (2 Ziffern).
Tabelle 30.5:  Platzhalter für das Attribut 'Name für separates Protokoll'

Variabel: Ja

Einschränkungen: Keine, Zeichen die für Dateinamen nicht zulässig sind werden durch '_' ersetzt.

'Id'

Die Id ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

Variabel: Ja

Einschränkungen: Keine

30.4.2
'Datentabelle'

Eine 'Datentabelle' bietet eine komfortable Schnittstelle um Testdaten in Tabellen direkt in QF-Test zu speichern. Details zum Mechanismus des datengetriebenen Testens in QF-Test finden Sie in Kapitel 14.

Enthalten in: Beliebig

Kinder: Keine

Ausführung: Bei ihrer Ausführung registriert sich die 'Datentabelle' lediglich im Kontext eines 'Datentreibers'. Wenn kein solcher Kontext verfügbar ist, wird eine Warnung protokolliert. Nachdem alle 'Daten' Knoten angemeldet wurden, fragt der zugehörige 'Testfallsatz' die Datensätze der 'Datentabelle' ab, um darüber zu iterieren.

Attribute:

'Datentabelle' Attribute
Abbildung 30.16:  'Datentabelle' Attribute
'Name'

Der 'Name' eines 'Daten' Knotens ist ein Pflichtattribut. Er wird benutzt, um 'Daten' Knoten im selben 'Datentreiber' Kontext zu unterscheiden. Ein 'Break' Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses 'Namens' in seinem Attribut 'Id der Schleife' gezielt die Schleife dieser 'Datentabelle' abbrechen.

Variabel: Ja

Einschränkungen: Keine

'Zählervariable'

Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.

Variabel: Ja

Einschränkungen: Keine

'Iterationsbereiche'

Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.

Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer BadRangeException.

Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.

Iterationsbereiche Daraus resultierende Indizes
1 [1]
-2, -1 [18, 19]
1-2,4:5 [1, 2, 4, 5]
18:,-3- [18, 19, 17, 18, 19]
3-2,16:15 [3, 2, 16, 15]
Tabelle 30.6:  Beispiele für Iterationsbereiche

Hinweis Der für die 'Zählervariable' gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der 'Zählervariable' '2', nicht '0'.

Variabel: Ja

Einschränkungen: Gültige Syntax und Indexwerte

'Daten'

Hier werden die aktuellen Testdaten definiert. Jede Tabellenspalte steht hierbei für eine Variable, deren Name im Spaltenkopf spezifiziert wird. Jede Zeile ist ein Datensatz, ein Wert je Variable. So bestimmt die Zeilenzahl die Anzahl der Durchläufe in der datengetriebenen Schleife. Um Ihre Daten eingeben zu können, müssen Sie als erstes Spalten zur Tabelle hinzufügen und somit die Variablen definieren. Dann können mittels neuer Zeilen die Werte festgelegt werden. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.

Variabel: Ja, sogar die Spaltentitel

Einschränkungen: Keine

'Id'

Die Id ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

Variabel: Ja

Einschränkungen: Keine

30.4.3
'Datenbank'

Ein 'Datenbank' Knoten wird benutzt, um externe Daten aus einer Datenbank zu laden. Damit QF-Test auf die Datenbank zugreifen kann, muss vor dessen Start die jar Datei mit den Klassen des Datenbanktreibers entweder in der Umgebungsvariable CLASSPATH enthalten sein, oder in das QF-Test Pluginverzeichnis (Abschnitt 37.2) kopiert werden. Um mehr Informationen über den Aufbau einer Datenbankverbindung zu erlangen, fragen Sie einen Entwickler oder besuchen Sie www.connectionstrings.com.

Weitere Details zum Datentreiber-Mechanismus finden Sie in Kapitel 14.

Enthalten in: Beliebig

Kinder: Keine

Ausführung: Bei seiner Ausführung lädt der 'Datenbank' Knoten die Daten aus der Datenbank und registriert sich im Kontext eines 'Datentreibers'. Wenn kein solcher Kontext verfügbar ist wird eine Warnung protokolliert. Für jedes Feld im select-Ausdruck wird eine Variable gleichen Namens definiert. Die Schreibweise (Groß/Klein) kann jedoch vom Datenbanktreiber abhängen, z.B. nur Großbuchstaben bei Oracle. Nachdem der select-Ausdruck ausgeführt wurde und damit alle 'Daten' Knoten angemeldet wurden, fragt der zugehörige 'Testfallsatz' die Datensätze der 'Datenbank' ab, um darüber zu iterieren.

Attribute:

'Datenbank' Attribute
Abbildung 30.17:  'Datenbank' Attribute
'Name'

Der 'Name' eines 'Daten' Knotens ist ein Pflichtattribut. Er wird benutzt, um 'Daten' Knoten im selben 'Datentreiber' Kontext zu unterscheiden. Ein 'Break' Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses 'Namens' in seinem Attribut 'Id der Schleife' gezielt die Schleife dieser 'Datentabelle' abbrechen.

Variabel: Ja

Einschränkungen: Keine

'Zählervariable'

Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.

Variabel: Ja

Einschränkungen: Keine

'Iterationsbereiche'

Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.

Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer BadRangeException.

Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.

Iterationsbereiche Daraus resultierende Indizes
1 [1]
-2, -1 [18, 19]
1-2,4:5 [1, 2, 4, 5]
18:,-3- [18, 19, 17, 18, 19]
3-2,16:15 [3, 2, 16, 15]
Tabelle 30.7:  Beispiele für Iterationsbereiche

Hinweis Der für die 'Zählervariable' gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der 'Zählervariable' '2', nicht '0'.

Variabel: Ja

Einschränkungen: Gültige Syntax und Indexwerte

'SQL Ausdruck'

Die SQL Abfrage, die ausgeführt wird, um die gewünschten Testdaten zu erhalten. Dies sollte ein select Ausdruck sein. Für jedes Feld im select-Ausdruck wird eine Variable gleichen Namens definiert. Die Schreibweise (Groß/Klein) kann jedoch vom Datenbanktreiber abhängen, z.B. nur Großbuchstaben bei Oracle.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Treiberklasse'

Die Klasse des Datenbanktreibers.

Hinweis Die jar Datei mit den Klassen des Datenbanktreibers muss vor dem Start von QF-Test entweder in der Umgebungsvariable CLASSPATH oder im Pluginverzeichnis von QF-Test enthalten sein.

Hier eine Liste der gebräuchlichsten Datenbanktreiber:

Datenbank Klassenname für den JDBC-Treiber
Borland Interbase interbase.interclient.Driver
DB2 com.ibm.db2.jcc.DB2Driver
Informix com.informix.jdbc.IfxDriver
IDS Server ids.sql.IDSDriver
MS SQL Server 2000 com.microsoft.jdbc.sqlserver.SQLServerDriver
MS SQL Server 2005 com.microsoft.sqlserver.jdbc.SQLServerDriver
mSQL COM.imaginary.sql.msql.MsqlDriver
MySQL com.mysql.jdbc.Driver
Oracle oracle.jdbc.driver.OracleDriver
Pointbase com.pointbase.jdbc.jdbcUniversalDriver
PostgreSQL org.postgresql.Driver
Standard Treiber sun.jdbc.odbc.JdbcOdbcDriver
Sybase com.sybase.jdbc2.jdbc.SybDriver
Tabelle 30.8:  JDBC Treiberklassen

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Verbindung'

Der Connection String für die Datenbank. Dieser ist meist von der Form jdbc:datenbankname://datenbankserver/datenbankname.

Hier eine Liste der gebräuchlichsten Connection Strings:

Datenbank Beispiel
Derby jdbc:derby:net://datenbankserver:port/
IBM DB2 jdbc:db2://datenbank
HSQLB jdbc:hsqldb:file:datenbank
Interbase jdbc:interbase://datenbankserver/datenbank.gdb
MS SQL Server 2000 jdbc:microsoft:sqlserver://databaseserver:
port;DatabaseName=database;
MS SQL Server 2005 jdbc:sqlserver://databaseserver:
port;DatabaseName=database;
MySQL jdbc:mysql://datenbankserver/datenbank
PostgreSQL jdbc:postgresql://datenbankserver/datenbank
ODBC-Datenquellen jdbc:odbc:datenbank
Oracle Thin jdbc:oracle:thin:@datenbankserver:port:
datenbank
Sybase jdbc:sybase:tds:datenbankserver:port/datenbank
Tabelle 30.9:  'Datenbank' Verbindungen

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Benutzer'

Der Benutzer für die Datenbank. Sollte Ihre Datenbank keinen Benutzer benötigen, lassen Sie dieses Feld einfach leer.

Variabel: Ja

Einschränkungen: Keine

'Passwort'

Das Passwort für den Benutzer der Datenbank. Sollte Ihre Datenbank keinen Benutzer oder kein Passwort benötigen, lassen Sie dieses Feld einfach leer.

Variabel: Ja

Einschränkungen: Keine

'Id'

Die Id ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

Variabel: Ja

Einschränkungen: Keine

30.4.4
'Excel Datei'

Ein 'Excel Datei' Knoten wird benutzt, um externe Daten aus einer Excel Datei zu laden. In der ersten Zeile müssen die Namen der Variablen definiert werden und in den weiteren Zeilen die zu bindenden Werte, wobei jede Zeile einem Testdatensatz entspricht.

Hinweis Die korrekte Darstellung der Zelleninhalte vom Typ "Datum", "Zeit" oder "Währung" kann nicht immer gewährleistet werden, da Excel den Wert und das Format der Zelle getrennt voneinander speichert und die verwendete Java Bibliothek nicht alle Möglichkeiten unterstützt. Dennoch sollte der 'Excel Datei' Knoten weitestgehend korrekt arbeiten. Sollte es zu Problemen mit diesen Formaten kommen, ändern Sie bitte in der Excel Datei den Typ der betroffenen Zellen auf "Text". In QF-Test werden nach dem Einlesen sowieso alle Werte als Strings behandelt.

Weitere Details zum Datentreiber-Mechanismus finden Sie in Kapitel 14.

Enthalten in: Beliebig

Kinder: Keine

Ausführung: Bei seiner Ausführung liest der 'Excel Datei' Knoten die Daten aus der Excel Datei und registriert sich im Kontext eines 'Datentreibers'. Wenn kein solcher Kontext verfügbar ist, wird eine Warnung protokolliert. Nachdem alle 'Daten' Knoten angemeldet wurden, fragt der zugehörige 'Testfallsatz' die Datensätze der 'Excel Datei' ab, um darüber zu iterieren.

Attribute:

'Excel Datei' Attribute
Abbildung 30.18:  'Excel Datei' Attribute
'Name'

Der 'Name' eines 'Daten' Knotens ist ein Pflichtattribut. Er wird benutzt, um 'Daten' Knoten im selben 'Datentreiber' Kontext zu unterscheiden. Ein 'Break' Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses 'Namens' in seinem Attribut 'Id der Schleife' gezielt die Schleife dieser 'Datentabelle' abbrechen.

Variabel: Ja

Einschränkungen: Keine

'Zählervariable'

Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.

Variabel: Ja

Einschränkungen: Keine

'Iterationsbereiche'

Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.

Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer BadRangeException.

Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.

Iterationsbereiche Daraus resultierende Indizes
1 [1]
-2, -1 [18, 19]
1-2,4:5 [1, 2, 4, 5]
18:,-3- [18, 19, 17, 18, 19]
3-2,16:15 [3, 2, 16, 15]
Tabelle 30.10:  Beispiele für Iterationsbereiche

Hinweis Der für die 'Zählervariable' gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der 'Zählervariable' '2', nicht '0'.

Variabel: Ja

Einschränkungen: Gültige Syntax und Indexwerte

'Name der Excel Datei'

Der Name der Excel Datei aus der die Testdaten gelesen werden sollen. Relative Pfadangaben werden relativ zum Verzeichnis der Testsuite aufgelöst.

Der Knopf über dem Attribut öffnet einen Dialog in dem die Excel Datei interaktiv ausgewählt werden kann. Den Dialog erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Name des Tabellenblatts'

Der Name des Tabellenblatts aus dem die Testdaten gelesen werden sollen.

Variabel: Ja

Einschränkungen: Keine

'Datumsformat vorgeben'

In diesem Textfeld können Sie ein Datumsformat vorgeben, welches für alle aus der Excel Datei geladenen Zellen vom Typ "Datum" verwendet werden soll. Dieses Format muss wie für die Java Klasse SimpleDateFormat spezifiziert sein, d.h. 'd' für Tag, 'M' für Monat und 'y' für Jahr. Mit 'dd' werden zwei Stellen für den Tag reserviert, analog dazu gibt es 'MM', 'yy' oder 'yyyy'.

Variabel: Ja

Einschränkungen: Keine

'Id'

Die Id ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

Variabel: Ja

Einschränkungen: Keine

30.4.5
'CSV Datei'

Eine 'CSV Datei' wird benutzt, um externe Daten aus einer Datei zu laden und für datengetriebene Tests bereit zu stellen. CSV steht für Comma-separated Values - also für durch Komma getrennte Werte, welches ein Standardformat für Textdateien darstellt. Hierbei steht jede Zeile in der Datei für einen Datensatz, dessen Werte durch ein Trennzeichen separiert werden. Als Trennzeichen wird oft, aber nicht ausschließlich, ein Komma (',') verwendet. Bei der Benutzung in einem 'CSV Datei' Knoten muss die erste Zeile der CSV Datei die Namen der Variablen enthalten, die gebunden werden sollen. In den weiteren Zeilen folgen dann die Werte für die einzelnen Iterationsschritte.

Leider gibt es bei CSV Dateien uneinheitliche Definitionen für Spezialfälle wie das Schützen von Sonderzeichen (quoting), die Behandlung von Leerzeichen oder Trennzeichen in Werten oder mehrzeilige Werte. Aktuell existieren zwei de-facto Standards. Einen benutzt Microsoft Excel und einen der Rest der Welt. QF-Test unterstützt beide. Weitere Details zum Datentreiber-Mechanismus finden Sie in Kapitel 14.

Enthalten in: Beliebig

Kinder: Keine

Ausführung: Bei seiner Ausführung registriert sich der 'CSV Datei' Knoten lediglich im Kontext eines 'Datentreibers'. Wenn kein solcher Kontext verfügbar ist, wird eine Warnung protokolliert. Nachdem alle 'Daten' Knoten angemeldet wurden, fragt der zugehörige 'Testfallsatz' die Datensätze der 'CSV Datei' ab, um darüber zu iterieren.

Attribute:

'CSV Datei' Attribute
Abbildung 30.19:  'CSV Datei' Attribute
'Name'

Der 'Name' eines 'Daten' Knotens ist ein Pflichtattribut. Er wird benutzt, um 'Daten' Knoten im selben 'Datentreiber' Kontext zu unterscheiden. Ein 'Break' Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses 'Namens' in seinem Attribut 'Id der Schleife' gezielt die Schleife dieser 'Datentabelle' abbrechen.

Variabel: Ja

Einschränkungen: Keine

'Zählervariable'

Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.

Variabel: Ja

Einschränkungen: Keine

'Iterationsbereiche'

Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.

Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer BadRangeException.

Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.

Iterationsbereiche Daraus resultierende Indizes
1 [1]
-2, -1 [18, 19]
1-2,4:5 [1, 2, 4, 5]
18:,-3- [18, 19, 17, 18, 19]
3-2,16:15 [3, 2, 16, 15]
Tabelle 30.11:  Beispiele für Iterationsbereiche

Hinweis Der für die 'Zählervariable' gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der 'Zählervariable' '2', nicht '0'.

Variabel: Ja

Einschränkungen: Gültige Syntax und Indexwerte

'Name der CSV Datei'

Der Name der CSV Datei aus der die Testdaten gelesen werden sollen. Relative Pfadangaben werden relativ zum Verzeichnis der Testsuite aufgelöst.

Der Knopf über dem Attribut öffnet einen Dialog in dem die CSV Datei interaktiv ausgewählt werden kann. Den Dialog erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Kodierung der Datei'

Eine optionale Kodierung für die CSV Datei, z.B "UTF-8". Ist keine Kodierung angeben, wird die Datei mit der Standard-Kodierung der Java VM gelesen.

Variabel: Ja

Einschränkungen: Die Kodierung muss von der Java VM unterstützt werden.

'Microsoft Excel CSV Format lesen'

Wenn diese Option gesetzt ist, versucht QF-Test die CSV Datei gemäß dem von Microsoft Excel verwendeten Format einzulesen.

Variabel: Ja

Einschränkungen: Keine

'Trennzeichen'

Mit diesem Attribut können sie das Zeichen festlegen, welches zur Trennung der Datenwerte in der CSV Datei verwendet wird. Wenn kein Trennzeichen definiert ist, wird das Komma (',') als Standardwert genutzt. Wenn 'Microsoft Excel CSV Format lesen' gesetzt ist, wird dieses Attribut ignoriert.

Variabel: Ja

Einschränkungen: Keine

'Id'

Die Id ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

Variabel: Ja

Einschränkungen: Keine

30.4.6
'Datenschleife'

Bei einem 'Datenschleife' Knoten handelt es sich um eine einfache Schleife, bei der eine einzelne Variable als Schleifenzähler gebunden wird. So können 'Testfälle' mehrfach ausgeführt werden, indem sie in einen 'Testfallsatz' mit einem 'Datentreiber' und einer 'Datenschleife' gelegt werden.

Enthalten in: Beliebig

Kinder: Keine

Ausführung: Bei ihrer Ausführung registriert sich die 'Datenschleife' lediglich im Kontext eines 'Datentreibers'. Wenn kein solcher Kontext verfügbar ist, wird eine Warnung protokolliert. Nachdem alle 'Daten' Knoten angemeldet wurden, fragt der zugehörige 'Testfallsatz' die Datensätze der 'Datenschleife' ab, um darüber zu iterieren.

Attribute:

'Datenschleife' Attribute
Abbildung 30.20:  'Datenschleife' Attribute
'Name'

Der 'Name' eines 'Daten' Knotens ist ein Pflichtattribut. Er wird benutzt, um 'Daten' Knoten im selben 'Datentreiber' Kontext zu unterscheiden. Ein 'Break' Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses 'Namens' in seinem Attribut 'Id der Schleife' gezielt die Schleife dieser 'Datentabelle' abbrechen.

Variabel: Ja

Einschränkungen: Keine

'Zählervariable'

Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.

Variabel: Ja

Einschränkungen: Keine

'Iterationsbereiche'

Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.

Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer BadRangeException.

Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.

Iterationsbereiche Daraus resultierende Indizes
1 [1]
-2, -1 [18, 19]
1-2,4:5 [1, 2, 4, 5]
18:,-3- [18, 19, 17, 18, 19]
3-2,16:15 [3, 2, 16, 15]
Tabelle 30.12:  Beispiele für Iterationsbereiche

Hinweis Der für die 'Zählervariable' gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der 'Zählervariable' '2', nicht '0'.

Variabel: Ja

Einschränkungen: Gültige Syntax und Indexwerte

'Anzahl Wiederholungen'

Dieser Wert legt die Anzahl der Durchgänge für die Ausführung fest.

Dieses Attribut ist prädestiniert für den Einsatz von Variablen. Wenn Sie die Anzahl Wiederholungen z.B. auf $(count) setzen, können Sie den Wert für die Variable count in den Variablen der Suite (vgl. Kapitel 8) auf 1 oder 2 setzen. Das vereinfacht das Erstellen und Ausprobieren der Testsuite.

Wenn Sie den Test dann ernsthaft ausführen, z.B. automatisch mittels qftest -batch, können Sie durch Angabe von -variable count=100 auf der Kommandozeile den Wert für count nach Belieben variieren.

Variabel: Ja

Einschränkungen: >0

'Id'

Die Id ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

Variabel: Ja

Einschränkungen: Keine