|
Inhalt |
6 |
|
|
Vorwort |
14 |
|
|
Die Autoren |
16 |
|
|
1 Einführung in den Systemtest |
18 |
|
|
1.1? Das Wesen eines Systemtests |
18 |
|
|
1.2? Von Entwicklern und Anwendern zu Testern |
21 |
|
|
1.3? Warum wir testen müssen |
23 |
|
|
1.5? Der Systemtestprozess |
27 |
|
|
1.6? Systemtestnormen |
30 |
|
|
1.7? Systemtestwerkzeuge |
31 |
|
|
1.8? Systemtester |
32 |
|
|
1.9? Zur Systemtestbarkeit |
33 |
|
|
1.9.1? Testbarkeit der Anwendungsfälle |
33 |
|
|
1.9.2? Testbarkeit der Benutzeroberflächen |
34 |
|
|
1.9.3? Testbarkeit der Systemschnittstellen |
34 |
|
|
1.9.4? Testbarkeit der Datenbanken |
35 |
|
|
1.9.5? Testen ohne Benutzeroberfläche |
35 |
|
|
2 Testanforderungsanalyse |
38 |
|
|
2.1? Ansätze zur Formulierung der Anforderungen |
39 |
|
|
2.1.1? Formale Spezifikation |
39 |
|
|
2.1.2? Semiformale Spezifikation |
39 |
|
|
2.1.3? Strukturierte Spezifikation |
40 |
|
|
2.1.4? Informale Spezifikation |
42 |
|
|
2.2? Ansätze zur Normierung der Anforderungen |
42 |
|
|
2.3? Die Praxis der Anforderungsdokumentation |
45 |
|
|
2.4? Das V-Modell-XT Lastenheft |
46 |
|
|
2.5? Die Analyse natursprachlicher Anforderungen |
49 |
|
|
2.6? Anforderungsbasierte Testfallermittlung |
51 |
|
|
2.7? Ein Beispiel der Testfallermittlung |
54 |
|
|
2.8? Zur Automatisierung der Testfallermittlung |
61 |
|
|
2.9? Erfahrung mit der automatisierten Anforderungsanalyse |
64 |
|
|
3 Modellbasierte Testspezifikation |
66 |
|
|
3.1? Woher kommt das Modell? |
66 |
|
|
3.1.1? Übernahme des Entwicklermodells |
67 |
|
|
3.1.2? Erstellung eines eigenen Testmodells |
68 |
|
|
3.1.3? Gewinnung eines Modells aus der Anforderungsdokumentation |
69 |
|
|
3.1.4? Gewinnung eines Modells aus dem Code |
70 |
|
|
3.2? Ableitung der Testfälle aus einem UML?Modell |
72 |
|
|
3.2.1? Testfälle aus den UseCase-Diagrammen |
73 |
|
|
3.2.2? Testfälle aus den Sequenzdiagrammen |
73 |
|
|
3.2.3? Testfälle aus den Aktivitätsdiagrammen |
73 |
|
|
3.2.4? Testfälle aus den Zustandsdiagrammen |
74 |
|
|
3.2.5? Vereinigung der Testfälle |
74 |
|
|
3.3? Vom Testmodell zur Testausführung |
75 |
|
|
3.4? Alternative zum modellbasierten Test |
77 |
|
|
3.4.1? Testen gegen die Vorstellungen des Testers |
78 |
|
|
3.4.2? Testen gegen das Benutzerhandbuch |
78 |
|
|
3.4.3? Testen gegen die Anforderungsdokumentation |
79 |
|
|
3.4.4? Testen gegen das bestehende System |
79 |
|
|
3.5? Beurteilung des modellbasierten Testens |
79 |
|
|
3.5.1? Modellbasiertes Testen im Vergleich mit Testen gegen die Testervorstellungen |
79 |
|
|
3.5.2? Modellbasiertes Testen im Vergleich zum Testen gegen das Benutzerhandbuch |
80 |
|
|
3.5.3? Modellbasiertes Testen im Vergleich zum Testen gegen ein bestehendes System |
80 |
|
|
3.5.4? Testen gegen ein Modell im Vergleich zum Testen gegen die Anforderungsspezifikation |
80 |
|
|
3.5.5? Der optimale Testansatz ist situationsbedingt |
81 |
|
|
4 Systemtestplanung |
82 |
|
|
4.1? Zweck der Testplanung |
82 |
|
|
4.2? Voraussetzungen zur Testplanung |
87 |
|
|
4.3? Schätzung der Testaufwände |
90 |
|
|
4.3.1? Test-Points |
91 |
|
|
4.3.2? Testproduktivität |
91 |
|
|
4.3.3? Komplexität und Qualität |
92 |
|
|
4.3.4? Die COCOMO-II Gleichung |
94 |
|
|
4.4? Schätzung der Testdauer |
95 |
|
|
4.5? Testprojektorganisation |
96 |
|
|
4.5.1? Organisation der Testressourcen |
96 |
|
|
4.5.2? Organisation des Testpersonals |
98 |
|
|
4.6? Testrisikoanalyse |
99 |
|
|
4.7? Festlegung der Testendekriterien |
100 |
|
|
4.8? Gestaltung des Testplans nach ANSI/IEEE-829 |
102 |
|
|
4.8.1? Testkonzept-ID |
103 |
|
|
4.8.2? Einführung |
103 |
|
|
4.8.3? Zu testende Objekte |
104 |
|
|
4.8.4? Zu testende Funktionen |
104 |
|
|
4.8.5? Nicht zu testende Funktionen |
104 |
|
|
4.8.6? Testvorgehensweise |
104 |
|
|
4.8.7? Testendekriterien |
104 |
|
|
4.8.8? Testabbruchkriterien |
105 |
|
|
4.8.9? Testergebnisse |
105 |
|
|
4.8.10? Testaufgaben |
105 |
|
|
4.8.11? Testumgebung |
106 |
|
|
4.8.12? Testverantwortlichkeiten |
106 |
|
|
4.8.13? Testpersonalbedarf |
106 |
|
|
4.8.14? Testzeitplan |
107 |
|
|
4.8.15? Testrisiken und Risikomanagement |
107 |
|
|
4.8.16? Genehmigungen |
107 |
|
|
4.9? Die Prüfspezifikation nach V-Modell-XT |
108 |
|
|
4.9.1? Einleitung |
109 |
|
|
4.9.2? Prüfziele |
109 |
|
|
4.9.3? Prüfobjekte |
109 |
|
|
4.9.4? Prüffälle |
110 |
|
|
4.9.5? Prüfstrategie |
110 |
|
|
4.9.6? Prüfkriterien |
110 |
|
|
4.9.7? Prüfergebnisse |
111 |
|
|
4.9.8? Prüfaufgaben |
111 |
|
|
4.9.9? Prüfumgebung |
111 |
|
|
4.9.10? Prüffallzuordnung |
112 |
|
|
4.9.11? Prüfaufwand |
112 |
|
|
4.9.12? Risikovorkehrungen |
113 |
|
|
5 Spezifikation der Testfälle |
114 |
|
|
5.1? Aufbau der Testfälle |
114 |
|
|
5.1.1? Das Testfallkennzeichen |
116 |
|
|
5.1.2? Der Testfallzweck |
116 |
|
|
5.1.3? Die Testfallquelle |
116 |
|
|
5.1.4? Die Testanforderung |
117 |
|
|
5.1.5? Der Testvorgang |
117 |
|
|
5.1.6? Die Testobjekte |
117 |
|
|
5.1.7? Die Testfallvorzustände |
118 |
|
|
5.1.8? Die Testfallnachzustände |
118 |
|
|
5.1.9? Die Vorgängertestfälle |
118 |
|
|
5.1.10? Die Nachfolgetestfälle |
119 |
|
|
5.1.11? Die Testumgebung |
119 |
|
|
5.1.12? Die Testfallargumente |
119 |
|
|
5.1.13? Die Testfallergebnisse |
120 |
|
|
5.1.14? Der Testfallstatus |
120 |
|
|
5.2? Darstellung der Testfälle |
122 |
|
|
5.2.1? Testfälle im Textformat |
123 |
|
|
5.2.2? Testfälle im Tabellenformat |
125 |
|
|
5.2.3? Testfälle im XML-Format |
126 |
|
|
5.2.4? Testfälle in einer formalen Sprache – TTCN |
127 |
|
|
5.3? Erstellung der Testfälle |
130 |
|
|
5.3.1? Generierung der Grunddaten aus dem Anforderungstext |
130 |
|
|
5.3.2? Ergänzungen der Testfälle |
131 |
|
|
5.4? Speicherung der Testfälle |
132 |
|
|
5.4.1? Testfälle als Texte |
132 |
|
|
5.4.2? Testfälle als Tabellen |
132 |
|
|
5.4.3? Testfälle als XML-Format |
133 |
|
|
5.5? Qualitätssicherung der Testfälle |
134 |
|
|
5.5.1? Testfallquantität |
135 |
|
|
5.5.2? Messung der Testfallkomplexität |
137 |
|
|
5.5.3? Messung der Testfallqualität |
138 |
|
|
5.6? Überführung der Testfälle in einen Testentwurf |
140 |
|
|
5.7? Wartung und Weiterentwicklung der Testfälle |
141 |
|
|
6 Bereitstellung der Testdaten |
144 |
|
|
6.1? Testdatenquellen |
145 |
|
|
6.1.1? Die Anforderungsdokumentation als Quelle von Testdaten |
145 |
|
|
6.1.2? Das Entwurfsmodell als Quelle von Testdaten |
146 |
|
|
6.1.3? Der Source-Code als Quelle von Testdaten |
146 |
|
|
6.1.4? Die alten Testdaten als Quelle von Testdaten |
146 |
|
|
6.1.5? Die Produktionsdaten als Quelle von Testdaten |
147 |
|
|
6.1.6? Die fachlogischen Testfälle als Quelle von Testdaten |
147 |
|
|
6.2? Testdatenobjekte |
147 |
|
|
6.3? Testdatenerstellungsansätze |
149 |
|
|
6.3.1? Der blinde Ansatz zur Testdatenerstellung |
150 |
|
|
6.3.2? Der gezielte Ansatz zur Testdatenerstellung |
150 |
|
|
6.3.3? Der kombinierte Ansatz |
151 |
|
|
6.3.4? Der Mutationsansatz |
151 |
|
|
6.4? Testdatentypen |
152 |
|
|
6.4.1? Datenbanken |
153 |
|
|
6.4.2? Systemschnittstellen |
154 |
|
|
6.4.3? Benutzeroberflächen |
156 |
|
|
6.5? Testdatengenerierung |
157 |
|
|
6.5.1? Datengenerierung aus den Testfällen |
158 |
|
|
6.5.2? Datengenerierung aus Testprozeduren |
159 |
|
|
6.5.3? Datengenerierung aus dem Source-Code |
160 |
|
|
6.5.4? Datengenerierung aus vorhandenen Daten |
160 |
|
|
6.6? Werkzeuge für die Testdatengenerierung |
161 |
|
|
6.6.1? Datenbankgeneratoren |
163 |
|
|
6.6.2? Schnittstellengeneratoren |
163 |
|
|
6.6.3? Oberflächengeneratoren |
164 |
|
|
7 Systemtestausführung |
166 |
|
|
7.1? Systemtypen |
167 |
|
|
7.1.1? Alleinstehende Systeme |
167 |
|
|
7.1.2? Integrierte Systeme |
167 |
|
|
7.1.3? Verteilte Systeme |
168 |
|
|
7.1.4? Web-basierte Systeme |
169 |
|
|
7.1.5? Service-orientierte Systeme |
169 |
|
|
7.1.6? Vollautomatische Systeme |
171 |
|
|
7.1.7? Eingebettete Echtzeitsysteme |
172 |
|
|
7.2? Test alleinstehender Systeme |
173 |
|
|
7.3? Test integrierter Systeme |
175 |
|
|
7.3.1? Funktionstest |
175 |
|
|
7.3.2? Belastungstest |
177 |
|
|
7.3.3? Benutzbarkeitstest |
178 |
|
|
7.4? Test verteilter Systeme |
179 |
|
|
7.4.1? Interaktionstest |
179 |
|
|
7.4.2? Testverfolgung im Netz |
179 |
|
|
7.4.3? Sicherheitstest |
180 |
|
|
7.5? Test Web-basierter Systeme |
181 |
|
|
7.5.1? Test der Web-Architektur |
182 |
|
|
7.5.2? Test der Web-Anwendung |
182 |
|
|
7.6? Test Service-orientierter Systeme |
183 |
|
|
7.6.1? Vorbereitung des Servicetests |
184 |
|
|
7.6.2? Ausführung des Web Service-Tests |
185 |
|
|
7.6.3? Simulierter Test der Geschäftsprozesse |
186 |
|
|
7.6.4? Integration der Services mit den Geschäftsprozessen |
186 |
|
|
7.7? Test vollautomatisierter Systeme |
187 |
|
|
7.7.1? Werkzeuge für den automatisierten Test |
187 |
|
|
7.7.2? Tester für den automatisierten Test |
188 |
|
|
7.8? Test eingebetteter Systeme |
189 |
|
|
7.9? Kein System ist wie das andere |
190 |
|
|
8 Auswertung des Systemtests |
192 |
|
|
8.1? Zweck der Testauswertung |
192 |
|
|
8.2? Auswertung der Testergebnisse |
194 |
|
|
8.2.1? Sichtbare und unsichtbare Ergebnisse |
194 |
|
|
8.2.2? Möglichkeiten der Ergebniskontrolle |
194 |
|
|
8.2.3? Begründung der Ergebniskontrolle |
195 |
|
|
8.2.4? Automatisierte Ergebniskontrolle |
196 |
|
|
8.3? Messung der Testüberdeckung |
198 |
|
|
8.3.1? Testüberdeckungsmaße |
198 |
|
|
8.3.2? Function-Point-Überdeckung |
199 |
|
|
8.3.3? Anforderungsüberdeckung |
200 |
|
|
8.3.4? Überdeckung bisheriger Funktionalität |
201 |
|
|
8.3.5? Fehlerüberdeckung |
201 |
|
|
8.4? Fehleranalyse |
202 |
|
|
8.4.1? Fehlerlokalisierung |
202 |
|
|
8.4.2? Fehlermeldung |
203 |
|
|
8.5? Systemtestmetrik |
205 |
|
|
8.5.1? Testüberdeckungsmaße |
206 |
|
|
8.5.2? Fehleranalysemaße |
209 |
|
|
8.5.3? Messung der Testeffektivität |
210 |
|
|
8.6? Systemtestmessung in der Praxis |
212 |
|
|
9 Testpflege und ?fortschreibung |
216 |
|
|
9.1? Analyse der Änderungsanträge (CRs) |
217 |
|
|
9.2? Fortschreibung und Optimierung des Testplans |
218 |
|
|
9.2.1? Fortschreibung der Testziele |
218 |
|
|
9.2.2? Fortschreibung der Testobjekte |
219 |
|
|
9.2.3? Fortschreibung der zu testenden Funktionen |
219 |
|
|
9.2.4? Fortschreibung der Teststrategie und Testendekriterien |
219 |
|
|
9.2.5? Fortschreibung der Testergebnisse |
219 |
|
|
9.2.6? Fortschreibung der Testaufgaben |
220 |
|
|
9.2.7? Fortschreibung des Personalplanes |
220 |
|
|
9.2.8? Fortschreibung der Testrisiken |
220 |
|
|
9.2.9? Rekalkulation der Testkosten |
221 |
|
|
9.3? Impaktanalyse der Software |
222 |
|
|
9.3.1? Statische Impaktanalyse |
222 |
|
|
9.3.2? Dynamische Impaktanalyse |
223 |
|
|
9.4? Fortschreibung der Testfälle |
224 |
|
|
9.4.1? Spezifikation neuer Testfälle |
224 |
|
|
9.4.2? Anpassung bestehender Testfälle |
224 |
|
|
9.5? Anreicherung der Testdaten |
225 |
|
|
9.5.1? Direkte Anreicherung der Daten |
225 |
|
|
9.5.2? Indirekte Anreicherung der Daten |
225 |
|
|
9.6? Ausführen des Regressionstests |
226 |
|
|
9.6.1? Eigenarten eines Regressionstests |
226 |
|
|
9.6.2? Der Test im Dialogmodus |
227 |
|
|
9.6.3? Der Test im Batch-Modus |
227 |
|
|
9.6.4? Testautomatisierung beim Regressionstest |
227 |
|
|
9.7? Auswertung des Regressionstests |
228 |
|
|
9.7.1? Kontrolle der Regressionstestüberdeckung |
228 |
|
|
9.7.2? Kontrolle der Regressionstestergebnisse |
229 |
|
|
9.7.3? Protokollierung der Regressionstestergebnisse |
231 |
|
|
9.8? Automatisierung des Regressionstests |
231 |
|
|
9.9? Der Regressionstest in Migrationsprojekten |
233 |
|
|
9.9.1? Voller Regressionstest |
234 |
|
|
9.9.2? Selektiver Regressionstest |
235 |
|
|
10 Systemtestautomation |
238 |
|
|
10.1? Ein Modell für die Testautomatisierung |
239 |
|
|
10.1.1? Testeingaben |
239 |
|
|
10.1.2? Testausgaben |
240 |
|
|
10.1.3? Testobjektbeziehungen |
240 |
|
|
10.2? Testereignisse |
241 |
|
|
10.2.1? Planende Testereignisse |
242 |
|
|
10.2.2? Vorbereitende Testereignisse |
242 |
|
|
10.2.3? Ausführende Testereignisse |
243 |
|
|
10.2.4? Abschließende Testereignisse |
243 |
|
|
10.2.5? Zusammenfassung der Testereignisse |
244 |
|
|
10.3? Zur Automation der Testereignisse |
244 |
|
|
10.3.1? Automatische Ableitung der logischen Testfälle aus der Anforderungsdokumentation |
245 |
|
|
10.3.2? Automatisierte Erzeugung eines Testplans |
245 |
|
|
10.3.3? Automatische Erstellung eines Testentwurfs |
246 |
|
|
10.3.4? Automatische Generierung der Testdaten |
246 |
|
|
10.3.5? Automatisierte Erzeugung physikalischer Testfälle |
247 |
|
|
10.3.6? Automatische Generierung der Testprozeduren |
247 |
|
|
10.3.7? Automatische Instrumentierung des Codes |
247 |
|
|
10.3.8? Die automatische Testausführung |
248 |
|
|
10.3.9? Die automatische Ergebnisprüfung |
248 |
|
|
10.3.10? Automatische Kontrolle der Testüberdeckung |
248 |
|
|
10.3.11? Automatisch generierte Testmetrik |
248 |
|
|
10.4? Voraussetzungen der Testautomation |
249 |
|
|
10.4.1? Formalisierung der Anforderungsspezifikation |
250 |
|
|
10.4.2? Standardisierung der Testdokumente |
251 |
|
|
10.4.3? Definition der Datenwertebereiche |
251 |
|
|
10.4.4? Qualifizierung der Tester |
252 |
|
|
10.5? Systemtestautomation als eigenständiges Projekt |
253 |
|
|
10.5.1? Erste Automatisierungsstufe |
254 |
|
|
10.5.2? Zweite Automatisierungsstufe |
254 |
|
|
10.5.3? Dritte Automatisierungsstufe |
255 |
|
|
10.5.4? Vierte Automatisierungsstufe |
255 |
|
|
10.5.5? Fünfte Automatisierungsstufe |
255 |
|
|
10.6? Alternative zum automatisierten Test |
255 |
|
|
10.6.1? Erste Alternative = weniger Testen |
256 |
|
|
10.6.2? Zweite Alternative = massiver Personaleinsatz |
256 |
|
|
10.7? Vergangenheit und Zukunft der Testautomation |
257 |
|
|
11 Werkzeuge für den Systemtest |
260 |
|
|
11.1? Werkzeugkategorien – Einsatzgebiete |
260 |
|
|
11.2? Funktionalität und Auswahlkriterien |
261 |
|
|
11.3? Werkzeuge aus Projekten: Der Testarbeitsplatz |
264 |
|
|
12 Testmanagement |
270 |
|
|
12.1? Notwendigkeit des Systemtestmanagements |
270 |
|
|
12.2? Hauptaufgaben des Systemtestmanagements |
271 |
|
|
12.2.1? Testplanung und Umsetzung des Testkonzeptes |
272 |
|
|
12.2.2? Laufendes Controlling aller Testaktivitäten |
275 |
|
|
12.2.2.1? Inhaltscontrolling |
276 |
|
|
12.2.2.2? Controlling der Planungsgrößen |
278 |
|
|
12.2.2.3? Controlling der Testendekriterien |
280 |
|
|
12.2.3? Sicherstellung der Qualität der Testergebnisse |
282 |
|
|
12.2.3.1? Qualität des Testdesigns und der Testfälle |
283 |
|
|
12.2.3.2? Qualität der Protokollierung der Testdurchführung |
284 |
|
|
12.2.3.3? Qualität des Fehlermanagements |
284 |
|
|
12.3? Testprozessmanagement |
285 |
|
|
12.3.1? Testprozessgestaltung |
285 |
|
|
12.3.2? Testprozessreife |
287 |
|
|
12.4? Testteamführung |
288 |
|
|
13 Anhang |
292 |
|
|
13.1? Anhang A: Testplan nach ANSI/IEEE-829 |
292 |
|
|
13.2? Anhang B1: Schema für die Testfallspezifikation |
298 |
|
|
13.3? Anhang B2: Beispiel einer Testfallspezifikation für den Test der Auftragsbearbeitung |
300 |
|
|
13.4? Anhang C1: Testdatengenerierungsskript |
303 |
|
|
13.5? Anhang C2: Testergebnisvalidierungsskript |
305 |
|
|
Literatur |
306 |
|
|
Register |
322 |
|