Im Test gibt es diverse Anforderungen an die Spezifikation oder Darstellung der Tests. Einerseits möchten die Testdesigner sehr kompakt spezifizieren, keine Wiederholungen verwenden und im Falle von datengetriebenen Tests die notwendigen Daten einfach als Tabelle oder als Anhang liefern. Andererseits möchten sich die Tester auf das Testobjekt und seine Reaktionen konzentrieren und nicht drauf, was sie im Detail testen müssen.

Rein textbasierte Testspezifikationen stellen am Ende beide Seiten nicht richtig zufrieden, denn entweder ist es viel Text, der schwer zu lesen ist oder eine kurze Beschreibung, die eher einer Testidee gleicht als einem fertigen Testfall. Alternativ ist der Test sehr feingliedrig, mit exakten Testschritten beschrieben, dass der fachliche Inhalt und der eigentliche Zweck des Tests nur noch sehr schwer erkennbar sind.

Im Endeffekt sind die Tests nicht wiederholbar, weil Details fehlen, nicht wartbar, weil viele Redundanzen und Details im Text versteckt sind oder nicht mehr verständlich, weil der fachliche Zusammenhang der vielen kleinen Schritte nicht nachvollziehbar ist.

Dieses Dilemma lässt sich lösen, indem den Testdesignern und den Testern eine für sie passende Sicht auf die Tests ermöglicht wird. Dazu stellt TestBench einen Assistenten zur Unterstützung des manuellen Tests zur Verfügung, der im Folgenden vorgestellt wird.

Die Testaufgabe

Nehmen wir an, die Testaufgabe ist die folgende

Test der möglichen Konfigurationen von Fahrzeugen und der errechneten Preise

Bei der Berechnung des Fahrzeugpreises wird wie folgt vorgegangen:
Ausgegangen wird vom Grundpreis des Fahrzeugs. Hinzu kommen die Einzelpreise der Zusatzausstattungen und der Preis für das Sondermodell.
Zusatzausstattungen, die bereits im gewählten Sondermodell enthalten sind, werden nicht nochmals berechnet.

Werden drei oder mehr Zusatzausstattungen (die nicht im gewählten Sondermodell enthalten sind) ausgewählt, erfolgt auf diese Zusatzausstattungsmerkmale ein Mengenrabatt von 10%. Bei 5 oder mehr Zusatzausstattungen erhöht sich der Mengenrabatt auf 15%.

Der vom Händler explizit gewährte Rabatt bezieht sich auf den Grundpreis des Fahrzeugs und die Preise der Zusatzausstattungen.
Eine Kumulierung von Mengenrabatt und Händlerrabatt auf die Zusatzausstattungen ist nicht möglich; es wird zwischen Händlerrabatt und Mengenrabatt entschieden, indem der jeweils höhere Rabatt wirksam wird.

Beispiele für mögliche Rabattkombinationen:

Die Beschreibung der Tests

Ein möglicher Testfall wäre:

Der Ablauf kann gut gelesen werden, da er aus einzelnen, gut überschaubaren Schritten besteht. Die enthaltenen Daten müssen jedoch beim Lesen identifiziert werden. Das könnte durch Formatierungen verbessert werden, aber spätestens, wenn neue Kombinationen an Daten nötig werden, wie z. B. für das Erreichen einer neuen Rabattstufe der Zusatzausstattungen, muss der Ablauf kopiert und während der Testdurchführung wieder genauer gelesen werden.

Es macht also Sinn mindestens die Daten aus dem Ablauf heraus zu ziehen:

Der Ablauf ist jetzt von den Daten getrennt, was die Testdurchführung deutlich erleichtert, wenn die Sequenz der Schritte nach mehrfachen Ausführungen bekannt ist und nur noch die zugehörigen Daten gelesen werden müssen.

Es bleibt aber der Nachteil bestehen, dass bei vielen Kombinationen von Daten die Tests kopiert werden müssen und damit viele gleiche Tests entstehen. Spätestens bei Änderungen oder Erweiterungen ist das von Nachteil und es kommt zu fehleranfälligen Suchen&Ersetzen-Aktionen.

Beheben lässt sich das Dilemma mit der Wartung durch das Herausziehen der Daten in eine Tabelle:

In der Testsequenz sind die konkreten Daten durch Parameter ersetzt worden, für die dann die folgende Tabelle denkbar wäre:

Jetzt kann der Test sehr gut beschrieben werden, Änderung an der Testsequenz müssen nur an einer Stelle erfolgen und neue Testfälle, als neue Kombination von Daten, sind schnell und einfach erfasst.

Jetzt hat aber die Testdurchführung wieder das Nachsehen, denn Ablauf und Daten sind getrennt und müssen während der Testdurchführung zusammengebracht werden. In unserem einfachen Beispiel mag das noch gut gehen, aber ein fachlich schwieriger Ablauf mit vielen Parametern pro Testschritt macht jetzt in der Durchführung Probleme, da beim Lesen Parameter verwechselt, Zeilen vertauscht und falsche Werte gelesen werden. Die Konzentration wird wieder beim Lesen der Testspezifikation verbraucht und nicht auf die Reaktionen des Testobjekts verwendet.

Als Lösung dieses Problems stellt die TestBench einen Assistenten zur Verfügung: iTORX

Der Assistent iTORX stellt die Testschritte und die zugehörigen Daten so dar, dass in der Testdurchführung immer eindeutig klar ist, was mit welchen Daten zu testen ist.
Kommt für die Spezifikation der Tests die Methode des Keyword-Driven Testing zum Einsatz, spielt iTORX seine Möglichkeiten noch besser aus.

Die Darstellung der Tests

In TestBench wird unser Beispiel bei Nutzung von Keyword-Driven Test folgendermaßen dargestellt:

Die notwendigen Parameter werden in der Parameterliste des Tests definiert, da in den Datentypen die Werte hinterlegt sind, die in der Datentabelle genutzt werden:

Die Datentabelle für diesen Test ist dann:

Diese Darstellung und Aufteilung der Informationen ist für die Spezifikation der Tests optimal, aber nicht für die Durchführung der Tests.

Der Assistent iTORX

Jetzt kommt der Assistent iTORX ins Spiel: Die Präsentation eines Tests wird für die Tester so aufbereitet, dass zu Beginn der Testdurchführung eines neuen Testfalls alle Daten zusammengefasst dargestellt werden und dann die Tester während des eigentlichen Testablaufs Schritt für Schritt geführt werden.

Für jeden Testschritt werden dessen Beschreibung und die notwendigen Daten angezeigt, so dass keine Suche stattfinden muss. Die Daten können bei Bedarf auch über einen einfachen Klick in die Zwischenablage kopiert werden, so dass kein fehleranfälliges Abtippen notwendig ist.

In unserem Beispiel muss für die Zubehörliste mehrfach ein Zubehörteil ausgewählt werden:

Solche Schleifen werden in der Testsequenz im iTORX ausgerollt und als Wiederholung der zugehörigen Schritte angezeigt. Jedem Schritt werden die richtigen Werte für seine Parameter zugeordnet:

Jeder Schritt kann bewertet und mit einem Ergebnis versehen werden. Es stehen nicht nur Pass oder Fail zur Verfügung, sondern auch andere Ergebnisstatus, die spezielle Situationen im Test berücksichtigen:

Neben der Bewertung des eigentlichen Tests, können weitere Informationen, wie z.B. Kommentare hinterlegt, Anhänge angefügt und Fehler erfasst werden. Insgesamt stehen 14 Teilbereiche zur Verfügung, die jeweils spezielle Informationen enthalten bzw. die dort hinterlegt werden können. Über diese Teilbereiche kann die Benutzeroberfläche individuell zusammengestellt und positioniert werden.

Der iTORX hält etliche größere und kleinere Hilfsfunktionen bereit, die das manuelle Testen optimal unterstützen und helfen die Konzentration auf das Testobjekt zu fokussieren und nicht auf die Interpretation der Testspezifikation.

Der Assistent kann direkt aus TestBench aufgerufen werden, kann aber auch ohne Verbindung zum TestBench-System, quasi offline, verwendet werden. Dafür können die Tests aus TestBench exportiert und vom iTORX geladen und verarbeitet werden. Testergebnisse und alle weiteren, gesammelten Informationen.

Deshalb trägt der Assistent seinen speziellen Namen:

iTORX = imbus Test assistant for Offline und Remote eXecution

Die offline Nutzung ist lizenzfrei, so dass die manuelle Testdurchführung außerhalb der TestBench kostenfrei ist. So werden z.B. Bremstests in Hochgeschwindigkeitszügen oder Abnahmetests vor Ort in medizinischen Einrichtungen möglich, ohne dass man auf eine Verbindung zum TestBench-System angewiesen ist.

TestBench ist in der Lage nahezu beliebige Testautomaten anzubinden. Deren Ergebnisprotokolle werden über die Anbindung dieser Automaten in einem Format erzeugt, das auch der iTORX lesen kann. Das ermöglicht es die Testergebnisse einer Testautomatisierung unabhängig vom TestBench-System zu öffnen, sie zu ergänzen oder zu korrigieren, bevor sie in TestBench übernommen werden. Testautomatisierungsläufe enthalten in der Regel nicht nur einzelne Testfälle, sondern unter Umständen Tausende Testfälle mit Millionen von Testschritten, da sie über Nacht oder über ein Wochenende laufen. Auch solchen Datenmengen ist der iTORX gewachsen.

Die Entwicklung geht weiter

iTORX ist ein Java-basiertes Werkzeug und muss deshalb installiert werden. Um das in Zukunft zu vermeiden, wird im Moment eine neue Version entwickelt, die im Browser läuft, aber trotzdem als App gespeichert werden kann. Es bleiben also die bewährten Offline-Fähigkeiten erhalten, kombiniert mit den Vorteilen einer Webseite.

Hier eine Vorschau auf den zukünftigen iTORX:

Fazit

Ein Assistent, der mir alle auszuführenden Testschritte eindeutig und mit den zugehörigen Parametern und Daten darstellt, bietet zahlreiche Vorteile:

#Zeitersparnis
Das manuelle Zusammentragen von Testdaten und -parametern kann zeitaufwendig sein. Ein Assistent, der diese Informationen bereitstellt, kann die Vorbereitungszeit erheblich verkürzen.

#Präzision
Menschen können Fehler machen, besonders wenn es um das Notieren komplexer oder umfangreicher Testparameter geht. Ein Assistent reduziert das Risiko menschlicher Fehler, indem er genaue und konsistente Informationen liefert.

#Effizienzsteigerung
Mit klar definierten Schritten und Parametern kann ich mich auf die Durchführung der Tests konzentrieren, anstatt Zeit mit der Interpretation oder Suche nach Informationen zu verbringen.

#Standardisierung der Testprozesse
Ein solcher Assistent stellt sicher, dass alle Tester die gleichen Schritte und Daten verwenden, was zu konsistenteren und vergleichbaren Testergebnissen führt.

#Bessere Testabdeckung
Ein Assistent kann dabei helfen, sicherzustellen, dass alle relevanten Testfälle abgedeckt werden, indem er mich an verschiedene Szenarien und Randbedingungen erinnert.

#Schnellere Identifizierung von Fehlern
Da ich weniger Zeit für die Vorbereitung aufwenden muss, kann ich mehr Zeit für das eigentliche Testen und die Identifizierung von Fehlern verwenden.

#Leichtere Wiederholbarkeit von Tests
Bei späteren Testphasen oder Regressionstests ist es einfacher, Tests zu wiederholen, da alle Schritte und erforderlichen Daten bereits klar definiert sind.

#Bessere Dokumentation
Ein Assistent, der Testfälle und -ergebnisse dokumentiert, erleichtert die Nachverfolgung und das Reporting, was für die Qualitätskontrolle und für Audits wichtig ist.

#Lernunterstützung für neue Tester
Ein Assistent, der klare Anweisungen gibt, kann auch als Lernwerkzeug für neue Tester dienen, die sich mit den Testverfahren und der Software noch nicht auskennen.

Insgesamt verbessert ein solcher Assistent die Qualität und Effizienz des manuellen Testprozesses erheblich und reduziert gleichzeitig die Belastung für die Tester.