28.12.2013 Aufrufe

Zum modellbasierten funktionalen Test reaktiver Systeme

Zum modellbasierten funktionalen Test reaktiver Systeme

Zum modellbasierten funktionalen Test reaktiver Systeme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4. <strong>Test</strong>fallgenerierung<br />

D zugleich <strong>Test</strong>daten für E auf ie1 dar und die Ausgaben von E auf oe1 <strong>Test</strong>daten<br />

für D auf id2 . Nach Berechnung der entsprechenden Eingaben ergeben<br />

sich erweiterte <strong>Test</strong>suiten T<br />

D ′ ∪ T D und T<br />

E ′ ∪ T E.<br />

Umgekehrt können die Eingaben aus T D auf id2 als putative Ausgaben von<br />

E auf oe1 und die Eingaben aus T E auf ie1 als putative Ausgaben von D auf<br />

od2 aufgefaßt werden. Mit der symbolischen Ausführung können so die fehlenden<br />

Ein- und Ausgaben berechnet werden, um erweiterte <strong>Test</strong>suiten T<br />

D ′′ ∪ T D<br />

′<br />

und T<br />

E ′′ ∪T E ′ zu erhalten. Wenn beispielsweise Eingaben auf ie1 zur <strong>Test</strong>fallgenerierung<br />

für D verwendet werden soll, dann müssen entsprechende Eingabewerte<br />

für id1 und id2 sowie Ausgaben für od1 berechnet werden. Offenbar liefern die<br />

erweiterten <strong>Test</strong>suiten T<br />

D ′′ und T<br />

′′<br />

E<br />

auch neue <strong>Test</strong>fälle für die übergeordnete<br />

Komponente C.<br />

Das ist die Grundidee der kompositionalen <strong>Test</strong>fallerzeugung. Dieses einfache<br />

Verfahren funktioniert in der Allgemeinheit nicht immer. Wenn beispielsweise<br />

T ′′<br />

D auf der Grundlage von ie1 aus T E berechnet wird, dann muß gleichzeitig<br />

auf eine Übereinstimmung von oe1 und id2 geachtet werden. Unter Umständen<br />

ist das gar nicht möglich, weil die Verschaltung von C und D bestimmte Abläufe<br />

von C oder D allein gar nicht zuläßt.<br />

Umweltannahmen Ein einfaches Beispiel illustriert den Zusammenhang. Wenn<br />

D eine Timer-Komponente ist, die in periodischen Abständen auf od2 einen<br />

Timeout sendet, dann kann es bei der Generierung von <strong>Test</strong>fällen für E in Isolation<br />

durchaus passieren, daß diese <strong>Test</strong>fälle Timeouts in nicht periodischen<br />

Abständen verlangen. Das kann dann eintreten, wenn die Information über die<br />

Periodizität der Timeouts nicht explizit in E codiert ist. Das Verhalten einer<br />

isolierten Komponenten ist üblicherweise eine Erweiterung der entsprechenden<br />

Projektion eines integrierten Systems (die tatsächlich ausführbare Tracemenge<br />

wird erweitert). Komposition mit anderen Komponenten führt dann zu einer<br />

Konkretisierung. Dieses Phänomen wird bei der Verwendung von <strong>Test</strong>modellen<br />

(Abschnitt 2.3.1) zur Reduktion des Suchraums ausgenutzt.<br />

Der Sachverhalt ist Instanz eines übergeordneten Problems. Komponenten<br />

sind wie Prozeduren insofern unterspezifiziert, als sie normalerweise stets implizite<br />

Annahmen an die Eingabeparameter (und in reaktiven <strong>Systeme</strong>n an deren<br />

Reihenfolge) beinhalten. Es ist u.a. genau diese Beobachtung, die<br />

• zu Assumption-Commitment-artigen Spezifikationstechniken,<br />

• zur Einführung von Kontrakten (Meyer, 1992) (insb. des – beliebig schwachen<br />

– requires-Teils) in Sprachen wie Eiffel oder von Annotationen in<br />

Spark-Ada oder statischen Analysetools wie ESC und<br />

• zur Erweiterung von Schnittstellenspezifikationen mit Verhalten (Nierstrasz<br />

und Papathomas, 1990; Nierstrasz, 1995) – Typen als partielle Verhaltensspezifikation<br />

–, die insbesondere in dynamischen Dienstarchitekturen<br />

eine Rolle spielt,<br />

geführt hat (vgl. auch de Alfaro und Henzinger (2001) zur legalen Komposition<br />

bzgl. einer vs. aller möglichen Umgebungen). AutoFocus gestattet bei der<br />

128

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!