Keyword-Driven Testing

Mehr als nur ein paar Worte

Was ist Keyword-Driven Testing?

Keyword-Driven Testing nutzt wiederverwendbare Bausteine, sogenannte Keywords, um Testfälle zu erstellen. Diese Keywords bilden eine leicht erlernbare Sprache, die Fachexperten, Tester und Automatisierungsingenieure verbindet. Jeder Baustein steht für einen klar definierten Testschritt, was die Verständlichkeit der Testfälle und die Zusammenarbeit im Team erleichtert. So entsteht ein gemeinsamer Sprachwortschatz für spezifische Domänen und Anwendungsbereiche.

 

Spezielle Herausforderungen bei der Spezifikation von Tests

Beim Definieren und Spezifizieren von Tests stehen Testverantwortliche vor mehreren Herausforderungen:

Abstraktionsniveau der Testfälle

Die Kunst besteht darin, Testfälle so zu gestalten, dass sie einerseits für nicht-technische Stakeholder verständlich und andererseits technisch präzise genug für die Umsetzung sind. Diese Balance ist schwer zu erreichen.

Wiederverwendbarkeit von Testschritten

In der traditionellen Testfall-Spezifikation führen ähnliche oder identische Testschritte zu redundanten Einträgen. Dies erschwert nicht nur die Wartung, sondern erhöht auch die Fehleranfälligkeit.

Unabhängigkeit von der Implementierung

Testfälle, die eng an die Implementierungsdetails einer Applikation gebunden sind, erfordern bei Softwareänderungen häufig umfangreiche Anpassungen.

Vorgaben für die Testautomatisierung

Damit Testfälle als Grundlage für die Automatisierung dienen können, müssen sie sehr präzise definiert sein. Gleichzeitig dürfen sie ihre Lesbarkeit für Menschen nicht verlieren.

Vorteile von Keyword-Driven Testing

Keyword-Driven Testing bietet zahlreiche Vorteile, die sowohl die Effizienz als auch die Qualität der Tests verbessern:

  • Wiederverwendbarkeit und Wartbarkeit: Da jedes Keyword zentral verwaltet wird, wirken sich Änderungen an einem Keyword sofort auf alle zugehörigen Testfälle aus. Redundante Anpassungen entfallen, was die Wartung erheblich erleichtert.
  • Vereinfachte Testautomatisierung: Die Automatisierung beschränkt sich auf die Implementierung einzelner Keywords, anstatt vollständige Testfälle zu automatisieren. Dies reduziert den Implementierungsaufwand erheblich.
  • Geschwindigkeit und Effizienz: Testfälle können schnell aus bestehenden Keywords zusammengestellt werden. Neue Keywords sind nur für zusätzliche Funktionalitäten erforderlich.
  • Kollaborativ: Keywords schaffen eine gemeinsame Grundlage, die es Fachexperten und Automatisierern ermöglicht, effizient zusammenzuarbeiten.

Wann ist Keyword-Driven Testing zu empfehlen?

Keyword-Driven Testing eignet sich besonders gut für System- oder Akzeptanztests, bei denen sowohl technische Präzision als auch eine abstrakte Dokumentation gefragt sind.

Einsatzgebiete:

  • Testfälle, die häufig wiederholt oder angepasst werden müssen.
  • Projekte, in denen eine enge Zusammenarbeit zwischen Fachabteilungen und Technik erforderlich ist.
  • Automatisierungsprojekte mit hohem Anspruch an Effizienz und Wartbarkeit.

Durch die einfache Lesbarkeit der Testspezifikationen und die Möglichkeit, eine hohe Automatisierungsabdeckung schnell zu erreichen, ist Keyword-Driven Testing eine vielseitig einsetzbare Methode.

Wie funktioniert Keyword-Driven Testing mit TestBench?

TestBench ist ein Werkzeug, das die praktische Anwendung von Keyword-Driven Testing unterstützt. Keywords werden als Testschritte definiert und zentral verwaltet. 

Zentrale Funktionen von TestBench:

  • Testelementesicht: Hier werden Keywords erstellt und organisiert. Sie können in Testsequenzen integriert und mehrfach verwendet werden.
  • Parameter und Daten: Jedes Keyword kann Parameter enthalten, die flexibel angepasst werden können. Dadurch entstehen dynamische und wiederverwendbare Tests.
  • Versionierung: Änderungen an Keywords werden zentral verfolgt, um Fehler durch unabsichtliche Anpassungen zu vermeiden.

Dieses strukturierte Vorgehen unterstützt nicht nur die Einhaltung von Standards wie der ISO 29119-5, sondern ermöglicht auch die Kombination von Keyword-Driven Testing mit Data-Driven Testing.

Einfache Testsequenz für einen Car-Konfigurator mit sechs Schritten: Car-Konfigurator starten, Fahrzeug wählen, Zubehör auswählen, Sondermodell bestimmen, Preis prüfen und Car-Konfigurator beenden. Grüne Icons markieren die einzelnen Schritte.

Die Abbildung zeigt einfache Testsequenz ohne Parameter. Beispielhaft werden Testabläufe eines Tests aus einzelnen Keywords wie dargestellt zusammengesetzt.

Auswahl eines Sondermodells in einer Testanwendung. Der Status ist auf 'freigegeben' gesetzt, Standardtyp ist 'Flow'. Im Dropdown-Menü sind Sondermodelle wie Gomera, Jazz und Luxus auswählbar, begleitet von zusätzlichen Konfigurationsoptionen wie Farbe und Ausstattung.

Ein Keyword aus der gezeigten Testsequenz kann nicht nur seinen Namen, sondern auch eine Beschreibung enthalten, um Details präzise zu erfassen.

Verwendungsnachweis in einer Testanwendung mit drei Konfigurationsoptionen: Basisfahrzeug konfigurieren, Basisfahrzeug mit Rabatt konfigurieren und Basisfahrzeug ohne Zubehör konfigurieren. Option zur Aktualisierung der Ansicht bei Auswahländerungen vorhanden, mit Angabe der letzten Aktualisierungszeit.

Wird ein Keyword in einer Testsequenz aufgerufen, entsteht automatisch eine Liste aller Aufrufe – der sogenannte Verwendungsnachweis. In der Abbildung ist ein Verwendungsnachweis dargestellt, der ausschließlich Testfallsätze umfasst.

Testsequenz für einen Car-Konfigurator mit sechs Schritten und zugehörigen Parametern: 1. Car-Konfigurator starten, 2. Fahrzeug wählen (Parameter: Fahrzeug), 3. Sondermodell wählen (Parameter: Sondermodell), 4. Zubehör wählen (Parameter: Zubehörliste), 5. Preis prüfen (Parameter: Gesamtpreis), 6. Car-Konfigurator beenden. Grüne Icons markieren die Schritte.

Beim Spezifizieren von Tests ist es sinnvoll, den Ablauf und die darin verwendeten Daten voneinander zu trennen. Dies ermöglicht es, notwendige Werte als Variablen zu verwenden. Deshalb kann jedes Keyword in TestBench beliebig viele Parameter enthalten. In der Abbildung ist eine Testsequenz mit Parametern dargestellt.

Parameterliste für eine Testsequenz mit vier Einträgen: 1. Fahrzeugname (Parameter: Fahrzeug), 2. Sondermodellname (Parameter: Sondermodell), 3. Zubehörname (Parameter: Zubehörliste), 4. Preis (Parameter: Gesamtpreis). Grüne Icons kennzeichnen die Datentypen.

Dies ermöglicht es, für jede Testsequenz eine individuelle Parameterliste festzulegen. Die Abbildung zeigt ein Beispiel für eine solche Liste.

Tabelle mit Testfalldaten für verschiedene Fahrzeugkonfigurationen: Enthält Spalten für Fahrzeug, Sondermodell, Zubehörliste und Gesamtpreis. Beispiele: 'Rolo' ohne Sondermodell und Zubehör (12.300,00 €), 'Rassant Family' mit Sondermodell Jazz und Zubehör wie Radio und Fußmatten (19.549,00 €), 'Rassant' mit Sondermodell Gomera (16.056,60 €), und 'I5' mit Sondermodell Luxus und umfangreichem Zubehör (32.065,20 €).

Damit entsteht ein Test, der aus einer Testsequenz und der zugehörigen Parameterliste besteht. Die Werte für die Parameter werden in einer Tabelle hinterlegt, wobei jede Zeile einen Datensatz für einen spezifischen Durchlauf der Testsequenz repräsentiert. In der Abbildung ist eine Testfalltabelle zur Parameterliste dargestellt.

Übersicht einer Testsequenz für einen Car-Konfigurator mit zugehörigen Parametern, Parameterliste und einem Testfalldatensatz. Die Testsequenz umfasst Schritte wie Fahrzeug wählen und Preis prüfen. Parameterliste definiert Felder wie Fahrzeugname, Sondermodell und Zubehörliste. Der Testfall zeigt eine Konfiguration für 'Rassant Family' mit Sondermodell Jazz und Zubehör (Radio, Sportfelgen, Fußmatten) für 19.549,00 €.

TestBench setzt sich ein Test aus einer Testsequenz, der dazu passenden Parameterliste und einer Datentabelle mit den einzusetzenden Werten zusammen. Dadurch entsteht nicht nur ein einzelner Testfall, sondern ein ganzer Satz von Testfällen. Jeder Testfall kombiniert die Testsequenz, die Parameterliste und eine spezifische Datenzeile aus der Datentabelle. Ein zusätzlicher Testfall kann mühelos durch das Hinzufügen einer weiteren Zeile in der Datentabelle erstellt werden. Die Abbildung zeigt eine Testsequenz mit Parameterliste und einem Datensatz aus der Testfalltabelle.

Testsequenz für einen Car-Konfigurator mit schrittweiser Auswahl von Fahrzeug, Sondermodell, Zubehör und Währungsprüfung. Übersicht mit Parameterfeldern für Eingaben wie Fahrzeugtyp, Sondermodell, Zubehörliste, Gesamtpreis und Währung.

Wie werden die Testdaten verwaltet?

In TestBench werden Testdaten über Datentypen organisiert. Diese bündeln Werte desselben fachlichen Typs, z. B. Fahrzeugnamen oder Sondermodelle, und dienen als Parameter für Keywords. Beim Aufruf eines Keywords wird der Parameter mit einem passenden Wert des zugehörigen Datentyps übergeben. Keywords können, ähnlich wie Testfälle, mehrere Parameter verwenden, was die Verwaltung und Flexibilität komplexer Tests erleichtert.

TestBench integriert außerdem Data-Driven Testing nahtlos in das Keyword-Driven Testing, wie es die ISO 29119-5 empfiehlt. Weitere Informationen dazu finden Sie hier.

Testsequenz mit einer hierarchischen Struktur für die Konfiguration eines Basisfahrzeugs im Car-Konfigurator. Schritte umfassen das Starten, die Fahrzeugkonfiguration mit Parametern wie Fahrzeug, Sondermodell und Zubehöre, die Preisprüfung und das Beenden des Konfigurators. Darstellung mit untergeordneten Schritten wie Fahrzeug-, Sondermodell- und Zubehörwahl.

Wie können Tests noch verständlicher werden?

Lange Keyword-Sequenzen können das Erfassen der Testidee erschweren. TestBench bietet dafür eine Lösung: Keywords können eigene Testsequenzen enthalten. So lassen sich mehrere Schritte in einem neuen Keyword zusammenfassen, wodurch die Testsequenz verkürzt und der Testinhalt übersichtlicher wird.

Diese Abstraktion erleichtert das Verstehen komplexer Tests, ohne Details zu verlieren. Durch zusätzliche Abstraktionsstufen können selbst lange End-to-End-Tests nachvollziehbar gestaltet werden, während der notwendige Detailgrad für die Testdurchführung erhalten bleibt.

Warum Keyword-Driven Testing für Automatisierung?

  • Effizienz: Automatisiert werden nur einzelne Keywords, wodurch der Aufwand konstant bleibt.
  • Flexibilität: Änderungen an fachlichen Vorgaben sind einfach umsetzbar.
  • Reduktion technischer Komplexität: Fachliche Details können auf einer höheren Abstraktionsebene dargestellt werden, während technische Details in untergeordneten Keywords bleiben.

Eine detaillierte Erklärung finden Sie auf der Seite Testautomatisierung.

Warum Keyword-Driven Testing für manuelles Testen?

Auch bei manuellen Tests zeigt Keyword-Driven Testing seine Stärke:

  • Einfachere Testspezifikation: Testabläufe sind durch die Verschlagwortung schnell erfassbar und übersichtlich dargestellt.
  • Konsistenz und Qualität: Tests werden unabhängig von der Erfahrung der testenden Person konsistent durchgeführt.
  • Geschwindigkeit: Die Testdurchführung kann um bis zu 40 % schneller erfolgen, da der Fokus auf die eigentliche Testdurchführung statt auf das Verständnis der Spezifikation gerichtet wird.

Dieses Vorgehen verbessert nicht nur die Effizienz, sondern auch die Reproduzierbarkeit und Zuverlässigkeit der Testergebnisse.

Weitere Informationen zur Testdurchführung finden Sie auf der Seite Testdurchführung sowie im Blogbeitrag Weniger Mühe, mehr Effizienz: Der Assistent iTORX

Ihre Fragen - unsere Antworten

Haben Sie Fragen zum Keyword-Driven Testing oder suchen Sie Unterstützung bei der Optimierung Ihrer Testprozesse? Unsere Expert:innen stehen Ihnen gerne zur Verfügung. Kontaktieren Sie uns, und wir helfen Ihnen dabei, Ihre Teststrategien effizient und erfolgreich zu gestalten