2Testdaten – ein Überblick
Testdaten sind Bestandteil der Testumgebung. Dort dienen sie unterschiedlichen Zwecken. Dieses Kapitel bietet Ihnen einen Überblick über die verschiedenen gebräuchlichen Begriffe für Testdaten und beleuchtet die Bedeutung ihrer Metadaten.
Dieses Kapitel schafft ein Basisverständnis über den Testdaten-Begriff, wie er in diesem Buch verwendet wird, es sollte daher zumindest quergelesen werden.
2.1Begriffe Testdaten, ideale Testmenge, gute Testdaten
Softwaresysteme verarbeiten elektronisch Daten, basierend auf dem sogenannten EVA-Prinzip: Eingabe, Verarbeitung, Ausgabe. Wir geben Daten ein, das (zu testende) System verarbeitet diese und gibt Daten wieder aus. Zum Testen von Software, genauer zum Prüfen des Verhaltens der Software, verwendet man Testdaten.
Eckehard Kruse formuliert treffend: »Testdaten ermöglichen die Durchführung von Tests« [Krus11]. Testdaten werden benötigt, um Testfälle gegen das zu testende System oder Teile davon laufen zu lassen.
Abstrakte Testfälle enthalten zunächst keine Testdaten und können daher nicht ausgeführt werden. Indem man einen abstrakten Testfall um Testdaten ergänzt, entstehen ein oder mehrere ausführbare konkrete Testfälle. Die konkreten Testfälle verwenden Daten als Eingabe, die Eingabedaten, und enthalten Angaben über die erwarteten Ausgaben, die Ausgabedaten. Darüber hinaus benötigt das Durchführen konkreter Testfälle weitere Daten im zu testenden System. Dies können z.B. Stammdaten oder Konfigurationen sein.
Alle Daten in einer Testumgebung sind Testdaten. Darunter fallen Werte für Konfigurationsparameter ebenso wie Ausgabedaten nach Durchführung von Testfällen.
Doch was versteht man im Detail unter Testdaten? Und wann sind Testdaten gute Testdaten? Wie sieht die ideale Testmenge aus?
2.1.1Testdaten
Im Glossar des German Testing Board findet sich folgende Definition von Testdaten:
Definition: Testdaten (nach German Testing Board)
»Daten, die (z.B. in einer Datenbank) vor der Ausführung eines Tests existieren, und die die Ausführung der Komponente bzw. des Systems im Test beeinflussen bzw. dadurch beeinflusst werden.« [GTB+15, S. 66]
Damit umfasst diese Definition ausschließlich vor oder während der Testausführung existierende Testdaten, nicht aber die Daten, die bei der Ausführung eines Testfalls entstehen.
Im Lehrplan zum Certified Test Data Specialist (GTB) heißt es in Ergänzung der vorgenannten Definition: »Testdaten sind konkrete Werte von Datenobjekten, die zur Ausführung eines Testobjekts benötigt werden. Sie können z.B. in Dateiform, in Form von Datenbanktabellen oder in Listenform vorliegen« [GTB+17a, S. 17].
In »Basiswissen Softwaretest« formulieren die Autoren Andreas Spillner und Tilo Linz [SpLi12, S. 263] darüber hinaus folgende Definition zu Testdaten:
Definition: Testdaten (nach Andreas Spillner und Tilo Linz)
»Eingabe- und Zustandswerte für ein Testobjekt und die Sollwerte nach Ausführung des betreffenden Testfalls« und »Daten, die (z.B. in einer Datenbank) vor der Ausführung eines Tests existieren und die Ausführung der Komponente bzw. des Systems im Test beeinflussen bzw. dadurch beeinflusst werden.« [SpLi12, S. 263]
Abb. 2–1 Testdaten-Begriffe
Ein sehr ähnliches Begriffsverständnis findet sich in Kruses oben erwähntem White Paper zum Testdatenmanagement [Krus11].
In den vorgestellten Begriffen ist der Zusammenhang zwischen Testdaten und Testumgebung nicht berücksichtigt. ISO 29119 betrachtet die Testdaten als Bestandteil der Testumgebung.
Die folgende Definition, basierend auf den vorgestellten TestdatenBegriffen, formuliert etwas expliziter:
Testdaten-Begriff
Definition: Testdaten
Testdaten bezeichnen alle Daten, die in die Testumgebung eingegeben (Eingabe- und Zustandswerte für ein Testobjekt) oder aus ihr ausgelesen werden (Sollwerte, Istwerte) sowie alle Daten, die in der Testumgebung vorhanden sind bzw. verwendet werden (z.B. in einer Datenbank, aber auch Umgebungsdaten wie Konfigurationsdateien, Ports usw.).
Testdaten beeinflussen die Ausführung der zu testenden Komponente bzw. des zu testenden Systems oder werden dadurch beeinflusst.
Einordnung
Folgt man dem Glossar des ISTQB® [GTB+15], so zählen die Testdaten zu den Testmitteln:
Definition: Testmittel (nach German Testing Board)
»Alle Artefakte, die während des Testprozesses erstellt werden und die erforderlich sind, um die Tests zu planen, zu entwerfen oder auszuführen. Dazu gehören: Dokumente, Skripte, Eingabedaten, erwartete Ergebnisse, Prozeduren zum Aufsetzen und Aufräumen von Testdaten, Dateien, Datenbanken, Umgebungen und weitere zusätzliche Software- und Dienstprogramme, die für das Testen verwendet werden.« [GTB+15]
Die obigen Definitionen beschreiben, wann Testdaten vorhanden sind und worauf sie Einfluss nehmen. Außerdem erfahren wir etwas über die Aufgabe der Testdaten, nämlich ihre Verwendung als Eingabe- und Zustandswerte für ein Testobjekt und als Sollwerte für Testfälle.
Testdaten versus Testdaten(mengen)
Wenn von Testdaten die Rede ist, dann sind entweder eine Menge von Testdaten oder auch Testdaten eines konkreten Testfalls oder gar einzelne Testdaten (Testdatum) gemeint.
Welche Alternative zutrifft, sollte aus dem jeweiligen Kontext hervorgehen. Wo eine explizite Unterscheidung notwendig ist, finden Sie diese im Text dargestellt.
2.1.2Gute Testdaten
Nachdem der Begriff der Testdaten eingeführt ist, betrachten wir einen Qualitätsaspekt: Wann sind Testdaten gute Testdaten?
Gute Testdaten, bezogen auf einen konkreten Testfall, sind diejenigen Testdaten, die das mit dem Testfall verfolgte Ziel unterstützen.
Doch was sind gute Testdaten im Sinne einer Menge von Testdaten?
Bei Redwine [Redw83, S. 192 o.] findet sich eine Definition für qualitativ gute Testdaten; er bezieht sich auf eine Menge. Demnach stellen gute Testdaten eine sinnvoll bemessene Menge von Daten dar, die alle oder fast alle Teile der Software ausführen, sodass die Resultate unterscheiden zwischen korrektem Funktionieren und möglichen Fehlern [Redw83, S. 192 o.].
Um mit dieser Menge an Daten alle bzw. fast alle1 Softwareteile ausführen zu können, müssen Testdaten enthalten sein, die – bezogen auf Anwendungsfälle – sowohl den Normalfall als auch Alternativen sowie Sonderfälle und Fehlerfälle umfassen.
Abb. 2–2 Gute Testdaten
Dies geht implizit auch aus der zweiten der von Chace genannten Eigenschaften hervor. Gute Testdaten, im Sinne einer Menge von Testdaten, lassen sich nach Chace [Chac11] mit zwei wesentlichen Eigenschaften beschreiben:
- Sie repräsentieren die gesamte Bandbreite der Produktionsdaten oder »Echtweltdaten«.
- Sie sind angemessen dimensioniert, sodass sie die Anforderungen des Tests unterstützen.
Testdaten zu Testobjekt
Die oben dargestellten Ausführungen zu guten Testdaten sind nicht nur auf das Gesamtsystem als Testobjekt, sondern auch auf das jeweils betrachtete Testobjekt (auch Systemteile) sowie das verfolgte Testziel zu beziehen. So unterscheiden sich Testdaten für Testfälle im Regressionstest einer bestimmten Komponente von Testdaten für Testfälle in einem ausführlichen funktionalen Test während der Entwicklung dieser Komponente.
Zum einen sprechen wir hier wieder über die Menge an Testdaten, die in letzterem Falle umfangreicher ausfällt. Zum anderen meint Testdaten die Daten für einen einzelnen Testfall, wenn es darum geht, anhand der Resultate zwischen korrektem oder fehlerhaftem Verhalten zu unterscheiden.
Folgende Definition fasst die Aspekte guter Testdaten zusammen:
Definition: Gute Testdaten
Bezogen auf ein bestimmtes Testobjekt und ein bestimmtes Testziel werden Testdaten gute Testdaten genannt, wenn sie folgende...