Was ist die Grundidee von erfahrungsbasiertem Testen?
• Grundidee: Testbasis sind auch Erfahrung, Kenntnisse und Intuition der Tester, Entwickler und Benutzer, z.B.
– erwartete Nutzung der Software und ihrer Umgebung
– mögliche Fehlerzustände und ihre Verteilung
• Beispiele für Erfahrung (Heuristiken)
– Neue Funktionalität fehleranfälliger als reife Funktionalität
– Geänderte Funktionalität fehleranfälliger als reife Funktionalität
– Späte Änderungen verursachen Fehler
– Fehler häufig an Grenzwerten
Was sind Beispiele für erfahrungsbasierte Testverfahren?
Intuitive Testfallermittlung (error guessing)
Exploratives Testen (exploratory testing)
Checklistenbasiertes Testen
Intuitive Testfallermittlung: Vorgehensweise
Liste möglicher Fehlhandlungen, Fehlerzustände und Fehlerwirkungen erstellen (Fehlerkatalog)
Daraus Testfälle ableiten, die auf diese Fehler abzielen
Was ist exploratives Testen?
Informelles Testen ohne vorbereitete Testfälle, insb. ohne Sollergebnisse
Testfallanalyse, Testentwurf, Testrealisierung und Testdurchführung laufen parallel
Wann ist exploratives Testen geeignet?
zu wenig oder ungeeignete Spezifikationen vorhanden
Test unter hohem Zeitdruck steht
andere, formalere Testverfahren zu unterstützen/ergänzen sind
Exploratives Testen: Vorgehensweise
Was ist eine Test-Charta?
Gibt Ziel und Aufgabe einer Sitzung vor
Anfangs allgemein zum Kennenlernen des Testobjekts
Später detaillierter
Vor- und Nachteile des explorativen Testens
Vorteile:
– Kurzfristig einsetzbar, erfordert keine lange Vorplanung
– Anwendbar, wenn wenig Dokumentation oder Domänenwissen vorhanden (Kennenlernen des Produktes, Exploration)
– Fördert Kreativität und Spontaneität
– In Gruppen Synergien zwischen erfahrenen und unerfahrenen Testern
Schwächen:
– Verfall in bestimmte Denkmuster behindert das Aufdecken von Fehlern
– Abhängig von Wissen und Erfahrung der Tester
– Nicht automatisierbar
Was macht man beim checklistenbasiertes Testen?
Tests entwerfen, realisieren und ausführen, um Testbedingungen aus einer Checkliste abzudecken
Testendekriterium: vollständige Abarbeitung der Checkliste
Vor- und Nachteile des checklistenbasierten Testens
– Checkliste gibt Testern Orientierung und hilft, nichts zu vergessen
– Allgemeine Natur der Checkliste positiv für Testüberdeckung, wenn unterschiedliche Tester daraus unterschiedliche Testfälle ableiten
– Checkliste über Testprojekte hinweg wiederverwendbar
– Unterstützt verschiedene Testarten, z.B. funktionalen Test oder nicht-funktionalen Test
– Erfahrene Tester nötig, um Checkliste zu interpretieren
– Allgemeine Natur der Checkliste schlecht für Wiederholbarkeit
– Checklisten neigen über die Zeit zum Wachsen -> regelmäßig überarbeiten
– Vorhandene Checkliste muss nicht zum Testobjekt passen
Worin können sich Testverfahren unterscheiden?
Testart: Welche Art von Tests werden durchgeführt? (funktionale, nicht-funktionale Anf.)
Teststufe: Für welche Testobjekte wird der Test spezifiziert? (Komponentent., Integratoinst., ...)
Tester: WER testet? (Entwickler, Tester, Benutzer, ...)
Testüberdeckung: WAS wird überdeckt? (Anforderung, Modell, Anweisung, ...)
Potenzielle Fehler: Welche potenziellen Fehler sollen identifiziert werden? (Grenzwerte, Ausnahmen, ...)
Artefakt: Was ist die Grundlage für Auswahl und Herleitung der Testfälle? (Anforderungen -> Black-Box, Code -> White-Box)
Domäne / Paradigma: Für welche spezielle Domäne bzw. Entwicklungsparadigma ist das Verfahren zugeschnitten? (OOP, Web-basiert, DB-basiert, Automative, Sicherheitskritische SW, ...)
Kriterien zur Auswahl eines Testverfahrens
Testart, Teststufe, Tester, Abdeckung, potenzielle Fehler, Artefakte, Charakteristika des Produkts (Domäne, Technologie)
Verfügbare Dokumentation und ihre Qualität
Qualifikation/Erfahrung der Tester
Regulatorische Anforderungen / Standards, Kunden- / Vertragsanforderungen
Testziele, Projekt- und Produktrisiken
Angestrebter Automatisierungsgrad
Testbudget (Zeit und Geld)
Zu findende Arten von Fehlerwirkungen
Empfehlung: Unterschiedlcihe Testverfahren kombinieren; verschiedene Verfahren finden unterschiedliche Fehler; insgesamt bessere Abdeckung des Testobjekts
Empfohlene Testvorgehensweise
erst Black-Box, dann White-Box
Äquivalenzklassenbildung in Kombination mit der Grenzwertanalyse zur Erstellung der Testfälle einsetzen
Haben unterschiedliche Zustände Einfluss auf das Verhalten des Testobjekts -> zusätzlich zustandsbasierten Test
Anweisungs- und Entscheidungsüberdeckung messen; darauf achten, dass Schleifen auch mehrmals durchlaufen werden
nicht ausgeführte Teile des Testobjekts einem White-Box-Testverfahren unterziehen
Was bedeutet der Begriff Anweisungsüberdeckung?
Worin unterscheiden sich Anweisungs- und Entscheidungsüberdeckung?
Nach welcher Formel wird die erreichte Anweisungsüberdeckung berechnet?
Wozu dient die Instrumentierung beim White-Box-Test?
Exkurs: Worauf zielt die Bedingungsüberdeckung ab?
Exkurs: Worin unterscheiden sich die einfache Bedingungsüberdeckung und die Mehrfachbedingungsüberdeckung?
Was ist unter erfahrungsbasiertem Testen zu verstehen? Nennen Sie drei Beispiele für Verfahren zum erfahrungsbasierten Testen.
Warum sollten systematische und erfahrungsbasierte Testverfahren kombiniert werden?
Zuletzt geändertvor 6 Jahren