Klassifikationsbäume

R 2.0.0

Was sind Klassifikationsbäume?

Was sind Klassifikationsbäume?

Ein Black-Box-Testverfahren, bei dem Testfälle durch Verwendung eines Klassifikationsbaums entworfen werden.

Beschreibung

Das Klassifikationsbaumverfahren ist ein Mittel, um die Bildung von Testfällen aus einer bestehenden Spezifikation zu unterstützen. Ähnlich wie bei den Methoden des Paarweisen Testens und der Äquivalenzklassenbildung hilft dieses Werkzeug bei der Reduktion der Vielzahl theoretisch denkbarer Testfälle auf ein sinnvolles Maß.

Ein Einsatz des Klassifikationsbaumverfahrens ist auch bereits zu frühen Zeitpunkten während der Entwicklungsphase möglich, um beispielsweise Fehler oder logische Lücken in der Spezifikation aufzudecken. Auch für den Fall, dass (noch) keine vollständigen Anforderungen definiert wurden, ist der Einsatz der Klassifikationsbäume denkbar. In diesem Fall ist die systematische Testfallerstellung mit der Unsicherheit der späteren tatsächlichen Anforderungsdefinition verbunden. In diesem Fall sind eine iterative Prüfung und Anpassung notwendig.

Arbeitsschritte zur Erstellung von Klassifikationsbäumen:

  1. Ausgangspunkt ist die funktionale Spezifikation des Testobjekts

  2. Bestimmung testrelevanter Aspekte (Klassifikationen) und möglicher Ausprägungen (Klassen) zur Bildung des Diagramms

  3. Kombination unterschiedlicher Klassen für alle Klassifikationen zu Testfällen

  4. Baumdiagramm um die Darstellung der Testfälle ergänzen

Nach Auswahl des Testobjekts wird die Menge der möglichen Eingaben als testrelevante Aspekte ermittelt. Es werden unterhalb des Wurzelelements sogenannte Klassifikationen mit getrennten Klassen gebildet. Die Klassifikationen können nach inhaltlicher Bedeutung auch zu Kompositionen gruppiert werden

ALT MISSING
Abb. 1: Elemente des Klassifikationsbaums

Die Wahl der Klassen erfolgt analog zur Bildung von Äquivalenzklassen. Die vollständige Aufstellung der Klassifikationen und Klassen bildet schließlich den Klassifikationsbaum.

Nach diese m ersten Schritt der Ermittlung und Strukturierung der testrelevanten Gesichtspunkte folgt anschließend im zweiten Schritt die Kombination der Elemente zur Definition der gewünschten Überdeckung in den geplanten Testmaßnahmen. Die Darstellung des Klassifikationsbaums wird im dritten Schritt um die gebildeten Testfälle ergänzt.

Beispiel für Klassifikationsbäume

Üblicherweise liegt zum Zeitpunkt der Testplanung eine funktionale Spezifikation vor, die es zu analysieren gilt. Wie beschrieben wird daraus der mögliche Eingabedatenraum ermittelt. Es folgt die Zerlegung dieser Werte in getrennte Klassen, aus denen ein konkreter Repräsentant für die spätere Testdurchführung ausreicht. Es ist möglich, dass je nach Aufgabenstellung die gebildeten Klassen durch Klassifikationen noch in weitere Klassen unterteilt werden. Dieser Vorgang wird solange wiederholt wie nötig und es entsteht durch diese Verzweigung der Klassifikationsbaum.

Voraussetzung für die Anwendung der Methode ist wie erwähnt zunächst die Festlegung des Testobjekts. In unserem Beispiel handelt es sich um eine Komponente des Softwaresystems eines Onlineshops. Wir betrachten das Modul zur Durchführung des Bestellvorgangs. Für die Tests eines Bestellvorgangs gibt es drei unabhängige Variablen mit den unterschiedlichen Ausprägungen:

Region: Europa, USA, Asien, Australien

Bezahlfunktion: VISA, MasterCard, PayPal

Kundentyp: Individual, Firma

ALT MISSING
Abb. 2: Klassifikationsbaum Onlineshop

Bei der Testfallerstellung kommt nun die paarweise Kombination der Werte zum Einsatz, die manuell oder werkzeuggestützt durchgeführt werden kann. Die möglichen Kombinationen aus dem Paarweisen Testen sind für unser Beispiel folgende zwölf:

ALT MISSING
Abb. 3: erstellte Testfälle

In der grafischen Darstellung werden diese Kombinationen der Testfälle nun noch ergänzt:

ALT MISSING
Abb. 4: Klassifikationsbaum inkl. Testfälle

Mehrwert

Der Testentwurf mit dem Klassifikationsbaum bietet eine leicht zugängliche und intuitive bildliche Darstellung der Testaspekte. Je nach Eingabewerten werden passende Äquivalenzklassen gebildet und jeweils ein Repräsentant für die Tests verwendet. Auch die Grenzwertanalyse und das Paarweise Testen kann als zusätzliche Verfeinerung eingesetzt werden, sodass die Klassifikationsbäume eine gute Möglichkeit zur Kombination der verschiedenen Methoden darstellen. In dem verwendeten Beispiel ist aufgrund der Eingabewerte eine Grenzwertanalyse nicht anwendbar.

Die optische Hervorhebung der logischen Abhängigkeiten unterstützt die Anwendenden und legt so beispielsweise die Verwendung unvereinbare Kombinationen bei der Testfalldefinition offen.

Die Vorteile der Klassifikationsbäume zusammengefasst:

  • Visualisieren der Testideen

  • Reduzieren der Komplexität

  • Überprüfen der Spezifikation

  • Schaffen von Vertrauen

  • Abschätzung des Testaufwands

Herausforderungen bei Klassifikationsbäumen

Die Klassifikationsbäume können bei fehlerhafter Testzerlegung unübersichtlich werden. Die Ermittlung testrelevanter Aspekte ist eine Herausforderung, da die Auswahl zu vieler oder irrelevanter Aspekte zu einer zu hohen Anzahl Testfälle führen wird. Bei der Festlegung der Klassifikationen und Kombinationen ist ähnlich wie bei den übrigen Testentwurfsverfahren Erfahrung, fachliches Know-How sowie Kreativität nötig. Daher dürfen diese Aspekte sowie die Erfahrung der Beteiligten bei aller nützlichen automatisierten Unterstützung durch Werkzeuge nicht vergessen werden.

Werkzeuge

Es existieren Werkzeuge zur Unterstützung bei der Erstellung der Testfälle und Darstellung als Klassifikationsbaum. Diese Werkzeuge erleichtern die Testfallerstellung, können allerdings nicht die genannte fachliche Expertise bei der Ermittlung und Priorisierung der wirksamsten Eingabewerte ersetzen.

Einige Werkzeuge unterstützen auch die Kombination dreier unabhängiger Variablen. Wie bei der Beschreibung der Bildung der Äquivalenzklassen beschrieben, entstehen die meisten Fehler bei den Kombinationen von zwei Eingabeparametern. Es ist daher zu prüfen, ob der Einsatz eines Werkzeuges zur Kombination von mehreren Variablen erforderlich ist und einen Mehrwert liefert.

Beispiel TESTONA

Quellen