- Klassifikationsbaum-Methode
-
Die Klassifikationsbaummethode (englisch classification tree method) ist eine im Bereich von eingebetteter Software verbreitete Methode zur Ermittlung funktionaler Blackbox-Tests. Es handelt sich dabei nicht um Klassifikationsbäume im Sinne von Entscheidungsbaum.
Ausgangspunkt ist die funktionale Spezifikation des Testobjekts. Ergebnis ist eine Menge von Testfallspezifikationen, die möglichst fehler-sensitive, jedoch keine redundanten Testfallspezifikationen enthalten soll. Durch die methodische Vorgehensweise soll sichergestellt werden, dass die resultierende Menge von Testfallspezifikationen alle relevanten Testfälle enthält.
Ursprung der Methode
Die Klassifikationsbaummethode ist eine Weiterentwicklung der Category-Partition Method (Ostrand und Balcer). Sie wurde im Software-Forschungslabor von DaimlerChrysler in Berlin entwickelt.
Weiterentwicklungen der Methode
Die ursprünglich 1993 vorgestellte Methode dient zunächst nur der Spezifikation von abstrakten Testfällen.
Die Erweiterung zur Klassifikationsbaummethode für eingebettete Systeme erfolgte im Rahmen einer Dissertation an der TU-Berlin. Damit wird die Spezifikation von konkreten Testdaten, wie sie für die Ausführung des Testfalls benötigt werden möglich.
Ansätze aus Klassifikationsbäumen Testdaten zu generieren wurden ebenfalls verfolgt.[1][2]
Die Methode Time Partition Testing ist eine Erweiterung der Klassifikationsbaummethode um zeitliche Aspekte, die beim Test von Steuerungs- und Regelungssystemen eine große Rolle spielen. E.Lehmann beschreibt in seiner Dissertation[3] wie Klassifikationen auf Zustände und Transitionen in den Time Partition Testing Automaten abgebildet werden können, und so auch zeitliche Aspekte abgebildet werden können.
Die Anwendung der Klassifikationsbaummethode
Ermittlung der testrelevanten Aspekte
Die Klassifikationsbaummethode startet mit der Analyse der funktionalen Spezifikation. Das Ziel ist dabei, die so genannten testrelevanten Aspekte dieses Problems zu erkennen. Durch sinnvolle Auswahl der Werte, die diese Aspekte annehmen können, verspricht man sich unterschiedliche, relevante Testfälle. Diese Aufteilung des Problems in verschiedene Aspekte, die im Folgenden separat verfeinert werden können, reduziert die Komplexität des ursprünglichen Testproblems beträchtlich.
Klassifikation
Sind alle testrelevanten Aspekte gefunden, werden für jeden Aspekt die Werte betrachtet, die dieser Aspekt annehmen kann. Der gefundene Wertebereich wird dann analog der Äquivalenzklassenmethode in Klassen zerlegt. Die Zerlegung wird so vorgenommen, dass alle Werte einer Klasse als äquivalent für den Test betrachtet werden können. Anders ausgedrückt: Welcher Wert aus einer Klasse für den Test verwendet wird, beeinflusst das Testergebnis nicht. Die Verantwortung, dass diese Aussage zutreffend ist, liegt beim Anwender.
Wiederholte Anwendung ergibt den Klassifikationsbaum
Eine Äquivalenzklasse kann man nach zusätzlichen Gesichtspunkten weiter klassifizieren. Durch die wiederholte Bildung von Unter-Klassifikationen mit den dazugehörigen Klassen ergibt sich schlussendlich der Klassifikationsbaum. Seine Wurzel bildet die Problemstellung; er wächst von oben nach unten; Klassifikationen sind durch Rechtecke eingerahmt; Klassen haben keinen Rahmen.
Testfälle werden in der Kombinationstabelle spezifiziert
Die Blätter des Klassifikationsbaums (d.h. Klassen ohne weitere Klassifikation) bilden den Kopf der Kombinationstabelle. Eine Zeile in der Kombinationstabelle spezifiziert einen Testfall, indem die Blattklassen des Baums markiert werden, aus denen ein Wert für diesen Testfall verwendet wird. Es ist allerdings nicht Sinn der Methode, mechanisch alle möglichen Kombinationen der Blattklassen als Testfälle zu spezifizieren, sondern der Anwender ist aufgefordert, möglichst mehrere Aspekte durch einen Testfall abzudecken, um so zu einer minimalen, nicht-redundanten Menge von Testfallspezifikationen zu kommen.
Classification Tree Editor CTE
Der Klassifikationsbaumeditor CTE unterstützt den Entwurf des Klassifikationsbaums sowie die Spezifikation der Testfälle. Der CTE besitzt einen Graphikeditor, der speziell zum Zeichnen von Klassifikationsbäumen gedacht ist. Beispielsweise berücksichtigt der CTE die vorgeschriebene Abfolge von Klassifikation bzw. Komposition und Klasse und schlägt beim Zeichnen das jeweils passende Baumelement vor. Die Testfallspezifikationen werden in der Kombinationstabelle angelegt und durch den CTE verwaltet. Sie können in Testsequenzen zusammengefasst werden, die zur Beschreibung von dynamischen Abläufen benötigt werden. Zur Dokumentation können von CTE Reports in Excel, Word oder als Textdatei erzeugt werden. Zum Unit-Test-Werkzeug Tessy können die erstellten Testfälle direkt exportiert werden.
Vorteile der Klassifikationsbaummethode
Visualisierung der Testideen
Ein wesentlicher Vorteil der Klassifikationsbaummethode ist die Visualisierung der Testideen, die somit leicht vermittelbar sind, beispielsweise bei Reviews. Reviews sind auch ein probates Mittel, wenn es darum geht, sich zu versichern, dass keine Testfallspezifikationen fehlen.
Schafft Vertrauen
Hat man einen sorgfältig erarbeiteten Baum und wohlüberlegte Testfallspezifikationen erstellt, gibt es eine große Wahrscheinlichkeit dafür, dass man die meisten oder vielleicht sogar fast alle Fehler finden wird
Reduziert die Komplexität
Beim ersten Nachdenken über die notwendigen Testfälle für ein bestimmtes Problem hat man zumeist zahlreiche Einfälle und Ideen. Die Herausforderung besteht eher darin, die Einfälle zu strukturieren und redundante Testfälle zu erkennen. Die Klassifikationsbaummethode reduziert die in dieser Aufgabe liegende Komplexität, denn sie erlaubt, einzelne Aspekte (Klassifikationen) isoliert zu betrachten und sich gezielt Gedanken über die nötigen (und unnötigen!) Äquivalenzklassen zu machen.
Überprüft die Spezifikation
Der erste Schritt der Klassifikationsbaummethode ist die Analyse der Problemspezifikation. Dies erzwingt automatisch die Überprüfung der Spezifikation auf Auslassungen, Widersprüche und Unklarheiten.
Abschätzung des Testaufwands
Schon aus dem Klassifikationsbaum kann man gewisse Maße ermitteln, z.B. die minimale Anzahl von Testfällen für einen gegebenen Baum. Diese und andere Maße werden durch das Werkzeug CTE ermittelt.
Nachteile der Klassifikationsbaummethode
Das Erstellen von guten Klassifikationsbäumen wird durch die Vermischung unterschiedlicher Aspekte erschwert. Während bei der Äquivalenzklassenmethode und der Grenzwertanalyse zunächst jede Größe für die Zerlegung in relevante Bereiche allein betrachtet wird und erst in einem zweiten Schritt Abhängigkeiten zwischen Größen betrachtet werden, müssen beide Schritte im Sinn der Klassifikationsbaummethode zusammen erfolgen. Dies ist notwendig, da die Baumstruktur wesentlich von Abhängigkeiten zwischen Größen beeinflusst wird.
Kritik an der Klassifikationsbaummethode
Klassifikationsbäume sind Übersichtlich bei einer begrenzten Anzahl von Klassifikationen, Äquivalenzklassen und Testfällen. Bei großen Klassifikationsbäumen ist es schwierig die Übersicht zu behalten.
Siehe auch
- CART (Algorithmus)
- Entscheidungsbaum
- TPT - Eine Spezialisierung der Klassifikationsbaum-Methode für den Test von Steuerungs- und Regelsystemen
Literatur
- M. Grochtmann/K.Grimm: Classification Trees For Partition testing, Software testing, Verification & Reliability, Volume 3, Number 2, Wiley 1993, S. 63–82.
- Klaus Grimm: Systematisches Testen von Software: Eine neue Methode und eine effektive Teststrategie, München/Wien/Oldenburg 1995, GMD-Berichte Nr. 251.
- Balcer/Ostrand: The category-partition method for specifying and generating functional tests, Communications of the ACM Volume 31, Nummer 6, 1988, S. 676ff.
Einzelnachweise
- ↑ Vgl. S. Lützkendorf/K. Bothe: Attributierte Klassifikationsbäume zur Testdatenbestimmung, in: Softwaretechnik-Trends 23(1), 2003.
- ↑ Vgl. Dai/Deussen/Busch/Lacmene/Ngwangwen: Automatic Test Data Generation for TTCN-3 using CTE, [1].
- ↑ Lehmann, TPT - Dissertation, 2003
Kategorie:- Testen (Software)
Wikimedia Foundation.