Keyword-Driven Testing
# Keyword-Driven Testing

Keyword-Driven Testing (auch Table-Driven Testing, Action-Word Testing) ist eine Technik des automatischen Software-Testens.

## Charakteristik

Obwohl man Keyword-Driven Testing auch für manuelles Testen verwenden kann, ist es eher für das automatische Testen geeignet. Die hohe Abstraktionsebene von solchen schlüsselwort-gesteuerten Tests verbessert die Wiederverwendbarkeit und die Wartbarkeit automatischer Tests.

## Methode

Im Keyword-Driven Testing findet die Testerstellung meist in zwei Etappen statt.

### Planung

Zunächst werden die zu testenden Aktionen oder Operationen in der Anwendung (oder in den Anforderungen für die Anwendung) analysiert. Wiederkehrende Aktionen und Abläufe werden in Keywords (Schlüsselwörtern) gekapselt.

#### Beispiele für Keywords

* Ein einfaches Keyword (eine Aktion auf einem Objekt), z. B. Eingabe von einem Benutzernamen in ein Textfeld.
| Objekt | Aktion | Daten |
| Textfeld (Benutzername) | Text eingeben | <Benutzername> |
* Ein komplexeres Keyword (aus anderen Keywords zusammengestellt) z. B. Einloggen.
| Objekt | Aktion | Daten |
| Textfeld (Domäne) | Text eingeben | <Domaene> |
| Textfeld (Benutzername) | Text eingeben | <Benutzername> |
| Textfeld (Passwort) | Text eingeben | <Passwort> |
| Button (einloggen) | Klicken | Einmal Klicken mit der linken Maustaste |

### Implementierung

Die Implementierung unterscheidet sich je nachdem, welches Tool oder Framework eingesetzt wird. Häufig müssen Testentwickler ein Framework implementieren, um Keywords wie „Prüfen“ oder „Eingeben“ bereitzustellen. Ein bekanntes Open-Source-Framework ist das Framework for Integrated Test. Ein Tester ohne Programmierkenntnisse kann dann Testfälle gemäß der Planung anhand dieser fertig kodierten Keywords erstellen. Der daraus entstehende Test wird von einem Roboter ausgeführt. Der Roboter liest die Keywords ein und führt die entsprechenden Codezeilen aus.
Andere Ansätze trennen das Testdesign und die Keywordimplementierung nicht. Hier gibt es nur einen Schritt zur Implementierung – das Testdesign ist gleichzeitig die Testautomatisierung. Keywords wie „Prüfen“ oder „Eingeben“ werden anhand fertiger Bausteine erstellt, in denen der notwendige Code für die Keywords bereits vorhanden ist. Dadurch entfällt der Bedarf an zusätzlichen technischen Fachkräften zur Programmierung im Testprozess. Diesen Ansatz verwenden Werkzeuge wie GUIdancer und Worksoft Certify oder auch das Robot Framework. Das Open-Source-Werkzeug Selenium stellt fertige Keywords für das Testen von Webanwendungen zur Verfügung, die in HTML-Tabellen zu Testfällen zusammengestellt werden können. Darauf setzt u. a. das freie Firefox-Plugin Molybdenum auf, welches die Zusammensetzung einzelner „Commands“ zu parametrierbaren Testbausteinen ermöglicht.

## Vorteile

Beim Keyword-Driven Testing erscheint der Aufwand zu Beginn höher als bei aufgenommenen Skripten. Jedoch macht sich sorgfältige Planung bei der folgenden Testerstellung und -wartung bezahlt. So fördert Keyword-Driven Testing eine stabile und übersichtliche Test-Struktur. Je abstrakter die Keywords, desto einfacher sind sie wiederzuverwenden. Dadurch wird der Aufwand für Wartungsarbeiten gesenkt. Die modulare Struktur eines Keyword-Driven Tests erlaubt außerdem die bequeme Erstellung neuer Tests anhand schon vorhandener Keywords.
Ein weiterer Vorteil liegt darin, dass keine technischen Kenntnisse vorausgesetzt werden. Im ersten Ansatz müssen ausschließlich die Keyword-Entwickler programmieren können. Im zweiten Ansatz entfällt sogar diese Notwendigkeit. Somit können Tests ganz ohne Programmierkenntnisse automatisiert werden.