Handbuch

37.5
Prozeduren

Bei automatischen GUI Tests müssen immer wieder ähnliche Abläufe mit kleinen Variationen ausgeführt werden. Um die Komplexität einer Testsuite zu reduzieren und besser auf Änderungen reagieren zu können, ist es sinnvoll, wiederverwendbare Teile in 'Prozeduren' auszulagern.

Eine Prozedur können Sie von jedem anderen Punkt der Testsuite und sogar aus anderen Testsuiten heraus aufrufen (vgl. Abschnitt 20.1). Dabei können Sie Parameter in Form von Variablendefinitionen übergeben (vgl. Kapitel 7).

37.5.1
'Prozedur'

Eine Prozedur ist eine 'Sequenz', die mittels eines 'Prozeduraufrufs' von einer beliebigen anderen Stelle aus aufgerufen werden kann.

In einer Prozedur lassen sich häufig wiederkehrende Bestandteile einer Testsuite kapseln und über die Argumente des Prozeduraufrufs in Grenzen variieren. Dadurch müssen diese Teile nur an einer Stelle gepflegt und an mögliche Änderungen des SUT angepasst werden.

Die Parameter, die die Prozedur erwartet, werden nicht explizit angegeben, sondern ergeben sich durch die Variablenreferenzen der Kinder der Prozedur. Um den Überblick zu behalten, sollten Sie es sich zur Gewohnheit machen, die Parameter in der 'Bemerkung' aufzuführen.

Eine Prozedur kann mit Hilfe eines 'Return' Knotens einen Wert an den aufrufenden Knoten zurückgeben. Ohne einen solchen 'Return' Knoten wird implizit der leere String zurück geliefert.

Enthalten in: 'Package', 'Prozeduren'

Kinder: Beliebig

Ausführung: Die Variablen der Prozedur werden als "Fallback" gebunden, d.h. diese Werte werden verwendet, falls eine Variable keine andere Definition hat. Nachdem die Childknoten der Prozedur ausgeführt wurden, werden die Fallbacks wieder gelöscht.

Attribute:

Prozedur Attribute
Abbildung 37.20:  'Prozedur' Attribute
'Name'

Die 'Prozedur' wird über ihren Namen, sowie die Namen ihrer Parents identifiziert. Daher sollten Sie einen Namen pro 'Package' nur einmal vergeben und "sprechende" Namen verwenden, die etwas über die Prozedur aussagen und die Sie sich gut merken können.

Variabel: Nein

Einschränkungen: Darf nicht leer sein und keines der Zeichen '.' oder '#' enthalten.

'Variablen Definitionen'

Hier können Sie Defaultwerte oder "Fallback" Werte für die Parameter der 'Prozedur' definieren. Diese werden herangezogen, wenn eine Variable an keiner anderen Stelle definiert wurde (vgl. Kapitel 7). Außerdem dienen Sie als Dokumentation und bringen Zeitersparnis bei den 'Variablen Definitionen' Attributen, wenn der Dialog für die Auswahl der 'Prozedur' im 'Prozeduraufruf' Knoten verwendet wird. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.

4.2+ Mittels Rechtsklick und Auswahl von »Parameterordnung zurücksetzen«, können Sie die Sortierung der Parameter, wie diese in der Prozedur sortiert sind, wieder herstellen.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Achtung: Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test 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.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Variabel: Ja

Einschränkungen: Keine

37.5.2
'Prozeduraufruf'

Mit diesem Knoten lässt sich der Testlauf in einer 'Prozedur' fortsetzen. Dieser können beliebige Parameter übergeben werden, z.B. der Name des Clients, Koordinaten für Mausklicks, Namen für eine Dateiauswahl etc. Nach dem Ende der Prozedur wird der im Attribut 'Variable für Rückgabewert' definierten Variable der Rückgabewert der Prozedur zugewiesen und die Ablaufkontrolle kehrt wieder an die ursprüngliche Stelle zurück.

Die aufzurufende Prozedur wird über ihren Namen und die Namen der 'Packages' identifiziert. Die Namen werden analog zu Java Klassennamen zusammengesetzt, vom äußersten Package bis zur Prozedur, verbunden mit einem Punkt ('.'). Wollen Sie z.B. die Prozedur expandNode im Package tree, das seinerseits im Package main enthalten ist, aufrufen, so müssen Sie als Name main.tree.expandNode angeben.

Sie können auch Prozeduren in anderen Testsuiten aufrufen. Näheres hierzu entnehmen Sie bitte Abschnitt 20.1.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Variablen des Aufrufs werden gebunden, die Prozedur an Hand ihres Namens ermittelt und die Ausführung mit der Prozedur fortgesetzt. Nach dem Ende der Prozedur werden die Variablen des Aufrufs gelöscht.

Attribute:

Prozeduraufruf Attribute
Abbildung 37.21:  'Prozeduraufruf' Attribute
'Name der Prozedur'

Der volle Name der 'Prozedur', zusammengesetzt aus den Namen der übergeordneten 'Packages' und der Prozedur selbst, verbunden mit '.'.

Der Button öffnet einen Dialog, in dem Sie die Prozedur direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Prozedur Knoten mittels [Strg-C] bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von [Strg-V] in das Textfeld einfügen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Variable für Rückgabewert'

Der Rückgabewert der 'Prozedur' wird der in diesem Attribut definierten Variable zugewiesen. Diese ist optional. Zusätzlich steht der letzte Rückgabewert einer 'Prozedur' auch immer über ${qftest:return} zur Verfügung.

Variabel: Ja

Einschränkungen: Kein

'Lokale Variable'

Ist dieses Attribut nicht gesetzt, wird die Variable in den globalen Definitionen gebunden. Andernfalls wird - sofern vorhanden - die oberste aktuelle Definition der Variablen überschrieben, sofern diese innerhalb des aktuellen 'Prozedur', 'Abhängigkeit' oder 'Testfall' Knotens liegt. Gibt es keine solche Definition, wird eine neue Definition im aktuellen 'Prozedur', 'Abhängigkeit' oder 'Testfall' Knoten angelegt, oder, falls kein solcher existiert, in den globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 7.

Variabel: Nein

Einschränkungen: Keine

'Variablen Definitionen'

Hier können Sie Werte der Parameter für die 'Prozedur' definieren. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test 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.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Variabel: Ja

Einschränkungen: Keine

37.5.3
'Return'

Mit Hilfe dieses Knotens kann eine 'Prozedur' vorzeitig beendet und zusätzlich ein Wert an den aufrufenden Knoten zurückgegeben werden.

Aus einem Skript kann der selbe Effekt durch werfen einer ReturnException erzielt werden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Es wird eine ReturnException geworfen die zum Abbruch der innersten 'Prozedur' führt. Wird dieser Knoten außerhalb einer Prozedur aufgerufen wird ein Fehler ausgelöst.

Attribute:

Return Attributes
Abbildung 37.22:  'Return' Attribute
'Rückgabewert'

Der Wert, der von der 'Prozedur' zurückgegeben werden soll. Ist nichts angegeben, wird der leere String zurückgegeben.

Variabel: Ja

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test 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.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Variabel: Ja

Einschränkungen: Keine

37.5.4
'Package'

Packages dienen dazu, die Prozeduren einer Testsuite zu strukturieren, um eine bessere Übersicht zu erhalten.

Enthalten in: 'Package', 'Prozeduren'

Kinder: 'Package', 'Prozedur'

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Package Attribute
Abbildung 37.23:  'Package' Attribute
'Name'

Der Name eines Packages ist ein Teil der Identifikation der in ihm enthaltenen Prozeduren. Damit die Zuordnung eindeutig ist, sollte der Name des Packages innerhalb des Parents eindeutig sein. Verwenden Sie auch für die Packages "sprechende" Namen, die etwas über die darin enthaltenen Prozeduren aussagen und die Sie sich gut merken können.

Variabel: Nein

Einschränkungen: Darf nicht leer sein und keines der Zeichen '.' oder '#' enthalten.

'QF-Test ID'

Die QF-Test 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.

'Grenze für relative Aufrufe'

Ist dieses Attribut gesetzt, ist ein relativer Prozeduraufruf, ein relativer Testaufruf oder eine relative Referenz auf eine Abhängigkeit innerhalb dieses Knotens gestattet. Relative Aufrufe bzw. Referenzen, die diese Grenze überschreiten sind nicht erlaubt. Wenn dieses Attribut in der gesamten Hierarchie nicht gesetzt ist, so können keine relativen Prozeduraufrufe einfügt werden. Relative Testaufrufe sind unterhalb des Testsuite Knotens immer möglich.

Variabel: Nein

Einschränkungen: Keine

'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.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Variabel: Ja

Einschränkungen: Keine

37.5.5
'Prozeduren'

Dies ist die Wurzel aller 'Packages' und 'Prozeduren'.

Enthalten in: Wurzelknoten

Kinder: 'Package', 'Prozedur'

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Packages Attribute
Abbildung 37.24:  'Prozeduren' Attribute
'QF-Test ID'

Die QF-Test 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.

'Grenze für relative Aufrufe'

Ist dieses Attribut gesetzt, ist ein relativer Prozeduraufruf, ein relativer Testaufruf oder eine relative Referenz auf eine Abhängigkeit innerhalb dieses Knotens gestattet. Relative Aufrufe bzw. Referenzen, die diese Grenze überschreiten sind nicht erlaubt. Wenn dieses Attribut in der gesamten Hierarchie nicht gesetzt ist, so können keine relativen Prozeduraufrufe einfügt werden. Relative Testaufrufe sind unterhalb des Testsuite Knotens immer möglich.

Variabel: Nein

Einschränkungen: Keine

'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.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Variabel: Ja

Einschränkungen: Keine