• Keine Ergebnisse gefunden

Testendekriterien für objektorientierte Systeme

Im Dokument Das Praxishandbuch für den Test (Seite 118-121)

4 Objektorientierter Testentwurf

4.5 Testendekriterien für objektorientierte Systeme

Die Testendekriterien dienen dazu, ein Ziel für die Tester zu setzen. Sie unterschei-den sich je nach Testobjekt. Ist der Testgegenstand eine Klasse, beziehen sich die Endekriterien auf die Eigenschaften der Klasse, z.B. Methoden, Zweige, Parameter, Objektinstanzen und Objektzustände. Das Ziel wird sein, diese Eigenschaften bis zu einem gewissen Grade zu bestätigen, z.B. durch die Ausführung der Methoden, die Überdeckung der Zweige, die Zuweisung gewisser Parameter, die Erzeugung be-stimmter Objektinstanzen und die Herbeiführung bebe-stimmter Objektzustände. Ent-weder wird genau angegeben, welche Eigenschaften zu testen sind, oder es wird ein Prozentsatz gesetzt, den der Tester zu erreichen hat, wie z.B. 90% aller Methoden oder 80% aller Zweige. Wurde für die Klasse ein Zustandsdiagramm angegeben, so können Endekriterien wie z.B. 100% aller Zustände oder 90% aller Transitionen festgesetzt werden. Auf Anweisungsebene kann für besonders kritische Operationen gefordert werden, 90% aller aufgrund der Generalisierungshierarchie möglichen dynamischen Bindungen für die enthaltenen Operationsaufrufe zu erzielen.

Ist der Testgegenstand eine Komponente, sind die Endekriterien Maße für die Ü-berdeckung der Komponentenfunktionen, z.B. die Ausführung aller Datenbank-zugriffe, die Auslösung aller Ausnahmebedingungen, die Bedienung aller externen Schnittstellen und die Erzeugung aller stellvertretenden Nachrichten. Wenn nicht alle erreichbar sind, muss ein Mindestmaß spezifiziert werden, z.B. 75% aller Da-tenbankzugriffe und/oder 90% aller Funktionen und/oder 80% aller Nachrichtenar-ten. Solche Testmetriken setzen wiederum voraus, dass Messwerkzeuge vorhanden sind, um sie zu ermitteln [FrWe93].

Die folgende Tabelle 4-1 listet die im Test prozeduraler Anwendungen häufig anzu-treffenden Überdeckungsmaße auf. Alle Maße basieren auf der Struktur des

Pro-4.5 Testendekriterien für objektorientierte Systeme ___________________________105

grammcodes und legen eine implementierungsbasierte Testfallermittlung nahe. Für die Ermittlung der Werte dieser Überdeckungsmaße ist Werkzeugunterstützung zwingend notwendig.

Überdeckungsmaß Kurzbeschreibung C0-Überdeckung bzw.

Anweisungsüberdeckung = Anzahl der durchlaufenen Anweisungen Anzahl aller Anweisungen des Testlings C1-Überdeckung bzw.

Zweigüberdeckung = Anzahl der durchlaufenen Zweige Anzahl aller Zweige des Testlings

Verschiedene Zweige entstehen durch bedingte Anweisungen wie binäre Fallunterscheidungen, CASE-Anweisungen oder Schleifenkonstrukte.

C2-Überdeckung bzw.

Bedingungsüberdeckung = Anzahl der zu true und false ausgewerteten Bedingungen Anzahl aller Bedingungen des Testlings

Es werden die elementaren Glieder in den Bedingungsausdrü-cken der bedingten Anweisungen gezählt.

C3-Überdeckung bzw.

Überdeckung der Bedin-gungskombinationen

Wie Bedingungsüberdeckung, aber es werden die verschiede-nen Kombinatioverschiede-nen der elementaren Glieder in den Bedin-gungsausdrücken der bedingten Anweisungen gezählt.

C4-Überdeckung bzw.

Pfadüberdeckung = Anzahl der durchlaufenen Pfade Anzahl aller Pfade des Testlings

Die Anzahl der Pfade eines Programms wächst exponentiell mit der Anzahl der bedingten Anweisungen. Schleifen mit einer beliebigen Anzahl von Schleifendurchläufen (z. B. while-Schleifen) führen zu unendlich vielen Pfaden.

Tabelle 4-1: Überdeckungsmaße für prozedurale Software

Wegen der andersartigen Struktur des Programmcodes in objektorientierten Spra-chen spielen die Überdeckungsmaße C0 bis C4 keine herausragende Rolle bei der Definition von Testzielen für objektorientierte Anwendungsentwicklungen. Trotz-dem sollten die Programme entsprechend instrumentiert und diese Überdeckungs-maße – sozusagen als „Kontrollgrößen“ für die Güte der spezifikationsbasierten Tests – gemessen werden.

In der folgenden Tabelle 4-2 sind einige mögliche Überdeckungsmaße für objekt-orientierte Programme zusammengestellt. Diese basieren nicht alle nur auf dem ablauffähigen Programmcode, sondern teilweise auch auf den Spezifikationen des Anwendungssystems oder einzelner Klassen (vgl. Abschnitt 5.7).

Überdeckungsmaße für die Spezifikation sind sehr gut geeignet zur Definition von Testzielen in Verbindung mit spezifikationsbasierten Tests. Werkzeuge sind aller-dings oft nicht in der Lage, die automatische Ermittlung solcher Kenngrößen zu unterstützen. Andererseits ist die manuelle Ermittlung spezifikationsbezogener Testziele vergleichsweise unproblematisch, da sie gemeinsam mit der Testfaller-mittlung, die selbst auch nur zu einem geringen Teil automatisierbar ist, erledigt werden kann: Die Definition von spezifikationsbezogenen Black-box-Testfällen

sollte genau auf die Erfüllung der spezifikationsbezogenen Testziele hin ausgerich-tet sein.

Überdeckungsmaß Kurzbeschreibung Überdeckung der

angebote-nen Operatioangebote-nen einer Klasse = Anzahl der aufgerufenen Operationen der Klasse Anzahl aller angebotenen Operationen einer Klasse Überdeckung der durch eine

Klasse aufgerufenen Operati-onen

= Anzahl der aufgerufenen Operationen anderer Klassen Anzahl aller aufrufbaren Operationen anderer Klassen Die Aufrufe der klassenfremden Operationen werden gezählt.

Beim Auftreten von dynamisch gebundenen Operationsaufru-fen können als „Zählmethoden“ angewandt werden:

Reiner Aufruf der klassenfremden Operationen.

Aufrufe der klassenfremden Operationen für jede mögliche Klassenbindung im Anwendungskontext Überdeckung von

Operati-onsparametern und exportier-ten Attribuexportier-ten einer Klasse

= Anzahl der überprüften Parameter und Attribute Anzahl aller Operationsparameter und Attribute der Klasse Die Überdeckung von Operationsparametern und exportierten Attributen mit Hilfe von Äquivalenzklassenbildungen oder Grenzwerttests wird gezählt.

Überdeckung der ausgelös-ten (behandelausgelös-ten) Ausnah-men

= Anzahl der ausgelösten (behandelten) Ausnahmen Anzahl aller auslösbaren (behandelbaren) Ausnahmen

Überdeckung der

Attributän-derungen = Anzahl modifizierter Attribute Anzahl aller Attribute der Klasse Zustandsüberdeckung = Anzahl der erreichten Zustände

Anzahl aller Zustände im Zustandsdiagramm Nur für Spezifikationen mit Zustandsdiagramm.

Zustandssensitive Überde-ckung der Operationen einer Klasse

= Anzahl der aufgerufenen Operationen der Klasse Anzahl aller Operationen * Zustände der Klasse Die Aufrufe der von einer Klasse angebotenen Operationen werden für jeden Zustand des Zustandsdiagramms der Klas-se gezählt. Dabei werden die nicht erlaubten Kombinationen von Operationsaufruf und Zustand mitgezählt (für diese sollte das Testergebnis eine angemessene Fehlerreaktion/ Aus-nahmebehandlung nachweisen).

Nur für Klassenspezifikationen mit Zustandsdiagramm.

Transitionsüberdeckung

= Anzahl der geschalteten Transitionen Anzahl aller Transitionen im Zustandsdiagramm Nur für Klassenspezifikationen mit Zustandsdiagramm.

Anwendungsfall-Überdeckung = Anzahl der geprüften Anwendungsfälle Anzahl aller Anwendungsfälle

100% Anwendungsfall-Überdeckung sollte unbedingt als Testziel für den Systemtest definiert werden.

Szenario-Überdeckung = Anzahl der geprüften Szenarien Anzahl aller Szenarien

Für komplexere Anwendungsfälle sind oft sehr viele Szena-rien möglich, ähnlich der Pfadüberdeckung.

Im Dokument Das Praxishandbuch für den Test (Seite 118-121)