Ausarbeitung. Die Klassifikationsbaum-Methode. im Rahmen des Seminars Spezifikationsbasierter Software-Test



Ähnliche Dokumente
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

1 topologisches Sortieren

1 Mathematische Grundlagen

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Kapiteltests zum Leitprogramm Binäre Suchbäume

impact ordering Info Produktkonfigurator

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Programmiersprachen und Übersetzer

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Erstellen von x-y-diagrammen in OpenOffice.calc

Professionelle Seminare im Bereich MS-Office

Anwendungshinweise zur Anwendung der Soziometrie

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Berechnung der Erhöhung der Durchschnittsprämien

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Primzahlen und RSA-Verschlüsselung

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Vortrag Diplomarbeit. Testentwurf in komplexen softwareintensiven Systemen mit der Klassifikationsbaummethode. von Rebecca Tiede

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Zeichen bei Zahlen entschlüsseln

4 Aufzählungen und Listen erstellen

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich?

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Wie Sie mit Mastern arbeiten

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Speicher in der Cloud

Ishikawa-Diagramm. 1 Fallbeispiel 2. 2 Was ist ein Ishikawa-Diagramm 2. 3 Vorgehen bei der Erstellung eines Ishikawa-Diagramms 2.

Konzepte der Informatik

GEVITAS Farben-Reaktionstest

Theoretische Grundlagen der Informatik WS 09/10

Text Formatierung in Excel

Gratis Excel SVERWEIS Funktions-Anleitung, Tutorial, ebook, PDF-E-Book

Binärdarstellung von Fliesskommazahlen

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

LinguLab GmbH. Bedienungsanleitung Allgemeine Definition

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Grundbegriffe der Informatik

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Ein PDF erstellen. aus Adobe InDesign CC. Langner Marketing Unternehmensplanung Metzgerstraße Reutlingen

Partitionieren in Vista und Windows 7/8

Kreatives Occhi. - V o r s p a n n - Alle Knoten und Knüpfelemente sowie ihre Verwendbarkeit. Die Knoten

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Plotten von Linien ( nach Jack Bresenham, 1962 )

PowerPoint 2010 Mit Folienmastern arbeiten

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

SUDOKU - Strategien zur Lösung

Software- und Druckerzuweisung Selbstlernmaterialien

Kurs 1613 Einführung in die imperative Programmierung

AUF LETZTER SEITE DIESER ANLEITUNG!!!

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

e LEARNING Kurz-Anleitung zum Erstellen eines Wikis 1. Wiki erstellen

3.2 Spiegelungen an zwei Spiegeln

Whitebox-Tests: Allgemeines

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Ein Spiel für 2-3 goldhungrige Spieler ab 8 Jahren.

Fallbeispiel: Eintragen einer Behandlung

Beschreibung des MAP-Tools

Zahlen auf einen Blick

Erstellen einer GoTalk-Auflage

3. GLIEDERUNG. Aufgabe:

WS 2008/09. Diskrete Strukturen

Dokumentation zum Spielserver der Software Challenge

LEITFADEN ZUR SCHÄTZUNG DER BEITRAGSNACHWEISE

Urlaubsregel in David

Einfügen von Bildern innerhalb eines Beitrages

Anleitungen zum KMG- -Konto

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Artikel Schnittstelle über CSV

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Software Engineering Klassendiagramme Assoziationen

Qt-Projekte mit Visual Studio 2005

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

Eine Logikschaltung zur Addition zweier Zahlen

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Lineare Gleichungssysteme

Anzeige von eingescannten Rechnungen

IBIS Professional. z Dokumentation zur Dublettenprüfung

2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

SICHERN DER FAVORITEN

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Die Größe von Flächen vergleichen

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

10 Erweiterung und Portierung

(für Grund- und Leistungskurse Mathematik) 26W55DLQHU0DUWLQ(KUHQE UJ*\PQDVLXP)RUFKKHLP

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Data Mining: Einige Grundlagen aus der Stochastik

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Transkript:

Ausarbeitung Die Klassifikationsbaum-Methode im Rahmen des Seminars Spezifikationsbasierter Software-Test Autor: Betreuer: Tim Michaelis Dr. Mirko Conrad Sommersemester 2006 Humboldt-Universität zu Berlin - Institut für Informatik -

Inhaltsverzeichnis 1 Einleitung 1.1 Einordnung in das Seminar 1.2 historischer Hintergrund der Klassifikationsbaum-Methode 1.2.1 Probleme funktionaler Tests 1.2.2 Partition Testing als Basis 2 Die Klassifikationsbaum-Methode 2.1 Grundidee 2.1.1 Klassifikation des Eingabedatenraumes 2.1.2 Definition von Testfällen 2.2 Demonstration der Klassifikationsbaum-Methode 2.2.1 Beispiel Erkennungssystem 2.2.2 Beispiel Funktion 2.3 Refinements (Verfeinerungen) 2.3.1 Klassen-Verfeinerungen 2.3.2 Klassifikations-Verfeinerungen 2.4 Zusammenhang Klassifikationsbaum-Methode und Partition Testing 2.5 Komplexitätsbetrachtungen 2.5.1 Minimal-Kriterium 2.5.2 Maximal-Kriterium 2.5.3 Überdeckungsmaße 2.6 Praktischer Einsatz der Klassifikationsbaum-Methode 2.7 Werkzeuge 3 Zusammenfassung 4 Anhang Klassifikationsschema 5 Literaturverzeichnis 3 3 3 4 5 6 6 6 7 7 8 9 11 12 12 13 14 14 15 16 17 17 18 19 20 2

1 Einleitung Ziel dieses Kapitels soll es sein, den thematischen Hintergrund der Klassifikationsbaum-Methode in Bezug auf das Seminar sowie auf den historischen Kontext zu erläutern. Dabei wird auf den Vorläufer der Klassifikationsbaum- Methode eingegangen und es werden Gründe für das Entwickeln von Methoden zur Testfall-Generierung aufgezeigt. 1.1 Einordnung in das Seminar Das Seminar Spezifikationsbasierter Software-Test behandelte das Ableiten von Testfällen für eine mögliche Implementation aus einer gegebenen System- Spezifikation, ob logisch, funktional, algebraisch etc., heraus. Als Testfall bezeichnet man eine Festlegung von möglicherweise abstrakten Eingabewerten und erwarteten Reaktion. Die Generierung von Testfällen soll möglichst automatisch erfolgen. Eng damit verbunden ist das Erzeugen von konkreten Testdaten für den jeweiligen Testfall. Diese Ausarbeitung wird sich vor allem auf das Ableiten von Testfällen konzentrieren. 1.2 historischer Hintergrund der Klassifikationsbaum-Methode Gegeben sei eine funktionale Spezifikation eines zu testenden Systems (SUT System Under Test). Die Form der Spezifikation, ob formal, informal oder semiformal soll keine Rolle spielen. Das Problem besteht jetzt darin, effizient Testfälle für das funktionale Testen zu finden. 3

1.2.1 Probleme funktionaler Tests Das funktionale Testen ist ein Black Box Testing. Die Black Box ist dabei unser zu testendes System. Sichtbar sind nur die Testdaten, möglicherweise auch kombiniert, aus dem Eingabedatenraum sowie die Resultate. Abbildung 1.2.1.1: funktionales Testen Möglicherweise ist der Eingabedatenraum aber sehr groß bis unendlich groß. Dann stellt sich die Frage, welche Daten und vor allem wieviele betrachtet werden müssen. Im Fall des unendlich großen Raumes ist es unmöglich, alle zu verwenden bzw. ist es mindestens Zeit- / Ressourcen-beschränkt. Die Lösung ist das Testen mit nur einigen Testdaten, die anhand spezifizierter Testfälle ausgesucht werden. In der Praxis ergibt sich damit ein hoher Testaufwand, wenn Testfälle aufgrund unsystematischer Vorgehensweise viel Redundanz enthalten. Diese kommt zustande durch: mehrfaches Testen mit eigentlich äquivalenten Eingabedaten, Testen mit logisch unvereinbaren Daten sowie durch Testen mit nicht spezifikationsgemässen Daten. Derartiges Testen ist immer mit Zeit und (damit) Kosten verbunden, ist also unwirtschaftlich. Gesucht ist daher eine Methodik, um möglichst Redundanz zu vermeiden und trotzdem den gesamten Eingabedatenraum abzudecken. Den Grundstein dafür legte das Partition Testing, entwickelt in den 80er. 4

1.2.2 Partition Testing als Basis Die grundlegende Idee des Partition Testing ist die Zerlegung des Eingabedatenraums in Äquivalenz-Klassen. Getestet wird nur mit Repräsentanten jeder Klasse. Neben verschiedenen anderen Ansätzen war die Category Partition Method von Ostrand und Balcer am weitesten entwickelt. Ausgehend von einer funktionalen Spezifikation werden bei dieser Methode Eigenschaften und Charakteristika von Parametern und Umgebungsgrößen einer zu testenden Einheit in Kategorien zerlegt. Die Menge der möglichen Werte jeder Kategorie wird durch sogenannte choices disjunkt wiederum zerlegt. Mögliche Abhängigkeiten zwischen Werten verschiedener Kategorien werden durch constraints beschrieben. Mithilfe der speziell dafür definierten Sprache TSL (Test Specification Language) und einem Testfall-Generator werden durch Kombination von Werten verschiedener Kategorien, unter Beachtung der constraints, Testfälle generiert. Redundanzen sollen durch nochmalige Reviews der erzeugten Testfälle verringert werden. Alle Ansätzen, inklusive die Category Partition Method, hatten allerdings entscheidende Nachteile. Sie enthielten immer noch viele Redundanzen und waren schwer ver- und übermittelbar, wenn es um verteilte Entwicklung ging. Grade bei großen Projekten wurden die rein textuelle Testfall-Spezifikationen unübersichtlich. Und ohne den Testfall-Generator kommt die oben beschriebene Methode nicht aus. Hier setzt die Klassifikationsbaum-Methode auf. Sie ist der Category Partition Method sehr ähnlich, hat aber den Anspruch, möglichst disjunkte Testfälle zu liefern und bietet eine intuitve, graphische Darstellung. 5

2 Die Klassifikationsbaum-Methode Ziel dieses Kapitels soll es sein, die Klassifikationsbaum-Methode im Detail vorzustellen. Nach Erläuterung der Grundlagen dieser Methode, wird ihre Anwendung zum besseren Verständnis an zwei Beispielen demonstriert. Desweiteren wird in diesem Kapitel nocheinmal der Zusammenhang zwischen der Klassifikationsbaum-Methode und dem Partition Testing näher beleuchtet. Danach werden einige wichtige für die Beurteilung des Test-Aufwands mit dieser Methode wichtige Maße und Kriterien genannt. Und schließlich wird auf den praktischen Einsatz und auf rechnergestützte Werkzeuge eingegangen. 2.1 Grundidee Die Klassifikationsbaum-Methode wurde in der Forschungsabteilung Systemtechnik von ehemals Daimler-Benz, jetzt DaimlerChrysler, entwickelt und ähnelt der Category Partition Method. Die grundsätzliche Idee der Klassifikationsbaum-Methode ist es, zuerst die Menge der möglichen Eingaben für ein Testobjekt auf verschiedene Weisen unter jeweils geeigneten Gesichtspunkten zu zerlegen, um dann durch Kombination dieser Zerlegungen zu Testfällen zu kommen. [Gri95, S. 50] Angewendet wird die Klassifikationsbaum-Methode für die Testfall-Ermittlung eines funktional spezifizierten Systems. 2.1.1 Klassifikation des Eingabedatenraumes Nach Analyse der funktionalen Spezifikation des Testobjektes werden alle testrelevanten Aspekte, auch als Gesichtspunkte bezeichnet, ermittelt. Diese dienen der einfachen Unterscheidung der möglichen Eingaben. Nun wird die Menge aller möglichen Eingaben unter dem jeweiligen Gesichtspunkt disjunkt in Klassen analog zum Partition Testing zerlegt. Alle Werte einer Klasse sind demzufolge äquivalent; zum Testen reicht ein konkreter Repräsentant. Die Zerlegungen unter den Gesichtspunkten sind Klassifikationen. 6

Je nach Problem können Klassen wiederum durch Klassifikationen in weitere Klassen unterteilt werden. Diese rekursive Vorgehensweise lässt einen Baum entstehen, den sogenannten Klassifikationsbaum. Der Eingabedatenraum stellt die Wurzel des Baumes dar, Klassen und Klassifikationen sind die Knoten. Blätter können nur Klassen sein. Die Klassifikationen werden durch ein Rechteck umrahmt. 2.1.2 Definition von Testfällen Testfälle werden durch Kombination von Klassen aus verschiedenen Klassifikationen erzeugt, wobei aus jeder Klassifikation genau eine Klasse ausgewählt wird. Sie bilden als den Durchschnitt, der durch die Klassen entstehenden Schnittmengen das Eingabedatenraumes. Bei logisch unvereinbaren Kombinationen ist die jeweils mit entstehende Schnittmenge leer. In der graphischen Repräsentation bilden die Blätter des Baum den Kopf einer Kombinationstabelle. Jede Zeile dieser Tabelle steht für einen Testfall. Die Blatt- Klassen, deren Werte an einem Testfall beteiligt sind, werden innerhalb dieser Zeile markiert. In Kapitel 2.2 sind zwei Klassifikationsbäume exemplarisch abgebildet. Ziel des Anwenders muss es sein, eine minimale Menge von Testfall-Spezifikationen zu erhalten, in der alle Aspekte in Kombination vertreten sind. Dazu ist es unter u.u. nicht nötig, alle theoretisch möglichen Kombinationen zu betrachten, sondern nur die praktisch relevanten bzw. logisch vereinbaren. Die Ermittlung der testrelevanten Aspekte ist nicht immer zwingend deterministisch, sondern hängt oft von der Kreativität des Testers ab. Es gibt also die Möglichkeit, dass Fehler im Testobjekt wegen fehlender Testfälle aufgrund eines unvollständigen Baum unentdeckbar bleiben. 2.2 Demonstration der Klassifikationsbaum-Methode Die folgenden beiden Beispiele sollen die Anwendung und Mehrzweckfähigkeit der Klassifikationsbaum-Methode demonstrieren. Ausgangspunkt ist wieder eine funktionale Spezifikation. Im ersten Beispiel ist diese 7

allerdings informal gegeben, während das zweite Beispiel auf eine formale Beschreibung aufbaut. Natürlich erheben diese Beispiele keinen Anspruch auf Realität und Vollständigkeit, sie sind nur zur Illustration des Prinzips gedacht. 2.2.1 Beispiel Erkennungssystem Das Testobjekt sei ein Erkennungssystem, welches mit Hilfe einer Kamera verschiedene Bauklötzchen erkennen soll. Anhand dieser funktionalen Spezifikation sollen testrelevante Aspekte ermittelt werden, der Eingabedatenraum also strukturiert werden. Ziel ist eine endliche Menge von Testfällen für das System. Mögliche Gesichtspunkte für die Klötzchen könnten Farbe und in der Annahme einer zweidimensionalen Erkennung Form sein. Wird Menge aller Klötzchen unter dem Aspekt Farbe klassifiziert, könnten mögliche Klassen rot, blau und grün sein. In Hinblick auf die Form könnten die Klötzchen in Dreiecke, Kreise und Rechtecke unterteilt werden. Dreieckige Klötzchen könnten nocheinmal unter dem Aspekt Art klassifiziert werden. Abbildung 2.2.1 zeigt den so aufgebauten möglichen Klassifikationsbaum mit einigen exemplarischen Testfällen. Abbildung 2.2.1.1: exemplarischer Klassifikationsbaum mit Testfällen: Erkennungssystem 8

Testfall 1 beschreibt zum Beispiel den Test des Systems mit einem grünen Kreis, Testfall 3 mit einem blauen, gleichschenkligen Dreieck. Die jeweils erwartete Reaktion ist die korrekte Erkennung. Im realen Test müsste jede eingeführte Klasse in mindestens einem Testfall auftreten. Auch wären nochmehr Klassifikationen wie z.bsp. Oberfläche denkbar. 2.2.2 Beispiel Funktion Das Testobjekt sei hier eine Funktion, die das Auftreten eines konkreten Elements in einer Liste zählen soll. Als Eingabe besitze sie eine Liste vom Typ TListe, sowie das Element vom Typ TElement. Der Typ der Rückgabe sei Integer. Die Signatur der Funktion sei wie folgt: zaehleelement (liste: TListe, element: TElement): Integer Hierbei ensteht der Eingabedatenraum aus dem kartesischen Produkt einer Menge von Elementlisten und einer Menge von Elementen. Gemäß dem Prinzip der Klassifikationsbaum-Methode werden wieder testrelevante Aspekte definiert und zunächst der Eingabedatenraum unter diesen Aspekten vollständig in disjunkte Klassen zerlegt. Diese Klassen können möglicherweise wiederum klassifiziert werden. 9

Abbildung 2.2.2 zeigt einen möglichen Klassifikationsbaum mit einigen exemplarischen Testfällen. Abbildung 2.2.2.1: exemplarischer Klassifikationsbaum mit Testfällen: Funktion * = nicht alle Elemente sind identisch In diesem Fall wird der Eingabedatenraum nur unter einem Aspekt klassifiziert, nämlich der Listenlänge. Somit können auch die Spezialfälle leere Liste und einelementige Liste betrachtet werden. Alle Listen mit mehr als einem Element gehören in eine Äquivalenz-Klasse, sind also gleichwertig. Dass die letzteren Listen noch zusätzlich nach Sortierung klassifiziert werden, hat einen praktischen Hintergrund. Erstens macht es nur Sinn bei Listen mit mehr als einem Element, von Sortierung zu sprechen und zweitens hat die Sortierung der Liste in Anbetracht des implementierten Suchverfahrens eventuell Auswirkungen auf das Verhalten der Funktion. Zur Definition von Testfällen werden wieder die Blatt-Klassen unterhalb einer Klasse verschiedener Klassifikationen kombiniert. Im Folgenden zwei Beispiel-Testfälle: Testfall 1 beschreibt den Test mit einer leeren Liste und einem (beliebig) gesuchten Element. Die zum zugehörigen Testfall erwartete Reaktion wäre Ausgabe = 0. Testfall 3 beschreibt den Test mit einer Liste mit mehr als einem Element, wobei die Listenelemente alle identisch sein sollen und das gesuchte Element mehrfach vorkommt. Erwartet Ausgabe wäre natürlich die Anzahl, der in der Liste enthaltenden Elemente. 10

Die Auswahl der konkreten Testdaten wie bspw. liste=[2,3,5] als Repräsentanzwert für die Liste mit mehr als einem Element und element=3 als Repräsentanzwert für Zahl obliegt dem Anwender bzw. Werkzeugen, die aus den Testfällen Testdaten generieren. Natürlich kann der obige Klassifikationsbaum noch viel stärker klassifiziert werden, bspw. nach Art der Element etc. 2.3 Refinements (Verfeinerungen) Die Anwendung der Klassifikationsbaum-Methode bei größeren Projekten kann durchaus riesige Bäume und umfangreiche Kombinationstabellen erzeugen. Die Darstellung wird dadurch unübersichtlich. Die Lösung sind Verfeinerungssymbole für Teilbäume, die mit zugehörigem Kombinationstabellen-Teil getrennt aufgezeichnet werden. Zum einen können Klassen verfeinert werden, dargestellt durch eine unterstrichene Klassennamen. Zum anderen können auch Klassifikationen verfeinert werden. Dies wird durch einen doppelt gezeichneten, seitlichen Rand des Rechtecks gekennzeichnet. In der Spalte für die Verfeinerungssymbole werden nur die Zeilen markiert, in denen Klassen der Verfeinerungen an Testfällen beteiligt sind. Abbildung 2.3.1: Verfeinerungssymbole im Klassifikationsbaum 11

2.3.1 Klassen-Verfeinerungen Die Wurzel dieses Teilbaumes mit dazugehöriger Kombinationstabelle ist eine Klasse. Abbildung 2.3.1.1: Klassenverfeinerung Die Anwendung einer Klassifikation auf das Verfeinerungssymbol einelement ist nicht zulässig. 2.3.2 Klassifikations-Verfeinerungen Die Teilbäume, für die das Klassifikationssymbol steht, besitzen jeweils eine Klassifiktion als Wurzel. Abbildung 2.3.2.1: Klassifikationsverfeinerung 12

Eine Klassifizierung des Verfeinerungssymbol im verfeinerten Klassifikationsbaum ist nicht zulässig. 2.4 Zusammenhang Klassifikationsbaum-Methode und Partition Testing Die Klassifikationsbaum-Methode partitioniert den Eingabedatenraum unter verschiedenen Aspekten in disjunkte Klassen. Werden alle Klassifikationen übereinander gelegt, so entsteht eine neue Partitionierung unter nur einer Klassifikation mit den Schnittmengen der alten Klassen als neue (Äquivalenz-) Klassen. Jede neu induzierte Klasse ist mit einer zugehörigen Testfall-Spezifikation in der Kombinationstabelle (so logisch vereinbar) eineindeutig verbunden. Abbildung 2.4.1 zeigt die induzierte Zerlegung. Abbildung 2.4.1: Zerlegung des Eingabedatenraumes Anstatt repräsentative Werte aus allen Eingabewerten auswählen zu müssen (Testproblem erster Ordnung), müssen so nur noch repräsentative Teilmengen aus einer Menge von Teilmengen durch Belegung der Kombinationstabelle gewählt werden (Testproblem zweiter Ordnung). Das Testproblem zweiter Ordnung ist einfacher zu lösen, da durch die Partitionierung die Zahl der Teilmengen, die viele Werte zusammenfassen, geringer ist also die Zahl aller Werte des Testproblems erster Ordnung und jede Teilmenge durch die Testfall- 13

Spezifikation wohl unterschieden ist. Durch Auswahl eines beliebigen Testdatums aus jeweils einer ausgewählten Teilmenge, erhält man Lösungen für das ursprüngliche Testproblem. 2.5 Komplexitätsbetrachtungen Die Klassifikationsbaum-Methode erlaubt es, gewisse Maße für den zu betreibenden Testaufwand anzugeben. Zu Beachten ist allerdings, dass diese Maße nur Abschätzungen sind, da die Einteilung der Klassen sowie deren Detaillierungsgrad vom Tester abhängig ist. 2.5.1 Minimal-Kriterium Das Minimal-Kriterium bei gegebenen Klassifikationsbaum gibt an, wieviele Testfälle mindestens erzeugt werden, wenn jede (Blatt-)Klasse in mindestens einem Testfall und somit Klassenkombination vertreten ist. Im Klassifikationsbaum zur Funktion zaehleelement (s. Abb. 2.2.2.1) sind dies 6: Listenlänge 0 Listenlänge 1; ist gesuchtes Element: ja Listenlänge 1; ist gesuchtes Element: nein Listenlänge >1; Element-Vorkommen: 0; Sortierung: sortiert Listenlänge >1; Element-Vorkommen: 1; Sortierung: unsortiert Listenlänge >1; Element-Vorkommen: >1; Sortierung: alle Element identisch Die Anzahl der wirklich nötigen Testfälle, um alle Aspekte des Testobjekts ausreichend zu testen, kann indes größer als das Minimalkriterium sein. Vor allem dann, wenn ein und dieselbe Klasse in mehreren Kombinationen auftreten muss. 14

2.5.2 Maximal-Kriterium Das Maximal-Kriterium bei gegebenen Klassifikationsbaum gibt an, wieviele Testfälle maximal erzeugt werden, wenn jede theoretisch mögliche Klassenkombination betrachtet wird. Im Klassifikationsbaum zur Funktion zaehleelement (s. Abb. 2.2.2.1) sind dies 1+2+9 = 12: Listenlänge 0 Listenlänge 1; ist gesuchtes Element: ja Listenlänge 1; ist gesuchtes Element: nein Listenlänge >1; Element-Vorkommen: 0; Sortierung: sortiert Listenlänge >1; Element-Vorkommen: 0; Sortierung: unsortiert Listenlänge >1; Element-Vorkommen: 0; Sortierung: alle Element identisch Listenlänge >1; Element-Vorkommen: 1; Sortierung: sortiert Listenlänge >1; Element-Vorkommen: 1; Sortierung: unsortiert Listenlänge >1; Element-Vorkommen: 1; Sortierung: alle Element identisch Listenlänge >1; Element-Vorkommen: >1; Sortierung: sortiert Listenlänge >1; Element-Vorkommen: >1; Sortierung: unsortiert Listenlänge >1; Element-Vorkommen: >1; Sortierung: alle Element identisch Tatsächlich kann es passieren, dass einige der Testfälle aufgrund logischer Unvereinbarkeiten rausfallen und damit die Anzahl wirklichen Testfälle kleiner als das Maximalkriterium ist. Ein Beispiel für Unverträglichkeit ist die Kombination Listenlänge >1; Element-Vorkommen: 1; Sortierung: alle Element identisch Wenn in der Liste mindestens 2 Elemente vorhanden, die identisch sind, dann kann das gesuchte Element (falls identisch mit den vorhanden Elementen) nicht nur einmal vorkommen. 15

2.5.3 Überdeckungsmaße Zur Beurteilung der Test-Komplexität in Bezug auf Aufwand und Qualität werden CTC (Classification-Tree Coverage)-Maße angegeben. CTC max = zum Test berücksichtige Kombinationen : Maximal-Kriterium Werden nur noch die praktisch möglichen Testfälle betrachtet, ergibt sich CTC'' max = zum Test berücksichtige Kombinationen : praktisch mögliche Kombinationen CTC'' max >= CTC max Die Bewertung eines niedrigen CTC max bzw. CTC'' max Wertes muss vor dem Hintergrund eventuell weitgehend unabhängiger Klassen, die nicht kombinierbar sind, erfolgen. CTC min = zum Test berücksichtige Klassen : insgesamt definierte Klassen Hierbei ist ein Wert von 1 anzustreben, schließlich sollen die Testfälle möglichst vollständig sein. 16

2.6 Praktischer Einsatz der Klassifikationsbaum-Methode Die Klassifikationsbaum-Methode wurde in einigen Projekten angewendet, z.b. Funktions- und Modultest eines Pascal-Parsers Test-Review der Erkennungseinheit eines Formular-Lesers (mögliche Klassifikationen wie Schriftart, Schriftgröße, Grad der Bildrotation etc.) Abnahme-Test von Rampenkontrolle, Flugfeldbefeuerung und Energieversorgung eines Großflughafens (mögliche Klassifikationen wie Wetter, Rollrichtung Flugzeug, Anzahl gleich geschalteter Lichter etc.) und einige mehr... 2.7 Werkzeuge Der ebenfalls von DaimlerChrysler entwickelte CTE (Classification Tree Editor) unterstützt das Zeichnen von Klassifikationsbäumen sowie die Spezifikation und Verwaltung von Testfällen in der Kombinationstabelle. Der CTE unterstützt zum Beispiel den Anwender bei Auswahl passender und syntaktisch richtiger Elemente. Weiterhin stellt der CTE die Testfälle für das automatische Testsystem TESSY bereit, welches u.a. über Prolog konkrete Test- und Solldaten erzeugt oder vom Anwender entgegennimmt und Funktionstests durchführt. TESSY bietet neben der überwachten Testdurchführung auch Testauswertung und -dokumentation an. Neben dem eigentlichen CTE gibt es noch Erweiterungen wie CTE/ES (Embedded System) und CTE/XL (extendedlogics). Im Gegensatz zur manuellen Testfall-Definition des älteren CTE können mit letzterer Erweiterung weitgehend automatisch Testfälle generiert werden. Dies wird durch zwei Neuerungen möglich. Zum einen können jetzt logische Abhängigkeiten zwischen den Klassen des Klassifikationsbaumes spezifiziert werden. Eine ständige Überwachung dieser Abhängigkeiten hilft, logisch unvereinbare Kombinationen zu verhindern, aber auch Testfälle automatisch zu vervollständigen, wenn sich anhand der schon ausgewählten Klassen und den Regeln die Verwendung weiterer Klassen ableiten lässt. 17

Zum anderen können je nach Wichtigkeit Kombinationsregeln spezifiziert werden, die beispielsweise dafür sorgen, dass manche Klassifikationen vollständig kombinieren und andere nicht. 3 Zusammenfassung Die Klassifikationsbaum-Methode ist das Mittel, um aus einer funktionalen Spezifikation eines System Testfälle abzuleiten. Sie stellt keine Anforderungen an die Form der Spezifikation. Die Basis für die Klassifikationsbaum-Methode stellt das Partition Testing dar. Aufgrund der Größe des Eingabedatenraums ist es sinnvoll, diesen in Äquivalenz- Klassen zu partitionieren und nur mit Repräsentanten zu testen. Dazu wird der gesamte Eingabedatenraum unter jeweils verschiedenen Gesichtspunkten in Klassen zerlegt, die wiederum unter gewissen Gesichtspunkten zerlegt werden könnten. Die Kombination von Werten der verschiedenen Gesichtspunkte ergeben die Testfälle. Im Vergleich zu anderen Methoden bietet diese eine intuitive graphische Darstellung als Baum. Die Blätter des Baumes bilden den Kopf der Kombinationstabelle. Das strukturierte Vorgehen zeigt sich im sukzessiven Aufbau und Verfeinern des Baumes, bis das gewünschte Testlevel erreicht ist. Dadurch ist diese Methode leicht erlernbar und vermittelbar. Die Klassifikationsbaum-Methode kann auch schon während des Entwicklungsprozesses eingesetzt werden, um zum Beispiel fehlerhafte oder unvollständige Spezifikationen aufzudecken. Desweiteren bietet sie Maße und Kriterien mithilfe derer der Aufwand und die Qualität für das Testen eines Systems ungefähr abgeschätzt werden kann. Auch wenn die Testfall-Generierung durchaus auch schon weitgehend automatisch durch rechnergestützte Werkzeuge wie CTE erfolgen kann, ist immer noch die Kreativität des Testers in Bezug auf das Finden und Bestimmen von Klassifikationen und Kombinationen gefragt. 18

4 Anhang Klassifikationsschema Testverfahren: Klassifikationsbaum-Methode 19

5 Literaturverzeichnis M. Grochtmann, K. Grimm: Classification Trees For Partition testing, Software testing, Verification & Reliability, Volume 3, Number 2, June 1993, Wiley, pp. 63 82 [Gri95] K. Grimm: Systematisches Testen von Software: Eine neue Methode und eine effektive Teststrategie. München, Wien, Oldenburg, 1995. GMD- Berichte Nr. 251 J. Wegener, A. Krämer, E. Lehmann: Automatische Testfallgenerierung mit dem CTE XL, DaimlerChrysler AG, Forschung und Technologie, http://www.systematic-testing.com/documents/tav01.pdf Wikipedia (http://de.wikipedia.org/wiki/klassifikationsbaummethode) 20