Testdaten
R 2.5.0
Beschreibung
Testdaten setzen sich aus folgenden Daten zusammen: * Daten, die als Voraussetzung für den Ablauf eines Testfalls im System existieren müssen * Ggf. zusätzliche Eingabewerte in einzelnen Testschritten * erwartete Ergebnisse der Testschritte
Typischerweise definiert ein Testfall in seiner initialen Setup-Methode die für die Ausführung notwendigen Testdaten. Das kann durch Änderung vorhandener Daten oder Einbringen von neuen Daten in den Testdatenbestand geschehen. Nach Abarbeitung der einzelnen Testschritte wird normalerweise eine Teardown-Methode aufgerufen, die die Testdaten wieder abräumt, bzw. den vorhandenen Testdatenbestand in den Zustand versetzt, der vor der Ausführung des Testfalls vorlag. Das macht man, um Abhängigkeiten zwischen Testfällen zu vermeiden.
Passende (fachlich valide) Eingabedaten einzelner Testschritte ermöglichen den Testern eine fachlich korrekte Testdurchführung entlang der zu verifizierenden Spezifikationen.
Die erwarteten Ergebnisse jedes Testschritts helfen bei der Überprüfung, ob sich die Anwendung wie spezifiziert verhält. Durch ihre genaue Definition und den Vergleich zwischen erwarteten und beobachteten Ergebnissen wird es möglich, den Erfolg der Tests zu bewerten.
Was sind die richtigen Testdaten und wo kommen sie her?
Die sehr abstrakte und allgemeine Definition der ISTQB verdeckt ein wenig dessen, was in vielen Projekten übliches Vorgehen ist: Es wird auf Abzügen (Kopien) von Echtdaten getestet, Daten aus den Produktivsystemen also. Anders stellt sich die Situation lediglich dann dar, wenn es, etwa bei einer Neuentwicklung, noch gar keine Daten aus einem Produktiveinsatz gibt.
Aber warum nimmt man so gerne Echtdaten und wie ist das aus Sicht einer ganzheitlichen Test- und QS zu bewerten? Nun, Echtdaten bilden die Realität im Hinblick auf den jeweiligen fachlichen Hintergrund ab. Wenn ich zum Beispiel mit Personendaten arbeite, etwa aus einem großen Einwohnermelderegister, dann werde ich dort einen mehr oder weniger repräsentativen Ausschnitt der Gesamtbevölkerung antreffen. Männer, Frauen und andere werden in einer gleichen Verteilung vorhanden sein. Altersklassen werden denen der Gesamtbevölkerung entsprechen. Dasselbe gilt für Einkommensklassen und Bildungsabschlüsse. Kurzum, wenn es gilt Fachlichkeit abzubilden, sind verlässliche Grunddaten aus der Echtwelt ein idealer Ausgangspunkt.
Das gilt aber nicht nur für die Fachlichkeit, auch für nichtfunktionale Anforderungen braucht man gute, valide Testdaten. Wichtig ist das zum Beispiel beim Qualitätsmerkmal Leistungseffizienz. Sind hier Testdaten zufällig generiert und verteilen sich mehr oder weniger gleichmäßig über alle Merkmale, dann kann es zu erheblichen Verzerrungen der Leistungsmessung kommen, da sich unter Umständen Caching-Effekte einstellen oder gerade nicht einstellen. Auf die drei grundsätzlichen Generierungsarten von Testdaten gehen wir weiter unten ein.
Wie ist also aus Testsicht der Einsatz von Produktivdaten zu beurteilen? Alle datenschutzrechtlichen Bedenken außen vor gelassen, sind Echtdaten immer der Königsweg, wenn es um die Verifikation von Anforderungen geht. Der generelle Verzicht des Einsatzes von Produktivdaten wird mit einem erheblichen Absinken der Qualität der Testergebnisse erkauft. Das muss in die Projektbudgets eingepreist werden!
Erstellung von Testdaten
Zur Bereitstellung von Testdaten gibt es folgende Möglichkeiten:
-
Kopieren produktiver Daten ("Clonen" eines produktiven Datenbankabzugs)
-
Manuelle Eingabe und/oder
-
automatisches Generieren von künstlichen Testdaten
Das Kopieren von Produktivdaten für Testzwecke hat den oben beschriebenen Vorteil, dass realistische und praxisnahe Daten mit geringem Aufwand aus einem bestehenden System für die Tests erzeugt werden können.
Berücksichtigt werden muss dabei, dass es datenschutzrechtliche Einschränkungen bei personenbezogenen Daten gibt. Außerdem ist es wichtig, Risiken von Datenpannen auf Test- oder Produktivumgebungen gering zu halten. Während Produktivumgebungen oftmals unter intensiver Beobachtung stehen, sind Testsysteme häufig geringer reglementiert. Wenn eingesetzte Echtdaten in Testsystemen unerkannt bleiben, besteht die Gefahr, dass sie beispielsweise während Präsentationen, Schulungen oder in Schnittstellentests unverschlüsselt versendet werden. Grundsätzlich gilt zudem bei den Kopien der Produktionsdaten, dass die einmal exportierten Abzüge bei Datumsangaben altern und mit jedem Tag weiter in der Vergangenheit liegen, was bei dem Einsatz und der Pflege der Daten zu Aufwänden in der Aktualisierung führen kann.
Eine Alternative zum Einsatz von Produktivdaten zu Testzwecken stellen künstlich generierte (synthetische) Daten dar. Diese können sowohl manuell als auch automatisch erzeugt werden und haben den datenschutzrechtlichen Vorteil, dass es keinerlei Verbindung zu den personenbezogenen Echtdaten gibt. Als Herausforderung stellt sich dabei die Aufgabe, möglichst produktionsähnliche Testdaten zu erstellen sowie die Beziehungen zwischen beteiligten Tabellen oder verschiedenen Anwendungskomponenten konsistent zu halten.
Der richtige Mix aus den Verfahren ist zu empfehlen. Das beschriebene Spannungsfeld zwischen Brauchbarkeit und Sicherheit kann z.B. durch Pseudonymisierung und Anonymisierung der Echtdaten aufgelöst werden. Ausgewählte Produktivdaten bilden anonymisiert eine valide Grundlage, halten die gesetzlichen Vorgaben ein und können bei Bedarf durch synthetische Testdaten ergänzt werden.
Testdatenmanagement
Warum ist das Management unserer Testdaten so wichtig?
Neben dem Thema Datenschutz gibt es noch eine Reihe weiterer Aufgaben im Management von Testdaten: So muss beispielsweise nach der Durchführung der Tests dafür gesorgt werden, dass die "verbrauchten" Daten wieder zurückgesetzt werden, um die Tests wiederholen zu können. Der Datenbestand sollte möglichst schnell erstellt und aktualisiert werden können, um auch die Alterung der Daten im Griff zu behalten. Der Einsatz von Tools zur Automatisierung dieser Schritte sowie die Kontrolle der Gültigkeit der Daten und ihre Pflege auch über verschiedene Komponenten hinweg gehören ebenfalls zum Testdatenmanagement.
Das Management der Testdaten ist eine vielseitige Aufgabe und sollte einen hohen Stellenwert als Grundvoraussetzung für effiziente Softwaretests haben. Denn erst durch die richtigen Testdaten können Testfälle realitätsnah und qualitativ hochwertig ausgeführt werden.
Testdatengeneratoren
Entwickler und Tester benötigen häufig große Datenmengen, um Anwendungen umfassend testen zu können. Unterstützen können dabei Tools, die automatisch umfangreiche Daten für den Einsatz bei Softwaretests erzeugen.
Vorteile:
-
können große Datenmengen zeitsparend erzeugen
-
sind jederzeit reproduzierbar
-
menschliche Fehlerquellen werden vermieden
-
ermöglichen hohe Testabdeckung
Nachteile:
-
spiegeln nicht die Vielfalt und Komplexität der realen Welt
-
garantieren häufig nicht die Validität über Komponentengrenzen hinaus
Die Unterstützung durch Tools ist für verschiedene funktionale wie auch nicht-funktionale Tests (z.B. Last- und Performancetests) möglich.
Eine Liste verschiedener Tools (die wir aber nicht evaluiert haben und daher auch nicht explizit empfehlen) zur Testdatengenerierung finden Sie hier.
Quellen
-
Abbildungen Anwendungsbeispiel: FLATICON, Freepik Company S.L. Autor*in: juicy_fish, abgerufen am 27.11.2024
-
ISTQB Glossary Testdaten Version1, abgerufen am 21.08.2024
-
ISTQB Glossary Testdaten Version2, abgerufen am 21.08.2024
-
ISTQB Glossary Testdaten Version3, abgerufen am 21.08.2024
-
A. Spillner, T. Linz - Basiswissen Softwaretest, 7. Auflage, 2024
-
SIGS DATACOM Fachinformation für IT-Professionals, Keine Daten? Keine Tests! Effizientes Testdatenmanagement, abgerufen am 18.07.2024
-
aqua cloud GmbH, Wie man das Testmanagement organisiert, abgerufen am 16.08.2024
-
Guru99, 15 besten Testdaten Generatoren, abgerufen am 19.08.2024