Test Data Language
Test Data Language (TDL) ist eine Programmiersprache, die zur Erzeugung von Testdaten verwendet wird.
Inhaltsverzeichnis
[Verbergen]Allgemeine Beschreibung[Bearbeiten]
TDL entstand aus dem Bedürfnis heraus, einen vorhandenen Text als Vorlage (Schablone) verwenden zu können, indem lediglich variable Elemente durch Platzhalter ausgetauscht werden, ohne dass man, wie damals in allen anderen Programmiersprachen üblich, komplizierte und schwer lesbare Konstruktionen aus Zeichenkettenoperationen zusammenstellen muss.
Aus der Umsetzung dieser Anforderung in TDL ergibt sich auch in einfachster Weise die Möglichkeit, in nur einem Arbeitsgang Daten in verschiedenen Ausgabeformaten zu erzeugen und somit verschiedene Ausgabeziele parallel zu bedienen.
Ebenso elementar ist die Forderung, Prozesse (in diesem Fall die Erzeugung von Testdaten) parallelisieren zu können, ohne sich um die Synchronisierung von Vorgängen kümmern zu müssen. Das wird in TDL dadurch ermöglicht, dass Referenzen bereits durch die Implementierung des Interpreters aufgelöst und parallelisiert werden. Dadurch können ohne zusätzlichen Aufwand auch Simulationen (in Echtzeit oder in Zeitraffer) in Q-up gestartet werden.[1]
Merkmale[Bearbeiten]
Syntax-Elemente[Bearbeiten]
Die TDL sollte keine neuen syntaktischen Elemente aufweisen, um eine einfache Erlernbarkeit zu gewährleisten. Daher sind die Syntaxelemente der TDL an die allgemein bekannten Programmiersprachen PASCAL und BASIC angelehnt, wie im Folgenden am Beispiel einer Schleifen und einer Alternative sowie dem Aufruf einer Funktion dargestellt ist:
for i = 1 to 10 do
if i < 5 then
Trace(TRACELEVEL_INFO, i);
endif
endfor
Es werden im Folgenden die einzelnen Syntaxelemente näher beschrieben.
Definitionen[Bearbeiten]
Mit einer Definition werden Variablen und Konstanten definiert:
[public|private] <Typ> <Bezeichner> [= <Ausdruck>];
[public|private] const <Typ> <Bezeichner> = <Ausdruck>;
<Typ> := array|string|integer|float|time|culture|boolean
<Bezeichner> := Mit Einschränkungen frei wählbarer Name.
<Ausdruck> := <Funktion>|<Literal>|<Operation>
<Operation> := < Ausdruck > <Operator> < Ausdruck >
<Operator> := + | - | * | / | % | ^ | ‚|‘ | ‚||‘ | & | && | < | << | > | >> | <= | >= | == | !=
<Funktion> := <Bezeichner>( [<Ausdruck> [, <Ausdruck>]...] )
<Anweisung> := siehe Anweisungen
<Literal> := siehe Literale
Anweisungen[Bearbeiten]
Eine Anweisung führt etwas aus und muss mit einem Semikolon beendet werden:
[<Bezeichner> =] <Ausdruck>;
<Bezeichner> := Name einer Variablen.
<Ausdruck> := <Funktion>|<Literal>|<Operation>
<Operation> := < Ausdruck > <Operator> < Ausdruck >
<Operator> := + | - | * | / | ^ | ‚|‘ | ‚||‘ | & | && | < | << | > | >> | <= | >= | == | !=
<Funktion> := <Bezeichner>( [<Ausdruck> [, <Ausdruck>]...] )
<Anweisung> := siehe Anweisungen
<Literal> := siehe Literale
Alternativen[Bearbeiten]
In TDL gibt es lediglich eine Form von Alternativen:
if <Bedingung> then
[<Anweisung>]...
[elseif
[<Anweisung>]...]...
[else
[<Anweisung>]...]
endif
<Bedingung> := <Ausdruck> (muss ein logisches Ergebnis liefern)
Schleifen[Bearbeiten]
TDL bietet drei Schleifentypen.
Die Vorbedingung:
while <Bedingung> do
[<Anweisung>]...
endwhile
Die Nachbedingung:
repeat
[<Anweisung>]...
until <Bedingung>;
Die Zahlschleife:
for <Intialisierung> to|downto <Bedingung> do
[<Anweisung>]...
endfor
<Initialisierung> := [integer] <Bezeichner> = <Ausdruck>
Literale[Bearbeiten]
tbd
Datentypen[Bearbeiten]
In TDL gibt es lediglich ein paar grundlegende Datentypen:
Bezeichner | Beschreibung |
---|---|
Array | Ein Feld aus beliebigen Daten |
Boolean | Ein logischer Wert (TRUE oder FALSE) |
Culture | Informationen für die lokalisierte Formatierung von Daten |
Float | Eine reelle Zahl |
Integer | Eine ganze Zahl |
String | Eine Zeichenkette |
Time | Datum und Uhrzeit |
Textblöcke[Bearbeiten]
Textblöcke erleichtern das Zusammenstellen von Texten, indem Abschnitte, die variabel sind, durch formatierbare Ausdrücke dargestellt werden können, wie hier am Beispiel von zu erzeugenden Daten im XML-Format gezeigt ist:
#<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Data>
<Name>@theName@</Name>
<Salary>@FRand() * 10000000, 10, 2@</Salary>
<Entry>@Str(GetEntryDateFor(theName), "yyyy-MM-dd")@</Entry>
</Data>#
Funktionen[Bearbeiten]
Funktionen sind per Definition in der TDL selbst nicht vorhanden. Das heißt, dass alle Funktionen geändert, ausgetauscht oder entfernt werden können. Sie sind frei an die jeweiligen Bedürfnisse der zu generierenden Testdaten anpassbar.
Es gibt aber einen großen Satz von Standardfunktionen, die mit Q-up ausgeliefert werden. Diese Decken u.a. die folgenden Bereiche ab:
- Zufallszahlen
- Trigonometrie
- Zeichenkettenverarbeitung
- Datenbankzugriffe
- Warteschlangen (Microsoft Message Queues)
- Dateisystemzugriffe (Verzeichnisse und Dateien)
- Datenkonvertierungen
- Datum und Zeit
Einzelnachweise[Bearbeiten]
- Hochspringen ↑ Test Data Language (TDL) auf q-up-data.com, abgerufen 2. Dezember 2013