Data-Driven Testing

Lassen Sie die Daten alle Tests machen

Was ist Data-Driven Testing?

Data-Driven Testing (DDT) ist eine Testmethode, bei der Testfälle mit verschiedenen Testdaten ausgeführt werden. Anstatt für jede Datenkombination einen separaten Testfall zu erstellen, nutzt DDT eine generische Testlogik. Diese durchläuft identische Testschritte mit unterschiedlichen Werten.

Die konkreten Werte für Eingaben und erwartete Ergebnisse werden in einer Datentabelle gespeichert. Jede Zeile der Tabelle entspricht einer Testausprägung. Dadurch lassen sich Tests effizient skalieren, die Testabdeckung erhöhen und Redundanzen vermeiden. Neue Datenkombinationen sind schnell hinzugefügt oder aktualisiert. Besonders in der Testautomatisierung ermöglicht DDT eine einfache und flexible Abbildung verschiedener Szenarien.

 

Herausforderungen beim Verwalten und Verwenden von Testdaten

Die Arbeit mit Testdaten ist mit verschiedenen Problemstellungen verbunden, darunter Datenmanagement, Verfügbarkeit und Qualität.

Testdatenverwaltung und -pflege

Das Erstellen und Aktualisieren von Testdaten ist komplex. Um zuverlässige Tests sicherzustellen, müssen Daten stets aktuell und repräsentativ für reale Anwendungsfälle sein.

Abhängigkeiten zwischen Daten

Manche Tests erfordern spezifische Datenkombinationen, um bestimmte Zustände zu erzeugen. Werden diese Abhängigkeiten nicht sorgfältig gemanagt, können inkonsistente Daten zu Verzögerungen oder Instabilitäten führen.

Datenqualität

Nur qualitativ hochwertige Testdaten liefern aussagekräftige Testergebnisse. Unvollständige oder fehlerhafte Daten können dazu führen, dass echte Fehler übersehen oder falsche Fehlermeldungen erzeugt werden.

Vorgaben für die Testautomatisierung

Testdaten sollten unabhängig vom Testcode definiert werden, sodass Änderungen flexibel vorgenommen werden können. Auch temporäre Testdaten, die nur für einen Testfall benötigt werden, müssen sauber verwaltet werden.

Die Vorteile des Data-Driven Testing

Variiert das Verhalten eines Systems bei gleichen Abläufen beim Verwenden verschiedener Daten, dann hat das datengetriebene Testen etliche Vorteile:

  • Höhere Testabdeckung – Eine Trennung von Testlogik und Testdaten ermöglicht es, viele Eingabewerte mit demselben Testablauf zu prüfen. Dadurch lassen sich verschiedene Szenarien abdecken, einschließlich Grenzwerten und Sonderfällen.
  • Weniger Wartungsaufwand – Änderungen an den Testdaten erfordern keine Anpassungen am Testablauf. Neue Datensätze lassen sich einfach hinzufügen oder aktualisieren, ohne die Testautomatisierung zu verändern.
  • Bessere Fehleranalyse – Da jeder Testdurchlauf mit unterschiedlichen Daten protokolliert wird, lassen sich fehleranfällige Werte schnell identifizieren. Das erleichtert die Ursachenanalyse und das gezielte Beheben von Fehlern.
  • Vermeidung redundanter Tests – Durch eine gezielte Auswahl von Datenkombinationen (z. B. über Äquivalenzklassen) lassen sich unnötige Wiederholungen vermeiden. Das spart Zeit und reduziert unnötige Komplexität.
  • Effizienteres Testdesign – Eine zentrale Verwaltung der Testdaten erleichtert deren Wiederverwendung. Statt Werte mehrfach zu definieren, können strukturierte Datensätze gezielt für Tests genutzt werden.

 

Wann ist Data-Driven Testing zu empfehlen?

Data-Driven Testing ist besonders effektiv, wenn viele Datenkombinationen getestet werden müssen oder Testfälle wiederverwendet werden. Vor allem bei datengetriebenen Anwendungen reduziert DDT den manuellen Aufwand, verbessert die Testabdeckung und steigert die Effizienz.

Wenn Testfälle stark von externen Testdaten abhängen, ermöglicht DDT eine einfache Verwaltung und Skalierung. Die Vorbereitung von Testdaten für Eingaben oder spezielle Zusammenstellungen, etwa für Frachtbriefe oder Versicherungsformulare, erleichtert sowohl die Spezifikation als auch die Testdurchführung.

Besonders leistungsfähig ist Data-Driven Testing in Kombination mit Keyword-Driven Testing.

Wie funktioniert Data-Driven Testing mit TestBench?

TestBench verwaltet Testdaten strukturiert und kontextbezogen. Um dies zu ermöglichen, werden Daten in eigenen Datentypen abgelegt. Diese Struktur verbessert die Verwaltung und erleichtert den Zugriff auf benötigte Werte.

Die Abbildung zeigt eine Parametertabelle eines Tests.

Tests in TestBench enthalten standardmäßig eine Datentabelle, in der die zugehörigen Werte der Testfälle abgelegt sind. In der Testdefinition legt einen Parametertabelle fest, welche Datentypen in der Datentabelle benötigt werden.

Die Abbildung zeigt eine Datentabelle mit konkreten Werten. Jede Zeile enthält die Daten für einen Testfall, die bei der Testdurchführung verwendet werden.

Die Datentabelle enthält die konkreten Werte der Datentypen, die in der Parametertabelle festgelegt wurden. Jede Zeile enthält die Daten für einen Testfall, die bei der Testdurchführung verwendet werden.

Die Abbildung zeigt die Definition eines Tests mit Parametern und zugehörigen Daten.

In der Definition des Testfalls werden die Werte von den festgelegten Schritten verwendet (siehe Keyword-Driven Testing).

Die Abbildung zeigt eine Liste der möglichen Werte des Datentyps „Fahrzeugname“.

Wie werden die Testdaten verwaltet?

Die Datentypen verwalten Werte als Repräsentanten des gleichen fachlichen Typs, also im obigen Beispiel z.B. Fahrzeugnamen oder Sondermodellnamen.

Die Abbildung zeigt eine Liste der Äquivalenzklassen des Datentyps „Fahrzeugname“ mit der Unterscheidung in gültige und ungültige Werte für Fahrzeugnamen.

Bei der Verwaltung der Werte können Gruppen von Werten erstellt werden, die zum gleichen Kontext gehören. Z.B. die Liste der gültigen Fahrzeuge und die Liste der ungültigen Fahrzeuge für z.B. Negativtests. Die zugrundeliegende Methode nennt sich Äquivalenzklassen-Zerlegung.

In TestBench sind Data-Driven Testing und Keyword-Driven Testing integriert, so wie es auch die ISO 29119-5 vorsieht. Details zu Keyword-Driven Testing finden Sie hier.

Die Abbildung zeigt die Struktur eines zusammengesetzten Datentyps zur Verwaltung einer vollständigen Fahrzeugkonfiguration.

Wie können Tests noch verständlicher werden?

Werden in Testfällen viele Daten benötigt, können Tabellen schnell unübersichtlich werden. TestBench löst dieses Problem durch hierarchische Datenstrukturen. Diese ermöglichen es, zusammengehörige Werte kompakt darzustellen.

Die Abbildung zeigt die Werte eines zusammengesetzten Datentyps mit den Unterwerte der nächsten Ebene der Struktur des Datentyps.

Die zugehörigen Werte werden dadurch übersichtlicher und verständlicher.

Die Abbildung zeigt eine Testdefinition mit zusammengesetzten Datentypen.

Die Darstellung der Daten wird auch in den Testdefinitionen und Testfällen übersichtlicher und einfacher verständlich.

Wenn nötig kann auf die inneren Werte der Datentypstruktur über deren Pfad in der Struktur zugegriffen werden, z.B. auf den Fahrzeugnamen über „Fahrzeugkonfiguration.Fahrzeug.Fahrzeugname“, wie in der Abbildung zu sehen.

Welche Vorteile hat Data-Driven Testing beim manuellen Test?

Data-Driven Testing steigert nicht nur die Effizienz der Testautomatisierung, sondern verbessert auch manuelle Tests.

  • Schnellere Testdurchführung – Wiederholte Testsequenzen lassen sich zügiger ausführen, da sie nicht jedes Mal neu gelesen werden müssen.
  • Reduzierte Fehleranfälligkeit – Statt Werte manuell einzutippen, können vorhandene Datensätze einfach durchlaufen werden. In der TestBench lassen sich Daten zudem direkt aus der Zwischenablage einfügen.
  • Erhöhte Testeffizienz – Durch eine gezielte Variation von Testdaten lassen sich mehr Szenarien abdecken – ohne zusätzlichen manuellen Aufwand.

Details zur Testdurchführung finden Sie hier und im Blogbeitrag „Weniger Mühe, mehr Effizienz: Der Assistent iTORX“.

Ihre Fragen - unsere Antworten

Haben Sie Fragen zum Data-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.