Inhalt | 6 |
Vorwort | 14 |
Die Autoren | 16 |
1Einfü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 |
3Modellbasierte 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 |
4Systemtestplanung | 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 |
5Spezifikation 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 |
6Bereitstellung 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 |
8Auswertung 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 |
9Testpflege 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 |
11Werkzeuge 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 |
12Testmanagement | 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 |
13Anhang | 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 |