Harry M. Sneed, Manfred Baumgartner, Richard Seidl
Der Systemtest
Von den Anforderungen zum Qualitätsnachweis
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
© 2009-2024 ciando GmbH