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 group zur 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 parameters eingetragen 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/else oder try/catch Struktur steht in der Definition eine choice group zur Verfügung. Darin können mehrere Alternativen angegeben werden. Es kann entweder ein einzelner Knoten node oder eine Knotengruppe sein, je nach Bedarf eine sequential group, unsorted group oder eine weitere choice group.
Wiederholungen
Schleifen können in der Definition über repeat Anweisungen 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önnen sequential group, unsorted group oder choice group verwendet werden. Die repeat-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 group abgebildet.

In einer unsorted group besteht die Möglichkeit, für jeden einzelnen Knoten anzugeben, wie oft er minimal und maximal in der von der unsorted group beschriebenen 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.