testdatatools
Praktische Entscheidungshilfe

Testdaten anonymisieren und Produktionsdaten für Tests aufbereiten

Stell dir diesen Testfall vor. Ein Kunde meldet, dass eine bezahlte Bestellung in seiner Übersicht fehlt. Dein Team übernimmt einen kleinen Ausschnitt ins Testsystem. Namen und E-Mail-Adressen werden ersetzt. Der Import läuft durch. Trotzdem bleibt die Übersicht leer.

Redaktionell geprüft: · Quellen und Geltungsbereich unten

In der Kundendatenbank wurde aus original-a@example.invalid die Adresse customer-1@example.invalid. Der Bestellservice hat für dieselbe Person customer-87@example.invalid erzeugt. Die Anwendung verbindet beide Systeme über diese Adresse. Jede Datenbank ist für sich konsistent. Der gemeinsame Ablauf ist kaputt.

Dieses Szenario ist ein konstruiertes Engineering-Beispiel. Es zeigt, warum Testdaten-Anonymisierung beim Verhalten der Anwendung anfangen muss. Welche Information braucht der Test? Welche Beziehung hält den Ablauf zusammen? Welche Originalwerte können verschwinden?

Wir verfolgen den Fall durch die Aufbereitung bis zur Abnahme. Am Ende soll Kunde 1 seine zwei bezahlten Bestellungen über zusammen 30.000 Cent sehen. Die ursprüngliche E-Mail-Adresse und persönliche Notizen braucht dieser Test dafür nicht.

Die Beziehung, die im Schema fehlt

Ein Foreign Key zwischen zwei Tabellen lässt sich im Datenbankmodell finden. Eine Verknüpfung zwischen Kundenservice und Bestellservice kann ausschließlich im Anwendungscode stehen. Auch ein externer Schlüssel in einem JSON-Feld gehört dann zur Testvorbereitung.

Tonic beschreibt solche Beziehungen ausdrücklich, einschließlich nicht deklarierter Schlüssel und Beziehungen über Datenbankgrenzen. Daraus folgt für unseren Fall eine konkrete Aufgabe. Der gleiche Kunde braucht in beiden Systemen denselben Ersatzwert. Die Konsistenz muss für die verwendeten Felder und Läufe konfiguriert und geprüft werden. [5]

Für unseren kleinen Prüffall legen wir die Zuordnung vorab fest. Kunde 1 bekommt in beiden Systemen customer-1@example.invalid. Die Zuordnung gilt für den gesamten Testbestand. Bei echten Daten muss außerdem geprüft werden, welche zusätzliche Verknüpfbarkeit diese Stabilität schafft.

Was bedeutet Anonymisierung bei Testdaten?

Maskierung beschreibt Verfahren, mit denen Werte verändert oder verborgen werden. Anonymisierung betrifft die Frage, ob Personen anhand der verbleibenden Informationen noch identifizierbar sind. Pseudonymisierung ersetzt oder trennt identifizierende Informationen, kann aber eine Zuordnung mithilfe zusätzlicher Informationen weiterhin ermöglichen.

Eine ersetzte E-Mail-Adresse reicht deshalb als Nachweis für einen anonymen Datensatz nicht aus. Auch Bestellverläufe, seltene Merkmalskombinationen und Freitext können Informationen über Personen enthalten. Die Bewertung muss den konkreten Datensatz und seinen Verwendungskontext berücksichtigen. [1]

Welche Methode passt zu deiner Testumgebung?

Verfahren Was passiert? Typischer Einsatz Was du prüfen solltest
Statische Maskierung Veränderte Werte werden im Zieldatensatz gespeichert Wiederverwendbare Testdatenbank Welche Originalwerte bleiben in Ziel, Exporten oder Zwischenspeichern?
Dynamische Maskierung Die sichtbaren Werte hängen von Abfrage oder Berechtigung ab Eingeschränkte Einsicht in bestehende Daten Welche Rollen sehen weiterhin Originalwerte?
Transformation bei der Übertragung Werte werden auf dem Weg ins Ziel verändert Regelmäßige Testdatenbereitstellung Können Originalwerte in Staging oder Logs gelangen?
Regelbasierte Generierung Neue Datensätze entstehen aus festgelegten Regeln Definierte Grenzfälle und Tests ohne Produktionszeilen Stimmen Beziehungen, Constraints und erwartetes Verhalten?

Diese Ansätze können sich ergänzen. Beispielsweise kann eine maskierte Teilmenge einen realen Fehlerfall abdecken, während generierte Datensätze gezielt fehlende Grenzfälle ergänzen. [2]

Ein Beispiel mit Kunden und Bestellungen

Angenommen, dein Test soll bezahlte Bestellungen je Kunde anzeigen. Er benötigt Kundenbeziehungen, Status und Beträge. Die Original-E-Mail und interne Gesprächsnotizen werden für diese Prüfung nicht gebraucht.

Die folgenden Werte sind vollständig erfunden.

Feld Ausgangswert Wert im Testziel Begründung
Kunden-ID 1 1 Verknüpft den erfundenen Kunden mit seinen Bestellungen
Name Demo Person A Testkunde 1 Der Test braucht einen darstellbaren Namen
E-Mail original-a@example.invalid customer-1@example.invalid Ein eindeutiger Ersatzwert genügt
Interne Notiz Erfundene persönliche Notiz A NULL Für diesen Test ohne Funktion
Bestellstatus paid paid Steuert die fachliche Auswahl
Betrag in Cent 10000 10000 Wird für die erwartete Summe benötigt

Bei echten Produktionsdaten kann bereits eine unveränderte Kunden-ID eine Verbindung zu anderen Systemen ermöglichen. Falls IDs ersetzt werden, muss dieselbe Zuordnung in allen benötigten Beziehungen gelten. Ebenso ist zu prüfen, ob exakte Beträge oder Verläufe für den vorgesehenen Empfängerkreis zu viel Information erhalten. Das Beispiel zeigt die Abwägung zwischen Testzweck und Datenminimierung.

In fünf Schritten zum prüfbaren Ergebnis

1. Den Testfall festlegen. Schreibe vor der Transformation auf, welche fachliche Abfrage erfolgreich sein muss. Beispielsweise soll Kunde 1 genau zwei bezahlte Bestellungen mit insgesamt 30.000 Cent besitzen.

2. Den benötigten Ausschnitt bestimmen. Wähle die relevanten Kunden und Bestellungen einschließlich erforderlicher abhängiger Datensätze. Eine zufällige Auswahl einzelner Tabellen kann Beziehungen zerstören.

3. Felder und Inhalte inventarisieren. Prüfe auch JSON-Felder, Notizen, Anhänge und technische Protokolle. Eine Liste offensichtlicher Spaltennamen erfasst den Inhalt einer Datenbank nur teilweise.

4. Transformationen ausführen. Halte fest, welche Regel zu welchem Feld gehört. Berücksichtige Eindeutigkeit, Nullwerte, Feldlängen und Beziehungen. Die Testumgebung bekommt erst nach den vereinbarten Prüfungen Zugriff auf das Ergebnis.

5. Den bereitgestellten Bestand prüfen. Führe die Prüfungen nach dem Import ins endgültige Ziel erneut aus. Damit erfasst du auch Fehler beim Export und Restore.

Was muss die Abnahme zeigen?

Prüfung Erwartung im Beispiel
Anzahl Kunden und Bestellungen Entspricht dem festgelegten Ausschnitt
Beziehungen Jede Bestellung gehört zu einem vorhandenen Kunden
E-Mail-Adressen Alle entsprechen der definierten Ersatzregel
Freitext Die ausgeschlossenen Notizen sind leer
Fachliches Ergebnis Kunde 1 hat zwei bezahlte Bestellungen über zusammen 30.000 Cent
Bereitstellungsweg Zielzugriff, Zwischenablagen und Artefakte entsprechen dem vorgesehenen Verfahren

Diese Checks prüfen konkrete Anforderungen. Zusätzlich braucht ein realer Datensatz eine Bewertung der verbleibenden Identifizierbarkeit. Ein fehlerfrei beendeter Transformationsjob beantwortet diese Frage allein nicht. [1]

Welche Tools kommen infrage?

Die vier Anbieter beschreiben überlappende Fähigkeiten. Für die Auswahl lohnt sich deshalb ein Blick auf den konkreten Ablauf und seine Grenzen. Die folgende Einordnung basiert auf den verlinkten Herstellerquellen, geprüft am 4. November 2026. Praktische Produktmessungen liegen für diesen Artikel noch nicht vor.

Anbieter Was die Quelle für diesen Zusammenhang beschreibt Was unser Prüffall klären muss
DATAMIMIC De-Identifizierungsablauf von Quellmetadaten über geprüfte Feldzuordnungen und ein editierbares Modell bis zur Ausführung Sind die relevanten Felder erkannt und überprüft, und bleibt die Zuordnung desselben Kunden über beide Ziele erhalten?
Delphix Maskierung und Bereitstellung virtueller Datenkopien, einschließlich Refresh und Rewind Bleiben die zusammengehörenden Datenstände und Maskierungsregeln nach einem Refresh konsistent?
GenRocket Synthetische Generierung sowie Transformation bestehender Daten, darunter angekündigtes In-Place Masking Unterstützt die verfügbare Version unseren Datenbanktyp und die benötigten Transformationen?
Tonic Structural Konsistente Transformationen, verknüpfte Generatoren und virtuelle Fremdschlüssel Sind auch die Beziehungen erfasst, die ausschließlich im Anwendungscode bestehen?

Quellen zu den vier Einordnungen stehen unter [5–8]. Die GenRocket-Ankündigung vom Januar 2026 nennt Oracle und SQL Server für den ersten Release. PostgreSQL wurde dort als geplant aufgeführt. Daraus lässt sich seine heutige Verfügbarkeit nicht ableiten. [7]

Prüfe für jeden Kandidaten die dokumentierten Schritte, benötigten Connectoren und die verfügbare Edition anhand derselben Anforderungen.

Nutze dafür die Vergleichszentrale und gib jedem Kandidaten denselben kleinen Prüfauftrag. Halte den Aufwand bis zum ersten fachlich korrekten Ergebnis fest. Ergänze anschließend eine geänderte Regel und einen Wiederholungslauf.

Der zweite Fehler fehlt in der Produktionskopie

Nachdem die Übersicht wieder funktioniert, ergänzt das Team einen Regressionstest. Was passiert, wenn dieselbe Bestellung zweimal eingeht? In unserem Ausschnitt existiert dieser Fall nicht. Eine größere Kopie würde ihn ebenfalls nur dann liefern, wenn er dort bereits vorkommt.

Jetzt lässt sich der Fall gezielt ergänzen. Zwei Nachrichten tragen dieselbe Bestell-ID. Die Anwendung soll eine Bestellung erzeugen und den zweiten Eingang nach der vereinbarten Regel behandeln. Das erwartete Ergebnis wird vor der Datenerzeugung festgelegt.

Damit entstehen zwei nachvollziehbare Entscheidungen. Für die Untersuchung eines bestehenden Fehlers kann ein aufbereiteter Ausschnitt sinnvoll sein. Für einen genau beschriebenen Grenzfall kann ein generierter Datensatz genügen. DATAMIMIC und GenRocket greifen die Abhängigkeit von Produktionsdaten in ihren Beiträgen auf. Ihre Produktdarstellungen ersetzen die Prüfung des konkreten Szenarios nicht. [7–8]

Was nach dem nächsten Refresh noch stimmen muss

Ein weiterer Export soll denselben Regressionstest ermöglichen. Prüfe deshalb nach jeder Bereitstellung erneut die Zuordnungen, die benötigten Datensätze und die fachliche Abfrage. Delphix macht Refresh und Rewind zu einem Teil seiner Darstellung des gesamten Bereitstellungsablaufs. Für den Leser folgt daraus eine praktische Frage. Wie kommt das Team nach einer Änderung wieder zu einem bekannten, geprüften Testzustand? [6]

Unser Fall endet mit einer eindeutigen Erwartung. Kunde 1 sieht genau die Bestellungen 101 und 102 mit insgesamt 30.000 Cent. Die ursprüngliche E-Mail und die Notiz sind entfernt. Der zusätzlich definierte Duplikatfall hat ein eigenes erwartetes Ergebnis. Diese Anforderungen kannst du einem Anbieter geben und anschließend selbst prüfen.

Weiterführend helfen der Ratgeber zu Testdaten ohne Produktionsdaten, der PoC-Prüfauftrag und der PostgreSQL-Praxisartikel.

Quellen zum Artikel

  1. BfDI — Kurzposition zu Testdaten, Stiftung Datenschutz — Praxisleitfaden zur Anonymisierung.
  2. ISO — Data masking, Greenmask — Dokumentation, bestehender Masking-Ratgeber mit produktspezifischen Quellen.

  3. Tonic — Maintaining relationships and referential integrity.

  4. Perforce Delphix — Test data management.
  5. GenRocket — In-Place Masking, Ankündigung vom 14. Januar 2026.
  6. DATAMIMIC — De-identification workflow, DATAMIMIC — Masking, anonymization and synthetic data.

So prüfen wir Quellen

Wähle den nächsten Schritt