Drucken

Testdatengenerator

Der Testdatengenerator ist dafür vorgesehen, aus einfachen Regeln zur Ereugung einzelner Daten komplexe Testdatensätze zu erzeugen, die in beliebigen Szenarios eingesetzt werden können. Dabei wird  die Semantik der einzelnen Elemente beachtet (in ein Feld, in dem Vornamen für Personen erwartet werden, tauchen auch wirklich Vornamen auf und ein Geburtsdatum liegt natürlich in der Vergangenheit). Zum anderen ist es möglich, Beziehungen zwischen einzelnen Feldern zu spezifizieren, wie etwa "das Feld mit der Anzahl an Jahren Berufserfahrung darf nicht größer sein als das Alter der Person, von dem 18 abgezogen wird".

Erzeugte Datentypen

Es werden verschiedene Typen von Daten nach verschiedenen Gesichtspunkten erzeugt. Einige Beispiele für unterstützte Datentypen sind:

  • Numerische Daten
  • Kalendarische Daten
  • Textdaten
  • Binärdatenströme

Dabei werden nicht nur irgendwelche zufälligen, sinnlosen Daten erzeugt, sondern wo möglich auch auf die Semantik der Daten geachtet. Beispiele dafür sind Textfelder, die Namen enthalten sollen - unser Framework wird diese Felder mit zufällig ausgewählten Namen belegen. Ein weiteres Beispiel ist die Erzeugung von Binärdaten - diese werden aus Dateien gewonnen, so dass steuerbar ist, ob diese Daten beispielsweise Graphiken, Musikstücke oder PDF-Dokumente darstellen.

Schnittstelle

Datensatz

Testdaten werden immer als Datensatz erstellt. Jedes Feld des Datensatzes hat einen Namen und einen zugeordneten Generator. Für jeden Datensatz wird der Generator jedes Feldes einen neuen Wert erzeugen. Diese Werte zusammengenommen bilden den Testdatensatz

Beschreibung

Die Beschreibung eines Testdatensatzen und damit der Datentypen der einzelnen Felder kann über verschiedene Beschreibungs"sprachen" geschehen:

Vorgehen bei der Erzeugung

Numerische Daten

Für verschiedene numerische Datentypen (Integer mit verschieden großen Zahlenbereichen, Gleitkommazahlen) bestehen Möglichkeiten, zufällige Werte einer Gleich- oder Normalverteilung zu erzeugen oder eine stetig steigende Folge zu generieren

Kalenderdaten

Kalenderdaten werden als zufällige Ereignisse erzeugt. Man kann einschränken, ob die Ereignisse nur in der Zukunft oder nur in der Vergangenheit liegen sollen.

Text

Hier wird zum einen aus einer vorher festgelegten Menge von Textbausteinen zufällig immer wieder einer ausgewählt. Darauf basieren auch semantische Generatoren wie etwa Namen, Nachnamen, Städtenamen... Eine weitere Möglichkeit ist die Generierung von Blindtext beliebiger Länge.

Binärströme

Hierbei gibt der Anwender ein Verzeichnis und einen Filter für die darin befindlichen Dateien vor. Der Generator wählt aus den von diesem Filter akzeptierten Dateien jeweils eine aus, deren Inhalt dann den Wert des jeweiligen Feldes des Testdatensatzes darstellt.

Beispiel

Hier folgt nun ein Beispiel zur Erzeugung verschiedener Testdaten mit verschiedenen Typen und Generatoren. Beim jedem erneuten Laden der Seite werden andere Testdaten generiert:

javascript not available!

 

Ausblick

Es soll wie bereits im Überblick angedeutet möglich sein, einzelne Felder bei der Erzeugung zu koppeln und damit voneinander abhängig zu machen.

Weiterhin wird an einer Bedienoberfläche gearbeitet, die die Erstellung dieser Kopplungen und Abhängigkeiten vereinfachen wird.