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 |