Automatisierte Syntaxtests, Framework für spätere Modultests.
[kivitendo-erp.git] / t / old / README.de
1 Lx-Office Testumgebung
2
3 Mit der hier beschriebenen Testumgebung ist es möglich, Lx Office 
4 automatisiert zu testen. Automatische Tests haben den großen 
5 Vorteil, das verschiedene Standardtests nicht immer wieder von 
6 Hand durchgespielt werden müssen, sondern einmal in einem Skript 
7 verschriftet immer wieder verwendet werden können.
8 Weitere Informationen können im Wiki nachgelesen und ergänzt werden:
9 http://wiki.lx-system.de/index.php/Automatisiertes_Testen_von_Modulen
10
11
12
13 Aufbau der Testumgebung
14 Im Verzeichnis t/ finden sich alle testrelevanten Skripte.Der 
15 Aufruf der Tests folgt über 
16 #perl t/lx-office.t
17
18 lx-office.t ruft alle Einzeltests der Reihe nach auf und fasst sie
19 übersichtlich zusammen. Die Einzeltests befinden sich in einem 
20 Unterordner von t/. Jeder Unterorder enthält eine Datei AllTests.t, 
21 die wiederrum alle einzelnen Tests des Unterordners aufruft.
22
23
24
25 t/lxtest.conf t/lxtest.conf.default
26 Für die einzelnen Tests werden verschiedene Packetvariablen (globals) 
27 zur Verfügung gestellt, um die Testskripte einfach auf 
28 unterschiedliche Installationen anpassen zu können und um sich auf 
29 die selbe Test-Datenbank und denselben Test-Benutzer beziehen zu können.
30
31 Die Datei t/lxtest.conf.default muss zunächst nach t/lxtest.conf 
32 kopiert werden. Dann ist die Datei t/lxtest.conf auf die lokalen
33 Gegebenheiten anzupassen. Besnders die für Selenium nötigen 
34 Einstellungen bedürfen einer Überarbeitung.
35
36 Definiert werden die Variablen in der Datei t/lxtest.conf.
37 Aufgerufen werden die Variablen $lxtest->{VARIABLE}.
38 Es ist ratsam, die vorhandenen Tests zu untersuchen, um sich ein Bild 
39 von den Möglichkeiten zu machen.
40
41
42
43 Selenium
44 Selenium ist eine Testsuite, mit der man Browserinteraktionen 
45 simulieren und die Ergebnisse auswerten kann. Der unschlagbare 
46 Vorteil von Selenium für das Testen von Lx ist es, dass es 
47 möglich wird, eine Test-Datenbank in einfachen Schritten 
48 erstellen zu können. Um Seleniumtests durchführen zu können, 
49 ist es nötig, das Packet Selenium Remote Control (Selenium RC) 
50 lokal zu installieren (Java Runtime ebenfalls erforderlich). 
51 Selenium RC gibt es unter:
52 http://www.openqa.org/selenium-rc/
53
54 Für den Betrieb von Selenium ist eine lokale Workstation mit 
55 Browserumgebung nötig.
56
57 Der Aufruf von selenium erfolgt unter Windows bspw. so:
58 C:\java -jar "C:\selenium-remote-control-0.9.0
59 \server\selenium-server.jar"
60
61 Unter Linux bspw. so:
62 <FIXME>
63
64 Die lokalen Einstellungen sind unbedingt in der 
65 t/lxtest.conf nachzutragen! Weitere Infos unter
66 http://www.openqa.org/selenium-rc/
67
68 Dann reicht ein Start von 
69 #perl t/lx-office.t
70 um dem Testskript bei der Arbeit zuzuschauen.
71
72 Leider ist es nötig, auf dem Seleniumserver nach jedem Aufruf
73 des Testskripts das Sicherheitszertifikat von LINET Services zu 
74 akzeptieren, was etwas nervig ist.
75
76
77 t/selenium/
78 Der Ordner selenium beinhaltet alle einzelnen selenium Testskripte.
79 Aufgerufen werden die Skripte über t/selenium/AllTests.t .
80 Neue Tests müssen in dieser Datei angemeldet werden.
81 Ziel ist es eine Demodatenbank von Lx mit Daten zu füllen und die 
82 Abhängigkeiten untereinander zu prüfen. Dazu sind die 
83 individuellen Testskripte nummeriert (001NAME.t bis 999NAME.t) um 
84 sie der Reihe nach abzuarbeiten.
85
86 Die folgenden Skripte sind bereits installiert:
87
88 001CreateTestDatabase.t  Erzeugt eine neue Testdatenbank
89 002CreateTestUser.t      Erzeugt einen neuen Testbenutzer
90 ...
91 ...
92 998DeleteTestUser.t      Löscht den Testbenutzer
93 999DeleteTestDatabase.t  Löscht die Testdatenbank
94
95 Dazwischen befinden sich die Skripte, um eine Demodatenbank 
96 aufzubauen und zu prüfen.
97
98
99
100 t/backend/
101 In diesem Ordner befinden sich Backend Testskripte.
102
103
104
105 t/frontend/
106 In diesem Ordner befinden sich Frontend Testskripte, die nicht 
107 unter selenium getestet werden.
108
109
110
111 Was wenn ein Test fehlschlägt?
112 Das Fehlschlagen von Tests kann verschiedene Gründe haben.
113 1. Der Test selbst ist fehlerhaft.
114 2. Es haben sich Lx Screens verändert, so das der Test von 
115    falschen Voraussetzungen ausgeht
116 3. Die zu testende Funktion ist fehlerhaft
117
118 Nachdem 1. und 2.  ausgeschlossen wurden, sollte zu 3. ein Bugreport 
119 angelegt werden. 
120 Bugreports unter https://lx-office.linet-services.de/bugzilla/
121 anlegen.
122
123
124
125 Eigene Tests
126 Eigene testskripte können einfach in die Testumgebung eingebunden 
127 werden. Die vorhandenen Skripte können als Anleitung dienen. 
128 Bei Selenium Tests ist es am leichtesten, mit Firefox und der 
129 Selenium IDE Extension Testpfade einfach aufzuzeichnen.
130 ( http://www.openqa.org/selenium-ide/ )
131 Dann werden die Selenium IDE Testaufzeichnungen in Perl 
132 umgewandelt und angepasst. Fertige Skripte werden mit einer 
133 laufenden Nummer versehen und in den Ordner t/selenium/ kopiert.
134 Dann wird das Skript in der Datei t/selenium/AllTests.t eingefügt.
135 Ein erster Probelauf mit 
136 #perl t/selenium/AllTests.t sollte den Test absolvieren.
137 (Dabei kann es nötig sein, andere Tests auszukommentieren, weil 
138 selenium Tests mitunter lange Laufzeiten haben können, oder weil die Demodatenbank 
139 und der Benutzer am Ende zu Debugging Zwecken nicht gelöscht werden
140 sollen.)
141
142