Manfred Baumgartner, Martin Klonk, Helmut Pichler, Richard Seidl, Siegfried Tanczos
Agile Testing
Der agile Weg zur Qualität
Inhalt
6
Geleitwort
11
Vorwort
18
Praxisbeispiele
20
Die Autoren
21
1 Agil – ein kultureller Wandel
26
1.1 Der Weg zur agilen Entwicklung
26
1.2 Gründe für eine agile Entwicklung
29
1.3 Die Bedeutung des Agilen Manifests für den Software-Test
32
1.4 Agil setzt Kulturwandel bei den Anwendern voraus
35
1.5 Konsequenzen der agilen Entwicklung für die Software-Qualitätssicherung
37
1.5.1 Räumliche Konsequenzen
37
1.5.2 Zeitliche Konsequenzen
38
2 Agile Vorgehensmodelle und deren Sicht auf Qualitätssicherung
40
2.1 Herausforderungen in der Qualitätssicherung
41
2.1.1 Qualität und Termin
41
2.1.2 Qualität und Budget
42
2.1.3 Der Stellenwert des Software-Tests
43
2.1.4 Fehler aus Vorprojekten (Technical Debt)
45
2.1.5 Testautomatisierung
46
2.1.6 Hierarchische Denkweise
47
2.2 Der Stellenwert des Teams
47
2.3 Audits zur Qualitätssicherung in agilen Projekten
49
2.3.1 Scrum
49
2.3.1.1 Sprint Review Meeting
51
2.3.1.2 Sprint Retrospektive
52
2.3.2 Kanban
56
2.3.2.1 Kaizen – Continuous Improvement
57
2.4 Continuous Integration
58
2.5 Lean Software Development
59
3 Die Organisation des Software-Tests in agilen Projekten
62
3.1 Die Platzierung von Tests in agilen Projekten
63
3.1.1 Der fundamentale Testprozess des ISTQB
63
3.1.1.1 Testplanung und -steuerung
63
3.1.1.2 Testanalyse und Testentwurf
66
3.1.1.3 Testrealisierung und Testdurchführung
67
3.1.1.4 Bewertung von Endekriterien und Bericht
68
3.1.1.5 Abschluss der Testaktivitäten
69
3.1.2 Welcher Test wofür – die vier Testquadranten agilen Testens
71
3.1.2.1 Erster Quadrant: technisch orientiert und teamunterstützend
72
3.1.2.2 Zweiter Quadrant: fachlich orientiert und teamunterstützend
75
3.1.2.3 Dritter Quadrant: fachlich orientiert, aber produkthinterfragend
78
3.1.2.4 Vierter Quadrant: technisch orientiert aber produkthinterfragend
79
3.1.2.5 Der Kontext
81
3.1.3 Tipps für den Software-Test aus agiler Perspektive
82
3.1.4 Agil im Großen mit SAFe oder LeSS
85
3.1.4.1 Testen mit SAFe
85
3.1.4.2 Testen mit LeSS
88
3.1.5 Skalierbare Organisation agiler Teams
90
3.2 Praxisbeispiele
93
3.2.1 Die Rolle des Testers und ihre Veränderung im Laufe der Zeit zum Quality Specialist bei otto.de – ein Erfahrungsbericht
93
3.2.2 Abnahmetest als eigenes Scrum-Projekt/-Team
97
3.2.3 Test Competence Center für agile Projekte
98
3.2.4 Team im Healthcare-Bereich nutzt V-Modell
99
4 Die Rolle des Testers in agilen Projekten
102
4.1 Generalist vs. Spezialist
102
4.2 Der Weg vom zentralen Testcenter in das agile Team
104
4.2.1 Varianten der Testereinbindung in traditionellen Teams
105
4.2.2 Varianten der Testereinbindung in agile Teams
106
4.2.2.1 Die Umstellung von der traditionellen auf die agile Welt
107
4.2.2.2 Steigerung von Effizienz und Effektivität
108
4.2.2.3 Teamzusammenstellung
109
4.3 Herausforderungen der Tester im Team
115
4.3.1 Die Tester im agilen Team
115
4.3.1.1 Der Quality Coach
116
4.3.1.2 Aufgaben der agilen Tester
116
4.3.2 Rechtzeitige Problemaufdeckung
118
4.3.3 Die Entstehung technischer Schulden
120
4.4 Teams und Tester im Kampf gegen „technical debt“
121
4.4.1 Was ist „technical debt“?
121
4.4.2 Der Umgang mit technischen Schulden
123
4.5 Erfahrungsbericht: Quality Specialist bei otto.de
125
4.5.1 Wir agieren als Quality-Coach des Teams
125
4.5.2 Wir begleiten den kompletten Story-Lifecycle
126
4.5.3 Wir betreiben Continuous Delivery/Continuous Deployment
126
4.5.4 Wir balancieren die unterschiedlichen Testarten der Testpyramide
127
4.5.5 Wir helfen dem Team, die richtigen Methoden für hohe Qualität einzusetzen
127
4.5.6 Wir sind im Pairing aktiv
128
4.5.7 Wir vertreten unterschiedliche Perspektiven
128
4.5.8 Wir sind Kommunikationstalente
129
4.5.9 Wir sind Quality Specialists
129
4.6 Zu alt für agil? Die mentale Herausforderung
130
4.6.1 Ausgangslage
130
4.6.2 Was führt zur Aussage „Agil ist etwas für junge Leute“?
131
4.6.2.1 Kreativität und Flexibilität
131
4.6.2.2 Verhaftet in alten Denkmustern
131
4.6.2.3 Trägheit, fehlende Beweglichkeit
132
4.6.2.4 Arbeitsumfeld
132
4.6.2.5 Vorteile der Jugend
133
4.6.2.6 Stärken der Senior-Tester/Senior-Manager
133
4.7 Hilfreiche Tipps vom Markt
134
5 Agiles Testmanagement, -methoden und -techniken
136
5.1 Testmanagement
137
5.1.1 Testplanung im traditionellen Umfeld
137
5.1.2 Testplanung im agilen Umfeld
139
5.1.3 Testkonzept
141
5.1.4 Testaktivitäten in Iteration Zero – Initialisierungs-Sprint
144
5.1.5 Externe Unterstützung der Testplanung
145
5.1.6 Testschätzung
145
5.1.7 Testorganisation
147
5.1.8 Testerstellung, Durchführung und Release
148
5.2 Testmethoden im agilen Umfeld
149
5.2.1 Risikobasiertes und valuebasiertes Testen
150
5.2.2 Explorativer Test
153
5.2.3 Session-basiertes Testen
154
5.2.4 Abnahmetestgetriebene Entwicklung
157
5.2.5 Testautomatisierung
157
5.3 Wesentliche Einflussfaktoren auf den Test
158
5.3.1 Continuous Integration (CI)
158
5.3.2 Automatisiertes Konfigurationsmanagement
160
5.4 Die besonderen Herausforderungen beim Test von IoT
161
5.4.1 Was ist das Internet of Things?
161
5.4.2 Die Herausforderung für agile Teams im Test
163
6 Agile Testdokumentation
166
6.1 Die Rolle der Dokumentation in der Software-Entwicklung
167
6.2 Der Nutzen der Dokumentation
168
6.3 Dokumentationsarten
171
6.3.1 Anforderungsdokumentation
172
6.3.2 Codedokumentation
173
6.3.3 Testdokumentation
174
6.3.3.1 Testfallbeschreibung
174
6.3.3.2 Testdurchführung
175
6.3.3.3 Testüberdeckung
175
6.3.3.4 Fehlerdokumentation
176
6.3.4 Benutzerdokumentation
177
6.4 Der Tester als Dokumentierer
179
6.5 Stellenwert der Dokumentation im agilen Test
179
7 Agile Testautomatisierung
182
7.1 Die Crux mit den Werkzeugen in agilen Projekten
182
7.2 Testautomatisierung – wie geht man es an?
184
7.3 Testautomatisierung mit zunehmender Integration der Software
186
7.3.1 Unit Test bzw. Komponententest
186
7.3.2 Komponentenintegrationstest
187
7.3.3 Systemtest
187
7.3.4 Systemintegrationstest
187
7.4 xUnit-Frameworks
188
7.5 Einsatz von Platzhaltern
194
7.6 Integrationsserver
195
7.7 Testautomatisierung im fachlich orientierten Test
197
7.7.1 Ein Framework – wozu?
199
7.7.2 Agile versus klassische Automatisierung von Benutzereingaben
201
7.7.2.1 Agile Testautomatisierung
201
7.7.2.2 Klassische Testautomatisierung
202
7.7.3 Ein typisches Beispiel: FitNesse und Selenium
204
7.7.4 Behavior Driven Development mit Cucumber und Gherkin
208
7.8 Testautomatisierung im Last- und Performance-Test
211
7.9 Die sieben schlechtesten Ideen für die Testautomatisierung
211
7.9.1 Den Erfolg nach wenigen Sprints erwarten
212
7.9.2 Testwerkzeugen blind vertrauen
212
7.9.3 Schreiben der Testskripts als Nebenbeschäftigung ansehen
213
7.9.4 Testdaten irgendwo in Testfällen vergraben
213
7.9.5 Testautomatisierung nur mit Benutzeroberflächen in Verbindung bringen
214
7.9.6 Soll-Ist-Vergleich unterschätzen
214
7.9.7 (Un-)Testbarkeit der Applikation einfach hinnehmen
215
8 Werkzeugeinsatz in agilen Projekten
216
8.1 Projektmanagement
217
8.1.1 CA Agile Central
219
8.2 Anforderungsmanagement
220
8.2.1 Polarion QA/ALM
223
8.3 Fehlermanagement
226
8.3.1 The Bug Genie
229
8.3.2 Atlassian JIRA
231
8.4 Testplanung und -steuerung
233
8.4.1 Atlassian JIRA
235
8.5 Testanalyse und Testentwurf
238
8.5.1 Risikobasiertes Testen in der TOSCA-Testsuite
239
8.6 Testrealisierung und Testdurchführung
240
8.6.1 Microsoft Test Manager
243
9 Ausbildung und ihre Bedeutung
246
9.1 ISTQB Certified Tester
247
9.2 Certified Agile Tester / CAT
252
9.2.1 Motivation
253
9.2.2 Training-Insights
254
9.3 ISTQB Certified Tester Foundation Level Extension Agile Tester
256
9.4 Individuelle Trainings (Customized Trainings)
257
9.4.1 Empfohlenes Vorgehen bei Einführung der Agilität
257
9.4.1.1 Bestandsaufnahme der Ist-Situation
257
9.4.1.2 Abhängigkeitsanalyse
258
9.4.1.3 Definieren des „neuen“ Ziels
258
9.4.2 Organisatorisches
258
9.4.3 Pilotphase
258
9.4.4 Ausrollen in Unternehmen
259
10 Retrospektive
260
Literaturverzeichnis
263
Index
268
© 2009-2024 ciando GmbH