lehrerbibliothek.deDatenschutzerklärung
Software-Testing Rapid Application Testing, Softwaretest, Agiles Qualitätsmanagement
Software-Testing
Rapid Application Testing, Softwaretest, Agiles Qualitätsmanagement




Manfred Rätzmann

Galileo Press
EAN: 9783898422710 (ISBN: 3-89842-271-2)
281 Seiten, hardcover, 17 x 24cm, 2003

EUR 39,90
alle Angaben ohne Gewähr

Umschlagtext
Dieses Buch wird Ihren Blick auf Testmethoden und Vorgehensweisen verändern. Es vermittelt nicht nur die zum Testen von Software notwendigen Kenntnisse und Praktiken, sondern setzt diese in Bezug zur täglichen Realität von Budgetknappheit und Termindruck. Dabei wird verstärkt auf die spezifischen Bedingungen von kleinen, agilen Projektgruppen eingegangen.

Sie erhalten einen Überblick über die klassischen Vorgehensweisen des Software-Testings und verstehen, warum diese in vielen Projekten heute nicht mehr anwendbar sind. Sie erfahren die speziellen Anforderungen beim Planen, Durchführen und Auswerten von Tests moderner, objektorientierter Software und können die Einsetzbarkeit der heute diskutierten alternativen Techniken für ihre tägliche Arbeit beurteilen und die zur jeweiligen Anforderung passende Testtechnik auswählen.

Aus dem Inhalt:

- Neue Antworten zum Qualitätsbegriff

- Risikoanalyse und Bewertung

- Risiko-orientiertes Testen

- Exploratives Testen

- Test and Tune

- Testen durch Benutzen

- Testpatterns

- Anwendungsfälle, Anforderungen, Testfälle

- Debugging

- Automatisiertes Testen: Mythos und Wirklichkeit

- Windows Scripting

- Testframeworks

- Testorientiertes Anwendungsdesign

- Werkzeuge für Entwickler und Tester

- Agiles Testmanagement

u.v.m.
Inhaltsverzeichnis
Äußerst subjektives Vorwort ... 9

1 ... Rapid Application Testing ... 11
1.1 ... Alles fließt ... 11
1.1.1 ... Software-Entwicklung als Spiel ... 11
1.1.2 ... Die Kunst, ein Programm zum Absturz zu bringen ... 12
1.1.3 ... Fehlergewichtung ... 13
1.2 ... Das Rapide am Rapid Application Testing ... 14
1.2.1 ... Integriertes Testen ... 16
1.2.2 ... Gut Ding will Weil haben ... 16
1.3 ... Tester und Entwickler ... 17
1.3.1 ... Der Stand der Dinge ... 17
1.3.2 ... Theorie und Praxis ... 19
1.3.3 ... Sein und Bewusstsein ... 20
1.3.4 ... And the winner is ... 21
1.4 ... Ideen, Techniken und Werkzeuge ... 22

2 ... Tests, ganz allgemein gesehen ... 25
2.1 ... Was ist Software-Qualität? 25
2.1.1 ... Definitionsversuche ... 25
2.1.2 ... Neue Antworten zum Qualitätsbegriff ... 28
2.2 ... Der generelle Ablauf eines Tests ... 30
2.2.1 ... Planung ... 31
2.2.2 ... Durchführung ... 33
2.2.3 ... Auswertung ... 34
2.3 ... Was tun mit den Testergebnissen? 35
2.3.1 ... Gegentest ... 36
2.3.2 ... Liste der bekannten Fehler ... 39
2.4 ... Teststrategien ... 39
2.4.1 ... Exploratives Testen ... 39
2.4.2 ... Testen und Verbessern (Test & Tune) 40
2.4.3 ... Automatisiertes Testen ... 41
2.4.4 ... Testen durch Benutzen ... 44
2.4.5 ... Testen durch Dokumentieren ... 46
2.4.6 ... Regressionstests ... 47
2.4.7 ... Smoke-Tests ... 48
2.4.8 ... Eingebettete Tests ... 49
2.4.9 ... Live-Tests ... 50
2.5 ... Testverfahren ... 51
2.5.1 ... Black-Box-Tests ... 51
2.5.2 ... White-Box-Tests ... 52
2.5.3G ... ray-Box-Tests ... 52
2.6 ... Testarten für Funktions- und Strukturtests ... 54
2.6.1 ... Anforderungsbasierte Tests ... 54
2.6.2 ... Designbasierte Tests ... 55
2.6.3 ... Codebasierte Tests ... 55
2.6.4 ... Performance-Tests ... 56
2.6.5 ... Lasttests ... 57
2.6.6 ... Robustheitstests ... 57
2.6.7 ... Dauertests ... 57
2.6.8 ... Installationstests ... 58
2.6.9 ... Sicherheitstests ... 58
2.7 ... Testarten mit unterschiedlichen Eingabedaten ... 58
2.7.1 ... Zufallsdaten-Tests ... 58
2.7.2 ... Stichproben-Tests ... 59
2.7.3 ... Grenzwert-Tests ... 60
2.8 ... Testphasen ... 61
2.8.1 ... Das klassische Testplanungsmodell ... 62
2.8.2 ... Phasenintegration beim Rapid Application Testing ... 68
2.9 ... Andere Qualitätssicherungsmethoden ... 71
2.9.1 ... Entwurfs- und Code- Reviews ... 72
2.9.2 ... Statische Codeanalyse ... 73
2.9.3 ... Modellvalidierung ... 74

3 ... Tests in der täglichen Praxis ... 75
3.1 ... Entwickeln und prüfen ... 75
3.1.1 ... Ein Fallbeispiel ... 76
3.2 ... Risikobewertung ... 90
3.2.1 ... Prioritäten setzen ... 90
3.2.2 ... Verschiedene Risikoarten ... 91
3.2.3 ... Risikobewertung nach Benutzerprioritäten ... 93
3.2.4 ... Funktions-/Risikomatrix ... 97
3.3 ... Test-Patterns, Muster bei der Fehlersuche ... 98
3.3.1 ... Best, Minimal, Maximal und Error Case ... 99
3.3.2 ... Äquivalenzklassen ... 100
3.3.3 ... Grenzwerte ... 102
3.3.4 ... Ursache-/Wirkungs-Grafen, Entscheidungstabellen ... 103
3.4 ... Unit-Testing ... 104
3.4.1 ... Funktionale Tests ... 105
3.4.2 ... Strukturtests ... 112
3.5 ... Integrationstests ... 116
3.5.1 ... Transaktionen ... 117
3.5.2 ... Anbindung der Oberfläche ... 120
3.5.3 ... Synchronisation ... 120
3.6 ... Systemtests ... 122
3.6.1 ... Funktionale Vollständigkeit ... 122
3.6.2 ... Ablaufverhalten ... 125
3.6.3 ... Installation ... 127
3.6.4 ... Kapazitätsbeschränkungen ... 129
3.6.5 ... Systemprobleme ... 130
3.6.6 ... Systemsicherheit ... 131
3.7 ... Performance Tests ... 133
3.7.1 ... Systemparameter ... 134
3.7.2 ... Quadratisches Verhalten ... 135
3.7.3 ... Lasttests für Middleware ... 138
3.7.4 ... Datenbankzugriff ... 140
3.8 ... Testabdeckung ... 141
3.8.1 ... Klassische Abdeckungskenngrößen ... 141
3.8.2 ... Was besagen Code-Coverage- Kenngrößen? 143
3.8.3 ... Funktionsabdeckung ... 145
3.8.4 ... Testfallermittlung aus Anwendungsfällen ... 146
3.8.5 ... Testabdeckung bei objektorientierten Sprachen ... 149
3.8.6 ... Abdeckung von Systemszenarien ... 152

4 ... Verfahren und Werkzeuge ... 159
4.1 ... Debugging - noch ein Fallbeispiel ... 159
4.1.1 ... Der Testfall ... 160
4.1.2 ... Fehler erkennen ... 161
4.1.3 ... Fehlerhäufungen ... 163
4.1.4 ... Fehler isolieren ... 164
4.1.5 ... Fehlermeldung verfassen ... 167
4.1.6 ... Fehler entfernen ... 168
4.1.7 ... Verifizieren ... 169
4.1.8 ... Regressionstests ... 170
4.2 ... Automatisierung von Testabläufen ... 171
4.2.1 ... Integrations- und Systemtests ... 171
4.2.2 ... Scripting unter Windows ... 176
4.2.3 ... Unit-Test-Frameworks ... 194
4.2.4 ... Tests der Anwendungsoberfläche ... 204
4.3 ... Testorientiertes Anwendungsdesign ... 207
4.3.1 ... Trennung von Oberfläche und Verarbeitung ... 208
4.3.2 ... Behandlung von Druckausgaben ... 211
4.3.3 ... Interface-zentriertes Design ... 212
4.3.4 ... Design-by-Contract ... 213
4.3.5 ... Testcode ... 220
4.3.6 ... Code-Instrumentierung ... 221
4.3.7 ... Audit Trail ... 222
4.4 ... Werkzeuge ... 223
4.4.1 ... Dateivergleicher, Diff, XML- Diff ... 223
4.4.2 ... Datenzugriff und Auswertung ... 224
4.4.3 ... COM inter aktiv ... 226
4.4.4 ... Code Coverage, Logging, Tracing und Profiling ... 228
4.4.5 ... Design-by-Contract ... 229
4.4.6 ... Last- und Performance- Tests ... 230
4.4.7 ... GUI Test-Automatisierung ... 231
4.4.8 ... Tests verteilter Systeme ... 233

5 ... Agiles Qualitätsmanagement ... 235
5.1 ... Beweglich bleiben! 235
5.1.1 ... Personen und Wechselwirkungen ... 236
5.1.2 ... Funktionierende Software ... 238
5.1.3 ... Zusammenarbeit mit dem Kunden ... 239
5.1.4 ... Reagieren auf Änderungen ... 241
5.2 ... Aufwandsabschätzungen ... 242
5.2.1 ... Eigene Projekte auswerten ... 244
5.2.2 ... Software-Risikoklassen ... 244
5.3 ... Der Testrechner ... 245
5.3.1 ... Festplatten klonen ... 246
5.3.2 ... Virtuelle Maschinen ... 246
5.4 ... Testdaten verwalten ... 247
5.5 ... Qualitätsmetriken ... 248
5.5.1 ... Fehler pro Bereich ... 248
5.5.2 ... Fehler nach Fehlerart ... 249
5.5.3 ... Fehler pro Zeiteinheit ... 249
5.6 ... Qualitätskontrolle ... 250
5.6.1 ... Fehlerverfolgungs- Datenbank ... 250
5.6.2 ... Fehlermeldungen ... 252
5.6.3 ... Testfallverfolgung ... 252
5.6.4 ... Testskripte ... 255
5.7 ... Testendekriterien ... 256
Literatur ... 259
Index ... 267