Zum Inhalt springen

Suchen...

Synthetische Testdaten

Wer Testdaten manuell baut oder aus Produktivdaten ableitet, riskiert DSGVO-Probleme und findet kaum neue Fehler. Wie synthetische Generierung das löst.

8 Min. Lesezeit
Cover für Synthetische Testdaten

Synthetische Testdaten sind maschinell generierte Eingabedaten, die aus formalen Schemas wie XML- oder JSON-Schemas abgeleitet werden, ohne Produktivdaten zu verwenden. Sie erfüllen Datenschutzvorgaben, bilden komplexe Strukturen korrekt ab und decken systematisch Extremwerte sowie strukturelle Sonderfälle ab, um Fehler in Software zu finden, die manuell erstellte Testdaten übersehen würden.

Das Wichtigste in Kürze

  • Synthetische Testdaten aus Schemas zu generieren löst zwei Kernprobleme gleichzeitig: komplexe Datenstrukturen lassen sich automatisiert erzeugen, und Datenschutzvorgaben nach DSGVO sind erfüllt, weil keine Produktivdaten benötigt werden.
  • Bei jedem System, das bisher mit diesen generierten Testdaten geprüft wurde, wurden Fehler gefunden, weil nicht automatisiert getestete Software fast immer unentdeckte Defekte enthält.
  • Gültige elektronische Rechnungen werden von verbreiteten Implementierungen wie Mustang als ungültig abgewiesen, zum Beispiel wegen nicht implementierter Rundungsfaktoren für bestimmte Währungen, was zu unbezahlten Rechnungen und unerwarteten Mahnungen führt.
  • Neben reiner Datenmenge optimiert der Ansatz den Informationsgehalt pro Testdatenpaket: Extremwerte, leere Felder und strukturelle Varianten werden gezielt eingestreut, sodass bereits 1.000 Datensätze hohe Abdeckung erreichen können.

Warum Testdaten so oft zum Engpass werden

Testdaten sind eines der wiederkehrenden Probleme in Software-Projekten. Sie verursachen Aufwand, blockieren Pipelines und liefern am Ende oft nicht die Aussagekraft, die man sich von ihnen erhofft. Das hat zwei Hauptgründe.

Der erste Grund ist Komplexität. Wer ein System mit realistischen Eingaben testen will, muss Daten bauen, die einem oft hochkomplexen Format folgen. Ein Beispiel ist die elektronische Rechnung, die im B2B-Bereich schrittweise verpflichtend wird. Wer sich den zugrunde liegenden Standard ansieht, erkennt schnell, dass solche Datensätze manuell zu erzeugen extrem aufwendig ist.

Der zweite Grund ist Datenschutz. Eine Rechnung verweist auf Menschen, also auf personenbezogene Daten. Nach DSGVO lässt sich damit nicht ohne Weiteres testen. Die übliche Reaktion: Daten verfremden, Felder auf null setzen, Werte durch generische Platzhalter ersetzen, Datensätze durchmischen.

Genau hier entsteht ein Dilemma. Verfremdet man zu wenig, steht man rechtlich mit einem Bein im Gefängnis. Verfremdet man stark, findet man kaum noch neue Fehler, weil die Daten in ähnlicher Form schon einmal existierten. Daten, die nichts Neues enthalten, lösen auch kein neues Verhalten aus.

Synthetische Testdaten aus Schemas statt aus Produktivdaten

Ein alternativer Ansatz erzeugt Testdaten direkt aus Schemas, nicht aus Produktivdaten. Grundlage sind strukturierte Datenformate wie XML-Schemas, JSON-Schemas oder tabellarische Strukturen aus Datenbanken. Aus dieser Beschreibung lassen sich massenhaft Daten generieren, die korrekt aussehen und die nötige Integrität besitzen.

Der Vorteil liegt im Datenschutz. Wer nur die Beschreibung eines Formats braucht, braucht keine Produktivdaten. Damit ist der Prozess vollständig datenschutzkonform, weil keine echten personenbezogenen Daten im Spiel sind. Das unterscheidet diesen Weg von Verfahren, die KI-Modelle auf Produktivdaten trainieren.

Dieser Unterschied ist mehr als eine technische Feinheit. Trainiert ein Modell auf echten Daten, bleibt intransparent, was am Ende in die generierten Testdaten einfliesst, gerade bei grossem Umfang. Wer von vornherein keine Produktivdaten verarbeitet, kann diesen Fehler gar nicht machen.

Wir brauchen keine Produktivdaten, wir brauchen nur ein Schema. Deswegen können wir auch keinen Unfug treiben.

Dominic Steinhöfel

Wie aus einer Formatbeschreibung Testdaten werden

Im Kern wird ein Schema in ein formales Modell übersetzt, auf dem die Generierung stattfindet. Dieses Modell beschreibt die Syntax des Datenformats und zugleich alle Arten von Einschränkungen. Alles, was an Anforderungen dazukommt, wird in dieses Modell hineinprojiziert, und auf dem Modell wird dann gelöst.

Auf das reine Schema lassen sich zusätzliche Bedingungen draufsetzen. Ein Feld muss einen bestimmten Wert haben, ein Name eine Mindestlänge einhalten. Solche Vorgaben kann der Nutzer spezifizieren, und sie fliessen in die Generierung ein.

Für XML lassen sich auch komplexe Constraints über sogenannte Schematron-Regeln lösen. Ein konkretes Beispiel: Die einzelnen Posten einer Rechnung müssen sich zur korrekten Summe aufaddieren, inklusive Rundungsfaktor und Steuersatz. Solche Rechenbedingungen, Summen und Maxima lassen sich in gewissem Umfang auflösen.

Die Hürde liegt nicht in der Technik, sondern in der Bedienbarkeit. Schematron zu beherrschen ist anspruchsvoll, das lässt sich von normalen Anwendern nicht erwarten. Die offene Aufgabe besteht darin, die Lücke zwischen einer einfachen Anforderung wie “die IBAN soll gültig sein” und der dahinterliegenden formalen Regel zu schliessen. Aktuell übersetzen das noch Menschen im direkten Kontakt mit den Pilotpartnern in Post-Processing oder Schematron-Regeln.

Was eine gute Abdeckung bei Testdaten ausmacht

Masse allein macht keine guten Testdaten. Entscheidend ist, wie viel ein Datenpaket abdeckt. Deshalb wird getrackt, was bisher schon variiert wurde, um pro Datenpaket möglichst viel Information unterzubringen, statt blind tausende ähnliche Datensätze zu erzeugen.

Daraus lassen sich Abdeckungsgarantien ableiten. Eine Aussage kann lauten, dass alle strukturellen Feinheiten eines Formats getestet wurden, oder bei sehr grossen Formaten etwa 70 Prozent davon. Diese Messbarkeit hebt die Qualität der Testdaten über reines Mengen-Generieren hinaus.

Interessant ist die Praxiserfahrung mit der Menge. Nicht jeder will riesige Datenbestände, weil jede Eingabe durch die eigene Pipeline laufen und jede Ausgabe analysiert werden muss. Manche Teams nennen tausend Eingaben als ihr Maximum. Wer wenig generiert, aber dabei viel abtestet, spart sich die Auswertung von Bergen redundanter Daten.

Testmethodik: Zufall und Extremwerte gehören zusammen

Gute Testdaten mischen Zufall mit gezielten Extremwerten. Rein kontrollierte Daten übersehen Fehler, deshalb ist der Zufall eine Art Superpower. Gleichzeitig braucht es gezielte Grenzfälle, denn dort stecken oft die Bugs.

Für XML wurde dazu eine Domain-Analyse der primitiven Datentypen gemacht, um gezielt Extremwerte einzustreuen. Klassische Methoden der Grenzwertanalyse sind so abgedeckt: Felder, die bisher nicht leer waren, werden leer gesetzt, ein Fliesskomma-Wert, der noch nicht unendlich war, wird auf unendlich gesetzt.

Sicherheit ist Teil des Ansatzes, aber nicht der Kern. Innerhalb der Rahmenbedingungen eines Formats lassen sich in Stringfelder dokumentierte Angriffsmuster einbauen, etwa SQL-Injections oder XML-Attacken aus Katalogen wie denen der OWASP. Der Schwerpunkt liegt aber auf Robustheit: ein System gezielt zum Absturz bringen, damit das im Produktivbetrieb nicht passiert.

Damit besetzt der Ansatz eine eigene Nische zwischen zwei Polen. Er testet das, woran Entwickler nicht denken, und das, was Pentester nicht abdecken, weil diese gezielt nach ihren Hintertürchen suchen. Pentester und ihre Werkzeuge behalten ihre Berechtigung, der Rest dazwischen bleibt sonst oft ungetestet.

Warum jedes ungetestete System Fehler enthält

Eine pragmatische Faustregel: Wer mit synthetischen Testdaten gegen ein System antritt, das nie automatisiert getestet wurde, findet Fehler. In bisher allen getesteten Systemen wurden welche gefunden. Wenn keine Fehler auftauchen, ist die Software meist schlicht nicht interessant genug.

Das gilt selbst bei hohem Qualitätsanspruch. Ein Pilotpartner aus dem Telekommunikationsbereich testet ein XML-Protokoll für die Rufnummern-Mitnahme, das früher noch per Fax lief. Trotz eines Anspruchs weit über dem Üblichen tauchen Fälle auf, bei denen das Team feststellt, dass etwas nicht hätte passieren dürfen.

Elektronische Rechnungen: ein Praxisfall mit realem Schaden

Bei elektronischen Rechnungen zeigt sich, wie teuer schlecht getestete Verarbeitung wird. Getestet wurde unter anderem das öffentlich verfügbare Werkzeug Mustang aus dem Umfeld des ZUGFeRD-Formats, eines der beiden deutschen Formate für elektronische Rechnungen neben der X-Rechnung.

Die gefundenen Fehler reichen von kleinen Ungenauigkeiten bis zu Abstürzen oder dem Abweisen gültiger Rechnungen. Ein konkretes Beispiel: Bei Summen ist ein Rundungsfaktor von 0,05 zulässig. Für den ungarischen Forint liegt dieser Faktor deutlich höher, weil die Währung weniger wert ist. Genau das war nicht implementiert.

Die Folge ist ein realer Schaden im Geschäftsalltag. Eine gültige Rechnung aus Ungarn wird vom Empfängersystem ohne Rückmeldung fallen gelassen. Der Rechnungssteller bekommt sein Geld nicht rechtzeitig. Der Empfänger erhält stattdessen eine Mahnung und versteht nicht, warum, obwohl eigentlich alles funktioniert haben sollte.

Solche Fälle gewinnen an Brisanz, weil elektronische Rechnungen schrittweise zur Pflicht werden. Im B2B-Bereich wird das bis 2028 verbindlich. Wer Rechnungen verschickt oder empfängt, will mit so etwas keinen Stress haben. Der neue Prozess soll mindestens so zuverlässig funktionieren wie der alte.

Abhängigkeiten, Referenzen und Protokolle als nächste Stufe

Komplexe Testdaten brauchen mehr als isolierte Werte. Über die formale Modellierung lassen sich Schlüssel, Abhängigkeiten und Referenzen einkodieren. In XML gibt es etwa ID-Felder, die untereinander stimmig sein müssen, und genau solche Beziehungen lassen sich auflösen.

Eine eigene Schwierigkeit sind Protokolle. Hier bestehen Abhängigkeiten zwischen verschiedenen Paketen, was Protokolltesten zu einem anspruchsvollen Feld mit viel Forschung dahinter macht. Was als Nächstes umgesetzt wird, richtet sich nach dem konkreten Bedarf der Pilotpartner.

Die Bandbreite der Praxisfälle zeigt, wie unterschiedlich die Anforderungen sind. Getestet werden umfangreiche OpenAPI-Spezifikationen für Cloud-Dienste sowie das CAMT-Format aus dem Cash Management, zu dem auch SEPA-Überweisungen gehören, praktischerweise ebenfalls ein XML-Format.

Wenn in Daten mehr Logik steckt als gewollt

Ein heikler Punkt bleibt die Herausgabe von Schemas. Der Ansatz versteht sich als Test Data as a Service, bei dem das Schema vom Kunden kommen muss. Vertraulichkeit wird über NDAs geregelt, ein Betrieb der Lösung in der Inhouse-Infrastruktur des Kunden ist nicht vorgesehen.

Das Argument: Übertragen wird das Datenformat, also Struktur und Anforderungen, nicht die echten Daten, die meist die eigentlichen Geschäftsgeheimnisse enthalten. Für viele Fälle senkt das die Hürde deutlich.

Doch dieser Trennstrich ist nicht immer sauber zu ziehen. Gerade in gewachsenen Altsystemen steckt in der Datenstruktur manchmal mehr Logik, als einem lieb ist. Wer Schemas externalisiert, sollte vorab prüfen, wie viel fachliches Wissen die blosse Formatbeschreibung schon preisgibt.

Häufig gestellte Fragen

Synthetische Testdaten sind künstlich generierte Datensätze, die reale Daten simulieren, jedoch keine sensiblen Informationen enthalten. Sie werden genutzt, um Datenschutzrichtlinien einzuhalten, komplexe Testszenarien abzubilden und Produktivdaten durch sichere Alternativen zu ersetzen.

Die Erstellung von Testdaten ist oft durch komplexe Datenanforderungen geprägt, insbesondere bei elektronischen Rechnungen. Manuelle Datengenerierung ist zeit- und kostenintensiv. Zudem müssen Datenschutzbestimmungen und Anonymisierungsvorgaben strikt eingehalten werden, was die Nutzung von Produktivdaten erschwert.

Zur Generierung synthetischer Testdaten werden verschiedene Methoden angewandt, darunter die Nutzung von Formatbeschreibungen wie XML oder JSON, mathematische Modelle zur Simulation unterschiedlicher Datenstrukturen sowie die Erzeugung strukturierter und valider Daten basierend auf Datenbankschemata.

Synthetische Testdaten gewährleisten Datenschutzkonformität durch Anonymisierung, erlauben die Abbildung vielfältiger Strukturen und Extremwerte sowie gezielte Spezifikationsverletzungen für Robustheitstests. Sie ermöglichen somit umfassendere und sicherere Testszenarien.

In Projekten zur elektronischen Rechnungsstellung und Banktransfers kommen synthetische Testdaten zum Einsatz, beispielsweise für Tests mit XML-basierten Formaten wie CAMT. Tools wie das Mustang Tool unterstützen die Validierung von X-Billing-Formaten in Deutschland mithilfe solcher Daten.

Bis 2028 wird die verpflichtende Einführung elektronischer Rechnungen in verschiedenen Branchen erwartet. Synthetische Testdaten spielen dabei eine zentrale Rolle zur Qualitätssicherung und Systemkompatibilität, insbesondere im Umgang mit Legacy-Systemen und datengetriebenen Testszenarien.

Diese Seite teilen

Ähnliche Beiträge