07.01.2015 Aufrufe

Foliensatz 5

Foliensatz 5

Foliensatz 5

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.

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 1/96<br />

Test und Verlässlichkeit (F5)<br />

Kapitel 5: Testpraxis<br />

Prof. G. Kemnitz<br />

Institut für Informatik, Technische Universität Clausthal<br />

13. Juli 2012


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 2/96<br />

Inhalt <strong>Foliensatz</strong> Testpraxis<br />

1 Softwaretest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

1.1 Fehlervermeidung und Kontrollen Spezifikation . . . . . . . . . . . 11<br />

1.2 Testauswahl mit Äquivalenzklassen . . . . . . . . . . . . . . . . . . . . . . . 17<br />

1.3 Ursache-Wirkungs-Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

1.4 Testauswahl mit Automatenmodell . . . . . . . . . . . . . . . . . . . . . . . 30<br />

1.5 Kontrollflussorientierte Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

1.6 Datenflussorientierte Testauswahl . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

1.7 Mutationstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

1.8 Regressionstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58<br />

1.9 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61


2 Baugruppentest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />

2.1 Funktionstest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

2.2 Strukturtest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70<br />

2.3 Boundary Scan / JTAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

2.4 Optische Inspektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />

3 Selbsttest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />

4 HW/SW-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 3/96


1. Software<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 4/96<br />

Software


1. Software<br />

Vergleich mit der Sichtweise in der Vorlesung:<br />

fehlerorientierte / zufällige Testauswahl<br />

Fehler entstehen in allen Phasen des Entwurfsprozesses<br />

Fehlermodellierung für alle Entstehungsphasen möglich<br />

Modellfehler und zu erwartende Fehler sollten<br />

sich Nachweisbedingungen teilen (gezielte Testauswahl)<br />

Nachweismengen vergleichbarer Größe haben (zufällige<br />

Testauswahl).<br />

rof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 5/96<br />

Testauswahl für Software<br />

Der Programmierer hat drei Informationsquellen für die Auswahl<br />

der Testdaten<br />

das Programm,<br />

seine Spezifikation und<br />

seine Kenntnis der häufigsten Programmfehler.<br />

[Howen 1976].


1. Software<br />

Entwurfs- und Testphasen<br />

Projektfortschritt<br />

Detaillierung<br />

Anforderungsanalyse<br />

Spezifikation<br />

Systementwurf<br />

Architekturentwurf<br />

⇒<br />

⇒<br />

⇒<br />

⇒<br />

Codierung<br />

Abnahme und<br />

Nutzung<br />

Systemintegration<br />

Integrationstest<br />

Modultest<br />

⇒<br />

Entwurfsfluss<br />

Ableiten von<br />

Testbeispielen<br />

Phasenmodelle fordern nach jeder Entwurfphase Kontrollen<br />

für das Zwischenergebnis (Reviews, Simulation, Tests)<br />

Aus den Zwischenergebnissen jeder Phase lassen sich Tests<br />

für das Endprodukt ableiten.<br />

Zur Wiederholung: Phasenmodelle ⇒ Fehlervermeidung<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 6/96


1. Software<br />

Zehnerregel: Die fehlerbezogenen Kosten vervielfachen sich mit<br />

jeder Entwurfsphase, die ein Fehler unerkannt bleibt.<br />

Beispielrechnungen postulieren gern eine Verzehnfachung.<br />

Die teuersten Fehler sind Anforderungsfehler, die zu spät<br />

erkannt werden.<br />

Die häufigsten Ursachen für das Scheitern von Entwurfsprojekten<br />

[CHAOS Report, Standish Group 1995]:<br />

Unvollständige Anforderungen 13.1%<br />

Kunden nicht ausreichend einbezogen 12.4 %<br />

Mittel nicht ausreichend 10.6 %<br />

Unrealistische Erwartungen 9.9 %<br />

Mangelnde Unterstützung durch Management 9.3 %<br />

Änderungen in den Anforderungen 8.7 %<br />

mangelnde Planung 8.1 %<br />

⇒ Fehlervermeidung und Tests ab Spezifikation notwendig.<br />

⇒ Aber auch den den Folgephasen entstehen Fehler ...<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 7/96


1. Software<br />

Test- (auswahl-) arten<br />

Aus der Spezifikation können meist nur Testfälle ohne<br />

konkrete Eingaben und Sollausgaben,<br />

aus der Beschreibung der Zielfunktion Testfälle mit<br />

konkreten Eingaben und Sollausgaben und<br />

aus der Beschreibung der Realisierung zusätzlich<br />

Nachweisbedingungen für Fehler abgeleitet werden.<br />

Spezifikationsbasierter Test: Testauswahl auf Basis der<br />

Spezifikation; Stichprobentest zur Kontrolle, dass alle<br />

Anforderungen korrekt berücksichtigt sind.<br />

Funktionstest: Testauswahlbasis Funktionsbeschreibung;<br />

Auswahl von Ein- und Ausgabe-Tupeln.<br />

Strukturtest: Testauswahlbasis fertige Beschreibung der<br />

Realisierung. Auswahl von Ein- und Ausgabe-Tupeln +<br />

fehlerorientierte Bewertung.<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 8/96


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 9/96<br />

1. Software<br />

Funktionstest:<br />

Black-Box Test: keine Kenntnis der Realisierung.<br />

Grey-Box-Test: ungefähre Kenntniss der Realisierung.<br />

bereits nach dem Architekturentwurf möglich<br />

Verfahren für Software<br />

praktische Auswahl- und Bewertungstechniken<br />

zufällig, über Äquivalenzklassen,<br />

Ursache-Wirkungs-Analyse,<br />

automatenbasiert, ...<br />

Strukturtest:<br />

White-Box Test<br />

Kenntnis der Realisierung erforderlich<br />

erst nach der Codierung möglich<br />

praktische Auswahl- und Bewertungstechniken:<br />

kontrollflussorientiert,<br />

datenflussorientiert,<br />

fehlerorientiert (bei Software Mutationstest), ...


1. Software<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 10/96<br />

Prüfgerechte Strukturierung<br />

Vernünftige Testsätze lassen sich in der Regel auch bei Software<br />

nur dann entwickeln, wenn Testaspekte ab Spezifikation<br />

berücksichtigt werden. Typische Regeln:<br />

zu testende Beschreibungseinheiten nicht größer als 1 bis 3<br />

Seiten Quellcode<br />

dokumentierte, intuitiv verständliche Sollfunktion<br />

E-V-A-Struktur (kein Gedächtnis)<br />

Automaten (gesteuerte Funktionen in separat testbare<br />

Einheiten auslagern)<br />

Funktionen, deren Ausgaben sich über eine Probe oder<br />

Plausibilitätsbedingungen kontrollieren lassen, ...


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 11/96<br />

1. Software 1. Spezifikation<br />

Spezifikation


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 12/96<br />

1. Software 1. Spezifikation<br />

Was gehört in die Spezifikation<br />

Festlegung, was das zu entwerfende System leisten soll.<br />

Funktionale Anforderungen:<br />

Welche Dienste soll es anbieten<br />

Eingaben, Verarbeitungen, Ausgaben<br />

Verhalten in bestimmten Situationen, ggf. was soll es explizit<br />

nicht tun<br />

Use-Cases: Beschreibung welcher Benutzer was für Aufgaben<br />

mit dem System lösen soll.<br />

Nicht-funktionale Anforderungen:<br />

Wie soll das System/einzelne Funktionen arbeiten<br />

Qualitätsanforderungen wie Performance und Zuverlässigkeit<br />

Anforderungen an die Benutzbarkeit des Systems.<br />

Ergebnisse der Risikoanalyse:<br />

...


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 13/96<br />

1. Software 1. Spezifikation<br />

Ergebnisse der Risikoanalyse:<br />

Auflistung potenzieller sicherheitskritischer Fehlfunktionen.<br />

Quantitative Bewertung<br />

Festlegung von Maßnahmen zur Fehlervermeidung,<br />

-beseitigung, -behandlung und Schadensbegrenzung.<br />

Weitere Maßnahmen zur Sicherung der Verlässlichkeit:<br />

Wartungskonzept<br />

Reparaturgerechtheit<br />

...


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 14/96<br />

1. Software 1. Spezifikation<br />

Fehlervermeidung und Kontrollen<br />

Vermeidung von Fehlern in der Spezifikation:<br />

strukturiertes Vorgehen bei der Erarbeitung<br />

klare, eindeutige, widerspruchsfreie Formulierung<br />

Diagramme, Tabellen<br />

Formulierung als überprüfbare Eigenschaften<br />

Entwicklung eines Modells und Validierung am Modell<br />

Checkliste zur Vermeidung bekannter Fallstricke (siehe<br />

häufigste Ursachen für das Scheitern von Entwurfsprojekten)<br />

Kontrollmöglichkeiten:<br />

Review (Korrekturlesen, frühe Erkennung, geringe<br />

Fehlerkosten)<br />

Simulation des Zielverhaltens,<br />

Aufbau und Test eines Prototyps<br />

Test am Endprodukt (hohe Fehlerkosten)


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 15/96<br />

1. Software 1. Spezifikation<br />

Auswahlkriterien für Prüfmerkmale nach [1, S.40]<br />

1 gesetzliche Forderungen (Arbeitsschutz, Brandschutz,<br />

Gesundheitsschutz, ...)<br />

2 administrative Festlegungen (Liefer-, Prüf-,<br />

Inbetriebnahmevereinbarungen, Arbeitsanweisungen),<br />

3 Schwere der Fehlerwirkung (kritischer Fehler, Hauptfehler,<br />

Nebenfehler [DIN 85],<br />

4 Sensibilität (Grad des Einflusses von Fehlern und Störungen<br />

auf das Qualitätsmerkmal), ...<br />

5 Nachweis potenzieller Spezifikationsfehler.<br />

Ablauf und Kontrollen bei der Anforderungsanalyse:<br />

Systembeschreibung aus Kundensicht, Review<br />

Systembeschreibung aus Realisierungssicht, Review<br />

Entwicklung eines Modells, Validierung am Modell, ...


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 16/96<br />

1. Software 1. Spezifikation<br />

Ableitung von Testbeispielen aus der Spezifikation<br />

Für alle aufgelisteten Eigenschaften, Use-Cases, ...:<br />

Festlegung von zu überprüfenden Beispielabläufen und<br />

der Art, wie diese zu kontrollieren sind.<br />

Die aus den Anforderungen ableitbaren Testfälle sind, da die<br />

Sollfunktion erst später festgelegt wird, nur Rahmenvorgaben<br />

später zu ergänzenden Eingabewerten, Sollausgaben oder anderen<br />

Kontrollvorschriften. Sie dienen insbesondere zum Erkennen<br />

vergessener und<br />

falsch umgesetzter<br />

Anforderungen.


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 17/96<br />

1. Software 2. Testauswahl mit Äquivalenzklassen<br />

Testauswahl mit Äquivalenzklassen


gehört zu den Funktionstests<br />

Testerstellung bereits vor oder unabhängig von der<br />

Codierung möglich<br />

nicht ganz unabhängige (zufällige) Auswahl in Bezug auf zu<br />

erwartende Fehler<br />

Auswahltechnik für Programmmodule mit EVA-Struktur<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 18/96<br />

1. Software 2. Testauswahl mit Äquivalenzklassen<br />

Testauswahl mit Äquivalenzklassen<br />

Äquivalenzklasse: Menge ähnlich<br />

verarbeiteter Eingabewerte<br />

Annahme, dass die meisten Fehler<br />

mit Werten an den Bereichsgrenzen<br />

nachweisbar sind.<br />

E 1<br />

E 2<br />

E 3<br />

E 4<br />

E 5<br />

E 6<br />

Ω Eingaberaum<br />

E i Äquivalenzklasse<br />

Gezielte Suche von Werten an Bereichsgrenzen.<br />

optionale Wichtung der Testanzahl innerhalb der Bereiche<br />

nach Wichtigkeit, Kompliziertheit, ... der Funktion<br />

Ω


1. Software 2. Testauswahl mit Äquivalenzklassen<br />

praktisches Vorgehen:<br />

Beschreibung der gesamten Funktion durch Bedingungen<br />

b i (x) und Funktionen f i (x), nach denen unter diesen<br />

Bedingungen die Ausgabe zu berechnen ist:<br />

wenn b 1 (x) dann y = f 1 (x)<br />

wenn b 2 (x) dann y = f 2 (x)<br />

Bedingungen bestehen aus Vergleichen und logischen<br />

Operationen, z.B.:<br />

int a, b, c; if ((a>3)|(b+c>5))&(a


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 20/96<br />

1. Software 2. Testauswahl mit Äquivalenzklassen<br />

int a, b, c;<br />

...<br />

if ((a>3)|(b+c>5))&(a


x y Beispiel Testauswahl für x<br />

0 ≤ x < 1 y := x 0, 0.5, 0.999<br />

1 ≤ x < 3 y := (x − 2) 2 1, 1.5, 2, 2.7, 2.98<br />

3 ≤ x ≤ 4 y := 3 − x 3, 3,2, 4<br />

sonst Fehlermeldung -100, -0.1, 4.01, 345<br />

Beschreibung als Programm:<br />

function f(x: real) return real is<br />

variable y: real;<br />

begin<br />

assert x>0.0 and x


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 22/96<br />

1. Software 2. Testauswahl mit Äquivalenzklassen<br />

x y Beispiel Testauswahl für x<br />

0 ≤ x < 1 y := x 0, 0.5, 0.999<br />

1 ≤ x < 3 y := (x − 2) 2 1, 1.5, 2, 2.7, 2.98<br />

3 ≤ x ≤ 4 y := 3 − x 3, 3,2, 4<br />

sonst Fehlermeldung -100, -0.1, 4.01, 345<br />

Testrahmen mit Testeingaben:<br />

type tRealArray is array (natural range ) of real;<br />

constant xVektor: tRealArray := (0.0, 0.5, ..., 345.0);<br />

variable x, y: real;<br />

...<br />

for idx in xVector’range loop<br />

x := xVector(idx);<br />

y := f(x);<br />

write("x=" & str(x) & " y=" & str(y));<br />

end loop;<br />

Die Testausgaben sind hier manuell zu kontrollieren.


1. Software 2. Testauswahl mit Äquivalenzklassen<br />

Richtlinien zur Festlegung der Äquivalenzklassen:<br />

überschaubare Anzahl<br />

einfach beschreibbare Einzelfunktionen 1<br />

Abschlussbemerkungen<br />

Über Äquivalenzklassen ausgewählte Tests erkennen in der<br />

Regel mehr Fehler als Zufallstestsätze derselben Länge.<br />

Den Aufwand, eine Funktionsbeschreibung in die<br />

≫Äquivalenzklassenform≪ zu bringen, ist relativ hoch.<br />

Aus einer Äquivalenzklassenbeschreibung lässt sich relativ<br />

einfach (auch automatisiert) ein Programm erzeugen;<br />

Über den Weg ≫Nachbildung durch<br />

Äquivalenzklassenform≪ ⇒ ≫Abbildung in ein<br />

Programm≪ lassen sich diversitäre Beschreibungen für<br />

Mehrversionsvergleich ableiten.<br />

1 gut strukturiert, kurz und übersichtlich sind auch Grundregeln zur<br />

Fehlervermeidung<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 23/96


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 24/96<br />

1. Software 3. Ursache-Wirkungs-Analyse<br />

Ursache-Wirkungs-Analyse


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 25/96<br />

1. Software 3. Ursache-Wirkungs-Analyse<br />

Ursache-Wirkungs-Analyse<br />

Ursache: einzelne Eingabe- oder Zustandsübergangsbedingungen<br />

Wirkung: Ausgabe aktualisieren, Signal versenden, Zustand<br />

verändern, ...<br />

praktisches Vorgehen bei der Testauswahl:<br />

Aus der Spezifikation Ursachen, Wirkungen und logische<br />

Beziehungen dazwischen zusammenstellen:<br />

Binärabstraktion der Zielfunktion für die Testauswahl<br />

Eingabe: ≫1≪ Ursache eingestellt, ≫0≪ nicht eingestellt<br />

Ausgabe: ≫1≪ Wirkung eingetreten, ≫0≪ nicht eingetreten<br />

Testauswahl wie für digitale Schaltungen, z.B. Toggle-,<br />

Haftfehler-, Zellenfehler- und Verzögerungsfehlertest, ... 2<br />

Ergebnis ist eine Menge von Ursache-Wirkungs-Tupeln<br />

(zufällige) Auswahl von Eingaben, die die Ursachen erfüllen und<br />

Kontrollkriterien für die erwarteten Wirkungen<br />

2 Software-Tests haben eigene Bezeichnungen, die dasselbe beschreiben.


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 26/96<br />

1. Software 3. Ursache-Wirkungs-Analyse<br />

Beispiel: Zähle Zeichen<br />

&<br />

0 ∗<br />

Wirkungen:<br />

W 1 : Anzahl TypA +1<br />

W 2 : Anzahl TypB +1<br />

W 3 : Gesamtzahl +1<br />

W 4 : Programm beenden<br />

Ursachen:<br />

U 1 : Zeichen ist vom Typ A<br />

U 2 : Zeichen ist vom Typ B<br />

U 3 : Zeichenanzahl < Maximalwert<br />

sich ausschließende Ursachen<br />

UND-Verknüpfung muss ≫0≪ sein<br />

U 2<br />

&<br />

≥1 W 3<br />

W 2<br />

U 1<br />

&<br />

W 1<br />

U 1<br />

U 2<br />

U 3<br />

W 1<br />

W 2<br />

W 3<br />

W 4<br />

Eingabezeichen kann<br />

nur Typ A oder B sein<br />

Test mit allen einstellbaren<br />

Ursachen<br />

0 1 0 1 0 1 0 1<br />

0 0 1 1 0 0 1 1<br />

0 0 0 0 1 1 1 1<br />

0 0 0 0 1 0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

1<br />

1<br />

1<br />

1 1 1 0 0 0<br />

eine Ursache-Wirkungs-Analyse deckt Mehrdeutigkeiten und<br />

Widersprüche in der Spezifikation auf<br />

∗<br />

U 3<br />

W 4


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 27/96<br />

1. Software 3. Ursache-Wirkungs-Analyse<br />

Testobjekt als VHDL- bzw. Ada-Funktion<br />

type tCounter is record A, B, N: natural; end record;<br />

function ZZ(Ct max: natural) return tCounter is<br />

variable z: character;<br />

variable Ct: tCounter:=(0, 0, 0);<br />

begin<br />

for Ct.N


1. Software 3. Ursache-Wirkungs-Analyse<br />

z=0 A=1 B=0 N=1<br />

Funktionsaufrufe Ausgaben U 1 U 2 U 3 W 1 W 2 W 3 W 4<br />

ZZ(3)<br />

1 0 0 1 0 1 0<br />

U 3 max. Zählwert erreicht<br />

W 3 N weiterzählen<br />

z=A A=1 B=1 N=2 0 1 0 0 1 1 0<br />

z=x A=1 B=1 N=3 0 0 0 0 0 1 0<br />

Ende<br />

1 0 0 0 1<br />

ZZ(1) z=1 A=1 B=0 N=1 1 0 0 1 0 1 0<br />

Ende<br />

1 0 0 0 1<br />

ZZ(1) z=B A=0 B=1 N=1 0 1 0 0 1 1 0<br />

Ende<br />

1 0 0 0 1<br />

ZZ(0) Ende<br />

1 0 0 0 1<br />

U 1<br />

U 2<br />

Zeichen ist eine Ziffer<br />

Zeichen ist ein Großbuchstabe<br />

W 1<br />

W 2<br />

A weiterzählen<br />

B weiterzählen<br />

es wird kein Zeichen gelesen W 4 Funktion beenden<br />

erkannte Widerspruche in der Spezifikation:<br />

in der UW-Analyse wird bei U 3 = 1 ein Zeichen gelesen<br />

Testobjekt liest bei U 3 = 0 kein Zeichen<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 28/96


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 29/96<br />

1. Software 3. Ursache-Wirkungs-Analyse<br />

Aufwand und Nutzen UW-Analyse<br />

Die Aufstellung der ≫Binärdarstellung≪ aus Ursachen und<br />

Wirkungen ist aufwändig und kaum automatisierbar.<br />

für weniger schwach vernetzte Ursachen ist eine Auswahl<br />

mit Äquivalenzklassen einfacher und genauso gut<br />

Nutzen:<br />

Diversität zur Originalbeschreibung (vermeidet gleiche<br />

Denkfehler)<br />

Analyse auf Spezifikationswidersprüche automatisierbar<br />

Schwaches Auswahlkriterium:<br />

ignoriert viele intuitiv erforderliche Testfälle, z.B. die<br />

Kontrolle für jedes Zeichen, das es richtig zugeordnet wird<br />

ohne die zusätzliche Testausgabe lassen sich viel mehr nicht<br />

nachweisbare Fehler konstruieren<br />

trotz hohem Aufwand nur Auswahlverfahren für Grobtests


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 30/96<br />

1. Software 4. Testauswahl mit Automatenmodell<br />

Testauswahl mit Automatenmodell


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 31/96<br />

1. Software 4. Testauswahl mit Automatenmodell<br />

Automatenmodell<br />

X 1.1<br />

Z 1 Y 1.1 Z 2<br />

Y 1<br />

Y 2<br />

X 1.2<br />

Y 1.2<br />

Z 3<br />

Y 3<br />

X 2.1<br />

Y 2.1<br />

X 2.2<br />

Y 2.2<br />

Z i Zustand<br />

Y i Ausgabewert<br />

Y 3.1<br />

Y 3.1<br />

X i Eingabewerte, bei denen der<br />

Zustandsübergang erfolgt<br />

Kennzeichen für den Anfangszustand<br />

nach der Initialisierung<br />

Beschreibung eines Systems durch einen Menge von Eingaben,<br />

Zuständen und Ausgaben; übliche Art der Spezifikation<br />

Beziehung zum UW-Modell<br />

Ursachen: Eingabe + Zustand<br />

Wirkung: Folgezustand, Ausgabe<br />

Testauswahl: Suche einen Weg über alle Kanten


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 32/96<br />

1. Software 4. Testauswahl mit Automatenmodell<br />

Verbindungsaufbau und -abbau beim Telefonieren<br />

U 4 /W 4<br />

Verbunden<br />

W 2 Ziffer zur Rufnummer<br />

hinzufügen<br />

W 3 Verbindung aufbauen<br />

U 1 Abnehmen<br />

U 2 Ziffer wählen<br />

U 1 /W 1 Wählend U 2 /W 2 U 3 Rufnummer gültig<br />

Getrennt<br />

U 3 /W 3 W 1 Rufnummer zurücksetzen<br />

U 4 Auflegen<br />

W 4 Verbindung trennen<br />

Test der Soll-Funktion: U 1 → U 2 → . . . → U 2 → U 3 → U 4<br />

Verhalten für andere Eingabefolgen<br />

Abnehmen, Wählen, Auflegen (U 1 → U 2 → U 4 )<br />

Abnehmen, Wählen, Wählen, falsche Nummer)<br />

...<br />

⇒ Ablaufgraph ist noch unvollständig


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 33/96<br />

1. Software 4. Testauswahl mit Automatenmodell<br />

U 1 /W 1<br />

Wählend<br />

U 5 ∨ U 6<br />

U 4<br />

U<br />

U 1<br />

Getrennt<br />

3 /W 3<br />

Eingabefehler<br />

U 2 /W 2<br />

∨U 5 ∨ U 6 ∨U 5 ∨ U 6 U 1 ∨ U 3 ∨ U 5<br />

U 4<br />

U 4 /W 4 Verbunden<br />

U 2 ∨ U 3 ∨ U 4 U 1 ∨ U 2 ∨ U 3<br />

interne Fehlfunktion / Fehlerbehandlung<br />

U 1<br />

U 2<br />

U 3<br />

U 4<br />

U 5<br />

U 6<br />

Abnehmen<br />

Ziffer wählen<br />

Rufnummer gültig<br />

Auflegen<br />

Rufnummer ungültig<br />

Timeout<br />

W 1<br />

W 2<br />

W 3<br />

W 4<br />

Rufnummer zurücksetzen<br />

Ziffer zur Rufnummer<br />

hinzufügen<br />

Verbindung aufbauen<br />

Verbindung trennen<br />

Ergänzung um Knoten und Kanten für alle denkbaren<br />

Ursachen und Wirkungen; Präzisierung der Spezifikation


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 34/96<br />

1. Software 4. Testauswahl mit Automatenmodell<br />

U 1 /W 1<br />

Wählend<br />

U 5 ∨ U 6<br />

U 4<br />

U<br />

U 1<br />

Getrennt<br />

3 /W 3<br />

Eingabefehler<br />

U 2 /W 2<br />

∨U 5 ∨ U 6 ∨U 5 ∨ U 6 U 1 ∨ U 3 ∨ U 5<br />

U 4<br />

U 4 /W 4 Verbunden<br />

U 2 ∨ U 3 ∨ U 4 U 1 ∨ U 2 ∨ U 3<br />

interne Fehlfunktion / Fehlerbehandlung<br />

Test aller Zustandsübergänge, Wirkungen, ...<br />

Abheben,Wählen, Wählen, Rufnummer gültig, Auflegen<br />

Abheben, Wählen, Auflegen<br />

Abheben, Wählen, Wählen, Timeout, Auflegen<br />

Abheben, Wählen, Rufnummer ungültig, Auflegen


der Test erfordert das Setzen und Lesen des Zustands<br />

Automatenbeschreibungen eigenen sich gut zur Präzisierung<br />

der Zielfunktion und zur Testauswahl<br />

Die Aktionen in den Knoten können auszuführende Programme sein;<br />

zum Testen durch Dummies ersetzen, die z.B. nur den Zustandsnamen<br />

protokollieren<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 35/96<br />

1. Software 4. Testauswahl mit Automatenmodell<br />

U 1 /W 1<br />

Wählend<br />

U 5 ∨ U 6<br />

U 4<br />

U<br />

U 1<br />

Getrennt<br />

3 /W 3<br />

Eingabefehler<br />

U 2 /W 2<br />

∨U 5 ∨ U 6 ∨U 5 ∨ U 6 U 1 ∨ U 3 ∨ U 5<br />

U 4<br />

U 4 /W 4 Verbunden<br />

U 2 ∨ U 3 ∨ U 4 U 1 ∨ U 2 ∨ U 3<br />

interne Fehlfunktion / Fehlerbehandlung<br />

Test der Reaktion auf interne Fehlfunktionen<br />

Initialisieren, Auflegen<br />

Initialisieren, Rufnummer gültig, ...


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 36/96<br />

1. Software 4. Testauswahl mit Automatenmodell<br />

Zusammenfassung<br />

Automaten sind ein bewährten Spezifikationsmodell<br />

gut geeignet zur Kontrolle der Spezifikation auf<br />

Vollständigkeit und Widersprüche<br />

Ein Test, der 100% alle Knotenübergänge überprüft, ist perfekt,<br />

wenn:<br />

an jeder Kante nur eine Eingabewert als<br />

Übergangbedingung ausgewertet,<br />

die gesteuerten Aktionen ausschließlich Ausgaben und<br />

alle falschen Kantenübergänge an den Ausgaben<br />

beobachtbar sind.<br />

Automaten, die Operationen steuern und Operationsergebnisse<br />

auswerten<br />

verstecken Funktionalität in Operationen, die nur zufällig<br />

getestet werden, ...


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 37/96<br />

1. Software 5. Kontrollflussorientierte Tests<br />

Kontrollflussorientierte Tests


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 38/96<br />

1. Software 5. Kontrollflussorientierte Tests<br />

Ein Beispielprogramm und sein Kontrollflussgraph<br />

type tCounter is record A, B, N: natural; end record;<br />

function ZZ(Ct max: natural) return tCounter is<br />

variable z: character;<br />

variable Ct: tCounter:=(0, 0, 0);<br />

Testauswahlgrundlage<br />

Kontrollflussgraph<br />

begin<br />

n1: for Ct.N


1. Software 5. Kontrollflussorientierte Tests<br />

Testauswahlregeln<br />

Start<br />

100% Anweisungsüberdeckung<br />

jede Anweisung muss mindestens<br />

einmal ausgeführt werden;<br />

Beispiel: Start n 1 , n 2 , n 3 , n 4 , n 7 ,<br />

n 1 , n 2 , n 3 , n 5 , n 6 , n 7 , n 1 , Ende<br />

100% Zweigüberdeckung 3<br />

jede Kante muss mindestens<br />

einmal durchlaufen werden;<br />

Beispiel: Start n 1 , n 2 , n 3 , n 4 , n 7 ,<br />

n 1 , n 2 , n 3 , n 5 , n 6 , n 7 , n 1 , n 2 , n 3 ,<br />

n 5 , n 7 , n 1 , Ende<br />

100% Pfadüberdeckung<br />

n 3<br />

n 1<br />

n 2<br />

n 4 n 5<br />

n 6<br />

n 7<br />

Ende<br />

bei 100% Anweisungsüberdeckung<br />

möglicherweise<br />

ungetestete Kante<br />

3 vom Standard RTCA DO-178 B ab Level C (Software, die bedeutende<br />

Ausfälle verursachen kann) gefordert.<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 39/96


1. Software 5. Kontrollflussorientierte Tests<br />

Start<br />

n 1<br />

Ende<br />

Start<br />

n 1<br />

n 1<br />

n 1<br />

Start n 2 n 3 n 4 n 7 Ende<br />

n 5 n 7 n 1 Ende<br />

n 3<br />

n 7 n 1 n 2 n 3 n 4 n 7 . . .<br />

n 2<br />

Start n 1 n 2 n 3 n 4 n 7 n 1 n 3<br />

n 4<br />

Start n 1 n 2 n 3 n 4 n 7 n 1 n 2<br />

n 5<br />

n 6<br />

n 3 n 4 n 7 n 1 n 2 n 3 n 4<br />

n 7<br />

Ende<br />

ein Pfad ist einer kompletter Weg durch den Graphen<br />

in zyklischen Graphen (mit Schleifen) Anzahl → ∞<br />

100% Pfadüberdeckung: unrealistisches Auswahlkriterium 4<br />

4 Denkbar wäre z.B. ein Test mit 0, 1 und 5, aber nicht mit 0, 1, 2, 3, ...<br />

∞ Schleifendurchläufen.<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 40/96


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 41/96<br />

1. Software 5. Kontrollflussorientierte Tests<br />

Bedingungsüberdeckung 5<br />

Entscheidungen können an komplexe Bedingungen geknüpft sein,<br />

z.B.:<br />

n1: if (((A>10) and (A1) and (B


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 42/96<br />

1. Software 5. Kontrollflussorientierte Tests<br />

n1: if (((A>10) and (A1) and (B 10<br />

A < 20<br />

B > 1<br />

B < 100<br />

C = 1<br />

x 1<br />

x 2<br />

x 3<br />

x 4<br />

x 5<br />

1<br />

1<br />

1<br />

1<br />

1<br />

≥1 1 Zusatzbedingungen<br />

aus der Abhängig-<br />

x 5 x 4 x 3 x 2 x 1<br />

keit der Elementar-<br />

≥1 1<br />

entscheidungen<br />

sa1(x 1 ) 1 1 0 1 0<br />

sa1(x 2 ) 1 0 1 0 1<br />

impliziter<br />

0<br />

sa1(x 3 ) 1 1 0 1 0<br />

Nachweis<br />

&<br />

sa1(x 4 ) 1 0 1 0 1<br />

z 1<br />

1<br />

sa1(x 5 ) 0 1 1<br />

≥1 0 sa0(z 1 ) 1 1 1 1 0<br />

z3<br />

& y<br />

0<br />

sa0(z 2 ) 1 1 0 1 1<br />

&<br />

z 2<br />

Entscheidung<br />

y<br />

0<br />

0<br />

0<br />

0<br />

0<br />

1<br />

1<br />

ein Testsatz mit 100% Bedingungsüberdeckung arbeitet<br />

jeder Zweig mindestens einmal und oft mehrmals ab


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 43/96<br />

1. Software 5. Kontrollflussorientierte Tests<br />

Abschließende Bemerkungen<br />

Automatisierbarkeit:<br />

automatische Einprogrammierung eines ≫Abhake-Flags≪ für<br />

jede zu überprüfende Nachweisbedingung<br />

Anweisungstest: für jede verzweigungsfreie Anweisungsfolge<br />

Zweigtest: für jede Verzweigung<br />

für jeden nicht implizit nachweisbaren Verzweigungshaftfehler<br />

Subsumption (unter den Oberbegriff fallen von):<br />

Testauswahlkriterium A subsumiert ein Auswahlkriterium<br />

B, wenn jeder nach A ausgewählte Testsatz auch B erfüllt<br />

Zunahme der Testsatzlänge und Fehlerüberdeckung<br />

100%<br />

Anweisungs-<br />

überdeckung<br />

subsumiert 100% subsumiert<br />

Zweigüberdeckung<br />

100%<br />

Bedingungsüberdeckung


die Auswahlkriterien Anweisungs-, Zweig- und<br />

Bedingungsüberdeckung definieren notwendige<br />

Anregungsbedingungen, aber keine hinreichenden<br />

Anregungs- und keine Beobachtungsbedingungen<br />

Sicherung der Beobachtbarkeit durch Test im Schrittbetrieb<br />

oder zusätzliche Ausgaben während des Tests oder der<br />

Simulation.<br />

Ohne Beobachtung aller Zwischenergebnisse lässt sich von<br />

den Kontrollflussüberdeckungen kaum auf die<br />

Fehlerüberdeckung schließen.<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 44/96<br />

1. Software 5. Kontrollflussorientierte Tests<br />

Vergleich mit Fehlermodellen<br />

Ω Ω Eingaberaum<br />

Nachweismenge eines Modellfehlers<br />

Nachweismenge eines tatsächlichen Fehlers<br />

Eingabemenge einer Anregungsbedingung


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 45/96<br />

1. Software 6. Datenflussorientierte Testauswahl<br />

Datenflussorientierte Testauswahl


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 46/96<br />

1. Software 6. Datenflussorientierte Testauswahl<br />

Datenflussorientierte Testauswahl<br />

Ergänzung der Testauswahlkriterien<br />

um Beobachtungsbedingungen<br />

Klassifizierung der Datenoperationen:<br />

def(...) Wertzuweisung<br />

c-use(...) Verwendung in einer<br />

Berechnung<br />

p-use(...) Verwendung in einer<br />

Verzweigungsbedingung<br />

out(...) Wert direkt beobachtbar<br />

Auswahlkriterien: jedem ≫def≪ eines<br />

Datenobjekts muss im Berechungsfluss<br />

mindestens eine ≫use≪-Anweisung folgen.<br />

notwendige, aber nicht hinreichende<br />

Beobachtungsbedingung<br />

Start<br />

n 1<br />

n 2<br />

n 3<br />

n 4<br />

n 5<br />

n 6<br />

n 7<br />

Ende<br />

def(N max)<br />

def(Ct.A)<br />

def(Ct.B)<br />

def(Ct.N)<br />

p-use(N max)<br />

p-use(Ct.N)<br />

def(z)<br />

p-use(z)<br />

c-use(Ct.A)<br />

def(Ct.A)<br />

p-use(z)<br />

c-use(Ct.B)<br />

def(Ct.B)<br />

c-use(Ct.N)<br />

def(Ct.N)<br />

out(Ct.A)<br />

out(Ct.B)<br />

out(Ct.N)


1. Software 6. Datenflussorientierte Testauswahl<br />

Das Programm zum Beispielgraphen:<br />

type tCounter is record A, B, N: natural; end record;<br />

function ZZ(N max: natural) return tCounter is<br />

variable z: character;<br />

variable Ct: tCounter:=(0, 0, 0);<br />

begin<br />

n1: for Ct.N


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 48/96<br />

1. Software 6. Datenflussorientierte Testauswahl<br />

N Max<br />

intuitive Testauswahl für den Beispielgraphen<br />

1 Start: def(N max), n 1 : p-use(N Max),<br />

Ende<br />

2 Start: def(N max), n 1 : p-use(N Max),<br />

n 2 , n 3 , n 5 , n 7 , n 1 : p-use(N Max),<br />

Ende<br />

Ct A<br />

1 Start: def(Ct A), n 1 , n 2 , n 3 ,<br />

n 4 : p-use(Ct A), def(Ct A), n 7 , n 1 ,<br />

Ende: out(Ct A)<br />

2 Start: def(Ct A), n 1 , n 2 , n 3 ,<br />

n 4 : p-use(Ct A), def(Ct A), n 7 , n 1 ,<br />

n 2 , n 3 , n 4 : p-use(Ct A), def(Ct A),<br />

n 7 , n 1 , Ende: out(Ct A)<br />

...<br />

Start<br />

n 1<br />

n 2<br />

n 3<br />

n 4<br />

n 5<br />

n 6<br />

n 7<br />

Ende<br />

def(N max)<br />

def(Ct.A)<br />

def(Ct.B)<br />

def(Ct.N)<br />

p-use(N max)<br />

p-use(Ct.N)<br />

def(z)<br />

p-use(z)<br />

c-use(Ct.A)<br />

def(Ct.A)<br />

p-use(z)<br />

c-use(Ct.B)<br />

def(Ct.B)<br />

c-use(Ct.N)<br />

def(Ct.N)<br />

out(Ct.A)<br />

out(Ct.B)<br />

out(Ct.N)


1. Software 6. Datenflussorientierte Testauswahl<br />

Auswahlkriterien und Beobachtbarkeit<br />

direkt beobachtbar: ≫def≪ → ≫out≪<br />

Beobachtbarkeit 6 : 100%<br />

Beobachtungspfad über mehrere Verarbeitungsoperationen:<br />

≫def≪ → ≫c-use/def≪ → ≫c-use/def≪ → . . .→ ≫out≪<br />

abnehmende Beobachtbarkeit mit der Pfadlänge<br />

n∏<br />

b ges =<br />

(b i – Beobachtbarkeit von Operandenfehlern am<br />

Operationsergebnis; für Add, Subb, Mult, ... groß)<br />

Beobachtbarkeit über Verzweigung: ≫def≪ → ≫c-use≪<br />

Beobachtbarkeit < 50%<br />

Je schlechter die Beobachtbarkeit für ein ≫def≪, desto mehr<br />

unterschiedliche Testbeispiele sind für den Testtyp erforderlich.<br />

6 Genau genommen Wahrscheinlichkeit der Beobachtbarkeit.<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 49/96<br />

i=1<br />

b i


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 50/96<br />

1. Software 6. Datenflussorientierte Testauswahl<br />

Zusammenfassung<br />

Datenflussorientierte Testauswahl ist<br />

ist meist aufwändiger als kontrollflussorientierte Tests im<br />

Schrittbetrieb abzuarbeiten<br />

hat dennoch eine schlechtere Beobachtbarkeit, weil keine<br />

Datenflußpfade bis zu Ausgabe gesucht werden<br />

eine akademische Disziplin mit geringer praktischer<br />

Akzeptanz<br />

ohne die breite Software-Unterstützung wie die etablierten<br />

kontrollflussorientierten Techniken.


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 51/96<br />

1. Software 7. Mutationstest<br />

Mutationstest


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 52/96<br />

1. Software 7. Mutationstest<br />

Mutationstest<br />

fehlerfreie<br />

Beschreibung<br />

(Reparaturziel)<br />

Beschreibung<br />

zur Testauswahl<br />

Nachweisbedingung ∗ 1<br />

Nachweisbedingung ∗ 2<br />

∗<br />

Hinzufügen eines Fehlers<br />

Fehlerbeseitigung<br />

Definition Nachweisbedingung<br />

oder Modellfehler<br />

Für Entwürfe gibt es keine korrekte Sollbeschreibung.<br />

Statt der Modellfehler lassen sich nur Mutationen einer<br />

potenziell fehlerhaften Beschreibung konstruieren.<br />

Kein Soll-/Istvergleich für die Kontrolle der Testergebnisse;<br />

Alternativen: Mehrversionsvergleich, Probe, ...


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 53/96<br />

1. Software 7. Mutationstest<br />

Fehlerorientierte Testauswahl<br />

Ω<br />

F<br />

M<br />

Nachweismenge eines Fehlers<br />

Eingabemenge, die eine korrespondier-<br />

rende Nachweisbedingung erfüllt<br />

relative Größe der Schnittmenge als<br />

Schätzwert für die Wahrscheinlichkeit,<br />

dass ein Test aus M den Fehler nachweist<br />

Fehlerorientierte Testauswahl setzt große Schnittmengen der<br />

Nachweismengen zwischen tatsächlichen Fehlern und<br />

Mutationen voraus.


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 54/96<br />

1. Software 7. Mutationstest<br />

Ω<br />

F<br />

M<br />

Nachweismenge eines Fehlers<br />

Eingabemenge, die eine korrespondier-<br />

rende Nachweisbedingung erfüllt<br />

relative Größe der Schnittmenge als<br />

Schätzwert für die Wahrscheinlichkeit,<br />

dass ein Test aus M den Fehler nachweist<br />

Für einen erheblichen Teil der potenziellen Fehler, z.B.<br />

vergessene Funktionen oder Fallunterscheidung erlaubt die<br />

Entwurfsbeschrei- bung keine Rückschlüsse auf deren<br />

Nachweisbedingungen:<br />

keine ähnlich nachweisbaren Mutationen konstruierbar,<br />

Nachweis nur durch Zufall möglich.<br />

Nachweisähnlichkeit der Mutationen mit tatsächlichen<br />

Fehlern setzt eine weitgehend korrekte Beschreibung voraus.


1. Software 7. Mutationstest<br />

Zufallstest<br />

Eine fehlerorientierte Festlegung der Testsatzlänge für einen<br />

Zufallstest verlangt Annahmen / Schätzungen des Fehlerprofils:<br />

aus der Testzeit, nach der jeweils neue Fehler gefunden<br />

werden,<br />

aus den Nachweiswahrscheinlichkeiten einer Stichprobe von<br />

Mutationen oder<br />

den Fehlerprofilen vergleichbarer Systeme.<br />

Für die Modellfehler/Mutationen zur Abschätzung des<br />

Fehlerprofils genügen überschneidungsfreien Nachweismengen<br />

vergleichbarer Größe.<br />

Ω<br />

F<br />

M<br />

Nachweismenge eines Fehlers<br />

Nachweismenge, die eine korrespondierrenden<br />

Modellfehler nachweist<br />

zufällig ausgeählter Test<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 55/96


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 56/96<br />

1. Software 7. Mutationstest<br />

Mutationstest als Test des Tests<br />

In der Praxis werden Mutationstests hauptsächlich dazu genutzt,<br />

die Fehlersensibilität anders ausgewählter Tests zu testen:<br />

Auswahl einer Stichprobe von Mutationen<br />

Von den gewählten Mutationen unabhängige Auswahl eines<br />

Testsatzes (nach einem der vorherigen Verfahren oder<br />

zufällig)<br />

Bestimmung der Fehler- bzw. Mutationsüberdeckung.<br />

Bei Bedarf Suche weiterer Test zur Erzielung der geforderten<br />

Mutationsüberdeckung.


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 57/96<br />

1. Software 7. Mutationstest<br />

Typische Mutations-Transformationen:<br />

Verfälschung arithmetischer Ausdrücke (x=a+b x=a*b)<br />

Verfälschung boolescher Ausdrücke (if(a>b){} if(a


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 58/96<br />

1. Software 8. Regressionstest<br />

Regressionstest


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 58/96<br />

1. Software 8. Regressionstest<br />

Formen:<br />

Regressionstest (v. lat. regredior, regressus sum =<br />

zurückschreiten) versteht man in der Softwaretechnik die<br />

Wiederholung aller oder einer Teilmenge aller Testfälle, um<br />

Auswirkungen von Modifikationen in bereits getesteten<br />

Teilen der Software aufzuspüren.<br />

Solche Modifikationen entstehen regelmäßig z. B. aufgrund<br />

der Pflege, Änderung und Korrektur von Software.<br />

Aufgrund des Wiederholungscharakters und der Häufigkeit<br />

dieser Wiederholungen ist es sinnvoll, den Regressionstest zu<br />

automatisieren.<br />

Soll/Ist-Testfälle: Verwendung der aufgezeichneten Ist-Werte<br />

des Referenzsystems als Sollwerte (verlangt


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 59/96<br />

1. Software 9. Aufgaben<br />

Testbedingungen)<br />

Mehrversionsvergleich: paralleler Betrieb beider Versionen<br />

und Ergebnisvergleich (auch unter Betriebsbedingungen<br />

möglich).<br />

Im Gegensatz dazu ordnet Liggesmeyer (Lit.: Liggesmeyer)<br />

den Regressionstest in die Gruppe der Diversifizierenden<br />

Tests ein. Dadurch wird im Unterschied zu<br />

Funktionsorientierten Testtechniken die Korrektheit der<br />

Testergebnisse nicht anhand der Spezifikation entschieden,<br />

sondern durch Vergleich der Ausgaben der aktuellen Version<br />

mit den Ausgaben des Vorgängers. Ein Testfall gilt beim<br />

Regressionstest als erfolgreich absolviert, wenn die Ausgaben<br />

identisch sind.


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 59/96<br />

1. Software 9. Aufgaben<br />

Aufgaben


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 60/96<br />

1. Software 9. Aufgaben<br />

Testauswahl mit Äquivalenzklassen<br />

Schnittstelle der Zielfunktion<br />

type tIFeld is array (natural range ) of integer;<br />

function sort(x: tIFeld) return tIFeld;<br />

das unsortierte Eingabefeld soll auf ein aufsteigend sortiertes<br />

Ergebnisfeld abgebildet werden<br />

definieren von Äquivalenzklassen für die Eingabe<br />

Auswahl von Grenzwerten und typischen Werten für jede<br />

Äquivalenzklasse<br />

Besser oder schlechter als ein Zufallstest


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 61/96<br />

1. Software 9. Aufgaben<br />

Automatenbasierte Testauswahl<br />

weiter: Kernoperationen, Operationsablaufgraph, ...<br />

Testauswahl auf Grundlage des Automatengraphen<br />

Bild ≫serieller Dividierer aus EDS≪<br />

Besser oder schlechter als ein Zufallstest


2. Baugruppentest<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 62/96<br />

Baugruppentest


2. Baugruppentest<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 63/96<br />

Wichtige Verfahren für den Baugruppentest<br />

Funktionstest: Hardware-Nachbildung eines Testrahmens zur<br />

Bereitstellung von Eingaben und Kontrolle von Ausgaben<br />

Test in der Funktionsumgebung<br />

Funktionstester<br />

HIL (Hardware in the Loop) Tester<br />

Strukturtest: gezielte Suche nach Bestückungs- und<br />

Verbindungsfehler<br />

In-Circuit-Test<br />

Boundary-Scan


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 64/96<br />

2. Baugruppentest 1. Funktionstest<br />

Funktionstest


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 65/96<br />

2. Baugruppentest 1. Funktionstest<br />

Modularer Funktionstester<br />

Rechner mit einem modular zusammensetzbaren System aus:<br />

Logikgenerator- und Logikanalysatorbaugruppen<br />

DAU- und ADU-Baugruppen<br />

programmierbaren Spannungsversorgungen<br />

Baugruppen für Busschnittstellen (RS232, SPI, CAN, ...)<br />

Lastschaltungen, Adapter, ...


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 66/96<br />

2. Baugruppentest 1. Funktionstest<br />

HIL- (Hardware in the<br />

Loop) Tester<br />

Test von Steuergeräten<br />

Das zu steuernde System (Maschine, Auto, Flugzeug) wird<br />

über ein Modell simuliert, das aus den Aktorausgaben des<br />

Steuergeräts Sensordaten für die Eingabe berechnet.<br />

Test von Regelkreisen in Echtzeit


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 67/96<br />

2. Baugruppentest 1. Funktionstest<br />

Anwendungsbereiche für HIL-Tester<br />

Maschinen und Anlagenbau:<br />

physikalische Simulation der gesteuerten Maschine oder<br />

Anlage<br />

3D-Visualisierung des physikalischen Verhaltens<br />

Verkürzung der Inbetriebnahmephase<br />

Untersuchung von Grenzwert- und Gefahrensituationen<br />

Fahrzeugbau, Luft- und Raumfahrt<br />

physikalische Simulationen von Motoren, Lenksystemen bis<br />

hin zu kompletten Flugzeugen<br />

Nachstellung komplizierter Testsituationen im Labor<br />

(fahrendes Auto, Flugzeug in der Luft, ...)<br />

Jedes Simulationsmodell hat Genauigkeitsgrenzen. Kein<br />

vollständiger Ersatz für den Test in der<br />

Anwendungsumgebung


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 68/96<br />

2. Baugruppentest 2. Strukturtest<br />

Strukturtest


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 69/96<br />

2. Baugruppentest 2. Strukturtest<br />

Strukturtest<br />

Baugruppen (Leiterplatten) bestehen aus einem<br />

Verdrahtungsträger und Bauteilen (Widerstände,<br />

Kondensatoren, Schaltkreise, ...)<br />

Verdrahtungsträger und Bauteile werden vor dem<br />

Zusammenbau gründlich getestet.<br />

Der Baugruppentest zielt überwiegend auf<br />

Fehlbestückungen, Kurzschlüsse und Unterbrechungen.<br />

Erkennung und Lokalisierung aller potenzieller Bestückungsund<br />

Verdrahtungsfehler über das Ein-/Ausgabeverhalten<br />

schwierig<br />

Alternativen: direkte Kontrolle auf Abwesenheit von<br />

Bestückungs- und Verdrahtungsfehler durch:<br />

elektrischen Messungen<br />

optische Inspektion


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 70/96<br />

2. Baugruppentest 2. Strukturtest<br />

In-Circuit-Test<br />

Kontaktierung aller Schaltungspunkte mit Nadeln<br />

Suche potenzieller Bestückungs- und Verdrahtungsfehler mit<br />

elektrischen Messungen


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 71/96<br />

2. Baugruppentest 2. Strukturtest<br />

Analoge Signaturanalyse<br />

Leiterplattenprüfung im spannungsfreien Zustand<br />

Messung der Strom-Spannungskennlinie zwischen zwei<br />

Punkten und Vergleich mit einer Referenzkennlinie<br />

Einspeisung einer mit Wechselspannung überlagerten<br />

Gleichspannung + Strombegrenzung<br />

Bauteiltypische Signaturen:<br />

Widerstand: Gerade<br />

Kondensator: Elypse<br />

Diode: Kennlinie mit Knick


2. Baugruppentest 2. Strukturtest<br />

IC<br />

Testobjekt<br />

Signalgenerator<br />

R M<br />

x<br />

y<br />

Oszi<br />

die Signatur zwischen zwei Punkten hängt von der<br />

kompletten Schaltung, nicht nur einzelnen Bauteilen ab<br />

bestimmbar durch Ausprobieren an einem ≫Golden Device≪;<br />

problematisch kann sein die<br />

die Festlegung der Toleranzbereiche für die Signatur aus den<br />

Bauteilstreuungen<br />

die Erkennungssicherheit, z.B. Fehlbestückungen bei kleinen<br />

Kondensatoren.<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 72/96


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 73/96<br />

2. Baugruppentest 2. Strukturtest<br />

Elektrische Isolation<br />

IC<br />

Testobjekt<br />

Kompensationsspannungsquelle<br />

−<br />

+<br />

A<br />

V<br />

U m = 100 mV<br />

Unterdrückung von Parallelströmen zum Testobjekt durch<br />

Kompensation der Spannungsabfälle über den wegführenden<br />

Bauteilen auf einer Testobjektseite auf null<br />

Vereinfacht die Bestimmung der Signaturen bzw. Sollwerte.


2. Baugruppentest 2. Strukturtest<br />

Bestückungstest für Schaltkreise<br />

digitaler Schaltkreis<br />

U V<br />

x<br />

y<br />

Einspeisen eines Messstroms<br />

≈ 1 mA<br />

Kontrolle der<br />

Flussspannung<br />

Schaltkreise haben an ihren Eingängen i.Allg Schutzdioden<br />

zur Versorgungsspannung und Masse<br />

Test auf Unterbrechungen durch Stromeinspeisung Messen<br />

der Flussspannung<br />

Erkennt nicht, ob es der richtige Schaltkreis oder Anschluss<br />

ist.<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 74/96


2. Baugruppentest 2. Strukturtest<br />

Auch an den Ausgängen existieren in der Regel Dioden zur<br />

Betriebsspannung und Masse.<br />

Verbindungskontrolle wie bei Eingängen<br />

x<br />

G2<br />

G1<br />

U V<br />

y<br />

U V<br />

x<br />

G1<br />

G2<br />

y<br />

n-Wanne<br />

p + -Gebiet<br />

n + -Gebiet<br />

Polysilizium-Streifen<br />

Metallleiterbahn<br />

Durchkontaktierung<br />

parasitäre Ausgangsdioden<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 75/96


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 76/96<br />

2. Baugruppentest 2. Strukturtest<br />

Isolierter Logiktest für digitale ICs<br />

Tester<br />

Deaktivierung Test Deaktivierung<br />

IC<br />

IC<br />

Testobjekt<br />

IC<br />

Signalquellen, die der<br />

Tester überschreibt<br />

Überschreiben digitaler Eingabesignale des Testobjekts<br />

andere Schaltkreise werden möglichst deaktiviert<br />

(Anschlüsse hochohmig)


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 77/96<br />

2. Baugruppentest 2. Strukturtest<br />

Voraussetzung für ICT-Einsatz<br />

≫prüfgerechter Entwurf≪:<br />

bei Vakuumansaugen luftdichter<br />

Rand, keine Löcher<br />

geeignete Kontaktflächen<br />

Deaktivierungsmöglichkeit<br />

der Schaltkreise, ...<br />

Automatisch Generierung der Testvorschrift möglich:<br />

Zusammensetzen aus Test- und Deaktivierungsvorschriften<br />

für alle Bauteile (gut gestellt)<br />

Fehlererkennung und Lokalisierung:<br />

erkennt fast alle Kurzschlüsse, Unterbrechungen und<br />

Fehlbestückungen und gibt den genauen Fehlerort an


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 78/96<br />

2. Baugruppentest 3. Boundary Scan / JTAG<br />

Boundary Scan / JTAG


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 79/96<br />

2. Baugruppentest 3. Boundary Scan / JTAG<br />

Das Prinzip von Boundary-Scan<br />

Schaltkreisanschluss<br />

serieller<br />

Eingang<br />

serieller<br />

Ausgang<br />

Mux D D<br />

Mux<br />

interne<br />

Schaltung<br />

IS<br />

ExS<br />

schaltkreisinterne Schaltungsteile<br />

externe Schaltungsteile<br />

Verbindungstest<br />

Takt- und Steuersignale<br />

Tester<br />

Testdateneingang (TDI)<br />

Testtakt (TCK)<br />

Teststeuersignal (TMS)<br />

Testdatenausgang (TDO)<br />

IS<br />

&<br />

ExS<br />

IS<br />

Ersatz der mechanischen Nadeln durch ≫silicon<br />

nails≪ (seriell beschreibbare Register an den<br />

Schaltkreisanschlüssen, im Normalbetrieb überbrückt)<br />

Aufspaltung in viele kleine, separat testbare Teilschaltungen


2. Baugruppentest 3. Boundary Scan / JTAG<br />

Schaltkreisanschluss<br />

serieller<br />

Eingang<br />

serieller<br />

Ausgang<br />

Mux D D<br />

Mux<br />

interne<br />

Schaltung<br />

IS<br />

ExS<br />

schaltkreisinterne Schaltungsteile<br />

externe Schaltungsteile<br />

Verbindungstest<br />

Takt- und Steuersignale<br />

Tester<br />

Testdateneingang (TDI)<br />

Testtakt (TCK)<br />

Teststeuersignal (TMS)<br />

Testdatenausgang (TDO)<br />

IS<br />

&<br />

ExS<br />

IS<br />

Ablauf eines Testschritts für den Baugruppentest:<br />

BS-Register aller Schaltkreise auf der Baugruppe seriell<br />

beschreiben<br />

einen Arbeitsschritt ausführen<br />

Die im Arbeitsschritt in den BS übernommenen Werte<br />

seriell an den Tester ausgeben und zeitgleich nächsten<br />

Eingabevektor laden<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 80/96


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 81/96<br />

2. Baugruppentest 3. Boundary Scan / JTAG<br />

Ursprungsidee: Alternative zu den teueren, für jede<br />

Baugruppe speziell anzufertigenden Nadeladapter<br />

als IEEE 1149.1 standardisierter serieller Testbus<br />

wird weitere Test-, Diagnose- und<br />

Rekonfigurationsfunktionen (z.B. für Xilix-FPGA und<br />

ATMEGA-Mikroprozessoren aus den Übungen:<br />

Programmierung, ChipsScope, Debugger-Verbindung, ...)


2. Baugruppentest 3. Boundary Scan / JTAG<br />

Die Testbusarchitektur der Schaltkreise<br />

Datenregister<br />

Teststeuersignal<br />

(TMS)<br />

Boundary-Scan-Register<br />

Bypass-Register<br />

optionale Register<br />

Befehlsregister<br />

Multiplexer<br />

serieller Testbus-<br />

eingang (TDI)<br />

serieller Testbusausgang<br />

(TDO)<br />

Testtakt (TCK)<br />

TAP-Controller<br />

den TAP- (test access port) Controller<br />

ein Befehlsregister<br />

mehrere Testdatenregister (mindestens das Boundary-Scanund<br />

das Bypassregister).<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 82/96


Über TMS und TAP-Controller steuerbare Funktionen:<br />

Capture: Übernahme von Daten aus der Schaltung in das<br />

Befehlsregister<br />

Shift: Werte im Befehlsregister eine Position weiter schieben<br />

Update: eingeschobenes Bitmuster in das Befehlsregister<br />

übernehmen<br />

dieselben drei Funktion für ein über das Befehlswort<br />

Prof. G. Kemnitz ausgewähltes · Institut für Datenregister<br />

Informatik, Technische Universität Clausthal 13. Juli 2012 83/96<br />

2. Baugruppentest 3. Boundary Scan / JTAG<br />

Datenregister<br />

Teststeuersignal<br />

(TMS)<br />

Boundary-Scan-Register<br />

Bypass-Register<br />

optionale Register<br />

Befehlsregister<br />

Multiplexer<br />

serieller Testbus-<br />

eingang (TDI)<br />

serieller Testbusausgang<br />

(TDO)<br />

Testtakt (TCK)<br />

TAP-Controller


2. Baugruppentest 3. Boundary Scan / JTAG<br />

Datenregister<br />

Teststeuersignal<br />

(TMS)<br />

Boundary-Scan-Register<br />

Bypass-Register<br />

optionale Register<br />

Befehlsregister<br />

Multiplexer<br />

serieller Testbus-<br />

eingang (TDI)<br />

serieller Testbusausgang<br />

(TDO)<br />

Testtakt (TCK)<br />

TAP-Controller<br />

Datenregister:<br />

Boundary-Scan: Register am Schaltkreisrand<br />

Bypass: 1-Bit-Register zur Überbrückung des Schaltkreises<br />

in der Schieberegisterkette der Baugruppe<br />

Optionale Erweiterungen:<br />

Hersteller- und Bauteilidentifikationsregister<br />

weitere Test-, Programmier- oder Debug-Register<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 84/96


2. Baugruppentest 3. Boundary Scan / JTAG<br />

TAP-Controller, Busprotokoll<br />

Automat mit 16 Zuständen<br />

Kantenauswahl über TMS-<br />

(test mode select) Signal<br />

Typischer Testablauf:<br />

Befehlsregister lesen (enthält<br />

ein Muster zur Erkennung von<br />

Busunterbrechungen und der<br />

Größe der Befehlsworte je<br />

Schaltkreis)<br />

Bauteilnummern lesen<br />

(Bestückungskontrolle)<br />

ein Teil der Schaltkreise auf<br />

Bypass setzen, für die anderen<br />

Datenregister auswählen<br />

...<br />

Testfunkt. 1<br />

0<br />

lt. Befehl<br />

0 normale Funktion<br />

(Testlogik rücksetzen)<br />

1<br />

1<br />

0<br />

0<br />

Übernahme Übernahme<br />

1 0<br />

1 0<br />

Schieben 0 Schieben<br />

1<br />

1<br />

1<br />

1<br />

0<br />

0<br />

P 0<br />

P 0<br />

1<br />

1<br />

0<br />

1<br />

0<br />

1<br />

Übergabe<br />

Übergabe<br />

1 0 1 0<br />

1<br />

Datenübertragung<br />

Befehlsübertragung<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 85/96<br />

0


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 86/96<br />

2. Baugruppentest 4. Optische Inspektion<br />

Optische Inspektion


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 87/96<br />

2. Baugruppentest 4. Optische Inspektion<br />

Inspektion in der Baugruppenfertigung<br />

visuelle Kontrolle auf Bestückungs- und Lötfehler<br />

manuelle Inspektion:<br />

Güte/Eigenschaften ähnlich wie bei der Inspektion von<br />

Entwurfsdokumenten<br />

erkennt auch elektrisch nicht nachweisbare Lötfehler 7<br />

Pflicht für sicherheitskritische Baugruppen (Automotive)<br />

7 siehe Abb. Kleber auf der Lötstelle; Ausfall bei Vibration


Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 88/96<br />

2. Baugruppentest 4. Optische Inspektion<br />

Automatisierte Baugruppeninspektion<br />

Bildverarbeitungssystem mit Beleuchtung, Kamera,<br />

Verarbeitung, Monitor<br />

Lernen von Bildern mit Fehlern und korrekten Bauteilen<br />

Generierung des Prüfprogramms aus einer geometrischen<br />

Beschreibung und einer Bilddatenbank<br />

Vorteile der Automatisierung<br />

hohe Inspektionsfehlerüberdeckung (Ausschluss Störquelle<br />

Mensch)<br />

hohe Effizienz und Effektivität


3. Selbsttest<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 89/96<br />

Selbsttest


3. Selbsttest<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 90/96<br />

Falls noch Zeit übrig, aus [2, Kap. 4] übernehmen.


4. HW/SW-Systeme<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 91/96<br />

HW/SW-Systeme


of. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 92/96<br />

4. HW/SW-Systeme<br />

Der Hardware-Entwurf gleicht bis zur Simulation der<br />

Funktionsbeschreibung dem Software-Entwurf.<br />

Der Architekturenwurf verteilt die Funktionalität<br />

auf Hard- und Software-Bausteine<br />

Definiert die Funktion der Bausteine und<br />

der Schnittstellen dazwischen.<br />

Ergebnis ist ein System aus miteinander kommunizierender<br />

Funktionsbausteine.<br />

Die Schritte danach<br />

Synthese, Technologieabbildung<br />

Platzierung und Verdrahtung<br />

sind meist automatisiert.


4. HW/SW-Systeme<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 92/96<br />

Diagnosesystem und Einschalttest<br />

Komplexe IT-Systeme (Rechner, Programme, ...) enthalten in<br />

der Regel Funktionen für Test und Fehlerlokalisierung<br />

zur Vereinfachung von Reparatur und Wartung<br />

zur Erzeugung und Übermittlung der Fehlerinformationen<br />

an den Hersteller, damit dieser die zugrunde liegenden<br />

Fehler sucht beseitigt.<br />

Typische Lösungen:<br />

Systeme mit Rechner haben einen Einschalttest, der die<br />

Funktion der Hardware testet.<br />

Baugruppen und Schaltkreis mit Test- und<br />

Wartungsbusanschluss für einen Diagnoserechner.<br />

Programm, die bei internen Fehlern Fehlercodes an den<br />

Hersteller senden.<br />

eingebaute Diagnosesysteme mit auslesbarem Fehlerspeicher.


4. HW/SW-Systeme<br />

Prüfgerechte<br />

Mikrorechnersoftware<br />

Initialisierungs-<br />

Code<br />

externe Signale<br />

Zählerübertrag<br />

. . .<br />

Task 1<br />

bereit<br />

ja<br />

Task 1<br />

nein<br />

Interupt-<br />

Routinen<br />

Initialisierungs-Code<br />

Sprünge zum Programmbeginn<br />

und den Interrupt-<br />

Routinen<br />

Initialisieren der SFR (Peripherie<br />

initialisieren, Stack einrichten, ...)<br />

Einschaltselbstest<br />

Task 2<br />

bereit<br />

nein<br />

Task n<br />

bereit<br />

ja<br />

ja<br />

Task 2<br />

Task n<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 93/96


4. HW/SW-Systeme<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 94/96<br />

Testen der Tasks<br />

Testrahmenprogramm für Unterprogramme auf dem Mikrorechner<br />

Wiederhole immer<br />

cmd = getByte();<br />

Fallunterscheidung nach dem<br />

Wert von cmd<br />

Byte Setzen Byte Lesen<br />

adr = getWort() adr = getWort()<br />

Wert = getByte() Wert = Lese(adr)<br />

Schreibe(adr, Wert) sendByte(Wert)<br />

sendByte(Cmd)<br />

Teststeuerdatei auf dem PC und Testergebnisse<br />

# Aktion Adresse Eingabewert Rückgabewert<br />

L<br />

L<br />

X<br />

S<br />

211<br />

212<br />

2145<br />

115<br />

45<br />

3<br />

Unterprogramm · · ·<br />

ausführen<br />

adr = getWort() · · ·<br />

RestartTimer()<br />

Ausfuehren(adr)<br />

sendTime()<br />

<br />

<br />

<br />


4. HW/SW-Systeme<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 95/96<br />

Testen der Interrupt- und Task-Abarbeitung<br />

ISR1:<br />

...<br />

Debug = ISR Nr;<br />

...<br />

reti;<br />

Task1:<br />

Debug = Task1 Begin;<br />

...<br />

Debug = Task1 Ende;<br />

ret;<br />

· · ·<br />

Logikanalysator<br />

Mikro-<br />

· · ·<br />

Rechner<br />

· · ·<br />

Zeit<br />

in µs<br />

Debug-<br />

Nummer<br />

Aktion<br />

3 0 Start-Up Beginn<br />

45<br />

162<br />

184<br />

212<br />

1<br />

5<br />

28<br />

29<br />

Start-Up Ende<br />

ISR1<br />

Task 1 Beginn<br />

Task 1 Ende<br />

... ... ...<br />

PC


4. HW/SW-Systeme<br />

Prof. G. Kemnitz · Institut für Informatik, Technische Universität Clausthal 13. Juli 2012 96/96<br />

[1] R. Kärger.<br />

Diagnose von Computern.<br />

Teubner, 1996.<br />

[2] G. Kemnitz.<br />

Test und Verlässlichkeit von Rechnern.<br />

Springer, 2007.<br />

n

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!