Foliensatz 5
Foliensatz 5
Foliensatz 5
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