Test Data Language

Aus MARJORIE-WIKI
Wechseln zu: Navigation, Suche

Test Data Language (TDL) ist eine Programmiersprache, die zur Erzeugung von Testdaten verwendet wird.

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]

  1. Hochspringen Test Data Language (TDL) auf q-up-data.com, abgerufen 2. Dezember 2013
Info Sign.svg Dieser Wikipedia-Artikel wurde, gemäß GFDL, CC-by-sa mit der kompletten History importiert.