# Entwicklung und Test

## Little-Least-Cost-Router

## LLcr V1.41

Copyright © J.W.Schmitz-Hübsch

Letzte Änderung 02.01.2005

## Inhaltsverzeichnis

- Die Entwicklungs- und Testumgebung
- Inbetriebnahme der Entwicklungsumgebung
- Tcl/Tk
- freeWrap
- HelpSystem
- Editor
- LLcrEntwicklung
- UnZip
- Steuerung von LLcrTest
- Erforderliche Einstellungen für den Test
- Verzeichnisse usw. in der Entwicklungsumgebung
- Das LLcr-Entwicklungsverzeichnis
- Das LLcrTest-Arbeitsverzeichnis
- Verweise auf andere Dokumente

## Die Entwicklungs- und Testumgebung

Dieses Dokument beschreibt die Entwicklungs- und Testumgebung des Programms LLcr (Little-Least-Cost-Router). Es setzt voraus, dass Sie LLcr schon installiert haben und mit der Dokumentation von LLcr vertraut sind.

Stellen Sie sich unter der Entwicklungs- und Testumgebung bitte nicht Besonderes vor. Es handelt sich einfach um die Scriptsprache Tcl/Tk, ein Testprogramm und alle Sourcen von LLcr. Sie wurde bisher nur unter Windows NT 4.0 und Windows 2000 eingesetzt.

#### Zum Seitenanfang

## Inbetriebnahme der Entwicklungsumgebung

Falls Sie LLcr noch nicht installiert, konfiguriert und in Betrieb genommen haben, holen Sie das jetzt hier nach. Dann installieren Sie Tcl/Tk, freeWrap, HelpSystem, eventuell einen Editor und LLcrEntwicklung.

### Tcl/Tk

Die Scriptsprache Tcl/Tk V8.4.1.0 (getestet) oder eine höhere Version (ungetestet) muss installiert werden. Die Sprache kann kostenlos von der Tcl-Homepage oder der Downloadpage heruntergeladen werden. Sie ist einfach zu installieren:

- Legen Sie ein neues Verzeichnis C:\Programme\Tcl\ an.
- Downloaden Sie die Datei ActiveTclx_x_x_x-2_win32-ix86.exe in dieses Verzeichnis (x_x_x_x steht für die Versionsnummer).
- Führen Sie das Programm ActiveTclx_x_x_x-2_win32-ix86.exe aus. Das Programm besitzt eine eigene Installationsroutine. Als Zielort der Installation wählen Sie C:\Programme\Tcl\.
- Danach müssen Sie den Rechner neu booten.

Als Literatur zu Tcl empfehle ich:

- John K. Ousterhout, Tcl und Tk: Entwicklung grafischer Benutzerschnittstellen für das X Windows System, Addison-Wesley, 1995.
- Die sehr gute Online-Hilfe von Tcl.
- Die erste Anlaufstation in Internet ist die Tcl-Homepage.
- Suchen Sie im Internet einfach nach "tcl". Die Treffermenge wird Sie erschlagen.

### freeWrap

Um ausführbare Programme zu erzeugen, verwende ich freeWrap von Dennis LaBelle in der Version 5.5. Sie können das Programm kostenlos von der Freewrap-Homepage herunterladen.

- Legen Sie ein neues Verzeichnis C:\Programme\freeWrap\ an.
- Downloaden Sie die Datei freewrapxx.zip in dieses Verzeichnis (xx steht für die Versionsnummer).
- Entpacken Sie die Datei freewrapxx.zip in dieses Verzeichnis.

Die aktuelle Version von LLcr ist auf die Version 5.5 von freeWrap abgestimmt. Sie wurde nach der Umstellung auf Version 5.5 noch nicht mit der alten Version 5.1 von FreeWrap getestet.

### HelpSystem

Für die Online-Hilfe eignet sich HelpSystem, Version 1.3c von Andrei A. Gratchev hervorragend. Man kann eigene Hilfedateien erstellen oder, wie ich, vorhandene Html-Dateien als Online-Hilfe verwenden. Sie können das Programm kostenlos herunterladen und verwenden.

- Legen Sie ein neues Verzeichnis C:\Programme\Tcl\HelpSystem\ an.
- Downloaden Sie die Datei HelpSystem-x.x.zip in dieses Verzeichnis (x.x steht für die Versionsnummer).
- Entpacken Sie die Datei HelpSystem-x.x.zip in dieses Verzeichnis.

Da ich an der aktuellen Version von HelpSystem einige kleinere Änderungen vorgenommen habe, dürfen Sie die mit LLcr gelieferte Datei help.tcl nicht durch die gleichnamige Datei aus HelpSystem ersetzen. LLcr benötigt keine weiteren Dateien aus HelpSystem.

### Editor

Wenn Sie noch keinen Programmeditor haben, schauen Sie sich doch mal bei den Editoren auf der Tcl-Homepage nach. Wenn Sie den Unix-Editor "vi" gewohnt sind, ist vim die beste Wahl. Natürlich ist es nicht verboten, den Windows-Editor Notepad verwenden.

### LLcrEntwicklung

Die Entwicklungs- und Testumgebung von LLcr muss installiert werden. Sie kann kostenlos von der LLcr-Homepage heruntergeladen werden. Die Installation ist einfach:

- Legen Sie ein neues Verzeichnis C:\Programme\LLcrEntwicklung\ an. Das ist das LLcr-Entwicklungsverzeichnis. Verwenden Sie nicht das Verzeichnis, in den Sie LLcr installiert haben.
- Downloaden Sie das Archiv LLcrEntwicklungxxx.zip in dieses Verzeichnis (xxx steht für die Versionsnummer). Entpacken Sie das Archiv. Es werden alle Dateien der Entwicklungs- und Testumgebung erzeugt. Sie sind im Anhang über das LLcr-Entwicklungsverzeichnis beschrieben. In llcrentwicklungxxx.zip sind bis auf LLcr.exe auch alle Dateien aus llcrxxx.zip enthalten.
- Passen Sie in der Datei make4exe.bat die Pfade zu den Verzeichnissen von Tcl/Tk und freeWrap an.
- Jetzt müssen Sie noch die Pfade zur tcl-Library in LLcr.tcl und LLcrTest.tcl eintragen. Suchen Sie dazu am Ende der beiden Dateien nach "::freewrap".
- Um LLcr.exe und LLcrTest.exe zu erzeugen, rufen Sie in der DosBox die Batchdatei make4exe.bat auf. Alternativ können Sie die Tcl-Scripte LLcr.tcl und LLcrTest.tcl auch direkt ausführen.

### UnZip

Der Entpacker UnZip V5.40, V5.50 (getestet) oder eine andere Version (ungetestet) muss installiert werden. Damit entpackt die Tcl-Version von LLcr die TGeb-Tarifdatei aus dem Internet. Sie benötigen UnZip auch dann, wenn sie sonst einen anderen Entpacker verwenden. Das Programm kann kostenlos von einem der ftp-Server heruntergeladen werden, die auf der Info-ZIP Homepage genannt sind. Die Installationsanleitung:

- Legen Sie ein neues Verzeichnis C:\Programme\Infozip\UnZip an.
- Downloaden Sie vom ftp-Server die Datei WIN32/unz550xN.exe in dieses Verzeichnis. Es handelt sich um eine selbst entpackende Zip-Datei ohne Dialog.
- Führen Sie das Programm unz550xN.exe aus. Dabei werden 16 Dateien erzeugt.
- Kopieren Sie die Datei unzip.exe in das LLcr-Entwicklungsverzeichnis.
- Wenn Sie den Entpacker nur als "Black Box" im Zusammenhang mit LLcr verwenden wollen, können Sie das Verzeichnis C:\Programme\Infozip mit seinen ganzen Inhalt wieder löschen.

Im genannten ftp-Archiv finden Sie auch einen kostenlosen Packer zip23xN.zip (getestet) und einen kostenlosen GUI-Packer und -Entpacker wiz502xN.exe (ungetestet).

#### Zum Seitenanfang

## LLcrTest

Mit dem Tcl-Programm llcrtest.tcl kann man LLcr testen. Zwei Initialisierungsdateien LlcrTest_Einzeltests_OK.ini und LlcrTest_Einzeltests_Fehler.ini werden mitgeliefert. Falls Sie diese Tests durchführen wollen, müssen Sie die Einträge anpassen, damit die Tests bei Ihnen fehlerfrei bzw. fehlerhaft ausgeführt werden.

### Steuerung von LLcrTest

Im Dialog von LLcrTest werden alle Einträge angezeigt, mit denen der Test gesteuert wird. Dort stehen neben den Einträgen zur Steuerung der Tests alle Einträge zur Steuerung von LLcr. Dabei können mehrere Werte hintereinander angegeben werden. Sie beginnen immer mit einem Gleichheitszeichen.

Die Einträge werden in den Initialisierungsdateien mit dem Namen LLcrTest_*.ini gespeichert.

Bei den Einträgen für LLcrTest kann immer nur ein Wert im Eintrag stehen. Sie sind im folgenden beschrieben.

### Erforderliche Einstellungen für den Test

#### LLcrProgramm

LLcrProgramm=standard ={absoluterPfad}

Verzeichnis und Name des Programms, mit dem LLcr zum Test aufgerufen werden soll.

- Bei "LLcrProgramm=standard" verwendet LLcr den Eintrag in der Registry für die Dateierweiterung TCL. Es muss ein gültiger Eintrag zum Öffnen vorhanden sein. Normalerweise ist das "C:\Programme\Tcl\bin\wishnn.exe" (nn ist die Versionsnummer von Tcl). "LLcrProgramm=standard" ist die Standardeinstellung.
- Wenn bei "LLcrProgramm=" ein Programmname mit einem absoluten Pfad angegeben wird, dann geht LLcrTest davon aus, dass dieses Programm zum Aufruf von LLcr dient. Der Pfad muss mit Laufwerk oder in UNC-Notation geschrieben werden. Wenn Sie hier LLcr.exe eintragen, wird zurzeit bei den Tests als Ergebnis immer OK gemeldet, auch wenn der Test fehlerhaft verlaufen ist.

Beispiele sind

- "LLcrProgramm=standard".
- "LLcrProgramm=C:\Programme\TclEntwicklung\LLcr\LLcr.tcl".

#### LLcrProgrammargumente

LLcrProgrammargumente={argumente für den Aufruf von LLcr}

Programmargumente, mit denen das Programm im Eintrag LLcrProgramm zum Test aufgerufen werden soll.

- Wenn bei LLcrProgramm die TCL-wish angegeben wurde, muss dort zusätzlich zu "/OPEN /RUN /SILENT /EXIT" das Tcl-Script LLcr.tcl angegeben werden.
- Wenn bei LLcrProgramm das ausführbare Programm LLcr.exe angegeben wurde, muss im Eintrag "/RUN /SILENT /EXIT" stehen. Die Reihenfolge und Groß/Kleinschrift sind beliebig. In diesem Fall wird zurzeit bei den Tests als Ergebnis immer OK gemeldet, auch wenn der Test fehlerhaft verlaufen ist.

Beispiele sind

- "LLcrProgramm=/open C:\Programme\LLcrEntwicklung\LLcr.tcl /run /SILENT /exit".
- "LLcrProgrammargumente=/RUN /Silent /exit".

#### LLcrTestArbeitsverzeichnis

LLcrTestArbeitsverzeichnis=standard ={absoluterPfad}

Pfad zum LLcr-TestArbeitsverzeichnis. Wenn das Verzeichnis nicht existiert, wird es angelegt.

- Bei "LLcrTestArbeitsverzeichnis=standard" nimmt LLcrTest an, dass das LLcr-TestArbeitsverzeichnis im Verzeichnis %TMP oder %TEMP oder C:\Tmp oder C:\Temp liegt und "TestVerz" heißt. Das ist die Standardeinstellung.
- Wenn bei "LLcrTestArbeitsverzeichnis=" ein absoluter Pfad angegeben wird, dann geht LLcr davon aus, dass dieses Verzeichnis das LLcr-TestArbeitsverzeichnis ist. Der Pfad muss mit Laufwerk oder in UNC-Notation geschrieben werden. Wenn der Name "JJJJMMTT" enthält, wird dafür das Tagesdatum eingesetzt. Wenn Sie eine alte 16-Bit-Version von TGeb einsetzen, muss der Verzeichnisname unter Windows 95/98/ME der 8.3 Konvention entsprechen, da TGeb ihn ansonsten nicht erkennt.

Beispiele sind

- "LLcrTestArbeitsverzeichnis=standard" verwendet immer das gleiche LLcr-TestArbeitsverzeichnis %TMP\TestVerz oder %TEMP\TestVerz oder C:\Tmp\TestVerz oder C:\Temp\TestVerz.
- "Arbeitsverzeichnis von LLcr=C:\Programme\LLcr\LLcrTest" verwendet immer das gleiche LLcr-TestArbeitsverzeichnis C:\Programme\LLcr\LLcrTest.
- "LLcrTestArbeitsverzeichnis=C:\Programme\TGeb\LLcrTest_JJJJMMTT" verwendet für jeden Tag ein neues LLcr-TestArbeitsverzeichnis. LLcr löscht keine Daten aus diesem Verzeichnis.

#### LLcrTestverfahren

LLcrTestverfahren=Einzeltests =Variantentests =Kombinationstests

Für das Testprogramm LLcrTest steht hier das anzuwendende Testverfahren.

- Bei "LLcrTestverfahren=Einzeltests" wird der erste Wert aus allen Einträgen in den Testdaten im ersten Testlauf von LLcrTest getestet. Der Test muss fehlerfrei ablaufen. In jedem folgenden Testlauf wird die Einstellung eines Eintrags aus den Testdaten verändert. Die Anzahl der Testläufe ist genau so groß, wie ein Testlauf plus die Summe aller Varianten in den Testdaten ohne den Ersten Wert jedes Eintrags. Dies ist die Standardeinstellung.
- Bei "LLcrTestverfahren=Variantentests" werden in jedem Testlauf von LLcrTest mehrere Einstellungen auf einmal getestet. Die Anzahl der Testläufe ist genau so groß, wie die maximale Anzahl Varianten in einem Eintrag.
- Bei "LLcrTestverfahren=Kombinationstests" wird jede Kombination der Einstellung aus den Testdaten von LLcrTest genau einmal getestet. Die Anzahl der Testläufe multipliziert sich aus der Anzahl Varianten in den Einträgen.

Nur das Testverfahren "Einzeltests" wurde bisher in LLcrTest verwendet. Die anderen beiden Verfahren sind ungetestet.

#### Zum Seitenanfang

## Verzeichnisse usw. in der Entwicklungsumgebung

### Das LLcr-Entwicklungsverzeichnis

Dieses Verzeichnis enthält alle Dateien der LLcrEntwicklungs-Installation. Dazu gehören auch die Dateien des LLcr-Programmverzeichnisses aus der LLcr-Installation, die hier nicht mehr gesondert beschrieben werden. LLcr und LLcrTest finden dieses Verzeichnis selbstständig.

#### help.tcl

Das Tcl-Script enthält die Online-Hilfe HelpSystem von Andrei A. Gratchev. Es wurde für die Anforderungen von LLcr erweitert.

#### inirun.tcl

Das Tcl-Script enthält die Dialogverarbeitung. Es kann ohne Änderung auch für andere Programme eingesetzt werden. Es wird von llcr.tcl und llcrtest.tcl verwendet.

#### inirunimages.tcl

Das Tcl-Script enthält die Images für inirun.tcl.

#### LLcr.tcl

Das Tcl-Script enthält die Source von LLcr. Es lädt alle anderen Scripte und Dateien.

#### llcrentwicklungxxx.zip

Das Archiv der Entwicklungs- und Testumgebung für die LLcrEntwicklungs-Installation enthält alle erforderlichen Dateien aus diesem Verzeichnis. Im Dateinamen steht xxx für die Versionsnummer.

#### LLcrTest.exe

Das ist das fertig kompilierte, ausführbare Programm LLcrTest. Die Source steht in LLcrTest.tcl. Das Programm wird mit make4exe.bat erzeugt.

#### LLcrTest_Einzeltests_Fehler.ini

Diese Initialisierungsdatei enthält Testdaten für Einzeltests mit LLcrTest. Alle Tests - bis auf den ersten - werden bei mir fehlerhaft (!) absolviert. Bis es bei Ihnen so weit ist, müssen Sie sehr wahrscheinlich noch einige Einträge anpassen.

#### LLcrTest_Einzeltests_OK.ini

Diese Initialisierungsdatei enthält Testdaten für Einzeltests mit LLcrTest. Alle Tests werden bei mir fehlerfrei absolviert. Bis es bei Ihnen so weit ist, müssen Sie sehr wahrscheinlich noch einige Einträge anpassen.

Bedenken Sie, dass sich hierbei auch ein Test befindet, der die Konfiguration Ihres Routers ausliest und mit allen Passworten in LLcrTest_Ergebnis_jjjjmmtthhmmss.txt protokolliert. Dies wird im Eintrag Inhalt der Konfigurationsdatei gesteuert.

#### LLcrTest_*.ini

Die Initialisierungsdateien von LLcrTest werden vom Programm in dem Verzeichnis angelegt, das beim Aufruf von LLcrTest aktuell ist. Dies ist normalerweise das LLcr-Entwicklungsverzeichnis. Die Beschreibung finden Sie unter Steuerung von LLcrTest.

#### LLcrTest.tcl

Das Tcl-Script enthält die Source von LLcrTest. Es lädt alle anderen Scripte und Dateien.

#### LLcrTest_MusterLANcom.lcf

Diese Datei enthält ein Muster für die Konfigurationsdatei des Routers. Sie wird für reproduzierbare Tests in Konfiguration lesen von eingetragen.

#### LLcrTest_MusterLANmonitor.log

Diese Datei enthält ein Muster für die Protokolldatei des Monitorprogramms LANmonitor. Sie wird für reproduzierbare Tests in Gespraechsdauer lesen von eingetragen.

#### LLcrTest_MusterTGebTarife.zip

Diese Datei enthält ein Muster für die TGeb-Tarifdatei von 18.05.2003 aus dem Internet. Die Datei wird für reproduzierbare Tests in Http Tarifdatei Adresse eingetragen.

#### make4exe.bat

Diese Windows-Batchdatei erzeugt die ausführbaren Programme LLcr.exe und LLcrTest.exe. Das LLcr-Entwicklungsverzeichnis muss dabei das aktuelle Verzeichnis sein.

#### unzip.exe

Dieser Entpacker UnZip V5.50 ist Teil von Info-ZIP. Damit entpackt die Tcl-Version von LLcr die TGeb-Tarifdatei aus dem Internet. Sie benötigen UnZip auch dann, wenn Sie sonst einen anderen Entpacker verwenden.

Das Programm wird zusammen mit LLcr ausgeliefert und installiert.

#### Zum Seitenanfang

### Das LLcrTest-Arbeitsverzeichnis

Das LLcrTest-Arbeitsverzeichnis enthält alle Dateien, die beim Ausführen von LLcrTest.exe erzeugt werden. Wo dieses Verzeichnis liegt und wie es heißt, wird in LLcrTestArbeitsverzeichnis angegeben. Wenn Sie das Verzeichnis löschen, wird LLcrTest.exe es beim nächsten Mal neu anlegen.

Fast alle Dateien in diesem Verzeichnis können mit einer der Auswertungen im Dialog angezeigt, bearbeitet und gedruckt werden.

#### LLcrTest_dbg.ini

Diese Debug-Parameterdatei enthält alle Einträge aus der verwendeten Initialisierungsdatei sowie interne Einträge. Sie wird nur für eine eventuelle Fehlersuche erzeugt.

#### LLcrTest.log

Dies ist die Protokolldatei von LLcrTest. Darin werden der Ablauf und alle Fehler des letzten Programmlaufes von LLcrTest protokolliert. Die Datei wird beim Programmanfang immer aus dem aktuellen Verzeichnis, aus dem LLcr-Entwicklungsverzeichnis und aus dem LLcrTest-Arbeitsverzeichnis gelöscht. Sie wird beim Programmende im aktuellen Verzeichnis erzeugt. Falls LLcrTest mit einem Fehler abgebrochen wird, bevor das LLcrTest-Arbeitsverzeichnis zum aktuellen Verzeichnis wurde, steht die Protokolldatei in dem Verzeichnis, das beim Start von LLcr das aktuelle Verzeichnis war oder im LLcr-Entwicklungsverzeichnis.

#### LLcr_nnnnnnnn.ini

Diese Dateien enthalten die Initialisierungsdateien für LLcr für jeweils einen Testlauf. nnnnnnnn ist die Nummer des Testlaufes. LLcr löscht vor einem Test nicht die alten Initialisierungsdateien.

#### LLcrTest_Ergebnis_jjjjmmtthhmmss.txt

Dies ist die Ergebnisdatei eines Tests. Sie wird von LLcrTest erzeugt. jjjjmmtthhmmss bezeichnet das Jahr, Monat, Tag, Stunde, Minute und Sekunde des Programmstarts von LLcrTest.

#### LLcrTest_Ergebnis_jjjjmmtthhmmss.log

Dies ist die Protokolldatei eines Tests. Sie enthält die Protokolle von LLcr während der Testläufe. jjjjmmtthhmmss bezeichnet das Jahr, Monat, Tag, Stunde, Minute und Sekunde des Programmstarts von LLcrTest.

#### Zum Seitenanfang

## Verweise auf andere Dokumente

Übersicht

Inbetriebnahme

Dialogbeschreibung

Steuerung

Verzeichnisse, Dateien usw.

Unterstützung

Historie

Entwicklung und Test

#### Zum Seitenanfang