Basiswissen modellbasierter Test | 1 |
Vorwort zur zweiten Auflage | 5 |
Danksagung | 8 |
Geleitwort zur ersten Auflage | 11 |
von Prof. Dr. Ina Schieferdecker TU Berlin/Fraunhofer FOKUS | 11 |
Inhaltsübersicht | 13 |
Inhaltsverzeichnis | 15 |
Teil I – MBT – Einstieg und Grundlagen | 25 |
1 Einleitung | 27 |
1.1 Model Based Testing – nur ein Hype? | 27 |
Tab. 1–1 Ergebnisse der Studie zum modellbasierten Testen [Dias-Neto 2009] | 29 |
Abb. 1–1 Erfüllte Erwartungen in der MBT-Umfrage 2015 (aus: [Binder 2015]) | 30 |
1.2 Viele Definitionen für modellbasiertes Testen | 31 |
1.3 Ziele des Buches | 34 |
Rahmen und Definitionen zu MBT schaffen | 34 |
Rüstzeug für weiterführende Fachliteratur vermitteln | 34 |
MBT in der Breite, aber nicht immer in der Tiefe präsentieren | 34 |
Unterschiede zum konventionellen Testprozess klären | 35 |
Unrealistische Erwartungen an MBT beseitigen | 35 |
Nutzen und Potenziale von MBT identifizieren | 35 |
Eignungsprüfung für eigene Testprojekte ermöglichen | 36 |
Bei der MBT-Werkzeugauswahl unterstützen | 36 |
An Beispielen veranschaulichen | 36 |
1.4 Aufbau des Buches | 37 |
1.5 Leseanleitung für die Qualifikation zum ISTQB® Certified Model-Based Tester | 39 |
Tab. 1–2 Einstiegspunkte gemäß ISTQB®-MBT-Lehrplan | 40 |
1.6 Zwei Fallbeispiele | 44 |
1.6.1 Produktskizze CarKonfigurator | 44 |
Abb. 1–2 Benutzerschnittstelle des CarKonfigurators | 44 |
Funktionale Anforderungen | 44 |
Benutzbarkeitsanforderungen | 45 |
1.6.2 Produktskizze Türsteuerung | 45 |
Funktionale Anforderungen | 45 |
Sicherheitsanforderungen | 46 |
2 Testen heute | 47 |
2.1 Grundbegriffe von Qualitätssicherung und Testen | 47 |
Abb. 2–1 Zusammenhänge bei dynamischen Tests | 49 |
2.1.1 Testverfahren | 50 |
2.1.2 Kriterien zur Testüberdeckung | 51 |
2.1.3 Teststufen | 52 |
Abb. 2–2 Aufbau eines Testrahmens (nach [Spillner 2012]) | 54 |
2.1.4 Randbedingungen des Testens | 55 |
Abb. 2–3 Das Test-»Teufelsquadrat« (nach [Sneed 1987]) | 56 |
2.2 Der fundamentale Testprozess | 56 |
Abb. 2–4 Testprozess und Dokumente nach ISTQB® | 57 |
2.2.1 Phasen des Testprozesses | 57 |
2.2.2 Testplanung | 58 |
2.2.3 Teststeuerung und -kontrolle | 58 |
2.2.4 Testanalyse und -entwurf | 59 |
2.2.5 Testrealisierung und -durchführung | 59 |
2.2.6 Bewertung von Endekriterien und Bericht | 60 |
2.2.7 Abschluss der Testaktivitäten | 61 |
2.2.8 Rollen im Testprozess | 61 |
2.3 Herausforderungen beim Testen heute | 62 |
2.3.1 Kostenfaktor Test | 63 |
2.3.2 Mangelnde Testqualität | 64 |
2.3.3 Tester mit Fach-, aber ohne IT-Wissen | 65 |
2.3.4 Komplexität der Tests | 66 |
2.3.5 Testautomatisierung | 67 |
2.3.6 Mangelnde Qualität der Testbasis | 67 |
2.3.7 Zu späte Einbindung des Endkunden | 68 |
Abb. 2–5 Die 10 Hauptursachen, warum laut Standish Group Softwareprojekte scheitern [URL: Standish] | 68 |
2.4 Zusammenfassung | 69 |
3 Einführung in die Modellierung | 71 |
3.1 Wat is’n Modell? | 71 |
Abb. 3–1 Modellierung (nach [Mahr 2009]) | 73 |
3.2 Allgemeiner Vergleich von Texten und Modellen | 74 |
3.2.1 Merkmale und Mängel natürlicher Sprache | 74 |
3.2.2 Vorteile formaler Modelle und visueller Darstellungen | 75 |
3.3 Exkurs: Grundbegriffe der Graphentheorie | 78 |
Abb. 3–2 Gerichteter Graph mit 6 Knoten | 79 |
Abb. 3–3 Suchbaum mit 9 Knoten und 6 Blättern | 80 |
3.4 UML – ein Standard der Softwaremodellierung | 81 |
Abb. 3–4 Sichten und Diagramme der UML 2 | 81 |
3.5 Modellierung statischer Strukturen | 82 |
3.5.1 Objektmodellierung | 82 |
Abb. 3–5 Objekt und Attribute mit Werten in UML | 83 |
Abb. 3–6 Objekte und Verbindungen in UML | 84 |
3.5.2 Klassenmodellierung | 84 |
Klassen, Attribute und Operationen | 84 |
Abb. 3–7 Klasse mit Attributen und Operationen in UML | 86 |
Assoziationen | 86 |
Abb. 3–8 Assoziation in UML | 87 |
Abb. 3–9 Klassenmodell des CarKonfigurators in UML | 88 |
Generalisierung, abstrakte Klassen und Interfaces | 88 |
Abb. 3–10 Klassendiagramm mit Generalisierung und abstrakter Oberklasse | 90 |
3.5.3 Pakete und Komponenten | 90 |
Abb. 3–11 Pakete und Paketbeziehungen in UML | 91 |
Abb. 3–12 Komponenten in UML | 92 |
3.5.4 ER-Modellierung | 92 |
Abb. 3–13 Ausschnitt aus dem ER-Modell des CarKonfigurators | 93 |
3.6 Modellierung dynamischen Verhaltens | 93 |
3.6.1 Aktivitätsmodellierung | 94 |
Abb. 3–14 Aktivitätsdiagramm mit Aufrufaktion und Verzweigung | 95 |
Abb. 3–15 Aktivitätsdiagramm mit parallelem Ablauf | 97 |
Abb. 3–16 Aktivitätsdiagramm mit Aufrufaktion und Objektfluss | 98 |
3.6.2 Geschäftsprozessmodellierung mit BPMN | 98 |
Abb. 3–17 BPMN-Diagramm des Bestellprozesses im VirtualShowRoom | 100 |
3.6.3 Zustandsmodellierung | 100 |
Abb. 3–18 Zustandsdiagramm der GUI des CarKonfigurators | 105 |
3.6.4 Interaktionsmodellierung | 105 |
Abb. 3–19 UML-Sequenzdiagramm | 106 |
Tab. 3–1 Interaktionsoperatoren der UML (nach [Rupp 2012]) | 108 |
3.7 Nebenläufigkeits- und Echtzeitmodellierung | 109 |
3.7.1 Petri-Netze | 109 |
Abb. 3–20 Petri-Netz der Türsteuerung | 111 |
3.7.2 Zeitdiagramm | 112 |
Abb. 3–21 Zeitlicher Ablauf in CarKonfigurator | 113 |
3.8 Umgebungs-, Funktions- und Nutzungsmodellierung | 113 |
3.8.1 Umgebungsmodellierung mit Akteuren | 113 |
Abb. 3–22 Systemumgebung der Türsteuerung | 114 |
3.8.2 Funktionsmodellierung mit Anwendungsfällen | 114 |
Abb. 3–23 Anwendungsfalldiagramm CarKonfigurator | 116 |
Abb. 3–24 Beschreibungsschema für Anwendungsfälle | 117 |
3.8.3 Nutzungsmodellierung | 118 |
Abb. 3–25 Nutzungshäufigkeit der Systemfunktion »Öffnen« der Türsteuerung | 118 |
Abb. 3–26 Ereignis-Sequenz-Graph der Türsteuerung | 119 |
Abb. 3–27 Nutzungsprofil der Türsteuerung | 120 |
3.8.4 Präzisierung von Modellen mit der OCL | 121 |
3.9 Metamodellierung und Profile | 122 |
3.9.1 UML – Spracharchitektur und Metamodell | 123 |
Abb. 3–28 Ausschnitt aus dem UML-Metamodell (aus [OMG 2015]) | 124 |
3.9.2 Stereotype und Profile | 124 |
Abb. 3–29 Darstellungsformen einer stereotypisierten Klasse | 125 |
Abb. 3–30 UML-Metamodellausschnitt für Stereotype und Profile | 126 |
3.10 Zusammenfassung | 127 |
4 MBT – ein Einstieg | 129 |
4.1 Detaillierte Definition von MBT | 129 |
Abb. 4–1 Tests modellieren und Tests generieren | 129 |
4.2 MBT zur Testfallgenerierung | 130 |
Abb. 4–2 Manuelles und automatisiertes Testen | 131 |
Abb. 4–3 MBT für die Erstellung von Testfällen | 131 |
4.3 MBT im Projektkontext | 131 |
Abb. 4–4 Die Modell-Stakeholder im Überblick | 132 |
4.4 MBT-Modellkategorien | 133 |
4.4.1 Drei Modellkategorien für MBT | 133 |
Abb. 4–5 Zusammenhang der drei Modellkategorien | 134 |
4.4.2 Umgebungsmodelle | 134 |
4.4.3 Systemmodelle | 135 |
4.4.4 Testmodelle | 136 |
Abb. 4–6 Die Bestandteile eines Testmodells | 137 |
4.5 Nutzen von MBT | 138 |
4.5.1 MBT reduziert Fehler in frühen Entwicklungsphasen | 138 |
4.5.2 MBT liefert mehr und bessere Testfälle | 139 |
4.5.3 MBT unterstützt die Testautomatisierung | 140 |
Abb. 4–7 MBT und Testautomatisierung | 141 |
4.6 Einordnung von MBT in den Softwaretest | 141 |
Abb. 4–8 Einordnung von MBT in den Softwaretest (nach [Schieferdecker 2007]) | 142 |
4.7 Zusammenfassung | 142 |
5 Intermezzo 1: Türsteuerung | 143 |
5.1 Vorüberlegungen und Planung | 143 |
5.2 Modellierung Schritt 1 – funktionale Anforderungen | 143 |
5.2.1 Strukturmodell | 144 |
Abb. 5–1 Initiales Klassendiagramm der Türsteuerung | 144 |
Abb. 5–2 Die Türsteuerung als konkrete Objekte | 145 |
5.2.2 Verhaltensmodell | 145 |
Abb. 5–3 Zustandsdiagramm der Türsteuerung | 146 |
5.3 Generierung von funktionalen Testfällen | 146 |
5.4 Modellierung Schritt 2 – Sicherheitsanforderungen | 149 |
Abb. 5–4 Datenmodell mit Erweiterung um Notentriegelung | 149 |
Abb. 5–5 Zustandsmodell mit Erweiterung um Notentriegelung | 150 |
5.5 Neugenerierung der Testfälle | 151 |
5.6 Bewertung des gewählten MBT-Vorgehens | 154 |
5.7 Zusammenfassung | 155 |
Teil II – MBT im Testprozess | 157 |
6 MBT und der Testprozess | 159 |
6.1 Ausprägungen von MBT im Testprozess | 160 |
Abb. 6–1 Ausprägungen von modellbasiertem Testen | 160 |
6.1.1 Modellorientiertes Testen | 160 |
Abb. 6–2 Modellorientiertes Testen | 161 |
Abb. 6–3 W-Modell (Quelle: [Spillner 2002]) | 162 |
6.1.2 Modellgetriebenes Testen | 162 |
Abb. 6–4 Modellgetriebenes Testen | 163 |
6.1.3 Modellzentrisches Testen | 163 |
Abb. 6–5 Modellzentrisches Testen mit Ringstruktur bzw. Rücktransformation | 164 |
6.2 Allgemeine Integration von MBT in den Testprozess | 165 |
Abb. 6–6 Änderungen im ISTQB®-Testprozess durch die Einführung von MBT (aus [Eckardt 2009]) | 165 |
Tab. 6–1 Änderungen in Testplanung und Steuerung | 166 |
Tab. 6–2 Änderungen in Testanalyse und Testentwurf | 166 |
Tab. 6–3 Änderungen in Testrealisierung und Testdurchführung | 167 |
Tab. 6–5 Phase Testabschluss | 167 |
6.3 Abhängigkeit des MBT-Prozesses von den verwendeten Modellkategorien | 168 |
6.3.1 Übersicht über die MBT-Varianten | 168 |
Abb. 6–7 Varianten modellbasierten Testens (aus [Schieferdecker 2007]) | 169 |
6.3.2 Ausschließlich testmodellgetriebene MBT-Prozesse | 169 |
Abb. 6–8 Aktivitäten im testmodellgetriebenen Testprozess | 171 |
Testmanagement | 171 |
Modellierung | 172 |
Realisierung | 172 |
Durchführung | 173 |
6.3.3 Ausschließlich systemmodellgetriebene MBT-Prozesse | 174 |
Abb. 6–9 Aktivitäten im systemmodellgetriebenen Testprozess | 176 |
6.3.4 Das Systemmodell als Ausgangspunkt für ein generiertes Testmodell | 177 |
Abb. 6–10 Aktivitäten im systemmodellgetriebenen Prozess mit generiertem Testmodell | 178 |
6.3.5 System- und testmodellgetriebene MBT-Prozesse | 179 |
6.4 Einsatz von MBT für verschiedene Testziele und Teststufen | 179 |
Tab. 6–6 UML-Diagrammtypen und ihre Nutzung im Testen (aus [Schieferdecker 2007]). | 180 |
6.4.1 Komponententest | 181 |
6.4.2 Integrationstest | 181 |
6.4.3 Systemtest | 182 |
6.4.4 Systemintegrationstest | 182 |
6.4.5 Abnahmetest | 183 |
6.5 MBT und der Entwicklungsprozess | 183 |
6.5.1 Allgemeine Aufgaben bei der Einbettung von MBT in den Entwicklungsprozess | 183 |
6.5.2 Betrachtung verschiedener Vorgehensmodelle im Zusammenhang mit MBT | 184 |
MBT im sequenziellen Entwicklungsvorgehen | 184 |
Abb. 6–11 Allgemeines V-Modell | 185 |
MBT im iterativ-inkrementellen Entwicklungsvorgehen | 185 |
Abb. 6–12 Rational Unified Process | 186 |
Abb. 6–13 RUP und testmodellgetriebener MBT-Prozess (aus [Bouquet 2006]) | 188 |
MBT und agile Entwicklungsmodelle | 188 |
Abb. 6–14 MBT außerhalb und innerhalb eines agilen Vorgehens (aus [Puolitaival 2008]) | 189 |
6.6 Zusammenfassung | 191 |
7 Planung und Steuerung | 193 |
7.1 Risikoidentifikation und -analyse | 194 |
Tab. 7–1 Top-Ten-Risikofaktoren und deren Ausprägung bei der Einführung von MBT | 195 |
7.2 Bestimmung der Teststrategie | 196 |
7.3 Aktivitätenplanung und Aufwandsschätzung | 198 |
7.3.1 Aktivitäten und Artefakte | 198 |
7.3.2 Aufwandsschätzung | 200 |
Abb. 7–1 Projektstrukturplan für den Systemtest der Türsteuerung | 201 |
Abb. 7–2 Verfeinerter Projektstrukturplan mit Testzielen und Details zur Modellierung | 202 |
Abb. 7–3 Projektplan nach dem Planning Poker | 203 |
Abb. 7–4 Projektplan nach Korrektur während der Modellierungsphase | 204 |
7.4 Werkzeuge und Infrastruktur | 204 |
7.5 Mitarbeiterqualifikation | 205 |
Abb. 7–5 Modellierer und Tester – zwei Gruppen mit kleiner Schnittmenge | 206 |
Abb. 7–6 Modellierungskenntnisse | 207 |
7.5.1 Fähigkeit, Modelle lesen zu können | 207 |
7.5.2 Fähigkeit, Modelle erstellen zu können | 208 |
7.5.3 Weitere Fähigkeiten im Zusammenhang mit MBT | 209 |
7.6 Steuerung mit Metriken und Testendekriterien | 209 |
Tab. 7–4 Messziele und Messobjekte für Testmetriken (aus [Spillner 2014]) | 210 |
7.6.1 Produktmetriken | 210 |
7.6.2 Projektmetriken | 211 |
Abb. 7–7 Anzahl spezifizierter Testfälle im klassischen und im modellbasierten Test | 212 |
Tab. 7–5 Gegenüberstellung von klassischen und modellbasierten Fortschrittsmetriken | 213 |
Abb. 7–8 Gegenüberstellung der Zahl generierter Testfälle und der in Testmodellen referenzierten Anforderungen | 213 |
7.6.3 Prozessmetriken | 213 |
Abb. 7–9 DDP und Fehlerfindungszahlen von drei Teststufen über zehn Entwicklungsstände beobachtet | 215 |
Abb. 7–10 DDP pro Arbeitsstunde in drei Teststufen über zehn Entwicklungsstände | 216 |
Tab. 7–6 Gegenüberstellung von klassischen und modellbasierten Prozessmetriken | 216 |
7.6.4 Anforderungs- und modellbasierte Testendekriterien | 217 |
Abb. 7–11 Ausschnitt aus dem Testmodell für eine Zentralverriegelung | 218 |
7.7 Zusammenfassung | 219 |
8 Intermezzo 2: CarKonfigurator | 221 |
8.1 Testobjekt und Ziel | 221 |
8.2 Beschreibung der Tests als »Papiermodell« | 222 |
8.2.1 Beschreibung der Testschritte | 222 |
Abb. 8–1 Einfaches Modell der Testschritte | 223 |
8.2.2 Auswahl der Testdaten | 224 |
Abb. 8–2 Mögliche Äquivalenzklassen und Repräsentanten zum Parameter »Rabatt« | 225 |
Abb. 8–3 Anreicherung des Testschrittemodells um die jeweils gewählten Testdaten | 227 |
8.3 Vom Papiermodell zum UML-Modell | 227 |
Abb. 8–4 Ausschnitt aus einem möglichen UML-Profil zur vorgeschlagenen Testmodellierung | 228 |
Abb. 8–5 Datentypen und Äquivalenzklassen als UML-Klassen | 229 |
Abb. 8–6 Gewählte Testdaten- Repräsentanten als Objekte | 230 |
Abb. 8–7 Testschritte und zugewiesene Testdaten als Aktivitätsdiagramm | 231 |
8.4 Testfallgenerierung: Algorithmus und Ergebnis | 232 |
Abb. 8–8 Aus dem Modell generierte Testfälle in einem Testmanagementwerkzeug | 233 |
8.5 Bewertung | 234 |
Der Fehler zum Fahrzeugtyp »Rolo« wird von den generierten Testfällen nicht aufgedeckt | 234 |
Nicht alles auf einmal mit nur einem Diagramm testen | 234 |
Pflegeprozesse nach Modelländerungen | 235 |
Fachlich unerwünschte Pfade aus der Generierung herausnehmen | 235 |
8.6 Zusammenfassung | 235 |
9 Modellierung und Modellprüfung | 237 |
9.1 Überblick | 237 |
Abb. 9–1 Überblick über die behandelten Szenarien | 238 |
9.2 Erstellung von Testmodellen | 238 |
9.2.1 Grundlegende Elemente von Testmodellen | 238 |
Abb. 9–2 Elemente eines Testfalls (Wiederholung) | 239 |
9.2.2 Modellelemente aus dem CarKonfigurator | 240 |
Tab. 9–1 Im Beispiel gewählte UML-Darstellung von Testfallelementen | 240 |
Abb. 9–3 Die verwendeten Modellelemente im Einsatz | 241 |
9.2.3 Stabile Knoten-/Kantenbezeichner | 241 |
9.2.4 Modellierung der Testpriorität | 242 |
Abb. 9–4 Kennzeichnung des Normalablaufs in einem Aktivitätsdiagramm | 243 |
9.2.5 Fachlich unerwünschte Pfade | 243 |
Abb. 9–5 Im Modell enthaltener, aber fachlich unerwünschter Pfad (»Geschlechtsumwandlung«) | 244 |
9.2.6 Modellierung von Testorakeln | 245 |
9.2.7 Verknüpfung von Testmodellen und zu testenden Anforderungen | 247 |
Abb. 9–6 Beziehungen zur Rückverfolgbarkeit | 248 |
Abb. 9–7 Zu testende Anforderungen als eigenständige Elemente direkt im Testmodell | 249 |
9.2.8 Exkurs: Testfallableitung aus textuellen Spezifikationen | 250 |
Abb. 9–8 Die Testfallableitung aus Prosatexten bringt gleich mehrere Probleme mit sich. | 251 |
9.2.9 Fazit: Motivation eigenständiger Testmodelle | 252 |
Abb. 9–9 Parallelen zwischen Entwurfsmodell und Testmodell | 253 |
9.3 Modellierung von Testfallspezifikationen | 253 |
9.3.1 Das UML2 Testing Profile | 253 |
Abb. 9–10 UTP-Testverhalten (aus [URL: UTP]) | 256 |
9.3.2 FIT und FITnesse | 257 |
Abb. 9–11 Testtabelle in FIT (Quelle: [URL: FIT]) | 258 |
9.3.3 TTCN-3 | 258 |
Abb. 9–12 Aufbau von TTCN-3 (nach [Willcock 2005]) | 259 |
Abb. 9–13 TTCN-3 Beispielspezifikation | 260 |
9.4 Exkurs: Modellierung von Testumgebungen | 261 |
9.5 Nutzung vorhandener Systemmodelle | 264 |
9.6 Achtung: Fallstricke! | 265 |
9.6.1 Parallele Abläufe oder Alternativen? | 265 |
Abb. 9–14 Modellierung paralleler Abläufe | 266 |
9.6.2 Hierarchische Verfeinerungen | 268 |
Abb. 9–15 Hierarchische Verfeinerung von Modellen | 268 |
9.7 Übergang von Systemmodellen zu Testmodellen | 269 |
9.7.1 Aus demselben Modell Code und Tests generieren? | 270 |
Abb. 9–16 »Alles« aus demselben Modell zu generieren ist gefährlich! | 270 |
9.7.2 Grenzen von Systemmodellen | 270 |
9.7.3 Ähneln sich Systemmodelle und Testmodelle? | 271 |
Abb. 9–17 Eine Verzweigung in einem Ablaufdiagramm | 272 |
Abb. 9–18 Testmodell zum Türsteuerungs-Beispiel | 273 |
9.7.4 Übergänge vom Systemmodell zum Testmodell | 273 |
Abb. 9–19 CarKonfigurator- Testmodell in tedeso | 274 |
9.7.5 Zwei Wege zum konkreten Testfall | 276 |
9.8 Qualitätsmerkmale und Ziele von Modellen | 277 |
9.8.1 Grundlegendes zur Qualität von Modellen | 277 |
9.8.2 Korrektheit (inhaltlich) | 278 |
9.8.3 Korrektheit (formal) | 278 |
9.8.4 Einfachheit | 279 |
9.8.5 Verständlichkeit/Lesbarkeit | 279 |
9.8.6 Angemessenheit | 279 |
9.8.7 Änderbarkeit | 279 |
9.8.8 Vollständigkeit (inhaltlich und formal) | 280 |
9.8.9 Widerspruchsfreiheit (inhaltlich und formal) | 280 |
9.8.10 Prüfbarkeit | 280 |
9.8.11 Werkzeugunterstützung | 281 |
9.8.12 Konsistenz zu anderen Modellen | 281 |
9.9 Prüfung von Modellen | 282 |
9.9.1 Modellierungsrichtlinien als Grundlage | 282 |
9.9.2 Reviews | 283 |
9.9.3 Werkzeuggestützte Prüfungen gegen das Metamodell | 283 |
9.9.4 Model Checker | 283 |
9.9.5 Iteratives Modellieren und Generieren | 284 |
9.9.6 Simulation | 285 |
9.9.7 Geeignete Prüfungen zu Qualitätsmerkmalen | 286 |
Tab. 9–2 Mögliche Qualitäts- sicherungsmaßnahmen pro Qualitätsmerkmal | 286 |
9.10 Zusammenfassung | 287 |
10 Testauswahlkriterien und Testfallgenerierung | 289 |
10.1 Vorbemerkung zum Umfang des Kapitels | 289 |
10.2 Einführung in die Generierung | 290 |
10.2.1 Was wird generiert – abstrakte oder konkrete Testfälle? | 290 |
Abb. 10–1 Modellierung des CarKonfigurator-Beispiels im MBT-Werkzeug tedeso | 292 |
Abb. 10–2 Abstrakte (links) und konkrete (rechts) Testfalldarstellung | 292 |
10.2.2 Einsatz struktureller Überdeckungskriterien | 293 |
10.2.3 Das Big Picture der Generierungsverfahren | 294 |
Abb. 10–3 Taxonomie der MBT-Testauswahlkriterien | 296 |
10.3 Generierungsverfahren im Einzelnen | 296 |
10.3.1 Anforderungsbasierte Testgenerierung | 296 |
10.3.2 Modellbezogene Testauswahlkriterien | 298 |
Kontrollflussorientierte Testgenerierung | 298 |
10.3.3 Datenflussbasierte Testauswahlkriterien | 301 |
10.3.4 Zustandsbasierte Testgenerierung | 302 |
Abb. 10–4 Beispiel für zustandsbasierte Überdeckungskriterien | 303 |
10.3.5 Datenüberdeckungskriterien | 304 |
Statistisches Datenüberdeckungskriterium | 305 |
Paarweise Überdeckung (Pairwise Coverage) | 305 |
10.3.6 Nutzungs- oder nutzungsmusterbezogene Testauswahlkriterien – »Operational Profiles« | 306 |
Abb. 10–5 Prozess des statistischen Testens (aus [Zander-Nowicka 2008]) | 306 |
Schritt 1: Erstellung des Modells | 309 |
Abb. 10–6 Aktivitätsdiagramm mit Übergangswahrscheinlichkeiten | 310 |
Schritt 2: Bestimmung der Übergangswahrscheinlichkeit | 310 |
Schritt 3: Umwandlung in eine Markov-Kette | 310 |
Abb. 10–7 »Flache« Markov-Kette mit konkreten (berechneten) Übergangswahrscheinlichkeiten | 311 |
10.3.7 UTP-basierte TTCN-3-Generierung | 311 |
Abb. 10–8 Klassendiagramm des Testkontextes für den CarKonfigurator-Systemtest | 312 |
Abb. 10–9 Klassendiagramm des Testdatenpools für den CarKonfigurator- Systemtest | 313 |
Abb. 10–10 Sequenzdiagramm eines Testfalls für den CarKonfigurator- Systemtest | 314 |
Abb. 10–11 TTCN-3-Spezifikation des Testkontexts | 315 |
10.4 Steuerung der Testfallgenerierung | 317 |
10.4.1 Verknüpfung von Testauswahlkriterien | 317 |
10.4.2 Mengenmäßige Begrenzung der Testfälle | 319 |
Abb. 10–12 Zustandsautomat einer Schiebetür mit Angabe der Wichtigkeit der Funktionen durch Stereotypen | 320 |
10.4.3 Adaptive Testfallgenerierung | 321 |
Abb. 10–13 Prinzipdarstellung einer Systemtestphase | 321 |
Tab. 10–1 Einfluss der Generierungsoptionen auf die Anzahl der generierten Testfälle am Beispiel CarKonfigurator, realisiert mit dem Werkzeug tedeso | 322 |
10.4.4 Negativregeln zum Ausschluss bestimmter Modellteile | 322 |
Abb. 10–14 Markierung einer fachlich unerwünschten Kantenkombination | 323 |
Abb. 10–15 Entscheidungstabelle zur Auswahl von unerwünschten Pfaden | 324 |
10.5 Testneugenerierung nach Änderungen | 324 |
10.5.1 Versionsmanagement und MBT | 325 |
10.5.2 Pflegeprozesse nach Modelländerungen | 326 |
10.5.3 Nichtüberschreibung manueller Testarbeiten | 326 |
10.5.4 Exkurs: Adjazenzlisten | 328 |
10.6 Zur Generierung weiterer Testartefakte | 329 |
10.7 Allgemeine MBT-Taxonomie | 330 |
Abb. 10–16 Taxonomie von modellbasiertem Test | 330 |
10.8 Bewertung der Testauswahlkriterien | 332 |
Tab. 10–4 Vor- und Nachteile der Testauswahlkriterien | 332 |
10.9 Zusammenfassung | 333 |
11 Realisierung, Durchführung und Auswertung | 335 |
11.1 Manuelle Testdurchführung | 335 |
Abb. 11–1 Textuelle Testfallspezifikation als Grundlage für manuelle Testdurchführung | 336 |
Abb. 11–2 Grafische Testfallspezifikation als Grundlage für manuelle Testdurchführung | 337 |
Abb. 11–3 Darstellung von generierten Testfällen in einem Durchführungsassistenten | 338 |
11.2 Automatisierte Testdurchführung | 338 |
11.2.1 Formen der Testautomatisierung | 339 |
Capture & Replay | 339 |
Programmierte Testautomatisierung | 341 |
Data-Driven Testing | 342 |
Keyword-Driven Testing | 343 |
11.2.2 Automatisierungsansätze | 344 |
Der »Adapteransatz« | 344 |
Der »Transformationsansatz« | 345 |
Der »kombinierte Ansatz« | 345 |
Abb. 11–4 Automatisierungsansätze (nach [Utting 2007]) | 345 |
11.2.3 Durchführungsansätze | 346 |
Abb. 11–5 Modellbasierte Online-/ Offline-Testdurchführung | 346 |
11.2.4 Verbindung zwischen Modellelementen und Keywords | 347 |
Abb. 11–6 Vom Testmodell zur modellbasierten Testautomatisierung mittels Keywords | 348 |
Abb. 11–7 Aufgabenteilung zwischen Testanalyst und Testautomatisierer | 348 |
11.2.5 MBT und Keyword-Driven Testing – änderungsstabile Testautomatisierung | 349 |
11.3 Auswertung und Berichterstattung | 351 |
11.3.1 Erzeugung von Traceability-Informationen | 351 |
Abb. 11–8 Ausgewählter Pfad im Testmodell des CarKonfigurators | 353 |
Abb. 11–9 Kombinationsmöglichkeiten der Testdaten | 354 |
Abb. 11–10 Ablagestruktur im Testmanagementsystem sorgt für automatische Traceability | 355 |
11.3.2 Nutzung der Traceability zur Fortschrittsbewertung | 356 |
Abb. 11–11 Ergebnisdarstellung der CarKonfigurator-Tests im Testmanagementsystem | 356 |
Abb. 11–12 Darstellung des Testfortschritts auf Modellebene | 357 |
11.3.3 Nutzung der Traceability zur Ergebnisbewertung | 358 |
Abb. 11–13 Darstellung und Protokollierung der Testfälle im Durchführungsassistenten | 359 |
Abb. 11–14 Darstellung fehlerhafter Pfade und Daten im Modell | 360 |
11.3.4 Strategien zur Reduktion der Anzahl von Abweichungsmeldungen | 360 |
Abb. 11–15 Beispiel für die Ähnlichkeitsfunktion von vier Pfaden eines LTS (aus [Cartaxo 2007]) | 362 |
11.4 Zusammenfassung | 363 |
Teil III – MBT im Praxiseinsatz | 365 |
12 Werkzeuge für MBT | 367 |
12.1 Werkzeugeinsatz gemäß der MBT-Definition | 367 |
12.2 MBT im Software Lifecycle | 368 |
Abb. 12–1 Typische Werkzeuglandschaft im herkömmlichen Testprozess | 368 |
Abb. 12–2 Beispielhafte Einbindung eines MBT-Werkzeugs im Entwicklungsprozess | 369 |
Tab. 12–1 Evaluierte MBT-Werkzeuge in [Götz 2009] | 370 |
12.3 Klassifikationsschemata für MBT-Werkzeuge | 370 |
Kategorie I – modellbasierte Testdatengeneratoren | 371 |
Abb. 12–3 Prinzipdarstellung für modellbasierte Testdatengeneratoren | 372 |
Abb. 12–4 CTE TESTONA als Vertreter von modellbasierten Testdateneditoren/ -generatoren | 373 |
Kategorie II – modellbasierte Testfalleditoren | 373 |
Abb. 12–5 Prinzipdarstellung für modellbasierte Testfalleditoren | 374 |
Kategorie III – modellbasierte Testfallgeneratoren | 375 |
Abb. 12–6 Prinzipdarstellung für modellbasierte Testfallgeneratoren | 375 |
12.4 Zusammenfassung | 376 |
13 MBT erfolgreich einführen | 377 |
13.1 Hindernisse für die Einführung von MBT | 377 |
13.1.1 Unrealistische oder unklare Ziele | 378 |
13.1.2 Falsche Werkzeugauswahl | 378 |
13.1.3 Probleme von übermorgen lösen wollen | 379 |
13.1.4 Erfolg haben | 380 |
13.2 Erfolgsfaktoren für die Einführung von MBT | 380 |
13.2.1 Ziele klar definieren und messbar machen | 380 |
13.2.2 Akzeptanz schaffen | 381 |
13.3 Die Einführung als Projekt planen und durchführen | 382 |
Abb. 13–1 Einführungsvorgehen für MBT | 382 |
13.3.1 Analysephase | 383 |
Fragen zur Feststellung des Bedarfs | 383 |
Fragen zur Feststellung der Fähigkeiten | 384 |
13.3.2 Designphase | 386 |
13.3.3 Evaluierungsphase | 387 |
13.4 Werkzeuge richtig auswählen | 387 |
13.4.1 Integrationsfähigkeit | 388 |
13.4.2 Anpassung an Prozesse und Personal | 388 |
13.4.3 Langfristige Perspektive | 389 |
13.4.4 Umgang mit der Testfallexplosion | 390 |
13.4.5 MBT-Ansatz passend zur Prozessreife definieren | 390 |
13.5 MBT und Prozessreife | 391 |
13.5.1 Reifegradbestimmung des Testprozesses | 391 |
Abb. 13–2 TPI NEXT®-Entwicklungsmatrix mit Clustern | 392 |
TPI-Skalen und MBT-Ausprägungen | 392 |
13.5.2 MBTPI – Prozessverbesserung für modellbasiertes Testen | 394 |
Tab. 13–1 MBTPI-Kernbereiche und ihre Zuordnung zu TPI NEXT-Kernbereichen | 395 |
13.5.3 Eine Roadmap zur modellbasierten Testreife | 396 |
Tab. 13–2 Reifegrade der MBTPI-Kernbereiche je MBT-Ausprägung | 396 |
Abb. 13–3 MBTPI- Entwicklungsmatrix | 398 |
13.5.4 Skalenbereich zum Reifegrad »Modellorientiertes Testen« | 399 |
Skala 1: Modelle zur Lösung einzelner Aufgabenstellungen | 399 |
Skala 2: Strategische Verankerung im Projekt | 399 |
Skala 3: Berücksichtigung von MBT bei der Aufwandsschätzung | 400 |
13.5.5 Skalenbereich zum Reifegrad »Modellgetriebenes Testen« | 401 |
Skala 4: Einführung von Generatoren | 401 |
Skala 6: Einordnung der MBT-Verfahren im Testkonzept | 401 |
Skala 7: Standardisierung des MBT-Prozesses | 402 |
Skala 8: Substanzielle Kostenersparnis durch MBT | 402 |
13.5.6 Skalenbereich zum Reifegrad »Modellzentrisches Testen« | 403 |
Skala 9: Kompetenzaufbau in allgemeinen Modellierungsthemen | 403 |
Skala 10: MBT im Zentrum des Testprozesses | 403 |
Skala 13: Organisatorische Verankerung von MBT | 404 |
13.5.7 Abschließende Bemerkungen zum Reifegradmodell | 405 |
13.6 Zusammenfassung | 405 |
14 Wirtschaftlichkeitsbetrachtung | 407 |
14.1 Übersicht über Kostenfaktoren von MBT | 407 |
14.1.1 Initiale Kosten der Einführung von MBT im Unternehmen | 408 |
14.1.2 Initiale Kosten der Einführung im Projekt | 409 |
14.1.3 Laufende Kosten von MBT im Testprozess | 410 |
14.2 Nutzen von MBT | 411 |
14.2.1 Frühzeitige Anforderungsvalidierung und Fehlerfindung | 412 |
Tab. 14–1 Fehlerkosten in IT-Projekten [SQS 2009] | 412 |
14.2.2 Ersparnis bei Erstellung und Pflege der Testfälle | 412 |
14.2.3 Minimierung von Testfallmengen | 413 |
14.2.4 Erhöhung der Testqualität | 414 |
14.3 Kostenersparnis durch MBT – Fallbeispiel Trapeze ITS | 414 |
Abb. 14–1 Fahrgastinformation Hamburg (Quelle: Trapeze ITS Switzerland) | 415 |
14.3.1 Ausgangssituation | 415 |
Tab. 14–2 MBT-tedeso-Projekt bei Trapeze ITS | 415 |
Abb. 14–2 Testansatz vor der MBT- Einführung | 416 |
Abb. 14–3 Testansatz nach der Einführung des MBT-Werkzeugs tedeso | 417 |
14.3.2 Kosten der MBT-Einführung | 417 |
Tab. 14–3 Kosten des MBT-Projekts aufgeschlüsselt nach Projektphasen | 419 |
14.3.3 ROI-Betrachtung der MBT-Einführung | 419 |
Größe des Testmodells vs. Seitenanzahl der Anforderungsdokumente | 419 |
Abb. 14–4 Snapshot aus dem tedeso-Testmodell | 421 |
Frühzeitige Fehlerfindung | 421 |
Abb. 14–5 Beispiel einer Fehlerbehebungskette in den Anforderungen | 422 |
Erhebliche Einsparungen bei der Testfallerstellung | 423 |
Tab. 14–4 Übersicht der Aufwände für die Testfallerstellung vor und nach der MBT-Einführung | 424 |
»Voice of the Customer« | 425 |
14.4 Zusammenfassung | 426 |
15 Möglichkeiten und Grenzen von MBT | 427 |
15.1 Was modellbasiertes Testen leisten kann | 427 |
Komplexitätsreduktion und Testveranschaulichung | 427 |
Hohe Testüberdeckung und transparente standardisierte Testentstehung | 428 |
Abb. 15–1 MBT = Übergang vom impliziten zum expliziten Testmodell | 429 |
Generierte Pfad- und Datenkombinationen mit nicht offensichtlichen Abläufen | 429 |
Verbesserte Rückverfolgbarkeit und Testpflege | 430 |
Wieder- bzw. Weiterverwendung bestehender Modelle | 430 |
Frühzeitigkeit der Testaktivitäten | 431 |
Automatisierung schon bei der Testfallerstellung | 431 |
Durchgängige Vorbereitung einer automatisierten Testdurchführung | 431 |
Sinnvolle Ergänzung der konventionellen Testdesignmethoden | 431 |
15.2 Was modellbasiertes Testen unter Umständen leisten kann | 432 |
Tab. 15–1 In einem Beispiel-MBT- Projekt gefundene Fehler (aus [Steingruber 2008]) | 433 |
15.3 Was modellbasiertes Testen nicht leisten kann | 434 |
Komplette Automatisierung der Testfallentstehung auf Basis vorhandener Systemmodelle | 434 |
Generierung von Code und Testfällen aus denselben Modellen | 434 |
Automatische Steigerung der Testqualität | 434 |
15.4 Was modellbasiertes Testen nicht ersetzen kann | 435 |
Erfahrungsbasiertes und intuitives Testen | 435 |
Tests auf Bedienbarkeit | 435 |
Fachwissen | 436 |
Gesunder Menschenverstand | 436 |
15.5 Ausblick – was MBT künftig bringen wird | 436 |
Abb. 15–2 ModelBus-Konzept und Architektur (Quelle: [URL: ModelBus]) | 438 |
15.6 Zusammenfassung | 439 |
Anhang | 441 |
A Abkürzungsverzeichnis | 443 |
B Glossar | 445 |
C Quellen | 455 |
C.1 Literaturangaben | 455 |
C.2 Webseiten | 466 |
(letzter Zugriff am 26. Februar 2016) | 466 |
Index | 469 |
www.dpunkt.de | 0 |