Kolumne

Was das Verify-Act-Verify Pattern ist… und wie man es richtig einsetzt

Simone Reichstein

In der zweiten Ausgabe unserer Kolumne über Qualitätssicherung und Testing erklärt Simone Reichstein von BREDEX, was Test-Patterns sind und warum man sie einsetzt. Außerdem gibt anhand von konkreten Testfällen eine Übersicht über das Verify-Act-Verify (VAV) Pattern.

In der letzten Kolumne wurde ein genereller Ansatz für die UI-Testautomatisierung vorgestellt. In dieser Ausgabe geht es nun darum, ein Pattern vorzustellen, das den Tester beim Aufbau von Testfällen unterstützt. Doch zunächst…

Was ist ein Pattern?

Die Geschichte des Pattern-Begriffs geht auf das Jahr 1977 zurück und stammt aus dem Bereich der Architektur von Bauwerken. Der Architekt Alexander hatte erstmals eine Sammlung von verschiedenen Entwurfsmustern für die Entstehung von Bauwerken mit dem Ziel zusammengestellt, die zukünftigen Bewohner mit in den Entstehungsprozess einzubinden. Generell versteht man unter einem Pattern eine Art „Schablone“, die eine bewährte Lösung für ein bestimmtes Problem liefert.

„A Pattern is a way of solving an issue that has worked for people and may be useful for others.“

„A Pattern is not prescriptive or a set of steps, but rather ideas to consider to see if they would apply in your situation or context.“

In der Architektur hat sich der Begriff Pattern mit der Zeit nicht durchgesetzt, dafür aber im Bereich der Anwendungsentwicklung, wo es eine Vielzahl von Design Patterns gibt. Auch im Bereich der Testautomatisierung ist die Verwendung von Design Patterns auf dem Vormarsch.

Warum Patterns im Test einsetzen?

Der Einsatz von Design Patterns in der Testautomatisierung hat viele positive Aspekte:

  • Patterns helfen, den Test und das generelle Vorgehen in der Testerstellung zu strukturieren
  • Die Tests sind gut wartbar
  • Die Testausführung läuft stabibler
  • Patterns helfen, Abhängigkeiten zwischen den Tests zu verhindern
  • Patterns sorgen für ein besseres Verständnis der Testziele
  • Die Testentwicklung erfolgt strukturiert und gewinnt damit an Übersichtlichkeit
  • Die Aussagekraft des Testergebnisses wird erhöht und somit das Vertrauen in den Test verbessert

Es gibt eine Vielzahl von Patterns für die Anwendung in der Testautomatisierung. Im Folgenden soll näher auf das Pattern „Verify-Act-Verify“ (VAV) eingegangen werden. Die Vorstellung dieses Pattern erfolgt anhand einer Beispielanwendung in der es darum geht, Kundendaten zu verwalten.

Verify-Act-Verify (VAV) Pattern

Ein häufig auftretendes Problem ist, dass Testfälle fehlerfrei durchlaufen, obwohl die eigentliche Funktion dahinter gar nicht richtig funktioniert. Dies fällt dann womöglich nur bei einem zusätzlichen, manuellen Test auf. Es kann sich also nicht immer auf das Ergebnis des automatisierten Tests verlassen werden.

Testfall Automatisierter Test Manueller Test
TF1: Kontakt anlegen OK Fehler
TF2: Kontakt kopieren OK Fehler
TF3: Kontakt bearbeiten OK OK
TF4: Kontakt löschen OK OK

Ursache hierfür sind fehlende Überprüfungen in der automatisierten Testfallspezifikation. Das VAV Pattern schafft hier Abhilfe. Das Prinzip des VAV Patterns ist einfach und gut einsetzbar. Es beruht darauf, dass Testfälle mit einer Überprüfung der Eingangs- und Ausgangsbedingungen starten bzw. enden.

Durch diese Methodik wird sichergestellt, dass eine Funktion tatsächlich einwandfrei ausgeführt wird. Am Beispiel des „Kontakt anlegen“ Testfalls bedeutet dies: Vor der eigentlichen Aktion des Anlegens wird zunächst überprüft, ob dieser Kontakt nicht bereits schon in der Anwendung vorhanden ist. Hinterher wird sichergestellt, dass nicht nur der Workflow des Anlegens funktioniert sondern auch, ob nach dem Klicken auf den Speichern-Button die entsprechenden Kundendaten tatsächlich erzeugt werden. Dies erfolgt durch die der Aktion nachgelagerten Überprüfung der Endbedingung.

Für den Testfall „Kontakt kopieren“ sieht die Anwendung des Patterns ähnlich aus:

Zunächst wird überprüft, ob die Kopie noch nicht im System vorhanden ist. Anschließend erfolgt die zu testende Aktion (das Kopieren eines Kontaktes). Um zu verifizieren, dass die Aktion auch vollständig gelingt, wird am Ende der Endzustand wieder überprüft. Dabei wird überprüft, ob die Kundendaten der Kopie richtig sind und des Weiteren, ob das Original des Kontaktes nach wie vor vorhanden ist. Für die weiteren Testfälle ist der Einsatz des Patterns analog durchführbar.

Durch die Verwendung des VAV Patterns in der Testautomatisierung ergeben sich folgende Vorteile:

  • Unterstützung im Testfalldesign
  • Sicherstellung der Datenkonsistenz
  • Weniger Fehlschläge durch genauere Betrachtung der Daten
  • Kein Vergessen von Überprüfungen
  • Gut strukturierte Testfälle (durch einen klaren Rahmen)
  • Grund für Fehlschlag erkennbar
  • Besseres Vertrauen in die Tests

Und es ist zudem noch einfach einzusetzen, etwa wenn es um das Anlegen/Bearbeiten und Löschen von Objekten geht. Es hat jedoch auch seine Grenzen und ist nicht in jedem Kontext uneingeschränkt anwendbar, beispielsweise bei bloßen Anzeige-Testfällen oder bei Datensuchen, in denen keine Änderungen an Objekten hervorgerufen werden. Wobei wir wieder bei der Definition eines Patterns sind (vgl. Beginn der Kolumne):

Generell versteht man unter einem Pattern eine Art „Schablone“, die eine bewährte Lösung für ein bestimmtes Problem liefert…

…jedoch nicht auf jedes Problem uneingeschränkt anwendbar ist!

Qualitätssicherung & TestingQualitätssicherung und Testing

In der Kolumne zu Qualitätssicherung und Testing teilen die Test Consultants der BREDEX GmbH mit unseren Lesern regelmäßig ihre Erfahrungen sowie Tipps & Tricks für das Testen und die Testautomatisierung.
 
Bisher erschienen:
 

Geschrieben von
Simone Reichstein
Simone Reichstein ist Test Consultant bei der Bredex GmbH.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.