Abenteuer Softwarequalität - Grundlagen und Verfahren für Qualitätssicherung und Qualitätsmanagement
von: Kurt Schneider
dpunkt, 2012
ISBN: 9783864911095
Sprache: Deutsch
262 Seiten, Download: 8156 KB
Format: EPUB, PDF, auch als Online-Lesen
Mehr zum Inhalt
Abenteuer Softwarequalität - Grundlagen und Verfahren für Qualitätssicherung und Qualitätsmanagement
Vorwort | 8 | ||
Vorwort zur 1. Auflage | 10 | ||
Inhalt | 12 | ||
1 Einleitung | 18 | ||
1.1 Softwarequalität betrifft viele | 18 | ||
1.2 Für wen dieses Buch gemacht ist | 18 | ||
1.3 Was Sie von diesem Buch erwarten können | 19 | ||
1.4 Das Abenteuer von Q | 20 | ||
1.5 Themen und Anspruch | 20 | ||
1.5.1 Themenauswahl und Gewichtung | 21 | ||
1.5.2 Die Reihenfolge der Themen | 22 | ||
1.6 Bedeutung von Softwarequalität | 23 | ||
1.7 Wie Q zur Softwarequalität kam | 25 | ||
2 Grundkonzepte | 28 | ||
2.1 Qualitätsorganisation und Terminologie | 29 | ||
2.2 Kosten und Nutzen von Softwarequalität | 33 | ||
2.3 Qualitätsbeauftragte | 35 | ||
2.4 Eine Vision: Total Quality Management | 38 | ||
2.5 Grundbegriffe des Testens | 40 | ||
2.6 Normen und Standards | 44 | ||
2.7 Qualitätsaspekte, -anforderungen und Qualitätsmodelle | 47 | ||
3 Erfahrungen systematisch nutzen | 56 | ||
3.1 Qualitätsnetzwerke und Qualitätszirkel | 57 | ||
3.2 Leichtgewichtige Dokumentation von Erfahrungen | 59 | ||
3.3 Organisation der Erfahrungsverwaltung | 62 | ||
3.4 Herausforderungen und Chancen für Erfahrungsnutzung | 64 | ||
3.5 Networking in Organisationen und auf Tagungen | 66 | ||
4 Messen von Softwarequalität | 68 | ||
4.1 Wozu messen und konkretisieren? | 69 | ||
4.2 Softwaremetriken | 71 | ||
4.2.1 Grundlagen | 72 | ||
4.2.2 Was Softwaremetriken messen | 72 | ||
4.2.3 Bezug zwischen Metrik und Qualitätsaspekt | 74 | ||
4.2.4 Skalen für die Resultate der Metriken | 74 | ||
4.3 Diskussion bekannter Softwaremetriken | 76 | ||
4.3.1 Lines of code: Der Teufel steckt im Detail | 76 | ||
4.3.2 Zyklomatische Komplexität von McCabe | 78 | ||
4.3.3 Halstead Software Science | 83 | ||
4.3.4 Weitere Metriken: ein Ausblick | 86 | ||
4.4 Metriken nach Maß: GQM | 87 | ||
4.4.1 Von Zielen zu Fragen zu Metriken - und zurück | 87 | ||
4.4.2 Zielorientiertes Messen und Bewerten | 89 | ||
4.4.3 Zielfacetten schärfen den Blick | 90 | ||
4.4.4 Messung vorbereiten mit Abstraction Sheets | 92 | ||
4.4.5 Besonderheiten bei Messung und Auswertung | 96 | ||
4.5 Projektfortschritt messen mit Quality Gates | 97 | ||
5 Systematisches Testen | 100 | ||
5.1 Vorüberlegungen | 100 | ||
5.1.1 Testvorbereitung | 100 | ||
5.1.2 Vollständig testen? | 102 | ||
5.1.3 Woraus ein Testfall besteht | 103 | ||
5.1.4 Testfälle dokumentieren | 104 | ||
5.1.5 Testfälle ermitteln: eine Strategie | 105 | ||
5.1.6 Hintergrund von Fehlern | 107 | ||
5.1.7 Übersicht: Black-Box-Test und Glass-Box-Test | 108 | ||
5.2 Black-Box-Tests aus der Spezifikation | 108 | ||
5.2.1 Minimalforderung und Effizienzprinzip | 109 | ||
5.2.2 Äquivalenzklassenmethode | 111 | ||
5.2.3 Grenzwertanalyse | 113 | ||
5.2.4 Spezifikationsabdeckung optimieren | 113 | ||
5.2.5 Klassifikationsbaummethode | 116 | ||
5.2.6 Zustandsbasiertes Testen | 118 | ||
5.2.7 Testablauf dokumentieren | 122 | ||
5.3 Sollwerte aus der Spezifikation | 123 | ||
5.4 Glass-Box: Testen nach der Codestruktur | 125 | ||
5.4.1 Maße für Codeüberdeckung | 126 | ||
5.4.2 Interpretation von Überdeckungsmaßen | 128 | ||
5.4.3 Objektorientierung und Glass-Box-Test | 129 | ||
5.5 Testfälle für spezielle Qualitätsaspekte | 131 | ||
5.5.1 Testfälle in Form von Code | 133 | ||
5.5.2 Granularität und Reihenfolge von Prüflingen | 134 | ||
5.5.3 Stresstest, Recovery und Security Tests | 136 | ||
5.6 Hilfsmittel und Werkzeuge für das Testen | 136 | ||
5.6.1 Debuggen ist nicht Testen | 136 | ||
5.6.2 Standardhilfsmittel: Testrahmen | 137 | ||
5.6.3 Werkzeuge für Glass-Box-Test | 137 | ||
5.6.4 Sonstige Hilfsmittel und Werkzeuge | 139 | ||
5.7 Testen von grafischen Oberflächen | 139 | ||
5.7.1 Sackgasse: System als Ganzes | 140 | ||
5.7.2 Capture/Replay-Tools | 141 | ||
6 Usability Engineering | 144 | ||
6.1 Software und Bedienbarkeit | 145 | ||
6.2 Usability als Qualitätsaspekt | 145 | ||
6.2.1 Gute Bedienoberflächen und Qualitätsaspekte | 146 | ||
6.2.2 Usability definiert sich über Anforderungen | 148 | ||
6.3 Aspekte der Benutzerfreundlichkeit nach ISO 9241 | 150 | ||
6.4 Bedienbarkeit messen | 152 | ||
6.5 Konstruktives Usability Engineering | 152 | ||
6.5.1 Aufgaben im Usability Engineering | 153 | ||
6.5.2 Kernaufgaben in der Anforderungsklärung | 154 | ||
6.5.3 Aktivitäten in Entwurf und Entwicklung | 156 | ||
6.5.4 Acht Goldene Regeln nach Shneiderman | 157 | ||
6.6 Experten-Evaluationen | 158 | ||
7 Reviews und Inspektionen | 162 | ||
7.1 Rollen und Ablauf | 163 | ||
7.2 Hilfsmittel | 168 | ||
7.3 Aufwand und Nutzen | 172 | ||
7.4 Varianten von Reviews | 174 | ||
8 Formale Verfahren | 176 | ||
8.1 Prädikatenkalkül und formale Beweise | 177 | ||
8.1.1 Grundvorgehen und Basiselemente | 178 | ||
8.1.2 Voraussetzungen aus Anforderung ableiten | 179 | ||
8.1.3 Verzweigung als Anweisungsart | 181 | ||
8.1.4 Schleifeninvarianten | 182 | ||
8.2 Verschiedene Spezifikationsstile | 185 | ||
8.3 Spezifizieren und Beweisen mit Modellen | 187 | ||
8.3.1 Ampelanlage als Petrinetz-Beispiel | 188 | ||
8.3.2 Beweise auf Petrinetzen | 191 | ||
8.4 Diskussion formaler Techniken | 193 | ||
9 Konstruktive Qualitätssicherung | 194 | ||
9.1 Analytisch, organisatorisch, konstruktiv | 194 | ||
9.2 Maßnahmen, bevor ein Problem auftritt | 196 | ||
9.2.1 Bewährte Verfahren | 197 | ||
9.2.2 Bewährte Bestandteile | 198 | ||
9.2.3 Bewährte Strukturen | 201 | ||
9.3 Beispiel Cleanroom: Fehler vermeiden | 201 | ||
10 Agile Softwareentwicklung und Qualität | 204 | ||
10.1 Die kurze Geschichte der agilen Softwareentwicklung | 205 | ||
10.2 Extreme Programming im Überblick | 208 | ||
10.3 Testgetriebene Entwicklung in XP | 215 | ||
10.3.1 Terminologie und Testarten | 215 | ||
10.3.2 Testautomatisierung ist unverzichtbar | 216 | ||
10.3.3 Testcode ist seltener fehlerhaft | 217 | ||
10.3.4 Test First: Testen vor Codieren | 218 | ||
10.3.5 Auswirkungen von Test First | 220 | ||
10.3.6 Besserer Produktionscode durch Test First | 221 | ||
10.4 Die Rolle der Softwarequalität in XP | 222 | ||
10.5 Scrum | 223 | ||
10.6 Lean Software Development | 229 | ||
10.6.1 Vom Toyota Production System zur Softwareentwicklung | 229 | ||
10.6.2 Die Grundkonzepte von Lean | 230 | ||
10.6.3 Auswirkungen auf die Softwarequalität | 235 | ||
10.7 Kanban | 236 | ||
10.7.1 Arbeitsabläufe visualisieren | 236 | ||
10.7.2 Pull statt Push: Aufgabenvolumen begrenzen, Durchlaufzeit verkürzen | 237 | ||
10.7.3 Ausblick: Kanban für Fortgeschrittene | 239 | ||
10.8 Zusammenfassung | 241 | ||
11 Das Abenteuer geht weiter | 244 | ||
11.1 Rückblick | 244 | ||
11.2 Was es noch zu erkunden gibt | 246 | ||
11.3 Wann man aufhören soll | 246 | ||
Literaturverzeichnis | 250 | ||
Abkürzungen | 258 | ||
Index | 260 |