55.1 Abbildung von Prozedurstrukturen
Im Folgenden betrachten wir die unterschiedlichen Anforderungen, die Prozeduren an die Definitionen stellen und wie sie erfüllt werden.
- Sequentielle Knotenausführung
-
In einer Prozedur werden die Knoten nacheinander ausgeführt. In der Definition
steht hierfür die
sequential groupzur Verfügung. - Spezifische Knoten
- In vielen Prozeduren werden bestimmte Komponenten direkt angesprochen. In diesem Fall kann die Zuordnung der Knoten über ihren Typ und die QF-Test ID der Komponente oder die entsprechende SmartID geschehen, was dann auch empfehlenswert ist. In jedem Fall sind ausreichend eindeutige Angaben zu den Knoten erforderlich, siehe Abschnitt Kriterien zur Identifizierung von Knoten.
- Parametrisierte Knoten
-
In vielen Prozeduren werden Variablen in den Attributen verwendet.
Diese Variablen können in der Definition in die Rubrik
set procedure call parameterseingetragen werden. Der Variablenname ist dabei der Name des YAML-Eintrags. Als YAML-Wert wird ein Platzhalter für den Attributewert eingetragen. Weitere Informationen finden Sie unter Parameter im Prozeduraufruf setzen. Bei der späteren Umwandlung von Knoten wird dann im Prozeduraufruf ein Parameter mit dem Variablennamen und dem Wert des Attributs, für das der Platzhalter steht, eingetragen. - Reihenfolge der Definitionsauswertung
-
Umfangreichere Prozeduren können die komplette Knotenabfolge einer anderen Prozedur enthalten. Da die Auswertung der Definitionen beendet wird, sobald eine passende gefunden wurde, müssen also Definitionen für umfangreichere Prozeduren zuerst geprüft werden. Ebenso müssen Definitionen für Prozeduren, die spezifischere Knoten enthalten, vor denen ausgewertet werden, die eine Übermenge zu diesen Knoten enthalten. Dies ist über die Angabe einer Priorität, siehe
priority, und der Reihenfolge der Knoten innerhalb der Testsuiten möglich.Ein Beispiel für letzteren Fall sind zwei Prozeduren, wobei die eine einen Mausklick auf eine über die QF-Test ID der Komponente spezifizierte Komponente enthält, die andere einen Mausklick auf eine Komponente, deren QF-Test ID der Komponente durch einen Parameter angegeben wird. Hier muss die Definition für die erste Prozedur zuerst ausgewertet werden, weil die Definition für die zweite auch auf den Mausklick auf die in der ersten Prozedur spezifizierten Komponente zutreffen würde.
- Alternative Knotenausführung
-
Für die Abbildung einer
if/elseodertry/catchStruktur steht in der Definition einechoice groupzur Verfügung. Darin können mehrere Alternativen angegeben werden. Es kann entweder ein einzelner Knotennodeoder eine Knotengruppe sein, je nach Bedarf einesequential group,unsorted groupoder eine weiterechoice group. - Wiederholungen
-
Schleifen können in der Definition
über
repeatAnweisungen abgebildet werden. Sie können sich auf einzelne Knoten oder Knotengruppen beziehen. Diese müssen dann direkt hintereinander in der umzuwandelnden Knotenabfolge erscheinen. Als Knotengruppen könnensequential group,unsorted groupoderchoice groupverwendet werden. Dierepeat-Anweisung kann Minimal- und Maximalwerte enthalten. Standardmäßig ist der Wiederholungsfaktor eins. - Freie Reihenfolge der Knoten
-
In Prozeduren werden die Knoten zwangsläufig in einer bestimmten Reihenfolge abgearbeitet, aber fachlich muss das nicht unbedingt notwendig sein. Das heißt dann aber auch, dass der Anwender sie nicht unbedingt in genau dieser Reihenfolge aufnehmen wird oder dass sie in vorhandenen Testfällen in genau dieser Reihenfolge erscheinen. Eine Definition muss daher eine Struktur bereitstellen, die eine Gruppe von Knoten umschließt, die in einer beliebigen Reihenfolge erscheinen können. Dies wird durch eine
unsorted groupabgebildet.In einer
unsorted groupbesteht die Möglichkeit, für jeden einzelnen Knoten anzugeben, wie oft er minimal und maximal in der von derunsorted groupbeschriebenen Knotenabfolge vorkommen kann beziehungsweise muss. Standarmäßig wird davon ausgegangen, dass Knoten optional sind, aber auch beliebig oft vorkommen können. - Nicht aufnehmbare Knoten
- Prozeduren enthalten oft auch Knoten, die nicht aufgenommen werden können. Wenn die Umwandlung in Prozeduraufrufe direkt im Anschluss an eine Aufnahme erfolgen soll, sind diese Knoten für die Definition nicht relevant. Sie können in der Definition ganz weggelassen oder als optional gekennzeichnet werden, siehe Optionale Knoten. Letzteres bietet sich an, wenn auch Knotenabfolgen in bestehenden Testsuiten umgewandelt werden sollen.
In den folgenden Kapiteln werden wir erklären, wie all diese Anforderungen über die YAML-Syntax des Prozeduraufruf-Definition-Knoten erfüllt werden können.