Zum Inhalt springen

Suchen...

Testdaten und Datenprozesse

Produktionsdaten decken oft nur 70 % der Testfälle ab. Wie man Datenprozesse systematisch testet und Business und IT dabei auf eine Wellenlänge bringt.

8 Min. Lesezeit
Cover für Testdaten und Datenprozesse

Datenprozesse testen bedeutet, maschinell generierte Output-Daten gegen ein Soll-Ergebnis zu prüfen, das direkt aus der fachlichen Spezifikation abgeleitet wird. Dabei entstehen Äquivalenzklassen aus Fallunterscheidungen, die automatisch Testabdeckung erzeugen. Produktionsdaten decken erfahrungsgemäß rund 70 Prozent der Fälle ab; die restlichen 30 Prozent werden gezielt synthetisch ergänzt.

Das Wichtigste in Kürze

  • Produktionsdatenbestände decken im Test nur rund 70 Prozent der Fallkonstellationen ab, weil seltene Grenzfälle dort schlicht nicht vorkommen und deshalb unentdeckt bleiben.
  • Fachbereiche können Datenfehler in Verarbeitungsprozessen nur dann zuverlässig erkennen, wenn die Ergebnisse visuell und ohne SQL-Kenntnisse nachvollziehbar dargestellt sind.
  • Automatisch generierte Soll-Ergebnisse auf Basis der fachlichen Spezifikation ersetzen manuelle Einzeltestfälle und liefern bei gleichem Aufwand eine höhere Testabdeckung.
  • Das Regelwerk für den Datenvergleich kann gleichzeitig als Fachfeinspezifikation dienen, weil es die Abbildungslogik präzise und für Nicht-Techniker verständlich beschreibt.
  • KI kann in diesem Kontext sinnvoll als Assistenz eingesetzt werden, etwa um SQL-Abfragen zu generieren und visuell darzustellen, nimmt dem Fachbereich aber nicht die inhaltliche Prüfverantwortung ab.

Datenfehler tauchen zu spät auf, wenn der Fachbereich nicht an die Daten kommt

Fehler in Datenverarbeitungsprozessen werden in vielen Unternehmen erst spät entdeckt, weil das Wissen über die Daten und der Zugriff auf sie auseinanderfallen. Die IT-Abteilung kommt technisch problemlos an die Daten heran, hat aber nicht das fachliche Verständnis, um inhaltliche Datenfehler zu erkennen. Der Fachbereich hätte das Verständnis, aber nicht den Zugriff.

In der Praxis führt das zu einem umständlichen Pingpong. Die Fachabteilung denkt sich einzelne Testfälle aus, bekommt dafür Daten geliefert und prüft sie manuell. Das deckt nur einen Bruchteil der möglichen Fälle ab und kostet viel Zeit.

Je später ein Fehler entdeckt wird, desto mehr Aufwand produziert er. Genau deshalb lohnt es sich, das Testen von Daten so früh wie möglich anzusetzen, idealerweise schon während der Entwicklung der Verarbeitungslogik.

Was unterscheidet Datenqualität vom Testen von Datenprozessen?

Datenqualität und das Testen von Datenprozessen sind zwei verschiedene Aufgaben. Beim reinen Datenqualitätsthema bekommt man Daten geliefert, ohne zu wissen, wie sie entstanden sind, und kann nur auf Plausibilität prüfen.

Ein Beispiel: Bei einer Liste lebender Personen ist ein Geburtsdatum von 1810 unwahrscheinlich. Mehr als diese Plausibilitätsprüfung ist nicht möglich, weil weder die Eingabedaten noch die Abbildungsvorschrift bekannt sind.

Beim Testen von Datenprozessen liegt dagegen eine fachliche Spezifikation vor, wie Eingabedaten in Ausgabedaten transformiert werden sollen. Hier lässt sich ein Soll-Ergebnis bilden und gegen das Ist-Ergebnis halten. Die Frage lautet dann: Wurden die Ausgabedaten entsprechend der fachlichen Spezifikation produziert?

Soll-Ergebnisse systematisch generieren statt Einzeltestfälle bauen

Der wirksamere Ansatz ist, Soll-Ergebnisse systematisch zu erzeugen und vollständig mit den Ist-Ergebnissen zu vergleichen, statt einzelne Testfälle von Hand zu definieren. Grundlage dafür sind fachliche Regeln, die die Fachabteilung ohnehin festlegen muss, um die Datenabbildung zu beschreiben.

Aus diesen Regeln lässt sich automatisch ein Soll erzeugen, das man sogar auf den vollständigen Produktionsdatenbestand anwenden kann. Jede Zeile, jede Spalte lässt sich so prüfen.

Der Aufwand bleibt dabei überschaubar. Wer dieselbe Abdeckung mit manuellen Testfällen erreichen will, braucht mindestens genauso lange und kommt trotzdem auf eine schlechtere Testqualität, weil er gar nicht so viele Fälle abbilden kann.

Produktionsdaten decken nur einen Teil der Fälle ab

Wendet man die automatische Soll-Generierung auf den Produktionsbestand an, deckt das in der Praxis oft nur etwa 70 Prozent der relevanten Fälle ab. Die fehlenden 30 Prozent müssen ergänzt werden, um eine weitreichende Abdeckung zu erreichen.

Der Grund liegt in der fachlichen Logik selbst. Durch die Fallunterscheidungen bilden sich auf natürliche Weise Äquivalenzklassen. Gibt es für eine Fallunterscheidung keine passenden Daten, etwa für den Fall “Alter größer 90”, weiß man nicht, ob der Prüfling in diesem Fall korrekt arbeitet.

Solche Lücken fallen erst auf, wenn später ein realer Fall eintritt und schiefläuft. Wer nur Produktionsdaten nutzt, testet diese Konstellationen schlicht nicht. Deshalb reichert man die anonymisierten 70 Prozent aus der Produktion gezielt um die fehlenden Konstellationen an.

Für den laufenden Test baut man sich daraus ein Test-Set, das alle Fallkonstellationen mit je einem Vertreter abdeckt und schnell durchläuft. Den vollen Bestand prüft man eher als gesonderte Qualitätssicherung des Produktionsbestands.

Es ist keine Doppelimplementierung, wenn man nur das Mapping nachbildet

Ein verbreiteter Einwand gegen Datenvergleiche lautet, man baue das System ein zweites Mal nach und schleppe damit dieselben Fehlerquellen ein. Beim hier beschriebenen Ansatz trifft das nicht zu, weil nur die fachliche Abbildungsvorschrift nachgebildet wird, nicht das System.

Die meisten Mappings sind umfangreich, aber nicht komplex. Es geht um Fallunterscheidungen: Wenn dies, dann jenes, sonst etwas anderes. Solche Logik lässt sich direkt aus der Spezifikation abbilden, ohne sich um Performance oder andere Nebenbedingungen kümmern zu müssen.

Der Aufwandsunterschied ist deutlich. Wo das Generieren des Testergebnisses einen Tag braucht, ist die Implementierung des Systems mit mehr Leuten ein bis zwei Wochen beschäftigt. Man macht nicht mehr, sondern vor allem vieles nicht.

Wir bauen nicht das ganze System nach. Wir nutzen die Spezifikation und bilden direkt mit der Spezifikation die Abbildungsvorschrift nach. Es geht nicht darum, wann genau was abzulaufen hat, sondern wir testen nur das Mapping. Joshua Claßen

Für wirklich komplexe Berechnungen gilt ein anderer Weg. Bei einer komplexen Simulation holt man verifizierte Soll-Ergebnisse aus einer unabhängigen Quelle und vergleicht mit einer definierten Toleranz.

Daten aus vielen Liefersystemen müssen vor dem Test zusammengeführt werden

In heterogenen Systemlandschaften gibt es selten nur ein Eingabesystem. Mehrere Liefersysteme speisen Daten ein, die harmonisiert und an eine zentrale Schnittstelle gegeben werden müssen.

Ein Beispiel ist eine Geldwäsche-Prüfung auf Transaktionsdaten. Die Eingabedaten aus den verschiedenen Liefersystemen werden zusammengebracht und an diese Schnittstelle geliefert. Genau dieser Prozess der Zusammenführung lässt sich mit denselben Prinzipien testen wie ein einzelnes Mapping.

Warum Datenvergleiche Toleranzen brauchen

Ein Datenvergleich ist nicht immer ein exakter Eins-zu-eins-Abgleich. In bestimmten Fällen sind kleine Abweichungen fachlich akzeptabel und müssen über definierte Schwellen toleriert werden.

In einem Handelssystem bei Banken werden etwa Cashflows algorithmisch generiert. Durch numerische Eigenschaften kann dasselbe Ergebnis je nach Reihenfolge der Rechenoperationen um ein, zwei Cent abweichen. Solche Abweichungen sind unkritisch, solange sie sich nicht über akzeptable Schwellen hinaus hochschaukeln.

Toleranzen betreffen nicht nur Zahlen. Auch bei Textfeldern kann eine Toleranz sinnvoll sein, etwa wenn Groß- und Kleinschreibung beim Vergleich keine Rolle spielen soll.

Fachliche Regeln, die zugleich die Spezifikation sind

Das Regelwerk, mit dem das Soll generiert wird, kann zugleich die Fachfeinspezifikation sein. So fallen Test-Grundlage und fachliche Vorgabe in einem Artefakt zusammen, statt in getrennten, voneinander abweichenden Dokumenten zu leben.

Eine solche Regel braucht kein technisches, sondern nur natürliches Verständnis. Ein Beispiel für eine Namensregel:

  • Sind Vorname und Nachname nicht leer, werden beide separat ausgegeben.
  • Ist nur der Vorname ausgefüllt, wird nur der Vorname ausgegeben.
  • Ist nur der Nachname ausgefüllt, wird nur der Nachname ausgegeben.
  • In allen anderen Fällen wird ein Fehler ausgegeben.

Dieser Ansatz hat einen doppelten Nutzen. Wenn der Fachbereich früh die Ergebnisse der definierten Logik sieht, erkennt er sofort, wenn eine Fallunterscheidung fehlt. Eine Implementierung kann korrekt zur Spezifikation sein und trotzdem falsche Ergebnisse liefern, weil die Spezifikation selbst lückenhaft ist.

Visualisierung bringt Fachbereich und IT auf eine Wellenlänge

Datenvergleiche müssen visualisiert sein, damit der Fachbereich sie versteht und beide Seiten am selben Objekt arbeiten können. Ein technisch ausgedrücktes Dokument trennt Fachbereich und IT, eine sichtbare Definition des Datenvergleichs verbindet sie.

Beim Datentesten wiederholen sich die Muster. Der Test heißt immer, ein Soll mit einem Ist zu vergleichen. Die meisten Daten liegen tabellarisch vor, lassen sich aber auch als XML oder JSON vergleichen. Weil diese Muster ständig vorkommen, lassen sie sich mit Low-Code-Komponenten schneller und einfacher umsetzen, als sie jede Abteilung neu zu programmieren.

Genau diese Redundanz beobachtet man bei großen Bankkunden mit vielen Abteilungen. Jede baut ihren eigenen CSV-Vergleicher, jede erfindet das Rad neu. Textverarbeitung schreibt sich auch niemand selbst.

Auch wer SQL kann, profitiert von einer guten Visualisierung. Sie lässt sich schneller erfassen als reiner Code. Wer von 100 Spalten 99 abfragen will, muss in SQL alle 99 angeben, in einer grafischen Oberfläche klickt man die eine Spalte weg.

KI macht das Testen effizienter, nicht überflüssig

KI ersetzt die Arbeit am Datentest nicht, sie beschleunigt sie. Ein KI-System kann Vorschläge machen, etwa Fallunterscheidungen in Intervallen vorgeben oder einen Test entwerfen, aber das Ergebnis muss überprüfbar bleiben.

Genau hier ist die Visualisierung der Hebel. Generiert eine KI nur Code, muss man Code lesen können, um den Vorschlag zu verifizieren. Ist das Ergebnis dagegen visuell dargestellt, kann auch jemand ohne tiefe Coding-Kenntnisse schnell beurteilen, ob es passt, und den Rest selbst korrigieren.

Bei sensiblen Unternehmensdaten gibt es eine harte Grenze. Solche Daten gehen nicht an einen externen Dienst ins Internet. Die Entwicklung geht deshalb in Richtung effizienterer, lokal nutzbarer Sprachmodelle, mit denen sich aus einer natürlichsprachlichen Anforderung SQL und daraus eine visualisierte No-Code-Abfrage erzeugen lässt.

Daneben taugt KI als Co-Pilot für die Bedienung selbst. Sie kann Vorschläge geben, wie ein Tool zu verwenden ist, oder eine Frage beantworten, wie sich eine bestimmte Aufgabe am besten lösen lässt. Eine vollständig unabhängige Aussage “hier ist mein System, teste es” liegt dagegen nicht in naher Zukunft.

Häufig gestellte Fragen

Um sicherzustellen, dass Testdaten aktuell und relevant bleiben, ist regelmäßige Überprüfung und Aktualisierung entscheidend. Dabei sollten Testdaten regelmäßig mit echten Daten abgeglichen und an Änderungen in den Anforderungen oder in der Software angepasst werden. Automatisierte Tests können helfen, die Testdaten dynamisch zu generieren und sicherzustellen, dass sie immer den aktuellen Nutzungsszenarien entsprechen. Eine enge Zusammenarbeit mit den Fachbereichen unterstützt zudem, relevante Testdaten zu identifizieren und zu erstellen. So bleibt die Qualität der Tests gewährleistet.

Es ist sinnvoll, auf synthetische Testdaten zurückzugreifen, wenn der Schutz der Privatsphäre wichtig ist oder wenn echte Produktionsdaten nicht verfügbar sind. Synthetische Testdaten können auch verwendet werden, um spezifische Szenarien zu testen, die mit echten Daten schwer zu reproduzieren sind. Zudem ermöglichen sie eine kostengünstige und sichere Durchführung von Tests ohne Risiko von Datenlecks oder -missbrauch. Bei der Entwicklung und dem Testen neuer Funktionen sind sie oft flexibler einsetzbar als echte Produktionsdaten.

Die häufigsten Herausforderungen im Testdatenmanagement sind die Sicherstellung der Datenqualität und -integrität. Oft fehlt es an realistischen Testdaten, die relevante Szenarien abdecken. Datenschutzvorschriften machen es schwierig, echte Daten zu verwenden, während das Erzeugen von synthetischen Testdaten zeitaufwändig sein kann. Zudem ist die Verwaltung und Bereitstellung der Testdaten für verschiedene Testumgebungen oft unkoordiniert. Letztlich führt ein Mangel an Automatisierung zu ineffizienten Prozessen, die den Testzyklus verlängern.

Es gibt verschiedene Typen von Testdaten, die in der Softwareentwicklung verwendet werden. Dazu gehören: 1. Echtzeitdaten: Reale Daten aus der Produktion zur genauen Simulation. 2. Stapel- oder Dummy-Daten: Zufällig generierte Daten für umfangreiche Tests. 3. Grenzwertdaten: Testdaten, die an den Grenzen der Eingabewerte liegen. 4. Positives und negatives Testen: Daten, die korrekte und fehlerhafte Eingaben repräsentieren. Diese Testdaten helfen, die Funktionalität, Sicherheit und Leistung von Softwarelösungen effektiv zu prüfen.

Pseudonymisierung von Testdaten bedeutet, personenbezogene Daten so zu verändern, dass sie nicht mehr einer bestimmten Person zugeordnet werden können, ohne zusätzliche Informationen. Bei Testdaten werden Identifikationsmerkmale durch fiktive Werte ersetzt, um den Datenschutz zu gewährleisten. Dadurch können Testergebnisse analysiert werden, ohne die Privatsphäre der betroffenen Personen zu gefährden. Die Pseudonymisierung ist besonders wichtig in der Softwareentwicklung und Datenanalyse, um rechtlichen Vorgaben zu entsprechen.

Testdatenanonymisierung ist der Prozess, bei dem persönliche oder sensible Informationen in Testdaten maskiert oder verändert werden, um die Identität von Personen zu schützen. Sie ist wichtig, um Datenschutzgesetze einzuhalten und Vertrauen zu schaffen, während Entwickler und Tester realistische Daten verwenden können, ohne die Privatsphäre zu gefährden. Durch die Anonymisierung können Unternehmen sicherer arbeiten und gleichzeitig die Qualität ihrer Software gewährleisten.

Testdatengeneratoren sind Tools, die automatisch Testdaten erstellen, um Softwareanwendungen zu testen. Sie generieren strukturierte Daten in verschiedenen Formaten, basierend auf definierten Regeln oder Vorlagen. Dies ermöglicht es Entwicklern, realistische Szenarien zu simulieren, ohne dass sie manuell Daten eingeben müssen. Testdaten können zufällig oder regelbasiert erzeugt werden, um spezifische Anforderungen zu erfüllen. Dadurch sparen diese Generatoren Zeit und minimieren Fehlerquellen, während sie sicherstellen, dass die getesteten Systeme in Echtzeit funktionieren.

Synthetische Testdaten sind künstlich generierte Daten, die zur Analyse und Validierung von Softwareanwendungen verwendet werden. Sie imitieren reale Daten, ohne vertrauliche Informationen zu enthalten. Die Erstellung erfolgt durch Algorithmen, die Muster und Strukturen echter Daten nachahmen. Dies kann durch Techniken wie Datenanonymisierung, statistische Modellierung oder Erstellung durch Skripte geschehen. Synthetische Testdaten ermöglichen es, Tests durchzuführen, ohne Datenschutzrisiken einzugehen, und sind besonders nützlich für die Softwareentwicklung und Qualitätssicherung.

Testdaten sind spezifische Daten, die verwendet werden, um Softwareanwendungen während des Testprozesses zu überprüfen. Sie helfen dabei, die Funktionsweise, Leistung und Sicherheit einer Anwendung zu bewerten. Testdaten werden erstellt, um verschiedene Szenarien abzubilden, einschließlich Normal- und Ausnahmebedingungen. Sie können manuell generiert oder automatisch erstellt werden. Die Verwendung von Testdaten ermöglicht es Testern, Fehler zu identifizieren und sicherzustellen, dass die Software die gewünschten Anforderungen erfüllt, bevor sie veröffentlicht wird.

Diese Seite teilen

Ähnliche Beiträge