Testdaten

R 2.5.0

Was sind Testdaten?

Was sind Testdaten?

Für die Testdurchführung benötigte Daten.

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.

Die Daten, die erzeugt oder ausgewählt werden, um für die Durchführung eines oder mehrerer Testfälle Vorbedingungen zu erfüllen und Eingaben für die Durchführung bereit zu stellen. (ISTQB)

Testdaten umfassen alle Daten, welche vor der Ausführung eines Testfalls zur Verfügung stehen müssen.

Anwendungsbeispiel

Anwendungsbeispiel
ALT MISSING

Benno, der Schülerpraktikant, war ganz aufgeregt: „Schau mal Eddy, ich habe zur Vorstellung sämtlicher Mitglieder unserer Abteilung eine Webseite in unserem Intranet angelegt: "Das sind wir"! Ist das nicht eine tolle Ergänzung?“

ALT MISSING

Eddy blickte auf die Eingabemaske der neu entwickelten Anwendung. Die Software diente dem Austausch von Daten mit verschiedenen Sicherheitsbehörden. Gedanklich war er darauf fokussiert und brummte etwas vor sich hin, was eine Anerkennung sein mochte. Im Übrigen meinte er Benno mehrfach aufgetragen zu haben die Testumgebung und ihre Schnittstellen zu den Systemen anderer Behörden zu überprüfen. Wo waren die jungen Leute bloß immer mit ihren Gedanken? Er war dabei Datensätze anzulegen, bevor dann morgen mit dem Systemtest angefangen wurde. Die Testdatenbank war über Nacht neu aufgesetzt worden und vollkommen leer. Wie alle geübten Tester hatte Eddy im Lauf der Jahre eine Affinität zu bestimmten Personen seiner Phantasie entwickelt, die er immer wieder zum Testen einsetzte. Flugs füllte sich die Datenbank dann auch mit Donald Ducks, Micky und Minnie Mäusen. Aber die üblichen Verdächtigen taten es heute nicht, da mussten noch weitere Datensätze folgen. Sein Blick schweifte über den Parkplatz. Die Autos der meisten Mitarbeiter kannte er, und konnte deren Namen aus den Kennzeichen ableitend schnell eingeben. Ein paar Bilder fehlten noch. „Woher nehmen und nicht stehlen“, nachdenklich blickte er auf den Desktop seines Computers, bis er auf die geöffnete Seite von Benno mit den Gesichtern der Kolleginnen und Kollegen sah.

ALT MISSING

Abteilungsleiter Dr. Brachtfeld musterte sich vor dem Spiegel und zog die Fliege am Kragen seines sich bedenklich über dem Bauch spannenden Hemdes zurecht. Schnell hastete er aus der Haustür in den bereitstehenden Wagen. Die Zeit wurde knapp und es bildeten sich Staus auf dem Weg zu seinem Termin. Jetzt fing es auch noch an zu regnen und die abgenutzten Scheibenwischer seines Dienstfahrzeuges zeichneten Schlieren auf der Windschutzscheibe. Fast hätte er die sich senkende Kelle der Polizeistreife am Straßenrand übersehen. Es gab keinen Zweifel, er war gemeint. Langsam zog er den Wagen auf den Seitenstreifen.

ALT MISSING

Polizeiobermeister Lampe prüfte die Fahrzeugpapiere und Brachtfelds Führerschein genau. „Einen Moment“, bat er, „ich gebe die Daten noch in den Fahndungscomputer ein“. Dr. Brachtfeld rutschte nervös auf dem Sitz hin und her. Die Zeit lief ihm davon. Der Polizeibeamte kam schnell wieder. Nunmehr hatte sich seine Miene verfinstert. „So so, wen haben wir denn hier? Sind Sie jetzt ‚Dr. Brachtfeld’ oder die süße ‚Minnie Maus‘?“ sagte er ernsthaft. „Wer weiß was da alles in Ihrem Koffer steckt?“ Dr. Brachtfeld konnte nicht folgen. „Ich habe es doch eilig“, stieß er hervor und verstärkte damit das Misstrauen seines Gegenübers. Als er nach der Aufforderung auszusteigen und sich an das Wagendach zu lehnen noch eine ruppig durchgeführte Durchsuchung nach Waffen über sich ergehen lassen musste, sank seine Laune auf den Tiefpunkt. Das besserte sich nicht als der Polizeiobermeister ihm die Arme auf den Rücken drehte und Handschellen anlegte.

ALT MISSING

„Hast Du schon gehört, was dem Abteilungsleiter widerfahren ist?“, Monika hatte hektische Flecken im Gesicht. Sie erzählte den Vorfall in allen Einzelheiten. "Und er musste einen halben Tag in der JVA Ossendorf verbringen, bevor er gehen durfte. Immerhin war’s von dort aus nicht mehr weit bis zum Amt…" Als sie den Namen Maus erwähnte und das dazu passende, von ihm ausgewählte Geburtsdatum, überkam Eddy eine leichte Nervosität. „Was mag da schiefgelaufen sein?“, dachte er. „Wir müssen die gesamte Testumgebung durchchecken. Sind auch alle Schnittstellen zu externen Behörden entweder durch Dummies belegt oder haben wir gegen ein Produktionssystem einer anderen Behörde getestet?“ Aus dem Augenwinkel bemerkte er, wie Benno ganz bleich wurde. Oje, hatte der ahnungslose Praktikant da etwas übersehen?

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.

ALT MISSING
Abb. 1: Testdaten

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?

Das Testdatenmanagement umfasst die strategische Planung, Erstellung, Pflege und Bereitstellung von Daten für Softwaretests.

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