1. Trang chủ
  2. » Công Nghệ Thông Tin

Digitale Hardware/ Software-Systeme- P8 pps

20 139 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 280,89 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Unerw¨unschte Ergebnisse las-sen auf einen Fehler in der Implementierung schließen, was weiter ¨uberpr¨uft werden muss.. 4.2 Explizite ¨Aquivalenzpr¨ufung 1334.2.2 Bereichstest Im Zusamm

Trang 1

stimuli

Implementierung

Implementierung

Version k

Version k+ 1

?

≡ 0

Referenz-Abb 4.11 Prinzip des Regressionstests [305]

Zun¨achst werden in einem Simulationslauf sowohl die verwendeten

Testfallein-gaben als auch die erzeugten AusTestfallein-gaben einer Version k der Implementierung auf-gezeichnet und gespeichert Diese Daten werden als Referenztestf¨alle, aufgeteilt in Referenzstimuli und Referenzergebnisse, bezeichnet Liegt eine Version k+1 der Im-plementierung vor, wird diese mit den Referenzstimuli stimuliert und die erzeugten Ergebnisse mit den Referenzergebnissen verglichen

Treten Diskrepanzen zwischen erzeugten Ergebnissen der Version k+ 1 und den Referenzergebnissen auf, muss bewertet werden, ob es sich hierbei um eine gew¨unschte oder unerw¨unschte Abweichung handelt Unerw¨unschte Ergebnisse las-sen auf einen Fehler in der Implementierung schließen, was weiter ¨uberpr¨uft werden muss Dies ist notwendig, da es ebenfalls denkbar ist, dass das Referenzergebnis fehlerhaft war Handelt es sich jedoch um eine gew¨unschte Abweichung von dem Referenzergebnis, etwa durch detailliertere Ausgaben, so wird das Referenzergebnis durch das neu erzeugte Ergebnis ersetzt

W¨ahrend Ende-zu-Ende-Tests auf einen konkreten Anwendungsfall

eingeschr¨an-kt sind, stellen Regressionstests heutzutage einen Mindeststandard in der Systement-wicklung dar Dies liegt im Wesentlichen an dem hohen Automatisierungsgrad, der bei Regressionstest erreicht werden kann Auf der anderen Seite bieten Ende-zu-Ende-Tests die M¨oglichkeit, die Qualit¨at der Spezifikation zu erh¨ohen, da durch die mehrfache Implementierung Mehrdeutigkeiten und Unvollst¨andigkeit in der Spezifi-kation mit einer h¨oheren Wahrscheinlichkeit aufgedeckt werden Allerdings kommt diese Qualit¨atssteigerung zu dem Preis der mehrfachen Entwicklung

Trang 2

4.2 Explizite ¨Aquivalenzpr¨ufung 133

4.2.2 Bereichstest

Im Zusammenhang mit diversifizierenden Verifikationsmethoden stellt sich die

Fra-ge, wie mit der gr¨oßten Wahrscheinlichkeit aber minimierten Simulationsaufwand Fehler aufgedeckt werden k¨onnen Das Ziel ist es, die meist große Anzahl an Testf¨allen zu reduzieren und nur wichtige Szenarien zu simulieren Hierzu muss man entscheiden, welche Testf¨alle wichtig und welche eher unwichtig sind Da hierbei typischerweise eine große Menge an Testf¨allen ausgeschlossen wird, muss man bei der Auswahl der Testf¨alle sehr sorgf¨altig vorgehen Die wesentlichen Kriterien zur Auswahl sind dabei, dass:

• potentielle Fehler zuverl¨assig erkannt und

• die Testf¨alle m¨oglichst frei von Redundanz sind.

W¨ahrend ersteres darauf abzielt, effektive Testf¨alle auszuw¨ahlen, zielt letzteres dar-auf ab, die Effizienz der Simulation der Testf¨alle zu erh¨ohen

Ein weit akzeptiertes Vorgehen bei der Auswahl von Testf¨allen ist die sog ¨ Aqui-valenzklassenbildung Hierbei werden Testf¨alle in sog ¨ Aquivalenzklassen eingeteilt.

Teilmenge aller m¨oglichen Testf¨alle, bei denen das erwartete Verhalten durch Stimu-lation mit Testfalleingaben aus dieser ¨ Aquivalenzklasse ¨ahnlich ist.

Man sieht bereits an dieser Definition, dass es sich bei dem Begriff der ¨ Aqui-valenzklasse um ein Konzept handelt, da es viele m¨ogliche Interpretationen f¨ur die

¨

Ahnlichkeit von Verhalten des Systems gibt Dies ist maßgeblich von der gew¨ahlten Abstraktionsebene abh¨angig Prinzipiell werden zwei Arten von ¨

Aquivalenzklassen-bildung unterschieden, die funktionsorientierte ¨ Aquivalenzklassenbildung und die strukturorientierte ¨ Aquivalenzklassenbildung Bei der funktionsorientierten ¨ Aquiva-lenzklassenbildung werden die ¨Aquivalenzklassen anhand der Spezifikation erstellt

Im Gegensatz dazu basiert die strukturorientierte ¨Aquivalenzklassenbildung auf der Implementierung Weiterhin beachte man bei Definition 4.2.1, dass lediglich von einem erwarteten Verhalten gesprochen wird Resultiert aus den Simulationen mit zwei Elementen aus der selben ¨Aquivalenzklasse unterschiedliches Verhalten, muss entweder die ¨Aquivalenzklassenbildung oder die Implementierung des Systems feh-lerhaft sein

Beispiel 4.2.1 Als einfaches Beispiel wird zun¨achst ein System mit einem einzelnen

nummerischen Eingang betrachtet Die Spezifikation gibt vor, dass das System aus-schließlich positive Werte als Eingabe gestattet Somit k¨onnen zwei ¨ Aquivalenzklas-sen von Testf¨allen gebildet werden: Solche mit Stimuli durch positive Zahlen und solche mit Stimuli durch nichtpositive Zahlen Die Eingabe von positiven Zahlen stellen den Normalfall f¨ur das System dar, weshalb die zugeh¨orige ¨Aquivalenzklasse

als g¨ultig bezeichnet wird Testf¨alle mit Eingaben von nichtpositiven Zahlen bilden entsprechend die ung¨ultige ¨ Aquivalenzklasse Dies weißt darauf hin, dass

Testfal-leingaben aus dieser ¨Aquivalenzklasse ung¨ultig sind und somit vermutlich zu einem Fehlverhalten f¨uhren

Trang 3

Zur Auswahl der Testf¨alle k¨onnen auf Basis der ¨Aquivalenzklassen die folgenden Richtlinien gegeben werden: Falls die g¨ultige ¨Aquivalenzklasse einen Bereich von Werten repr¨asentiert, so k¨onnen jeweils zwei ung¨ultige ¨Aquivalenzklassen gebildet werden Ist z B die g¨ultige ¨Aquivalenzklasse durch den Bereich 1≤ x ≤ 10 gegeben,

so lauten die zugeh¨origen ung¨ultigen ¨Aquivalenzklassen x < 1 und x > 10 Ist die

g¨ultige ¨Aquivalenzklasse allerdings eine Menge an Werten, so wird in der Regel lediglich eine ung¨ultige ¨Aquivalenzklasse gebildet Sei z B x ∈ {rot,blau} eine

g¨ultige ¨Aquivalenzklasse, so kann eine ung¨ultige ¨Aquivalenzklasse wie folgt gebildet

werden: x ∈ {allerFarben}\{rot,blau} Ist eine g¨ultige ¨Aquivalenzklasse durch eine Bedingung gegeben, z B x > 10, so kann eine ung¨ultige ¨Aquivalenzklasse wie folgt aussehen: x ≤ 10.

H¨aufig werden ¨Aquivalenzklassen aber nicht anhand der Eing¨ange, sondern f¨ur Ausgangsbedingungen eines Systems gebildet Hierzu werden zun¨achst die Aus-gangsbedingungen aufgestellt Anhand dieser werden, in einem folgenden Schritt, die ¨Aquivalenzklassen f¨ur die Testfalleingaben ermittelt, welche die gew¨unschten Ausgangsbedingungen produzieren Die Regeln zur Erzeugung der g¨ultigen und ung¨ultigen ¨Aquivalenzklassen k¨onnen in diesem Fall direkt ¨ubertragen werden

Unter der Annahme, dass das System die Funktion y = f (x) implementiert und

die Ausgangsbedingung 1≤ y ≤ 10 lautet, k¨onnen eine g¨ultige ¨Aquivalenzklasse

x ∈ {x | 1 ≤ f (x) ≤ 10} und zwei ung¨ultige ¨Aquivalenzklassen x ∈ {x | f (x) < 1} und x ∈ {x | f (x) > 10} gebildet werden.

4.2.3 Pfadbereichstest

Durch Bildung von ¨Aquivalenzklassen ist das Problem der Auswahl sinnvoller Testf¨alle allerdings noch nicht gel¨ost Hierzu wurden eine Reihe von Verfahren

ent-wickelt, die sich unter dem Begriff Bereichstest (engl domain testing) zusammen-fassen lassen Das strukturorientierte Verfahren mit dem Namen Pfadbereichstest

[462] geht davon aus, dass Fehler in einem System in zwei Klassen eingeteilt wer-den k¨onnen:

1 Bereichsfehler f¨uhren zur Ausf¨uhrung eines falschen Kontrollpfads.

2 Berechnungsfehler entstehen, wenn zwar der richtige Kontrollpfad ausgef¨uhrt

wird, das berechnete Ergebnis allerdings falsch ist

Der Pfadbereichstest zielt auf die Erkennung von Bereichsfehlern Allerdings ist hierdurch nicht ausgeschlossen, dass ebenfalls Berechnungsfehler erkannt werden k¨onnen Das prinzipielle Vorgehen zur Erstellung eines Pfadbereichstests ist das wie-derholte bilden von ¨Aquivalenzklassen anhand des Kontrollflusses eines Systems Dies wird anhand eines Beispiels aus [305] verdeutlicht

Beispiel 4.2.2 Gegeben ist die folgende C-Funktion zur Bestimmung der

betragsm¨a-ßig gr¨oßeren Zahl zweier reeller Zahlen

Trang 4

4.2 Explizite ¨Aquivalenzpr¨ufung 135

1 void minMaxBetrag(double &min, double &max) {

2 if (min < 0) {

5 if (max < 0) {

8 if (min > max) {

13 }

Hierzu wird zun¨achst der Betrag der Variable min, anschließend der Betrag der Varia-blen max bestimmt In einem anschließenden Schritt wird der gr¨oßere Betrag beider Zahlen bestimmt Der gr¨oßere Betrag ist am Ende in der Variablen max, der kleinere Betrag in der Variablen min gespeichert

Zur Auswahl der Testf¨alle beim Pfadbereichstest st¨utzt man sich auf die nahme, dass Fehler am h¨aufigsten an Bereichsgrenzen auftreten Um auf dieser An-nahme Testf¨alle zu generieren, werden zun¨achst Eingabebedingungen f¨ur die unter-schiedlichen Programmpfade der C-Funktion aufgestellt Die Eingabebedingungen definieren Teilbereiche der Eingabewerte, durch welche die Ausf¨uhrung eines be-stimmten Programmpfads stimuliert wird Ist einer dieser Teilbereiche leer, so kann der zugeh¨orige Pfad nicht ausgef¨uhrt werden

Sind die Eingabebedingungen bekannt, kann jedem Pfad p i ein Teilbereich d (p i)

der Eingabewerte, der sog Pfadbereich, und die berechnete Funktion c (p i), die sog

Pfadberechnung, zugeordnet werden Mit diesem Wissen kann das Verhalten eines

Systems durch eine potentiell unendlich große Anzahl an Paaren(d(p i ),c(p i)) re-pr¨asentiert werden

Beispiel 4.2.3 F¨ur das Programm aus Beispiel 4.2.2 ist der zugeh¨orige

Kontroll-Datenflussgraph in Abb 4.12 dargestellt Insgesamt sind acht unterschiedliche Pfade

im Kontrollflussgraphen m¨oglich Somit l¨asst sich das Programm aus Beispiel 4.2.2 durch folgende Paare aus Eingangsbedingungen und Berechnungen f¨ur die acht

Pfa-de darstellen, wobei die Pfadbereiche durch Pr¨adikate beschrieben werPfa-den:

p1= (v1,v2,v3,v4,v5,v6,v7):

d (p1) : (min in < 0) ∧ (max in < 0) ∧ (−max in < −min in)

c (p1) : min out:= −max in ; max out:= −min in

p2= (v1,v3,v4,v5,v6,v7):

d (p2) : (min in ≥ 0) ∧ (max in < 0) ∧ (−max in < min in)

c (p2) : min out:= −max in ; max out:= min in

Trang 5

NOP

NOP

NOP

NOP

NOP

NOP

v1

v2

v3

v4

v5

v6

v7

min ≥ 0

min < 0

max ≥ 0

max < 0

max < min max ≥ min

min *= -1

max *= -1

tmp = min

min = max

max = tmp

Abb 4.12 Kontroll–Datenflussgraph f¨ur die Funktion minMaxBetrag aus Beispiel 4.2.2

p3= (v1,v2,v3,v5,v6,v7):

d (p3) : (min in < 0) ∧ (max in ≥ 0) ∧ (max in < −min in)

c (p3) : min out:= max in ; max out:= −min in

p4= (v1,v3,v5,v6,v7):

d (p4) : (min in ≥ 0) ∧ (max in ≥ 0) ∧ (max in < min in)

c (p4) : min out:= max in ; max out:= min in

p5= (v1,v2,v3,v4,v5,v7):

d (p5) : (min in < 0) ∧ (max in < 0) ∧ (−min in ≤ −max in)

c (p5) : min out:= −min in ; max out:= −max in

p6= (v1,v3,v4,v5,v7):

d (p6) : (min in ≥ 0) ∧ (max in < 0) ∧ (min in ≤ −max in)

c (p6) : min out:= min in ; max out:= −max in

Trang 6

4.2 Explizite ¨Aquivalenzpr¨ufung 137

p7= (v1,v2,v3,v5,v7):

d (p7) : (min in < 0) ∧ (max in ≥ 0) ∧ (−min in ≤ max in)

c (p7) : min out:= −min in ; max out:= max in

p8= (v1,v3,v5,v7):

d (p8) : (min in ≥ 0) ∧ (max in ≥ 0) ∧ (min in ≤ max in)

c (p8) : min out:= min in ; max out:= max in

Dabei bezeichnet min in und max injeweils die Eingangsbelegung der Variablen min

und max Entsprechend bezeichnet min out und max out die jeweilige Belegung der Variablen min und max beim Verlassen der Funktion minMaxBetrag

Zur Auswahl der Testf¨alle werden in [462] sog On- und Off-Testf¨alle definiert.

Eingaben von On-Testf¨alle besitzen die Eigenschaft, dass sie Werte, die direkt auf einer Bereichsgrenze liegen, stimulieren Eingaben von Off-Testf¨alle hingegen sti-mulieren Werte, die einεvon dieser Bereichsgrenze entfernt liegen Hierbei m¨ussen zwei F¨alle unterschiedenen werden:

1 Ist die betrachtete Bereichsgrenze eine geschlossene Grenze, so liegt der On-Testfall innerhalb dieses Bereiches Der Off-On-Testfall wird einεentfernt von der Bereichsgrenze gelegt, also außerhalb des Bereichs Der Off-Testfall geh¨ort so-mit zu einem Nachbarbereich

2 Ist die betrachtete Bereichsgrenze hingegen eine offene Grenze, so liegt der On-Testfall bereits in einem Nachbarbereich Der Off-On-Testfall wird dann einε ent-fernt von der Bereichsgrenze, in den betrachteten Bereich gelegt

Beispiel 4.2.4 Als Fortsetzung f¨ur die Beispiele 4.2.2 und 4.2.3 werden Testfallein-gaben f¨ur die Pfadbereiche d (p i ) f¨ur alle acht Kontrollflusspfade p ides Programms minMaxBetrag erstellt Hierzu bietet es sich an, die Pfadbereiche graphisch

dar-zustellen (siehe Abb 4.13) Pfadbereichsgrenzen sind durch die min in - und max in -Achse sowie die beiden Winkelhalbierenden gegeben Ob eine Bereichsgrenze offen oder geschlossen ist, ist jeweils durch einen kleinen Pfeil gekennzeichnet Hierbei zeigt der Pfeil an der Grenze immer in den f¨ur die Grenze geschlossenen Bereich

Als Beispiel seien die Bereichsgrenzen des Bereichs d (p6) : (min in ≥ 0) ∧ (max in < 0)∧(min in ≤ −max in ) betrachtet Sowohl die angrenzende max in-Achse als auch die angrenzende Winkelhalbierende geh¨oren zu diesem Bereich Um die Pfad-bereichsgrenze, die durch die Winkelhalbierende gegeben ist, zu ¨uberpr¨ufen, w¨ahlt man nun drei Testfalleingaben, so dass diese eine On-Off-On-Folge ergeben, d h man w¨ahlt zun¨achst einen Testfall direkt auf der Winkelhalbierenden, dann einen

um einenε entfernten im Bereich d (p2) liegenden, und anschließend wieder einen Testfall direkt auf der Winkelhalbierenden Dies ist in Abb 4.13 f¨ur die Testf¨alle mit Eingabe(x1,x2,x3) gegeben

F¨uhrt man nun eine Simulation f¨ur einen Pfadbereich d (p i) entsprechend mit den On-Off-On-Testf¨allen durch, kann es zu einem nicht erwarteten Ergebnis kommen

Trang 7

1

1

d (p1) d (p3)

d (p5)

d (p6)

d (p7)

d (p8)

geschlossene Grenze f¨ur d (p7) offene Grenze f¨ur d (p3)

x1

x3

ε

x2

max in

min in

Abb 4.13 Pfadbereiche des Programms minMaxBetrag aus Beispiel 4.2.2 [305]

Ob dieses unerwartete Ergebnis auf einen Fehler schließen l¨asst, muss zun¨achst ge-pr¨uft werden Handelt es sich um ein Fehlverhalten, so k¨onnen drei Arten von Fehler unterschieden werden:

1 Wird ein Bereichsfehler entdeckt, so muss der Pfadbereich d (p i) angepasst

werden Es wird eine sog Pfadbereichsanpassung vorgenommen Dies ist in

Abb 4.14a) f¨ur den Fall, dass ein On-Testfall fehlschl¨agt, in Abb 4.14b) f¨ur den Fall, dass der Off-Testfall fehlschl¨agt, dargestellt M¨ogliche neue Bereichsgren-zen sind als gepunktete Linien gezeichnet

2 Wird hingegen ein Berechnungsfehler erkannt, d h das tats¨achliche Ergebnis

passt nicht zu dem erwarteten Ergebnis, so muss die Berechnung c (p i) dieses

Pfades korrigiert werden Es wird eine sog Pfadberechnungsanpassung

vorge-nommen

3 Wird das Fehlen eines Pfades p jerkannt, so muss ein neues Paar(d(p j ),c(p j))

gebildet werden, wobei d (p j ) ein Teilbereich des vorherigen Pfadbereichs d(p i)

ist Es wird eine sog Pfaderg¨anzung vorgenommen.

Man beachte, dass Anpassungen im Allgemeinen nicht einer einzelnen Klasse dieser Fehler zugeordnet werden k¨onnen So kann eine ¨Anderung in einer

Trang 8

Variablenbele-4.2 Explizite ¨Aquivalenzpr¨ufung 139

0 1

d (p2 )

d (p6 )

x1

x3

ε

x2

b)

fehlerhaft

minin

0 1

d (p2 )

d (p6 )

x1

x3

ε

x2 fehlerhaft

a)

minin

Abb 4.14 Anpassung der Pfadbereichsgrenze [305]

gung sowohl den Pfadbereich als auch die Pfadberechnung ¨andern Insbesondere ist jede Pfaderg¨anzung auch eine Pfadbereichsanpassung

Falls jedoch alle drei Testfalleingaben das erwartete Ergebnis liefern, gibt es zwei M¨oglichkeiten:

1 Entweder ist die Bereichsgrenze korrekt oder

2 sie weicht im Dreieck der drei Testf¨alle maximal um das gew¨ahlte ε ab Ein solches Beispiel ist in Abb 4.13 als gepunktete Linie dargestellt

In den meisten F¨allen wird es nicht m¨oglich sein, alle Pfade eines Programms mit Testf¨allen zu simulieren, da dies zu aufwendig w¨are Allerdings l¨asst sich der Grad der erzielten Verifikationsvollst¨andigkeit beim Pfadbereichstest direkt mit der Pfad¨uberdeckung messen und somit eine Aussage ¨uber den Grad der Vollst¨andigkeit der Verifikation treffen

4.2.4 Fehleroffenbarende Unterbereiche

Eine Erweiterung des Pfadbereichstests ist in [461] vorgestellt Neben der Konstruk-tion der Pfadbereiche anhand der Implementierung, wird zus¨atzlich die SpezifikaKonstruk-tion

zu Rate gezogen Hierdurch soll es z B erm¨oglicht werden, fehlende Pfade in der

Implementierung zu erkennen Hierzu werden sog fehleroffenbarende Unterberei-che konstruiert Dabei werden zun¨achst die PfadbereiUnterberei-che nach dem oben

beschrie-benen Verfahren bestimmt In einem zweiten Schritt werden ¨Aquivalenzklassen aus der Spezifikation abgeleitet Pfadbereiche und ¨Aquivalenzklassen werden

paarwei-se geschnitten Als Ergebnis erh¨alt man die fehleroffenbarenden Unterbereiche, die dadurch gekennzeichnet sind, dass sie nur Testfalleingaben enthalten, die laut Spe-zifikation zu einem gleichen Verhalten f¨uhren und die auch vom System gleichartig verarbeitet werden Dies wird an folgendem Beispiel aus [305] gezeigt:

Trang 9

Beispiel 4.2.5 F¨ur das Programm minMaxBetrag aus Beispiel 4.2.2 wurde in

Bei-spiel 4.2.3 gezeigt, dass die Implementierung acht verschiedene Kontrollpfade ent-h¨alt Aus der Spezifikation k¨onnen drei ¨Aquivalenzklasse d (s1),d(s2) und d(s3) ab-geleitet werden:

s1:

d (s1) : |min in | < |max in |

c (s1) : min out:= |min in |;max out:= |max in |

s2:

d (s2) : |min in | > |max in |

c (s2) : min out:= |max in |;max out:= |min in |

s3:

d (s3) : |min in | = |max in |

c (s3) : min out = max out:= |min in |

W¨ahrend die ¨Aquivalenzklasse d (s2) die Pfadbereiche d(p1), ,d(p4) umfasst, kann eine eindeutige Zuordnung f¨ur die ¨Aquivalenzklassen d (s1) und d(s3) nicht

gemacht werden So gilt z B., dass d (p5) zum Teil in d(s1) und zum Teil in d(s3)

enthalten ist, aber weder d (s1) noch d(s3) vollst¨andig in d(p5) enthalten ist Durch die paarweise Schnittmengenbildung k¨onnen die fehleroffenbarenden Unterbereiche identifiziert werden:

d1= d(s1) ∩ d(p5) = (min in < 0) ∧ (max in < 0) ∧ (−min in < −max in)

d2= d(s1) ∩ d(p6) = (min in ≥ 0) ∧ (max in < 0) ∧ (min in < −max in)

d3= d(s1) ∩ d(p7) = (min in < 0) ∧ (max in ≥ 0) ∧ (−min in < max in)

d4= d(s1) ∩ d(p8) = (min in ≥ 0) ∧ (max in ≥ 0) ∧ (min in < max in)

d5= d(s2) ∩ d(p1) = (min in < 0) ∧ (max in < 0) ∧ (−max in < −min in)

d6= d(s2) ∩ d(p2) = (min in ≥ 0) ∧ (max in < 0) ∧ (−max in < min in)

d7= d(s2) ∩ d(p3) = (min in < 0) ∧ (max in ≥ 0) ∧ (max in < −min in)

d8= d(s2) ∩ d(p4) = (min in ≥ 0) ∧ (max in ≥ 0) ∧ (max in < min in)

d9= d(s3) ∩ d(p5) = (min in < 0) ∧ (max in < 0) ∧ (−min in = −max in)

d10= d(s3) ∩ d(p6) = (min in ≥ 0) ∧ (max in < 0) ∧ (min in = −max in)

d11= d(s3) ∩ d(p7) = (min in < 0) ∧ (max in ≥ 0) ∧ (−min in = max in)

d12= d(s3) ∩ d(p8) = (min in ≥ 0) ∧ (max in ≥ 0) ∧ (min in = max in)

Die hier vorgestellten simulativen Verfahren zur expliziten ¨Aquivalenzpr¨ufung lassen sich auf speicherbehaftete Systeme erweitern, indem Sequenzen von Ein- und Ausgaben anstelle einzelner Ein- und Ausgabesymbole betrachtet werden, um den Einfluss des im Speicher abgebildeten Zustands erfassen zu k¨onnen Weiterf¨uhrende Verfahren zur Generierung von funktions- und strukturorientierten Testf¨allen sind

in Abschnitt 7.2 beschrieben Formale Methoden zur expliziten ¨Aquivalenzpr¨ufung kombinatorischer Hardware sind in Abschnitt 6.1.2 zu finden

Trang 10

4.3 Sequentielle ¨Aquivalenzpr¨ufung 141

4.3 Sequentielle ¨ Aquivalenzpr ¨ufung

Digitale Hardware/Software-Systeme arbeiten typischerweise ¨uber sehr lange Zeit-r¨aume ohne Neustart Dabei verarbeiten sie nicht nur ein einzelnes Eingabesymbol

zu einem Ausgabesymbol, sondern Sequenzen von Eingabesymbolen zu Sequenzen von Ausgabesymbolen Dabei h¨angt die aktuelle Ausgabe eines Systems im Allge-meinen nicht nur von der momentanen, sondern auch von vorherigen Eingaben ab Dies ist in Abb 4.15 dargestellt, wobei die Ausgabe des speicherbehafteten Systems (Abb 4.15b)) stets von dem aktuellen und den zwei vorherigen Eingangssymbolen abh¨angt

System speicherbehaftetes

speicherloses System

b)

a)

Abb 4.15 Verarbeitung in Systemen a) ohne und b) mit Speicher [272]

Die Information zur Berechnung der aktuellen Ausgabe ist dabei in den Speicher-elementen des Systems gespeichert Viele wichtige speicherbehaftete Systeme lassen

sich als deterministische endliche Automaten (engl Deterministic Finite Automaton, DFA) (siehe Definition 2.2.13 auf Seite 47) modellieren Aus diesem Grund wird

die sequentielle ¨Aquivalenzpr¨ufung anhand von Automaten- ¨Aquivalenz eingef¨uhrt Verfahren zur sequentiellen ¨Aquivalenzpr¨ufung f¨ur Hardware sind in Abschnitt 6.1.3 beschrieben Verfahren zur Prozessor- und Software- ¨Aquivalenzpr¨ufung sind in den Abschnitten 6.3 und 7.1 diskutiert

Endliche Automaten k¨onnen explizit als Zustandsdiagramme repr¨asentiert

wer-den Zust¨ande s ∈ S werden als Knoten gezeichnet Zustands¨uberg¨ange werden

ent-sprechend der ¨Ubergangsfunktion f als Kanten (s,s  ) modelliert, wobei s der aktuelle Zustand und s := f (s,i) der Folgezustand ist Diese werden mit dem Eingabesymbol

i ∈ I, das den ¨Ubergang ausl¨ost, und dem erzeugten Ausgabesymbol o ∈ O beschrif-tet, wobei o : = g(s,i) sich aus der Ausgabefunktion g ergibt.

Endliche Automaten arbeiten auf Sequenzen von Eingabesymbolen Sei I+die

Menge aller endlichen Sequenzen, die sich aus den Symbolen i ∈ I bilden lassen Entsprechend sei O+die Menge aller endlichen Sequenzen, die sich aus den

Ausga-besymbolen o ∈ O bilden lassen Eingabesequenzen w ∈ I+der L¨ange n werden im

Ngày đăng: 03/07/2014, 08:20