Schützen von Sonderzeichen (quoting)

Ein immer wiederkehrendes Problem bei komplexen Systemen ist die Behandlung von Sonderzeichen, d.h. von Zeichen, die für das jeweilige System eine besondere Bedeutung haben. Einfachstes Beispiel sind Leerzeichen in Dateinamen. Um solche Dateien auf der Kommandozeile anzugeben, müssen Sie diese entweder in Anführungsstriche stellen, oder unter Linux mit einem Backslash '\' schützen.

Da auch QF-Test einerseits Sonderzeichen für verschiedene Aufgaben einsetzt, andererseits aber Zeichenketten vom SUT lesen muss, die beliebige Zeichen enthalten können, führt auch hier kein Weg an einem Quoting Mechanismus vorbei. Dass QF-Test auf verschiedenen Betriebssystemen läuft und seinerseits z.B. reguläre Ausdrücke mit eigenen Sonderzeichen verwendet, macht die Sache nicht einfacher. Daher versucht QF-Test, quoting so einfach wie möglich zu halten und auf die Stellen zu reduzieren, bei denen es sich nicht vermeiden lässt. Außerdem werden bei der Aufnahme vom SUT gelesene Zeichenfolgen korrekt geschützt.

Das wichtigste Sonderzeichen für QF-Test ist das Dollarzeichen '$' für die Variablenexpansion. Variablensyntax kann in fast allen Attributen verwendet werden. Wenn Sie irgendwo ein echtes '$'-Zeichen benötigen, müssen Sie es verdoppeln.

Beispiel: Um den Inhalt eines Textfeldes mittels eines Checks auf den Text "4 US$" zu überprüfen, müssen Sie im Attribut 'Text' den Wert "4 US$$" angeben.

Andere Sonderzeichen werden nur an besonderen Stellen eingesetzt und müssen und dürfen auch nur dort geschützt werden. Dies sind das '#'-Zeichen zum suiteübergreifenden Zugriff auf 'Prozeduren' und 'Komponenten', sowie die Zeichen '@', '&' und '%' für die spezielle Syntax für Unterelemente. Da es sich hierbei um Trennzeichen handelt, können Sie nicht durch Verdoppelung geschützt werden. Daher folgt QF-Test der Konvention, den Backslash '\' zu verwenden, was auch diesen selbst zum Sonderzeichen macht. Damit das unter Windows nicht zur Quotinghölle mit Dateinamen führt, interpretiert QF-Test den Backslash nur dort, wo diese Zeichen ihre besondere Bedeutung haben und selbst dort ist ein Backslash, der nicht von einem Sonderzeichen gefolgt wird, ein ganz normales Zeichen.

Präzise heißt das, dass Sie die Zeichen '#' und '\' im Attribut 'Name der Prozedur' eines 'Prozeduraufrufs' schützen müssen, sowie die Zeichen '#', '\', '@', '&' und '%' in den Attributen 'QF-Test ID der Komponente' von Events und Checks, sowie 'Primärindex' und 'Sekundärindex' von 'Elementen'. Bedenken Sie insbesondere, dass der Backslash auch zum Quoten von Sonderzeichen in regulären Ausdrücken verwendet wird. Um einen echten Backslash in einen regulären Ausdruck für ein Unterelement zu bekommen, müssen Sie diesen zunächst selbst für den regulären Ausdruck quoten (also '\\') und diese beiden Backslashes noch einmal für QF-Test selbst (also '\\\\').

Leider ist damit noch nicht alles gesagt. QF-Test verwendet in Unterelementen für die Knoten von JTree Komponenten das Zeichen '/' als Trennzeichen für die Pfade der Knoten. Für Baumknoten müssen Sie daher dieses Zeichen zusätzlich schützen, wenn Sie ein echtes '/'-Zeichen benötigen. Für Unterelemente anderer Komponenten ist dies nicht nötig.