Vorwort | 5 |
Inhaltsverzeichnis | 9 |
1 Der Testprozess | 15 |
1.1 Die Säulen im Testprozess | 16 |
1.2 Phasen im Testprozess | 17 |
1.3 Historie des Themas Softwaretest | 18 |
1.4 Standardisierung von Testprozessen | 19 |
1.5 Die Rolle des Testers im Testprozess | 19 |
1.6 Rahmenbedingungen beim Softwaretest | 21 |
1.7 Verfahren zur Prozessoptimierung | 22 |
2 Grundsätze für Softwaretester | 24 |
2.1 Testen zeigt die Anwesenheit von Fehlern | 24 |
2.2 Vollständige Tests sind unmöglich | 24 |
2.3 Mit dem Testen frühzeitig beginnen | 25 |
2.4 Beim Testen flexibel sein | 25 |
2.5 Tests müssen geplant werden | 26 |
2.6 Testfälle regelmäßig prüfen und reviewen | 26 |
2.7 Das Testumfeld berücksichtigen | 27 |
2.8 Unterschiedliche Personen als Tester und Programmierer | 27 |
2.9 Dokumentation und Nachvollziehbarkeit der Tests | 27 |
2.10 Operation gelungen, Patient tot? | 28 |
2.11 Ermittlung der Fehlerrate | 28 |
2.12 Testnutzen | 30 |
2.13 Testphilosophien | 31 |
3 Testnormen | 33 |
3.1 IEEE 829 Standard for Software Test Documentation | 34 |
3.2 ISO-Standard 9126 | 34 |
3.3 ISO-Standard IEC-29119 | 37 |
4 Rollen und Verantwortlichkeiten im Testmanagement | 39 |
4.1 Testmanager | 39 |
4.2 Testkoordinatoren | 40 |
4.3 Testdesigner | 42 |
4.4 Testautomatisierer | 42 |
4.5 Testsystemadministrator | 43 |
4.6 Tester (Testdurchführer) | 43 |
4.7 Qualifikation für Testverantwortliche | 44 |
5 Grundlagen des Testmanagements | 45 |
5.1 Integration der Testprozesse in den Life Cycle der Softwareentwicklung | 46 |
5.2 Integrierte Toolunterstützung im gesamten Testprozess | 46 |
5.3 Einheitliche Testumgebungen und Testdaten | 47 |
5.4 Softwaretest als Management-Aufgabe | 47 |
5.5 Industrialisierung und Standardisierung der Testprozesse | 47 |
6 Marktsituation beim Softwaretest | 48 |
7 Testvorbereitung | 51 |
7.1 Teststrategie | 51 |
7.2 Kennzahlen zur Wahl der geeigneten Teststrategie | 54 |
7.3 Häufigkeit der Änderungen und Anzahl der Releasezyklen | 56 |
7.4 Änderungsumfang pro Release | 56 |
7.5 Testziele | 57 |
7.6 Anforderungen an das Konfigurationsmanagement | 59 |
7.7 Testendekriterien | 60 |
7.8 Testorganisation | 61 |
8 Requirements Engineering | 63 |
8.1 Grundsätze des Anforderungsmanagements | 63 |
8.2 Kriterien für die Formulierung von Requirements | 65 |
8.3 Requirements Engineering in agilen Projekten | 67 |
8.4 Beispiele zur Formulierung von Requirements | 69 |
8.5 Nachträgliche Erstellung von Requirements | 70 |
8.6 Probleme beim Requirements Engineering | 71 |
8.7 Review der Requirements | 73 |
8.8 Nebenabsprachen und Schattenprozesse | 74 |
8.9 Verzögerungen beim Requirements Management | 74 |
9 Teststufen | 76 |
9.1 Modultest | 76 |
9.2 Integrationstest | 77 |
9.3 Systemtest | 80 |
9.4 Abnahmetest | 82 |
9.5 Mischformen und Abgrenzung der einzelnen Teststufen | 83 |
9.6 Teststufen im V-Modell | 83 |
9.7 Blackbox- und Whitebox-Verfahren | 85 |
9.8 Mehrere Teststufen statt „Big Bang“ | 88 |
10 Testabdeckung und Überdeckungsmaße | 90 |
11 Fehlermanagement | 94 |
11.1 Definition von Fehlern | 95 |
11.2 Fehlerarten | 95 |
11.3 Kosten pro Fehler – die Barry-Boehm-Kurve | 96 |
11.4 Dynamik der Fehlerkosten | 98 |
11.5 Konsequenzen für die Fehlerbehandlung in den Teststufen | 102 |
11.6 Fehlerverfolgung | 103 |
11.7 Aufbau einer Fehlermeldung | 104 |
11.8 Tools für die Fehlerverwaltung | 105 |
11.9 Auswirkungen von Fehlern | 110 |
11.10 Schätzungen für die Fehlerdichte | 112 |
11.11 Programmierfehler – Beispiele | 113 |
12 Testplanung | 120 |
12.1 Erarbeitung der Teststrategie und der Testmaßnahmen | 120 |
12.2 Gemeinsames Verständnis über Testvorgehen und Testziele | 121 |
12.3 Tests nach Auslieferung des Produkts | 122 |
12.4 Testdaten | 122 |
12.5 Das Testprojekt im Entwicklungszyklus | 124 |
12.6 Zeitliche Planung der Testaktivitäten | 125 |
13 Testumgebung | 127 |
14 Testkonzeption | 131 |
14.1 Grundlagen | 131 |
14.2 Aufbau des Testkonzepts | 133 |
14.3 Testkonzept nach IEEE 829 | 136 |
14.4 Testarten, Testinhalte und Testphasen | 139 |
14.5 Testkonzept und betriebliche Realität | 140 |
15 Kennzahlen zur Bewertung von Tests | 143 |
15.1 Testprozessreife | 144 |
15.2 Ermittlung der Testproduktivität | 145 |
15.3 Kennzahlen für die Testeffektivität | 148 |
15.4 Die COCOMO-II-Gleichung | 148 |
15.5 Berechnung der Testdauer und des Testaufwands | 150 |
15.6 Planungsrisiken bei der Aufwandsermittlung | 151 |
15.7 Risikozuschläge in Testprojekten | 153 |
15.8 Vom Entwicklungsaufwand zum Testaufwand | 154 |
15.9 Vom Gesamtaufwand zur Detailbetrachtung | 154 |
15.10 Berücksichtigung vorhandener Ressourcen | 155 |
15.11 Genügend Fehlerpuffer miteinbeziehen | 155 |
15.12 Erfahrungen aus früheren Projekten nutzen | 156 |
16 Testvoraussetzungen | 157 |
17 Beschreibung der Testfälle | 159 |
17.1 Struktur der Testbeschreibung | 159 |
17.2 Testspezifikation und Testimplementierung | 160 |
17.3 Beschreibung der Geschäftsprozesse | 161 |
17.4 Aufbau des einzelnen Testfalls | 161 |
17.5 Strukturierung der Testfälle | 163 |
17.6 Anzahl Testfälle | 164 |
17.7 Abhängigkeiten zwischen Testfällen | 165 |
17.8 Priorisierung von Testfällen | 166 |
17.9 Funktionale und nichtfunktionale Testfälle | 166 |
18 Testmethoden | 173 |
18.1 Äquivalenzklassenbildung | 173 |
18.2 Unterschiedliche Testtiefen | 177 |
18.3 Überdeckungsmaße | 178 |
18.4 Test Maturity Model | 185 |
18.5 Test Process Improvement (TPI) | 185 |
19 Testdurchführung | 186 |
19.1 Änderungen der Testfallbeschreibung während der Testdurchführung | 187 |
19.2 Strukturiertes Testen und exploratives Testen | 187 |
19.3 Intuitive Testfallermittlung | 189 |
19.4 Durchführung explorativer Tests | 190 |
20 Der Testbericht | 191 |
20.1 Kriterien für Testberichte | 191 |
20.2 Beschreibung der Rahmenbedingungen | 192 |
20.3 Bericht der Testergebnisse | 193 |
21 Produktiveinführung von Systemen | 196 |
21.1 Pilotbetriebe | 197 |
21.2 Produktivnahme mit Übergangsphase | 198 |
21.3 Hilfsmodelle | 199 |
22 Reviews im Testprozess | 201 |
22.1 Allgemeines über Reviews | 201 |
22.2 Vorteile von Reviews | 201 |
22.3 Reviewprozess | 203 |
23 Werkzeuge für die Unterstützung des Testmanagements | 205 |
23.1 Evaluation von Testtools | 205 |
23.2 Suche geeigneter Werkzeuge | 206 |
23.3 Anforderungen an geeignete Test-Tools | 208 |
24 Die optimale Testabdeckung | 210 |
25 Testmetriken | 212 |
25.1 Arten von Testmetriken | 213 |
25.2 Bewertung der Komplexität von Testfällen | 214 |
25.3 Problematik von Metriken | 218 |
25.4 Verwässerung von Metriken | 219 |
25.5 Metriken, bei denen man (fast) nur verlieren kann | 221 |
25.6 Aussagen unterschiedlicher „Key Performance Indicators“ | 222 |
25.7 Beispiel für eine Fehlermetrik | 225 |
26 Testautomatisierung | 226 |
26.1 Chancen und Risiken der Testautomatisierung | 227 |
26.2 Vorgehen bei der Testautomatisierung | 228 |
26.3 Planung der Testautomatisierung | 229 |
26.4 Voraussetzungen für automatische Testdurchführung | 230 |
26.5 Codenahe und GUI-Testautomatisierung | 230 |
26.6 Untersuchungen vor der Automatisierung | 231 |
26.7 Ablauf der Testautomatisierung | 231 |
26.8 Testergebnisse bei automatisierten Tests | 232 |
26.9 Qualifikation der Softwaretester bei automatisierten Tests | 233 |
26.10 Automatische Testskripts und Änderungen in der Software | 234 |
26.11 Automatische Generierung von Testdaten | 235 |
26.12 Fehlerfreie Ergebnisse ergeben vollständige Reproduzierbarkeit | 235 |
26.13 Fazit | 236 |
27 Offshoring von Tests | 237 |
28 Test von Internet-Anwendungen | 242 |
28.1 Struktur bei Web-Tests | 242 |
28.2 Fragen an die Web-Applikation | 243 |
28.3 Phasen beim Web-Test | 245 |
28.4 Testabdeckung beim Test von Internetanwendungen | 246 |
28.5 Test unterschiedlicher Sprachen | 247 |
28.6 Look and Feel | 248 |
28.7 Test nach Zielgruppen | 248 |
28.8 A/B-Testing und Multivariate Testing | 249 |
29 Testen in der Cloud | 256 |
30 Mobile Testing | 258 |
30.1 Besonderheiten beim Mobile Testing | 258 |
30.2 Auswirkungen auf das Testmanagement | 259 |
31 Agile Testing | 260 |
31.1 Besonderheiten beim Agile Testing | 260 |
31.2 Testmanagement in agilen Testprojekten | 262 |
31.3 Kombination traditioneller Testmethoden und agiler Methoden | 263 |
Testen ist kein Allheilmittel | 264 |
Fazit | 266 |
Literatur | 268 |
Sachverzeichnis | 271 |