F4: Test und Fehlerbeseitigung
Test und Verlässlichkeit (F4)
Foliensatz 4:
Test und Fehlerbeseitigung
Prof. G. Kemnitz
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
1/221
Inhalt F4: Test und Fehlerbeseitigung
2.1
2.2
2.3
2.4
2.5
2.6
2.7
3.1
3.2
3.3
3.4
3.5
3.6
Überblick
Fehlermodellierung
Nachweisbedingungen
Testauswahlstrategie
Digitale Schaltungen
Fertigungsfehler ICs
Fehlersimulation
Entwurfsfehler
Aufgaben
Zufallstest
Erforderliche Testsatzlänge
Zuverlässigkeitswachstum
Pseudo-Zufallsgeneratoren
Selbsttest mit LFSR
Gewichteter Zufallstest
Aufgaben
Prof. G. Kemnitz
·
4.1
4.2
4.3
4.4
4.5
5.1
5.2
5.3
5.4
6.1
6.2
6.3
6.4
6.5
Testberechnung
D-Algorithmus
Sequentielle Schaltungen
Äquivalenzklassen
Speichertest
Aufgaben
Fehlerbeseitigung
Ersatz
Input-Workaround
Reparatur
Aufgaben
Testumgebungen
Modultest
Funktionstester
Schaltungstester
Boundary Scan / JTAG
Aufgaben
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
2/221
1. Überblick
Prof. G. Kemnitz
Überblick
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
3/221
1. Überblick
Test und Fehlerbeseitigung
!
Entstehungsprozess
Reparatur
Test
!
FehlerbeFehlervermeidung seitigung
Fehler
korrekte Eigenschaft
korrekt klassifiziert
! falsch klassifiziert
Tests sind Kontrollen der Eigenschaften1 des Systems.
Fehlerhafte Eigenschaften werden mit einer gewissen
Wahrscheinlichkeit erkannt und einer Fehlerbeseitigung
zugeleitet. Beseitigung bedeutet in der Regel Reparatur oder
Ersatz der kleinsten lokalisierbaren fehlerhaften Einheit.
Erkannte Fehler liefern Hinweise auf ihre Entstehungsursache und
Möglichkeiten für eine künftige Fehlervermeidung.
1
Nicht wie auf dem vorherigen Foliensatz der Ergebnisse.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
4/221
1. Überblick
Zu testende Anforderungen
Sprichwort: Vertrauen ist gut, Kontrolle ist besser.
Nach diesem Motto: Kontrolle, was nicht zusicherbar ist:
funktionale Anforderungen, Bedienbarkeit,
selbstverständliche Anforderungen, z.B. dass eine Software
installierbar sein muss,
Einhaltung von Standards,
Funktionsfähigkeit unter vorgeschrieben Umgebungsbedingungen (nur im Labor, auch im Freien, in Fabrikhallen, ...),
Verlässlichkeitsanforderungen (Wartbarkeit, Zuverlässigkeit,
Sicherheit, ...), ...
Erkannte Fehler und Probleme erfassen. Fehler beseitigen. Für
Probleme, die keine Fehler sind, Lösungen suchen. Der Blickwinkel des Foliensatzes: Kontrolle funktionaler Anforderungen
und Beseitigung funktionaler Fehler.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
5/221
1. Überblick
Statische und dynamische Test
Tests werden grob eingeteilt in:
dynamische Tests (D): stichprobenweises Ausprobieren der
Service-Leistungen und
statische Tests (S): alle anderen Arten von Kontrollen am
System (Syntaxtest, Korrekturlesen von
Entwurfsbescheibungen, Sichtkontrollen an Baugruppen, ... ).
Statische und dynamische Tests weisen unterschiedliche Fehler
nach und werden in der Regel kombiniert, z.B.
Kontrolle der Spezikation durch den Auftraggeber (S),
Kontrolle der Lösungsidee durch einen Kollegen (S),
Syntaxtest des Programms (S),
Ausprobieren eigener Testbeispiele (D),
Ausprobieren beim Anwender (D),
Kontrolle der Dokumentationen (S).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
6/221
1. Überblick
Beispiel Programmieraufgabe in einem Praktikum:
Erstellen der Aufgabenstellung: Korrekturlesen durch den
Lehrenden (S).
Beispielimplementierung durch den Lehrenden, Syntaxtest
(S), Beispiele ausprobieren (D).
Lösungssuche durch den Studierenden und Diskussion über
die Lösung mit dem Praktikumspartner (S).
Programmieren und Syntaxtest (S), Ausprobieren (D).
Praktikumsbetreuer schaut sich den Code an (S).
Praktikumsbetreuen lässt sich Beispiel vorführen (D).
Statische Tests (S) dienen meist als Vorlter und dynamische
Tests (D) zur gründlichen Kontrolle.
Die gebräuchlichsten automatisierten statischen Tests für
IT-Systeme, Syntaxtest und Typenkontrolle, wurden auf
Foliensatz F3 behandelt. Die andere groÿe Klasse, Inspektionen,
werden wegen ihrem starken Bezug zur Fehlervermeidung erst auf
Foliensatz F5 behandelt.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
7/221
1. Überblick
Dynamische Tests
Testfälle
zu testende
Systeme
Wiederhole für alle Testfälle
Eingaben bereitstellen
Service anfordern
Ergebnis protokollieren
Test- alles o.k.
!
protokoll
!
!
!
Reparatur
Fehler
korrekte Eigenschaft
fehlerhaftes Ergebnis ! falsch klassifiziert
korrektes Ergebnis
korrekt klassifiziert
Ein dynamischer Test arbeitet eine Menge von Testfällen ab und
erstellt ein Protokoll, welche Tests das Testobjekt bestanden hat
und welche nicht. Fehlklassizierungen, dass negative
Testergebnisse als gut und positive als Versagen klassiziert
werden, nicht ausgeschlossen. Objekte, für die die Tests versagt
haben, werden aussortiert oder repariert und nochmal getestet.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
8/221
1. Überblick
Testsatz und Testfall
Ein Testsatz besteht aus einer Menge von Testfällen. Eine
Testfallbeschreibung umfasst mindestens
die Testeingaben,
zu kontrollierende Ergebnisse und
Mittel zu Testdurchführung (Hardware, Testrahmen).
Die Ergebniskontrolle ist in der Regel ein Vergleich mit Sollwerten
(exakt oder Fenstervergleich (siehe F3, Abschn. 4.1). Die
Hardware für die Testdurchführung kann ein normaler Rechner
mit Betriebssystem und bestimmten Mindestanforderungen oder
ein spezieller Tester sein. Der Testrahmen ist das Programm, das
die Testsätze abarbeitet und das Testprotokoll erzeugt und hat
idealerweise für die Fehlersuche auch die Möglichkeit, Testfälle,
Teiloperationen und Einzeloperationen schrittweise auszuführen
und Zwischenergebnisse zu kontrollieren.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014
9/221
1. Überblick
Testfall nach [ANSI/IEEE-Standard 829]
Testfälle dienen nicht nur zur Aufdeckung von Fehlern, sondern
auch zur Vertrauensbildung und zur Absicherung des Herstellers,
dass er seine Picht, den Anwender vor Schaden zu bewahren,
erfüllt hat. Der Standard [ANSI/IEEE-Standard 829] empelt
dazu eine Ergänzung der Testfallbeschreibung um:
Testfall-Identikation: eindeutiger Bezeichner
Testgegenstand: Referenz auf die Bescheibung, aus der
Anforderungen überprüft werden,
Zweck: Anforderung, deren Erfüllung der Test bestätigt,
Testfallstatus: speziziert, durchgeführt, ...
und die Erzeugung eines Testprotokolls für jedes als gut
befundene Objekt, aus dem hervorgeht, aus welchen Dokumenten
welche Anforderungen mit welchem Ergebnis kontrolliert wurden.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 10/221
1. Überblick
Prüfgerechter und testgetriebener Entwurf
Der Aufwand für den Testentwurf ist im Vergleich zum
eigentlichen Entwurf sehr hoch:
Testfälle erstellen und verwalten
Testrahmen schreiben,
Tests durchführen, Ergebnisse auswerten,
Testprotokolle verwalten.
Hinzu kommt, dass bei der alt hergebrachten Herangehensweise
erst das System und dann die Testfälle entwerfen Letzteres
nicht immer lösbar ist, so dass Anforderungen und
Systembestandteile ungetestet bleiben. Der moderne Ansatz
lautet, parallel in jeder Entwurfsphase und zur Spezikation jeder
Anforderung gleich Testfälle sammeln bzw., Anfordereungen wie
Testfälle spezizieren. Bei Hardware wird diese Strategie als
prüfgerechter und bei Software als testgetriebener Entwurf
bezeichnet.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 11/221
1. Überblick
Produkthaftung und Standards
Gröÿere IT-Systeme haben statistisch gesehen immer Fehler und
andere Schwachstellen, die in der Anwendungsumgebung zum
Teil erheblichen Schaden verursachen können. Nach
Schadenseintritt lässt sich oft rückwirkend nachweisen, dass die
Ursache ein Entwurfs- oder Fertigungsfehler war.
Wer haftet?
Der Hersteller kann sich nur der Haftung entziehen, wenn er
nachweisen kann, dass er alle dem Stand der Technik
entsprechenden Maÿnahmen zur Schadensabwendung ergrien
hat, d.h. den Fehler trotz ausreichend gründlichem Test
übersehen hat. Um diesen Nachweis erbringen zu können, gibt es
Standards, die in durchführbarer und überprüfbaren Weise
festlegen, was für Tests und anderen verlässlichkeitssichernde
Maÿnahmen als ausreichend gelten und wie deren Erbringung zu
dokumentieren bzw. nachzuweisen ist.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 12/221
1. Überblick
Aktuelle Standarts und Normen
ISO 9126/DIN 66272: Qualitätsmerkmale für Software.
V-Modell XT: Leitfaden zum Planen und Durchführen von
Entwicklungsprojekten unter Berücksichtigung des gesamten
Systemlebenszyklus.
ANSI/IEEE Std 829-1998: Standard für Software Test
Dokumentation.
ANSI/IEEE Std 1008-1993: Standard für Software Unit Test.
ANSI/IEEE Std 1012-1998: Standard für Software
Vercation and Validation Plans.
DIN 66 285: Anleitung für die Vergabe von Gütesiegeln für
Software-Produkte.
Die ISO/IEC 14598:1999-2001:v Sechbändige Norm, die den
Prozess der Bewertung eines Software-Produkts beschreibt.
...
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 13/221
2. Fehlermodellierung
Prof. G. Kemnitz
Fehlermodellierung
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 14/221
2. Fehlermodellierung
Zufallstest
Ein gröÿeres System hat statistisch gesehen Fehler. Welche ist
unbekannt. Erkannte Fehler werden beseitigt. Der Ausschluss
aller Fehlermöglichkeiten durch Kontrolle aller Anforderungen ist
ausgeschlossen. Jeder Test ist deshalb nur ein Filter, der einen
Teil der Fehler erkennt. Der Anteil der erkennbaren Fehler ist die
Fehlerüberdeckung:
FC =
ϕN
ϕE
(ϕN Anzahl der nachweisbaren; ϕE Anzahl aller
(entstandenen) Fehler, Zufallsgröÿen).
Abschätzmöglichkeiten:
aus statistischen Erfahrungswerten oder
über Modellfehlermengen.
Am einfachsten abschätzbar für einen Zufallstest, d.h., wenn die
Eingaben zufällig ausgewählt werden.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 15/221
2. Fehlermodellierung
Prof. G. Kemnitz
1. Nachweisbedingungen
Nachweisbedingungen
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 16/221
2. Fehlermodellierung
1. Nachweisbedingungen
Modellfehler, Nachweismengen und -bedingungen
Vorhersagen der Fehlerüberdeckung verlangen Annahmen über
die möglicherweise vorhandenen Fehler, deren Nachweismengen
und/oder Nachweisbedingungen.
Modellfehler: Annahmen für mögliche Fehler.
Nachweismenge: Menge von Eingaben, mit denen ein Fehler
nachweisbar ist.
Nachweisbedingungen: Voraussetzungen für den
Fehlernachweis, z.B., dass für den Nachweis eines Fehlers in
einem Teilservice, diese ausgeführt und seine Ergebnisse
beobachtbar sein müssen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 17/221
2. Fehlermodellierung
1. Nachweisbedingungen
Der Nachweis eines lokalen Fehlers in einem System verlangt
Testeingaben, die
den Fehler anregen2 und
einen Beobachtungspfad erzeugen, entlang dem sich die
Verfälschung zu einem beobachtbaren Ausgang fortplanzt.
x0
x1
x2
f1
f2
xn−1
M1
M⋄
M2
y
Fehler
Fehlfunktion (Datenverfälschung)
Eingaben zur Fehleranregung
Einstellen der Beobachtbarkeit
Beobachtungspfad
M1 Eingabemenge, mit der der
Fehler angeregt wird
M2 Eingabemenge, bei der der
Fehlerort beobachtbar ist
M⋄ Nachweismenge des Fehlers
Die Nachweismenge eines (Modell-) Fehlers ist die Schnittmenge
der Eingabemengen, die die einzelnen Nachweisbedingungen
erfüllen.
2
Eingaben, bei denen der Fehler eine lokale Datenverfälschung bewirkt.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 18/221
2. Fehlermodellierung
1. Nachweisbedingungen
Nachweisbedingungen in einer Gatterschaltung
Signalwerte zur Sensibilisierung
des Beobachtungspfades
Eingaben zur
Fehleranregung
x2 1
x0 1 1 x1
&
&
1
0
x3 0 0 x4
0→1
Signalwerte für den Fehlernachweis
Fehler (ständig 1, stuck-at 1)
Fehlfunktion (Ausgabeinvertierung)
Eingabemenge Fehleranregung:
1→0
x5 1 1 x6
≥1
&
0→1
y
1→0
Eingaben zur Fehleranregung
Einstellung der Beobachtbarkeit
Beobachtungspfad
M1 = {- - - - -11}
Eingabemenge Beobachtbarkeit: M2 = {11001- -}
Fehlernachweismenge:
Prof. G. Kemnitz
·
M1 ∩ M2 = {1100111}
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 19/221
2. Fehlermodellierung
1. Nachweisbedingungen
Verallgemeinerung
Der Fehlernachweis kann auch von gespeicherten Zuständen
abhängen. Anregung/Beobachtung über eine Eingabefolge.
Der Fehlernachweis kann weiterhin von eingabeunabhängigen
Bedingungen abhängen, z.B. Bereich der
Versorgungsspannung, ...
Aufspaltung des Fehlernachweises in mehrere Einzelbedingungen:
x ∈ (M1 ∩ M2 ∩ . . . 6= ∅) ∧ B1 ∧ B2 ∧ . . .
(Mi Eingabemenge einer notwendigen Anregungs- oder
Beobachtungsbedingung; Bi eingabeunabhängige
Nachweisbedingung).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 20/221
2. Fehlermodellierung
1. Nachweisbedingungen
Modellfehler und Fehlermodelle
Ein Modellfehler ist eine einfach nachzubildende oder zu
simulierende Änderung an der korrekten
Systembeschreibung, die sich mit möglichen Fehlern viele
Nachweisbedingungen teilt.
Ein Fehlermodell ist ein Algorithmus/Rezept/Regelwerk, mit
dem für das Testobjekt eine Menge von Modellfehlern
ausgewählt wird.
Modellfehler dienen entweder zur Suche geigneter
Testeingaben oder zur Abschätzung der Fehlerüberdeckung
für einen gegebenen (meist zufällig ausgewählten) Testsatz.
Wiederhole für jeden Modellfehler
Suche einen oder mehrere Tests,
mit denen er nachweisbar ist.
Prof. G. Kemnitz
·
Wiederhole für jeden Modellfehler
Test, ob vom Testsatz nachweisbar.
Zählen, wenn nachweisbar.
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 21/221
2. Fehlermodellierung
1. Nachweisbedingungen
Ein denkbares Fehlermodell für Programme
Jeder ganzzahlige Operand soll einmal um eins erhöht
und einmal um eins verringert sein.
fehlerfreies Testobjekt:
1:
2:
3:
4:
int a, b, c, d;
a=b-c;
if (a>2) d=c;
else d=b;
Modellfehler (die übrigen Anweisungen bleiben unverändert)
M1:
M2:
M3:
M4:
Prof. G. Kemnitz
Veränderung
Veränderung
Veränderung
Veränderung
·
Zeile
Zeile
Zeile
Zeile
2:
2:
2:
2:
a=(b+1)-c;
a=(b-1)-c;
a=b-(c+1);
a=b-(c-1);
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 22/221
2. Fehlermodellierung
M5:
M6:
M7:
M8:
M9:
M10:
Veränderung
Veränderung
Veränderung
Veränderung
Veränderung
Veränderung
Zeile
Zeile
Zeile
Zeile
Zeile
Zeile
1. Nachweisbedingungen
3:
3:
3:
3:
4:
4:
if ((a+1)>2) d=c;
if ((a-1)>2) d=c;
if (a>2) d=(c+1);
if (a>2) d=(c-1);
else d=(b+1);
else d=(b-1);
Identisch nachweisbare Modellfehler können zu einem
Modellfehler zusammengefasst werden, im Beispiel M1 und M4,:
(b + 1) − c = b − (c − 1)
Ein Fehlermodell ist so zu wählen, dass die Modellfehlerüberdeckung, die sich bestimmen läÿt, Rückschlüsse auf die
tatsächliche Fehlerüberdeckung erlaubt. Der Zusammenhang
zwischen tatsächlicher und Modellfehlerüberdeckung hängt von
den Gröÿenverhältnissen der Nachweismengen, deren
Überschneidungen, aber auch von der Art der Testauswahl ab.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 23/221
2. Fehlermodellierung
Prof. G. Kemnitz
2. Testauswahlstrategie
Testauswahlstrategie
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 24/221
2. Fehlermodellierung
2. Testauswahlstrategie
Gezielte Testauswahl
Für jeden Modellfehler wird eine oder werden mehrere Eingaben
gesucht, die ihn nachweisen.
Ω
Nachweismenge eines Fehlers
F
M
Eingabemenge, die eine korrespondierrende Nachweisbedingung erfüllt
relative Größe der Schnittmenge als
Schätzwert für die Wahrscheinlichkeit,
dass ein Test aus M den Fehler nachweist
Der Nachweis der unbekannten Fehler ist Zufall.
Für alle Modellfehler, die sich Nachweisbedingungen mit
einem Fehler teilen, impliziert jeder gefundene Test mit einer
Wahrscheinlichkeit den Nachweis des Fehlers.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 25/221
2. Fehlermodellierung
Ω
2. Testauswahlstrategie
Nachweismenge eines Fehlers
F
M
Eingabemenge, die eine korrespondierrende Nachweisbedingung erfüllt
relative Größe der Schnittmenge als
Schätzwert für die Wahrscheinlichkeit,
dass ein Test aus M den Fehler nachweist
Die Nachweiswahrscheinlichkeit für tatsächliche Fehler ist um so
gröÿer,
je gröÿer der Anteil der Schnittmenge der Nachweismenge
des Modellfehlers mit der des tatsächlichen Fehlers ist,
je mehr Modellfehler sich Nachweisbedingungen mit dem
tatsächlichen Fehler teilen und
je mehr Tests für jeden Modellfehler gesucht werden.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 26/221
2. Fehlermodellierung
Ω
Ω
2. Testauswahlstrategie
Menge der Eingabewerte /Teilfolgen
die einen Fehler nachweisen können
Nachweismenge eines Modellfehlers
Nachweismenge eines tatsächlichen Fehlers
Ein Fehlermodell erzeugt viele Modellfehler.
Alle potenziellen Fehler sollten eine gröÿere Nachweismengenüberscheidung mit mehreren Modellfehlern haben.
Die Überschneidungen entstehen durch gleiche Anregungsund Beobachtungsbedingungen.
⇒ Modellierung von Anregungs- und Beobachtungsbedingungen
für alle Signal-, Kontroll- oder Datenusspfade.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 27/221
2. Fehlermodellierung
2. Testauswahlstrategie
Zufällige Testauswahl
Zufällige, von den Nachweismengen der Modellfehler unabhängige
Auswahl von Eingabewerten. Modellfehler dienen nur zur
Bewertung.
Ω
Nachweismenge eines Fehlers
F
M
Nachweismenge, die einen korrespondierrenden Modellfehler nachweist
zufällig ausgewählter Test
Gedankenmodell:
Füllen des Eingaberaums solange mit Punkten, bis zufällig
die Menge M getroen wird. Wenn F genauso groÿ ist,
bekommt F mit derselben Wahrscheinlichkeit ein Treer ab.
Keine Überschneidungen, sondern nur ähnliche /
umrechenbare Gröÿen der Nachweismengen erforderlich.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 28/221
2. Fehlermodellierung
Ω
2. Testauswahlstrategie
Nachweismenge eines Fehlers
F
M
Nachweismenge, die einen korrespondierrenden Modellfehler nachweist
zufällig ausgewählter Test
Gedankenmodell 2:
Fehlermodell zur Abschätzung der Fehlernachweisdichte.
Über die Fehlernachweisdichte wird die Anzahl der
nachweisbaren Fehler als Funktion der Testsatzlänge bzw.
die erforderliche Testsatzlänge abgeschätzt.
Vorteile zufälliger gegenüber gezielter Auswahl:
Geringere Anforderungen an das Fehlemodell.
Genauere Vorhersage der tatsächlichen Fehlerüberdeckung.
Nachteil eines Zufallstests:
Erfordert wesentlich längere Testsätze für dieselbe
Fehlerüberdeckung.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 29/221
2. Fehlermodellierung
2. Testauswahlstrategie
Mischformen
Bevorzugung von Testeingaben, die auch Modellfehler
nachweisen.
Kombination eines Zufallstests, der die einfach
nachweisbaren Modellfehler nachweist, mit gezielt
ausgewählten Tests für die restlichen Modellfehler.
Intuitive Auswahl basierend auf Erfahrungen über Fehler in
anderen Objekten.
...
Vergleich mit Zufallstestsätzen gleicher Modellfehlerüberdeckung: viel kürzer und geringere Fehlerüberdeckung.
Vergleich mit geziel ausgewählten Testsätzen gleicher
Modellfehlerüberdeckung: deutlich länger und höhere
tatsächliche Fehlerüberdeckung.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 30/221
2. Fehlermodellierung
Prof. G. Kemnitz
3. Digitale Schaltungen
Digitale Schaltungen
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 31/221
2. Fehlermodellierung
3. Digitale Schaltungen
Haftfehlermodell
Das gebräuchlichste Fehlermodell ist das bereits auf Foliensatz F2
eingeführte Haftfehlermodell. Es unterstellt für jedes binäre
Datensignal, dass es durch einen Fehler ständig auf null (stuck-at
0) oder ständig auf eins (stuck-at-1) gehalten wird.
0 1
x1
y
&
x2
x2 x1
0 1
0 1
0
sa0-Modellfehler
1
sa1-Modellfehler
identisch nachweisbar
implizit nachweisbar
0
0
1
1
0
1
0
1
x2 ∧ x1 sa0(x1 ) sa1(x1 ) sa0(x2 ) sa1(x2 ) sa0(y) sa1(y)
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
Nachweisidentität (gleiche Nachweismenge)
Nachweisimplikation
zugehörige Eingabe ist Element der Nachweismenge
Aus der so berechneten Anfangsmenge werden redundante Fehler,
implizit nachweisbare und identisch nachweisbare Fehler
gestrichen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 32/221
2. Fehlermodellierung
3. Digitale Schaltungen
Toggle-Test
Ein Toogle Test kontrolliert, dass bei Abarbeitung des Testsatzes
jedes logische Signal mindestens einmal 0 und einmal 1 ist.
zi = 0
Menge alle
Eingabewerte
zi = 1
zi beobachtbar
sa1(zi ) nachweisbar
sa0(zi ) nachweisbar
Garantiert Steuerbarkeit für alle Haftfehler. Gleichzeitige
Beobachtbarkeit ist Zufall.
Eine vergleichbare Haftfehlerüberdeckung verlangt einen
wesentlich längeren Zufallstestsatz bzw. einen Testsatz, der
für jede einzustellende null bzw. eins eine Vielzahl von Tests
enthält (Anzahl ca. Kehrwert der Beobachtbarkeit3 ).
Ähnlich wie bei Anweisungsüberdeckung, nur dass logische Zwischenergebnisse oft schlecht und Programmzwischenergebnisse gut beobachtbar sind.
3
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 33/221
2. Fehlermodellierung
3. Digitale Schaltungen
Zellenfehlermodell (ROM, LUTs, ...)
x2
x1
x0
ODER-Matrix
H
H
H
p0 = x̄2 x̄1 x̄0
H
H
p1 = x̄2 x̄1 x0
H
···
H
···
p2 = x̄2 x1 x̄0
···
p7 = x2 x1 x0
UND-Matrix
y 1 = p0 ∨ p2
y 0 = p0 ∨ p7
Pull-Up-Element
Treiber
normaler
Transistor
programmierbarer
Transistor
ständig gesperrt
einschaltbar
Für jede Programmierstelle, Annahme falsch gesetzt oder für
jedes Ausgabebit in der Wertetabelle ausgabe invertiert. Ein
Testsatz mit 100% Zellenfehlerüberdeckung weist jede kombinatorische Funktionsabweichung und auch jeden Haftfehler nach.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 34/221
2. Fehlermodellierung
Sollfunktion
x 2 x 1 x 0 y1 y0
0 0 0 1 1
0 0 1 0 0
0 1 0 0 1
0 1 1 1 1
Fehler
1
2
3
4
3. Digitale Schaltungen
verfälschtes Bit
y0 für x = 000
y1 für x = 000
y0 für x = 001
y1 für x = 001
Anzahl der Modellfehler:
ϕM = NA · 2NE
(NE Anzahl der Eingänge; NA Anzahl der Ausgänge).
Vergleich Zellenfehler und Haftfehler für freistrukturierte
Schaltungen (Realisierung aus Gattern statt durch
programmierte Speicher):
u.U. wesentlich mehr Modellfehler,
viele davon im Systemverbund redundant,
Nachweis der Redundanz schwer zu erbringen.
Geeignet für LUTs, Volladdierer, ... Für Gatterschaltungen aus
UND, ODER, ... ist das Haftfehlermodell besser geeignet.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 35/221
2. Fehlermodellierung
3. Digitale Schaltungen
Gatterverzögerungsfehler
0
z1
≥1
0
z2
≥1
th2 , td2
th1 , td1
1
z3
td1
&
z4
th3 , td3
tGA Gültigkeitsdauer am Pfadanfang
tGE Gültigkeitsdauer am Pfadende
z1
z2
z3
z4
td2
td3
tGE
1
0
1
0
1
0
1
0
tGA
th1 th2 th3
Modellfehler: Zu kurze Haltezeit th , zu lange
Verzögerungszeit td . Abtastung ungültiger Werte.
2-Pattern-Test: Eine Eingabe zur Initialisierung und eine
zum Nachweis
Haftfehlertest + Initialisierungseingabe
Ein Testsatz mit hohe Haftfehlerüberdeckung besitzt in der
Regel auch eine hohe Verzögerungsfehlerüberdeckung.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 36/221
2. Fehlermodellierung
3. Digitale Schaltungen
Pfadverzögerungsfehler
Modellfehler: Für alle Pfade durch die Schaltung
slow-to-rise-Fehler (erhöhte 01-Verzögerung)
slow-to-fall-Fehler (erhöhte 10-Verzögerung)
Robuster Test: Maskierungsausschluss für
Mehrfachverzögerungsfehler
einfacher
Verzögerungsfehler
Mehrfachverzögerungsfehler
x1 x2
&
y
x1
x2
x1
x2
Prof. G. Kemnitz
≥1
y
y
nachweisbar
·
nicht
nachweisbar
a)
00
11
00
(01)
Institut für Informatik, Technische Universität Clausthal
&
(10)
≥1
(01)
(10)
b)
29. Juni 2014 37/221
2. Fehlermodellierung
3. Digitale Schaltungen
Problem Pfadanzahl; Beispiel Matrixmultiplizierer
(a3 · 23 + a2 · 22 + a1 · 21 + a0 · 20 ) · (b3 · 23 + b2 · 22 + b1 · 21 + b0 · 20 ) =
p7
Prof. G. Kemnitz
a3 b0 · 23 + a2 b0 · 22 + a1 b0 · 21 + a0 b0 · 20
a3 b1 · 24 + a2 b1 · 23 + a1 b1 · 22 + a0 b1 · 21
a3 b2 · 25 + a2 b2 · 24 + a1 b2 · 23 + a0 b2 · 22
a3 b3 · 26 + a2 b3 · 25 + a1 b3 · 24 + a0 b3 · 23
p6
p5
b0
p4
b1
a0
&
a1
&
a2
&
a3
&
p3
b2
&
&
&
&
HA
s
c
VA
s
c
VA
s
c
HA
s
c
Pfade von b0 nach p7
p1
p0
b3
p0
p1
&
&
&
&
·
p2
p2
HA
s
c
VA
s
c
&
VA
s
c
&
VA
s
c
&
&
HA
s
c
p3
VA
s
c
p4
VA
s
c
p5
VA
s
c
p6
p7
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 38/221
2. Fehlermodellierung
3. Digitale Schaltungen
Pfade von b0 nach p7
a-k
a bc l
l m ...
e f gh i j k m
...
i j k ...
e f gh m
bcd f g h ...
i ...
j k ...
in einem
gerichteter Graph
mit Maschen nimmt
die Pfadanzahl exponentiell zu
ae l m
bf i l
c d g h ...
ab e f i l m
c f g j ...
dh k ...
a...
Ausschluss verlängerter 01- und 10-Wechsels entlang aller
Pfade schlieÿt überhöhte Verzögerungen aus.
In Schaltungen mit rekonvergenten Auächerungen wächst
die Pfadanzahl exponentiell mit der Schaltungsgröÿe.
Exponenziell wachende Fehlermengen ⇒ nicht praxistauglich
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 39/221
2. Fehlermodellierung
3. Digitale Schaltungen
Subsumtionshierarchie von Fehlermodellen
Subsumption bedeutet in den Beschreibungslogiken, dass ein
Konzept (eine eindeutig beschriebene Menge von Objekten)
eine Teilmenge eines anderen Konzepts ist.
Fehlermodell A subsumiert Fehlermodell B, wenn ein
Testsatz, der alle Modellfehler von A nachweist, garantiert
auch alle Modellfehler von B nachweist.
Gatterverzögerungsfehlermodell
ToggleTest
Haftfehlermodell
Pfadverzögerungsfehlermodell
Zellenfehlermodell
Subsumtion
Bei 100% Modellfehlerüberdeckung haben auch die Modellfehlermengen aller subsumierten Fehlermodelle 100% Überdeckung.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 40/221
2. Fehlermodellierung
3. Digitale Schaltungen
Je höher ein Fehlermodell in der Subsumtionshierarchie steht:
desto geringer ist tendentiell die Modellfehlerüberdeckung
für denselben Testsatz,
desto gröÿer ist tendenziell die Fehlerüberdeckung bei
gleicher Modellfehlerüberdeckung,
desto gröÿer ist der Aufwand für die Testsuche,
desto länger muss ein Zufallstestsatz für eine angestrebte
Fehlerüberdeckung sein.
Kompromiss
für die Praxis
ToggleTest
Prof. G. Kemnitz
Haftfehlermodell
·
Gatterverzögerungsfehlermodell
Zellenfehlermodell
Institut für Informatik, Technische Universität Clausthal
Pfadverzögerungsfehlermodell
Subsumtion
29. Juni 2014 41/221
2. Fehlermodellierung
Prof. G. Kemnitz
4. Fertigungsfehler ICs
Fertigungsfehler ICs
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 42/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Fertigungsfehler integrierter Schaltkreisen
Schaltkreise werden schichtenweise hergestellt:
Auftragen von Schichten (z.B. Fotolack
oder Metall),
Belichten des Fotolacks durch eine Maske,
die die Geometrie der zu erzeugenden
Schichtelemente festlegt,
Entfernen der belichteten (unbelichteten)
Bereiche des Fotolacks,
Fortätzen der freiliegenden Schichten neben
dem Fotolack und entfernen des Fotolacks.
Typische Herstellungsfehler:
fehlendes (zu wenig aufgetragenes zu viel weggeätztes) und
überüsiges (zu viel aufgetragenes, zu wenige weggeätztes)
Leitungs- oder Isolationsmaterial in einer Schicht.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 43/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Metall 1
Wirkung: Kurzschlüsse, Unterbrechungen, nicht richtig ein- oder
ausschaltende oder zu langsam schaltende Transistoren.
Metall 2
A
Metall 2
B
C
A zuätzliches Metall
B fehlendes Metall
C fehlende Isolation
Mehrfachfehler durch einzelne Fehleräche möglich.
Einzelfehlerannahme genügt, weil ein Test für Einzelfehler
auch die meisten Mehrfachfehler nachweist.
Notwendige Nachweisbedingungen:
Anregung: Einstellung einer 0 oder 1 am Fehlerort.
Beobachtung: Sensibilisierung eines Beobachtungspfads vom
Fehlerort zu einem Ausgang.
Alternative Beobachtungsmöglichkeiten:
erhöhte Verzögerung und Stromaufnahme während des Tests.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 44/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Kurzschlussnachweis mit einem Haftfehlertestsatz
Zum Nachweis eines Kurzschlusses müssen auf den
beteiligten Leitungen unterschiedliche Werte eingestellt und
das dabei verfälschte Signal beobachtet werden.
Die Menge der möglichen Kurzschlüsse in einer Schaltung ist
viel gröÿer als die Menge der Haftfehler. (Im ungünstigsten
Fall quadratische Zunahme mit der Schaltungsgröÿe.)
Die Fehlersimulation und die Testsatzberechnung sind auch
etwas aufwändiger als für Haftfehler.
Für Haftfehler ausgewählte Testsätze erkennen die meisten
Kurzschlussmöglichkeiten, so das explizite Modellierung
nicht zwingend ist.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 45/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Kurzschlussnachweis mit einem Haftfehlertestsatz
z1
x
vorgelagerte
Schaltung
z2
Kurzschluss
Ω
1
z1.1
1
F1
z1.2
1
F2
z2.1 1
F3
z2.2
F4
1
nachfolgende
Schaltung
y
Modellfehler (ständig 1)
Nachweismenge der vier Modellfehler
Nachweismenge des Kurzschlusses
Für jeden Haftfehler wird mindestens ein Test gesucht
Wie wahrscheinlich ist der tatsächliche Fehlernachweis?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 46/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Ω
Nachweismenge der vier sa1-Modellfehler
Nachweismenge des Kurzschlusses
Der Kurzschluss ist nachweisbar
z2 = 0 und F1 oder F2 nachweisbar oder
z1 = 0 und F3 oder F4 nachweisbar ist.
Überschläge:
Ein gezielt gesuchter Testsatz mit F C = 1 und N ≥ 4
Versuchen mit Kurzschlussnachweiswahrscheinlichkeit von je
50%:
pE ≥ 1 − 0,54 = 93,7%
Bei zufälliger Testauswahl ist die Nachweismenge des
Kurzschlusses etwa der doppelte Mittelwert der Gröÿe der
Nachweismengen der vier Haftfehler.
Grobabschätzung: Kurzschlussüberdeckung etwa
Haftfehlerüberdeckung des halben Testsatzes.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 47/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Ein Kurzschluss kann auch ein zusätzliches Speicherverhalten
verursachen.
Schaltung mit Kurzschluss
Ersatz des Kurzschlusses durch ein ODER
Kurzschluss (1 setzt sich durch)
G1
z1
z2
z3
&
G2
G3
&
&
z5
z6
z4
G3
z4
&
z1
G1
z2
z3
z3
&
z6
≥1
G2
&
Ersatzschaltung für z1 = z2 = 1
G3
z4
z5
&
G2
z5
z6
&
z4
S
z5
z3
R
z6
Für Fehler mit Speicherverhalten ist die Fehlersimulation und
Testberechung deutlich aufwändiger/schwieriger als für
Haftfehler.·
Prof. G. Kemnitz
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 48/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Zusammenfassung, Trendabschätzungen
Kurzschlüsse können sehr vielfältige Fehlerwirkungen haben.
Berücksichtigung aller Möglichkeiten in der Regel weder
notwendig, noch vom Aufwand her zu rechtfertigen.
Gezielt berechnete Haftfehlertestsätze mit hoher
Fehlerüberdeckung erkennen die meisten Kurzschlüsse.
Die Kurzschlussüberdeckung hängt dabei jedoch weniger von
der Haftfehlerüberdeckung, sondern mehr von der Anzahl
der Tests, die je Haftfehler gesucht werden ab.
Bei zufälliger Testauswahl ist die zu erwartende
Kurzschlussüberdeckung etwa gleich der zu erwartenden
Haftfehlerüberdeckung für einen kürzeren Testsatz.
Dieser Zusammenhang erlaubt vertrauenswürdigere
Vorhersagen, als der bei gezielter Testauswahl.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 49/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Fehlerwirkung von Unterbrechungen
Unterbrechung
Substrat
sa0
sa1
andere
Signalleitungen
Die abgetrennten Gattereingänge können dauerhaft auf null
oder eins liegen, driften oder den korrekten Wert erst nach
erheblicher Verzögerung annehmen.
Überwiegender Nachweis mit den Haftfehlertests für die
nachfolgenden Gattereingänge.
Sicherer Nachweis durch Kontrolle der Signalverzögerungen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 50/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Stuck-open-Fehler
UDD
x1
x2 x1
x2
0
0
1
1
y
CL
a)
0
1
0
1
y
1 (setzen)
0 (rücksetzen)
speichern
0 (rücksetzen)
b)
x2 x1
y
0
0
0
1
1
0
1
0
0
1
0
0
c)
Unterbrechung innerhalb eines Gatters, so dass die
Gatterausgangskapazität für bestimmte Eingaben nicht auf- bzw.
entladbar ist.
Überwiegender Nachweis mit den Haftfehlertests.
Sicherer Nachweis durch Kontrolle der Signalverzögerungen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 51/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Reale Schaltkreisfehler und Haftfehler
Ω
Ω
Menge der Eingabewerte /Teilfolgen
die einen Fehler nachweisen können
Nachweismenge eines Modellfehlers
Nachweismenge eines tatsächlichen Fehlers
Die möglichen Wirkungen von Schaltkreisfehlern sind
wesentlich vielfältiger als gezeigt (null setzt sich bei
Kurzschluss durch, ...)
Fast jeder logisch nachweisbare Schaltkreisfehler teilt sich
mit einem oder mehreren Haftfehlern den Beobachtungspfad
und einen Teil der Anregungsbedingungen.
Eine hohe Haftfehlerüberdeckung impliziert auch bei
gezielter Testauswahl eine hohe Überdeckung für
Fertigungsfehler.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 52/221
2. Fehlermodellierung
4. Fertigungsfehler ICs
Einschätzung der Güte von Schaltkreistests
Der typische Schaltkreistest hat eine Haft- oder Verzögerungsfehlerüberdeckung von 95% bis 100% und erkennt etwa 99,9% der
Herstellungsfehler. Der Wert 99,9% ist keine publizierte Zahl,
sondern über folgenden Überschlag mit typ. Werten abgeschätzt:
Von 106 gefertigten Schaltkreisen
sind etwa 10% bis 50% fehlerhaft
werden etwa 99,9% der defekten Schaltkreise von den
Fertigungstests erkannt und aussortiert.
Jeder 1000ste bis 10.000ste eingesetzte Schaltkreis hat einen
kaum nachweisbaren Fehler.
Jeder 10te Arbeitsplatzrechner enthält einen defekten Schaltkreis, erkennbar an abweichenden seltenen4 Fehlfunktionen
bei baugleichen Rechnern mit gleicher Software.
4
Fehler, die oft Fehlfunktionen verursachen, erkennt der Schaltkreistest.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 53/221
2. Fehlermodellierung
Prof. G. Kemnitz
5. Fehlersimulation
Fehlersimulation
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 54/221
2. Fehlermodellierung
5. Fehlersimulation
Fehlersimulation
Wiederhole für jede Testeingabe
Berechne die Ausgabe des fehlerfreien Systems
Wiederhole für jeden Modellfehler
Berechne die Ausgabe des fehlerhaften Systems
Vergleiche die Ausgaben des fehlerfreien und des
fehlerhaften Systems und protokolliere, welche
Modellfehler nachweisbar sind
Testauswahl zufällig oder manuell5
Testeingaben, die keine weiteren Modellfehler nachweisen,
werden entweder
beibehalten (fehlerunabhängige Auswahl, lange Testsätze)
oder gestichen (fehleranhängige Auswahl, kurze Testsätze).
Auch eine bezüglich der unbekannten Fehler zufällige Auswahl, aber oft
mit gröÿeren Fehlernachweiswahrscheinlichkeiten.
5
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 55/221
2. Fehlermodellierung
5. Fehlersimulation
Aufwandsabschätzung:
Schaltungsgröÿe: 104 Gatter
Anzahl der Testschritte / Testeingaben: 104
Anzahl der Modellfehler: 104
Simulationsaufwand je Gatter: 10 ns
gesamter Rechenaufwand: 104 s, ca. 3 Stunden
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 56/221
2. Fehlermodellierung
5. Fehlersimulation
Bitparalle Logiksimulation
Schaltung eines Volladdierers
x1 (r1)
x2 (r2)
x3 (r3)
z1 (r4)
=1
=1
y1 (r7)
z2 (r6)
≥1
z3 (r5)
y2 (r8)
&
&
r1 bis r8 Prozessorregister
Programm für die Gutsimulation
lade x1 in Register r1
lade x2 in Register r2
lade x3 in Register r3
r4 = r2 xor r3
speichere Inhalt r4 in z1
r5 = r2 and r3
speichere Inhalt r5 in z3
r6 = r1 and r4
speichere Inhalt r6 in z2
r7 = r1 xor r4
speichere Inhalt r7 in y1
r8 = r5 or r6
speichere Inhalt r8 in y2
1
1
In jedem Bit eine andere Eingabe simulieren; 32
oder 64
des
Rechenaufwands. Für Beispiel zuvor nur 3 bzw. 6 Minuten.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 57/221
2. Fehlermodellierung
5. Fehlersimulation
Simulation bis zum ersten Fehlernachweis
Simulationsaufwand
Aufwand für nachweisbare Fehler
Aufwand für Gutsimulation + redundante Fehler
Anzahl der Testschritte
Nur noch ≈10% des Aufwands der Simulation aller Fehler
mit allen Eingaben.
Den meisten Rechenaufwand verursachen redundante (nicht
nachweisbare) Fehler.
Wichtiges Gütemerkmal von Fehlermodellen: geringer Anteil
redundanter Fehler.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 58/221
2. Fehlermodellierung
Prof. G. Kemnitz
6. Entwurfsfehler
Entwurfsfehler
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 59/221
2. Fehlermodellierung
6. Entwurfsfehler
Entwurfsfehler
Hard- und Software werden heute ähnlich entworfen:
1 Zusammenstellung der Anforderungen,
2 Konzeption der Gesamtarchitektur und Aufspaltung in
Teilentwufsaufgaben,
3 Beschreibung der Zielfunktion in einer Hochsprache,
4 Übersetzung (in ein Programm oder eine Schaltung).
In allen vier Phasen entstehen Beschreibungen und Fehler. Basis
für die Testauswahl sind die Bescheibungen und Erfahrungen
über die in bisherigen Entwürfen gefundenen Fehler.
Positiv motivierte Testauswahl: Auswahl typischer
Funktionsstichproben zur Rückversicherung, dass diese
erfüllt werden. (Grobtest)
Negativ motivierte Testauswahl: Suche nach Fehlern und
Schwachstellen (gründlicher Test).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 60/221
2. Fehlermodellierung
6. Entwurfsfehler
Mutationstest
fehlerfreie
Beschreibung
(Reparaturziel)
Beschreibung
zur Testauswahl
Nachweisbedingung∗ 1
Nachweisbedingung∗ 2
∗
Hinzufügen eines Fehlers
Fehlerbeseitigung
Definition Nachweisbedingung
oder Modellfehler
Für Entwürfe gibt es keine korrekte Sollbeschreibung.
Statt der Modellfehler lassen sich nur Mutationen einer
potenziell fehlerhaften Beschreibung konstruieren.
Die Konstruktion ähnlich nachweisbarer Modellfehler setzt
ein überwiegend funktionsfähiges System voraus.
Für Spezikationsfehler, vergessene Anforderung, ... lassen
sich keine ähnlich nachweisbaren Mutationen ableiten.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 61/221
2. Fehlermodellierung
6. Entwurfsfehler
Typische Mutationen auf der Hochsprachenebene:
Verfälschung arithmetischer Ausdrücke (x=a+b ⇒ x=a*b)
Verfälschung boolescher Ausdrücke (if(a>b){} ⇒ if(a<b){})
Denition einer Variablen (value=5 ⇒ value=50)
Referenz auf eine Variable (ref=obj1 ⇒ ref=obj2)
Entfernen von Schlüsselworten (static int x=5 ⇒ int x=5)
(Abhängig von der Programmierprache. Gewinnbar aus der
statistischen Analyse typischer Programmierfehler.)
Mutationstest ist vom Prinzip her auch auf die Ergebnisse der
drei anderen Entwurfsphasen anwendbar:
die zusammengestellten Anforderung,
den Architekturentwurf und
die übersetzte Beschreibung.
Gibt es dazu schon aussagekräftige
Forschungsergebnisse?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 62/221
2. Fehlermodellierung
6. Entwurfsfehler
Bei zufälliger Testauswahl genügt es, wenn die Mutationen
vergleichbare Nachweiswahrscheinlichkeiten mit den unbekannten
tatsächlichen Fehlern haben.
Geziele Auswahl setzt groÿe Schnittmengen der Nachweismengen
voraus.
Stand der Technik scheint noch zu sein, je Mutation nur einen
Testfall zu suchen. Nach den Betrachtungen in dieser Vorlesung
unzureichend.
Gibt es Forschungsergebnisse zur Beziehung zwischen
Mutations- und tatsächlicher Fehlerüberdeckung?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 63/221
2. Fehlermodellierung
6. Entwurfsfehler
Klassische Überdeckungsmaÿe
Start
Die klassischen Überdeckungsmaÿe /
-anforderungen sind:
100% Anweisungsüberdeckung,
100% Zweigüberdeckung und
100% Bedingungsüberdeckung.
n1
n2
n3
n4
n5
n6
Gibt es vergleichende Forschungsergebnisse zur Mutations- oder
tatsächlichen Fehlerüberdeckung
von Testsätzen, die diese Überdeckungsanforderungen erfüllen?
Prof. G. Kemnitz
·
n7
Ende
bei 100% Anweisungsüberdeckung möglicher
weise ungetestete Kante
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 64/221
2. Fehlermodellierung
Prof. G. Kemnitz
7. Aufgaben
Aufgaben
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 65/221
2. Fehlermodellierung
7. Aufgaben
Aufgabe 2.1: Haftfehlermenge
Stellen Sie für die nachfolgende Schaltung die Menge aller
Haftfehler auf und streichen Sie aus jede Teilmenge identisch
nachweisbarer Haftfehler alle auÿer einem.
x0
x1
x2
x3
&
z
z0
&
y0
&
y1
z1
Hinweis: Notation der Haftfehler sa0(<Signalname>) bzw.
sa1(<Signalname>).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 66/221
2. Fehlermodellierung
7. Aufgaben
Aufgabe 2.2: Fehlernachweismengen
Bestimmen Sie für den in der nachfolgenden Schaltung
eingezeichneten Haftfehler die Mengen von Eingaben
1 MA mit denen der Fehler angeregt wird,
2 MB mit denen der Fehler beobachtbar ist und
3 MN mit denen der Fehler nachweisbar ist.
x0
x1
x2
x3
&
&
z
&
y0
&
y1
0
stuck-at-1-Fehler
Hinweis: Notation der Eingabemengen als Kreuze in der
Wertetabelle (siehe nächste Folie).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 67/221
2. Fehlermodellierung
Prof. G. Kemnitz
x0
x1
x2
·
0
0
0
0
z
&
1
0
0
0
0
1
0
0
1
1
0
0
&
y0
&
y1
0
&
x3
x0
x1
x2
x3
MA
MB
MN
7. Aufgaben
stuck-at-1-Fehler
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
Institut für Informatik, Technische Universität Clausthal
0
1
1
1
1
1
1
1
29. Juni 2014 68/221
2. Fehlermodellierung
7. Aufgaben
Aufgabe 2.3: Toogle-Test
1
2
Kontrollieren Sie für die nachfolgende Schaltung und den
angegebenen Testsatz, welche Signale noch nicht mindestens
einmal den Wert null und einem den Wert eins annehmen.
Erweitern Sie den Testsatz um zusätzliche Eingaben so, dass
eine 100%ige Toggle-Test-Überdeckung erzielt wird.
x0
x1
x2
x3
&
z
z0 &
y0
z1
&
x3
0
1
1
x2
1
1
1
x1
1
0
1
x0 z
0
0
0
y1 y0
y1
Hinweis: Verwenden Sie als Hilfmittel die Wertetabelle rechts.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 69/221
2. Fehlermodellierung
7. Aufgaben
Aufgabe 2.4: Haftfehlerüberdeckung
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
sa0(y1 )
sa1(y1 )
sa0(y0 )
sa1(y0 )
sa1(z1 )
sa1(z0 )
y1 y0
sa0(z)
x0 z
0
0
0
sa1(z)
x1
1
0
1
sa1(x3 )
x2
1
1
1
sa1(x2 )
x3
0
1
1
sa1(x1 )
2
Bestimmen Sie für jede Eingabe des Toggle-Test aus der
Aufgabe zuvor, welche der eingezeichneten Haftfehler sich
nachweist.
1
1 0
y0
&
Wie groÿ ist die x0
z0 1
1
x1
Haftfehlerüberz 1 0
&
z1 1
1
1 0
deckung des
&
x2
y1
1
Toggle-Tests?
x3
sa1(x0 )
1
29. Juni 2014 70/221
2. Fehlermodellierung
7. Aufgaben
Aufgabe 2.5: Gatterverzögeungsfehler
1
2
Für welche der Haftfehler in der Aufgabe zu vor wird der
korrespondierende Gatterverzögerungsfehler nachgewiesen.
Wie groÿ ist die Gatterverzögerungsfehlerüberdeckung des
betrachtten Toggle-Tests?
Hinweis: Der korrespondierende Gatterverzögerungsfehler zu
stuck-at-0 ist slow-to-rise und zu stuck-at-1 slow-to-fall.
Zusätzliche Nachweisbedingung ist ein Signalwechsel am
Fehlerort.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 71/221
2. Fehlermodellierung
7. Aufgaben
Aufgabe 2.6: Kurzschlussnachweis
Bei dem eingezeichneten Kurzschluss soll sich null durchsetzen.
Welche der eingezeichneten Haftfehler teilen sich
Nachweisbedingungen mit dem Kurzschluss und wie groÿ ist für
jeden dieser Haftfehler die Wahrscheinlichkeit, dass wenn ein Test
ihn nachweist, auch der Kurzschluss nachgewiesen wird?
1
x0 , g(x0 ) = 50%
x1 , g(x1 ) = 20%
1
x2 , g(x2 ) = 30%
x3 , g(x3 ) = 80%
z0
1
&
z 1 0
z1
Kurzschluss
1
&
1
1
&
1
0
1
0
y0
y1
Hinweis: g(...) Signalwichtungen, Auftrittshäugkeit einer Eins.
Die bedingte Wahrscheinlichkeit, das ein Kurzschluss von einem
Haftfehlertest nachgewiesen wird ist die Wichtung g(...) der
anderen beteiligten Leitung oder deren Gegenwahrscheinlichkeit.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 72/221
2. Fehlermodellierung
7. Aufgaben
Aufgabe 2.7: Fehlersimulation
Ergänzen Sie in der nachfolgenden Skizze eines C-Programms die
Anweisungen für eine fehlerparallele Simulation der
nachfolgenden Schaltung mit eingezeichneten Haftfehlern.
1
5
z0
1
6
z1
1
7
1
8
x0
x1
x2
x3
1
1
1
2
&
z
1
3
0
4
&
&
1
9
0
11
1
10
0
12
y0
y1
unit16_t x0, x1, x2, x3, z, z0, z1, y;
<wiederhole für jeden Testschritt>
<lade Testeingaben in x0 bis x3, 0x0 oder 0xFF>
<zu ergänzende Anweisungsfolge>
<Protokollierung der erkannten Fehler>
Hinweise: siehe nächste Folie.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 73/221
2. Fehlermodellierung
7. Aufgaben
Zu verwenden sind die bitweise C-Operatoren ~ (Negation), &
(UND) und | (ODER. Die Nummern hinter den Fehlern geben
die Bitstelle an, mit der der Fehler zu simulieren ist. In Bit null
soll die Gut-Simulation erfolgen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 74/221
3. Zufallstest
Prof. G. Kemnitz
Zufallstest
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 75/221
3. Zufallstest
Prof. G. Kemnitz
1. Erforderliche Testsatzlänge
Erforderliche Testsatzlänge
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 76/221
3. Zufallstest
1. Erforderliche Testsatzlänge
Festlegung der erforderlichen Testsatzlänge
Die Auswahl des Test erfolgt zufällig. Nur die Testsatzlänge ist
zu bestimmen. Möglichkeiten:
1 direkte Vorgabe (z.B. Speichergröÿe Testautomat),
2 erfülltes Überdeckungsziel (z.B. 100% Zweigüberdeckung),
3 geforderte Modell-, z.B. Haftfehlerüberdeckung,
4 geforderte tatsächliche Fehlerüberdeckung und
5 geforderte Zuverlässigkeit6 .
Für 2 bis 5 werden solange zufällige ausgewählte Testbeispiele
hinzugenommen, bis das Kriterium erfüllt ist. Für Entwürfe ist 2
(Abhaken von Überdeckungsriterien) gebräuchlich, für digitale
Schaltungen auch 3 (Fehlersimulation). 4 und 5 wären
wünschenswert, sind aber noch nicht Stand der Technik.
6
Zuverlässigkeit sei hier deniert als mittlere Zeit zwischen Fehlfunktionen
im Einsatz.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 77/221
3. Zufallstest
1. Erforderliche Testsatzlänge
Geforderte tatsächliche Fehlerüberdeckung
Falls es einmal möglich sein wird, Vorhersagen über die
Fehlernachweisdichte eines zu testenden Systems zu treen (z.B.
über die Simulation einer Stichprobe von Modellfehlern oder
Mutationen), gilt nach Foliensatz F2, Abschn. 3.2)
E (ϕ, n) = E (ϕE ) ·
Z
0
1
h (p) · e−n·p · dp
(E (ϕE ) zu erwartende Anzahl der Entwurf und Fertigung
entstandenen Fehler; h (p) Fehlernachweisdichte; n Testsatzlänge). Zu erwartende Fehlerüberdeckung:
E (F C (n)) = 1 −
E (ϕ, n)
=
E (ϕE )
Z
0
1
h (p) · e−n·p · dp
Auösung nach n (E (F C) , h (p)), notfalls numerisch, liefert für
eine geforderte Fehlerüberdeckung und eine angenommene
Fehlernachweisdichte die notwendige Testsatzlänge n.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 78/221
3. Zufallstest
1. Erforderliche Testsatzlänge
Mit einer Potenzfunktion als Fehlernachweisdichte:
h (p) = k · pk−1
verringert sich die zu erwartende Fehleranzahl umgekehrt
proportional zur k-ten Potenz (0 < k < 1):
E (ϕ, n) ≈ E (ϕ, n0 ) ·
n
n0
−k
Eine Verringerung der zu erwartenden Fehleranzahl um eine
Zehnerpotenz verlangt
bei k = 1 die 10-fache,
bei k = 0,5 die 100-fache und
bei k = 0,333 die 1000-fache Testsatzlänge.
Für die zu erwartende Fehlerüberdeckung beträgt
E (ϕ, n)
E (F C (n)) = 1 −
=1−
E (ϕE )
Prof. G. Kemnitz
·
n
n0
−k
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 79/221
3. Zufallstest
1. Erforderliche Testsatzlänge
Unter Kenntnis von k und n0 ergibt sich für die erforderliche
Testsatzlänge:
n ≥ n0 · (1 − E (F C (n)))
1
−k
Problem: für eine geforderte hohe Fehlerüberdeckung und ein
pessimistisch abgeschätztes k ergibt sich eine unrealistisch lange
Testzeit von vielen Jahren, die sich der Hersteller nicht leisten
kann
Ausweg Zuverlässigkeitswachstumsprozess:
Fortsetzung des Tests beim Anwender mit Eingaben aus der
Anwendungsumgebung als Zufallswerte.
Erfassung der beobachteten Fehlfunktionen.
Konstruktion von Testfällen für ihren Nachweis.
Suche und Beseitigung der zugrunde liegenden Fehler.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 80/221
3. Zufallstest
Prof. G. Kemnitz
2. Zuverlässigkeitswachstum
Zuverlässigkeitswachstum
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 81/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Zuverlässigkeitswachstumsprozess
Zufallstest, beim dem sich die Nutzungsdauern bei allen
Anwendern, bei denen die bobachteten Fehlfunktionen
erfasst werden, als Testdauer akkumulieren.
Erlaubt um Zehnerpotenzen längere Testdauern.
Erfordert Kontrollfunktionen im System und
organisatorische Maÿnahmen, die die aufgetretenden
Fehlfunktionen erfassen und an den Hersteller zur Erstellung
von Tests für ihren Nachweis weiterleiten.
Die Fehlerbeseitigung ist unsicherer, als wenn der Hersteller
selbst testet. Beseitigungswahrscheinlichkeit für
nachweisbare Fehler pB 1 (z.B. 10%).
Die Zuverlässigkeit in Service-Anforderungen je Fehlfunktion
Z = Nξ /E (ξF )
nimmt trotzdem zu.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 82/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Die zu erwartende Anzahl der Fehlfunktionen je Nξ ServicAnforderung ist die Summe der Auftrittshäugkeiten mal der
Nachweiswahrscheinlichkeit je Service-Anforderung aller
potenzieller Fehler Nϕ :
Nϕ
E (ξF ) X
=
hi · pi
Nξ
i=1
und beträgt ausgedrückt durch die Fehlernachweisdichte
E (ξF )
(ξF ) = E (ϕ) ·
Nξ
Z
1
0
(1)
h (p) · p · dp
Die Wahrscheinlichkeit, dass ein Fehler nach einem ServiceAufruf beseitigt wird, ist die Wahrscheinlichkeit, dass er
nachgewiesen, und wenn nachgewiesen, auch beseitigt wird:
p · pB
Die Beseitigungswahrscheinlichkeit bei Abarbeitung von n
Service-Leistungen ist:
Prof. G. Kemnitz
·
1 − e−n·p·pB
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 83/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Änderung der Fehlernachweisdichte mit n:
h (p, n) = R 1
0
h (p) · e−n·p·pB
h (p) · e−n·p·pB · dp
(h (p) Fehlernachweisdichte des ungetesteten Systems). Gegenüber
F2, Abschn. 3.3 ist, wenn nur ein Anteil pB der erkennbaren
Fehler beseitigt wird, n durch n · pB zu ersetzen:
E (ξF ) = Nξ · E (ϕE ) ·
Mit der Potenzfunktion
Z
1
0
h (p) · p · e−n·pB ·p · dp
h (p) = k · pk−1
ergibt sich für die zu erwartende Anzahl der durch Fehler
verursachten Fehlfunktionen:
E (ξF )
=
Nξ · E (ϕE ) ·
= Nξ · E (ϕE ) ·
Prof. G. Kemnitz
·
Z
1
0
Z
0
1
k · pk−1 · p · e−n·pB ·p · dp
k · pk · e−n·pB ·p · dp
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 84/221
3. Zufallstest
Substitution p =
2. Zuverlässigkeitswachstum
x
pB ·n
E (ξF ) =
und dp =
dx
pB ·n
k · Nξ · E (ϕE )
(pB · n)
k+1
·
Z
|0
n
xk · e−x · dx
{z
}
≈Γ(k+1)≈1
für
0<k≤1
Die Zuverlässigkeit in Service-Leistungen pro Fehlfunktion wächst
überproportional mit dem Produkt pB · n:
Z (n) =
Nξ
(pB · n)k+1
=
E (ξF )
k · Nξ · E (ϕE )
Mit der Zuverlässigkeit einer Bezugsanzahl von Service-Aufrufen
n0 :
k+1
k+1
Z (n) = Z (n0 ) ·
(pB · n)
k+1
(pB · n0 )
= Z (n0 ) ·
n
n0
Die Zuverlässigkeit nimmt überproportional mit der Anzahl der
Service-Aufrufe, bei denen erkannte Fehlfunktionen
Fehlerbeseitigungsversuche auslösen, zu.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 85/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Nutzungsdauer und Zuverlässigkeit
Unter der Annahme, dass sich die Anzahl der Service-Aufrufe n
proportional zur Reifezeit7 t verhält:
Z (t) = Z (t0 ) ·
t
t0
k+1
t0 und k Modellparameter, vorzugsweise abzuschätzen aus der
zu beobachtenden Zunahme der Zeit zwischen den beobachteten
Fehlfunktionen.
7
Groÿe IT-Systeme müssen nach ihrer Entstehung eine Weile reifen, bevor
sie ausreichend zuverlässig für den Einsatz sind. Eine Strategie hierfür ist die
kostenlose Freigabe als Beta-Software.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 86/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Abschätzung der noch erforderlichen Reifezeit
Die Zuverlässigkeit eines Systems sei nach eine Reifedauer von 1
Jahr 10 Stunden pro Fehlfunktion. Wie lange muss das System
noch reifen, um die Zuverlässigkeit auf 50 Stunden je
Fehlfunktion zu erhöhen? Schätzwert für k ≈ 0,5.
Lösung:
t = 1 Jahr ·
50 h
10 h
1
1,5
= 2, 92 Jahre
Das System müsste noch zwei Jahre weiter reifen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 87/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Überwachung eines Reifeprozesses
Gegeben: Für i = 1 bis 4 Versionen eines Softwareprodukts
Erscheinungsdatum, die Zeitdierenz ti zur Herausgabe der
ersten Version und die im Mittel pro Woche gezählten
Fehlfunktionen ζi für zehn eingesetzte Systeme:
i
1
2
3
4
Ende
Datum
01.07.11
22.08.11
01.11.11
10.01.12
30.01.12
ζi
290,5
238,4
147,0
32,3
Gesucht: t0 und k zur Modellierung des Reifeprozesses.
Umrechnung die Daten in Reifezeiten und Zuverlässigkeiten:
i
1
2
3
4
ti in Tagen
Z (ti ) in Tagen
t0
0,248
t0 + 52
0,298
t0 + 123
0,476
t0 + 193
0,619
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 88/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Vorgabe von t0 und Abschätzung von k aus dem Anstieg in der
doppellogarithmischen Darstellung der Zuverlässigkeit als
Funktion der Testdauer:
Z(t + t0 ) in
Tagen/FF
10
t0 = 180 Tage
t0 = 250 Tage
t0 = 320 Tage
1
0,1
102,3
102,9 102,4
102,9 102
103
104
t + t0 in Tagen
Approx.
1
2
3
Prof. G. Kemnitz
·
t0
k
Z (t0 + 2 Jahre)
180 Tage
250 Tage
320 Tage
0,08
0,68
0,92
1,42 Tage
1,68 Tage
1,92 Tage
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 89/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Mit den Schätzwerten kann die Zuverlässigkeit zu einem späteren
Zeitpunkt geschätzt werden, im Bsp. für eine Version, die 2 Jahre
nach der ersten erscheint. Erstaunlicherweise sind die Ergebnisse
für alle drei Paramtersätze sehr ähnlich.
Approx.
1
2
3
t0
k
Z (t0 + 2 Jahre)
180 Tage
250 Tage
320 Tage
0,08
0,68
0,92
1,42 Tage
1,68 Tage
1,92 Tage
Fakt 1
Es ist möglich, mit Modellrechungen auf ein Zuverlässigkeitswachstum zu schlieÿen. Das erfordert Annahmen über die
Nachweiseigenschaften der nicht gefundenen Fehler. Der Ansatz,
eine Potenzfunktion als Fehlernachweisdichte zu nehmen,
erscheint vielversprechend.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 90/221
3. Zufallstest
2. Zuverlässigkeitswachstum
Modell von Musa bzw. Goel-Okumoto [1]
Am häugsten zitiertes Zuverlässigkeitswachstumsmodell.
Unterstellter Zusammenhang für die Anzahl der nachweisbaren
Fehler in Abhängigkeit von der Test- oder Reifezeit t:
ϕ (t) = a 1 − e−bt
(a, b experimentell zu bestimmende Parameter). Was für eine
Fehlernachweisdichte müsste das IT-System haben?
ϕ (t) = a 1 − e−b·tT ⇒ E (ϕN (n)) = E (ϕE ) ·
Z
0
1
h (p) · 1 − e−n·p · dp
Das Modell unterstellt oenbar, dass alle Fehler mit gleicher
Wahrscheinlichkeit nachweisbar sind:
h (p) =
(
1 für p = b
0 sonst
Untypisch für IT-Systeme!
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 91/221
3. Zufallstest
Prof. G. Kemnitz
3. Pseudo-Zufallsgeneratoren
Pseudo-Zufallsgeneratoren
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 92/221
3. Zufallstest
3. Pseudo-Zufallsgeneratoren
Erzeugung von Pseudo-Zufallszahlen
Testbeispiele, auch zufällige müssen wiederholbar sein, um
Sollwerte zuordnen und den Reparaturerfolg kontrollieren zu
können. Pseudo-zufällig bedeutet, dass die erzeugte Folge
Zufallscharakter hat, bei Wiederholung aber immer dieselbe
Folge von Testeingaben erzeugt wird. Beispielalgorithmus aus [?]:
#define pi 3.141592654
double Zufallszahl=0.230720081928;
neue_Zufallszahl() {
Wiederhole 10 mal
{
Zufallszahl = Nachkommastellen(Zufallszahl + pi)^8;
}
}
Programmierumgebungen stellen dafür in der Regel
Unterprogramme bereit zur Festlegung zur Initialisierung und zur
Berechnung des nächsten Wertes.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 93/221
3. Zufallstest
3. Pseudo-Zufallsgeneratoren
Linear rückgekoppelte Schieberegister
Einfachste und zur Testdatenbereitstellung meist ausreichende
Lösung sind linear rückgekoppelte Schieberegister (LFSR linear
feeback shift register) bzw. Algorithmen aus logischen und
Verschiebeoperationen ähnlich CRC-Bildung:
g2
g1
s1
D
gr−1
s2
D
sr
D
Für die Rückführung gi gehen nur bestimmte Werte, bei denen
groÿe Zyklen entstehen. Internet Suchbegri Primitive
Polynome. Beispiel für ein 16-Bit LFSR (vergl. [KeTV]:
v 16 ⊕ v 5 ⊕ v 3 ⊕ v ⊕ 1
Es bedeutet g1 = g3 = g5 = 1, alle anderen null / weglassen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 94/221
3. Zufallstest
5
10
3. Pseudo-Zufallsgeneratoren
Schaltschritt
jeder 4.
15
20 Schaltschritt
Nutzung von nur 3 Augängen
Falls die Streifenmuster durch die Schiebeoperationen stören,
Generator für jede neue Testeingabe mehrere Schritte
weiterschalten oder nur einen Teil der Ausgänge nutzen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 95/221
3. Zufallstest
3. Pseudo-Zufallsgeneratoren
Statt einer Rückkopplung des Ausgangs auf mehrere Bitstellen
können auch mehrere Bitstellen auf den Eingang rückgekoppelt
werden:
Prof. G. Kemnitz
5
10
Testschritt
15
20
1
0
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 96/221
3. Zufallstest
3. Pseudo-Zufallsgeneratoren
Es gibt viele weitere lineare Automaten, die auch zyklisch
Bitfolgen in zufälliger reihenfolge erzeugen, Zellenautomaten, bei
denen jedes Folgebit aus dem eigenen und den Zuständen der
Nachbarbits gebildet werden:
Prof. G. Kemnitz
T
1
5
10
Testschritt
15
T
D
T
D
T
D
T
·
T
Institut für Informatik, Technische Universität Clausthal
D
29. Juni 2014 97/221
3. Zufallstest
Prof. G. Kemnitz
4. Selbsttest mit LFSR
Selbsttest mit LFSR
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 98/221
3. Zufallstest
4. Selbsttest mit LFSR
LFSR als Signaturregister
Register lassen sich nicht nur einfach zu
Pseudo-Zufallsgeneratoren, sondern auch zu sog.
Signaturanalysatoren erweitern. Das sind Schaltungen zur
pseudo-zufälligen Bildung von Prüfkennzeichen, z.B. durch
Polynomdivision.
Prof. G. Kemnitz
Parallels
Signaturregister
mit dezentraler
Rückführung
Parallels
Signaturregister
mit zentraler
Rückführung
g1
s1
D
x1
x2
...
gr−1
gr−1
sr
D
x3
xr
...
x1
·
g2
s2
D
s1
D
gr−2
g1
sr
D
s2
D
x2
x3
Institut für Informatik, Technische Universität Clausthal
xr
29. Juni 2014 99/221
3. Zufallstest
4. Selbsttest mit LFSR
Fälschungen zirkulieren als pseudo-zufällige Dierenzfolgen:
FF3
FF2
FF1
D
D
D
Anfangszustand
Signatur
des Datenfehlers
Sollsignatur
000
111
Initialwert
Schritt 1:
Schritt 2:
Schritt 3:
Schritt 4:
Schritt 5:
Schritt 6:
Schritt 7:
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
001
110
010
011
101
100
Veränderung durch einen Datenfehler
Wahrscheinlichkeit, dass weitere Verfälschungen ein Dierenzfolge
wieder auf null setzen (die Verfälschung maskieren) ist
2−r
(r Registerlänge) und kann beliebig klein gehalten werden.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 100/221
3. Zufallstest
4. Selbsttest mit LFSR
Prinzip eines Hardware-Selbsttests
Testobjekt
Kombinatorik/
synchrone
Schaltung
Testsatzgenerator
Testpunkte
Signaturanalysator
Ausgabekontrolle
Das Eingaberegister wird in einen Pseudo-Zufallsgenerator,
das Ausgaberegister in ein Signaturregister umgeschaltet.
Optionale Stimulierung und Beobachtung weiterer Punkte.
Ein Testschritt pro Takt. Zum Schluss Signatur auswerten.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 101/221
3. Zufallstest
4. Selbsttest mit LFSR
Kombination mit Scan-Registern
Die Fehlerüberdeckung in Abhängigkeit von der Testdauer lässt
sich oft erheblich verbessern, wenn zusätzlich die internen
Speicherzellen mit Pseudo-Zufallswerten belegt und ihre
Folgezustände mit in die Prüfsummenbildung einbezogen werden:
Testobjekt
Kombinatorik
Signaturregister
Die übliche Lösung Umschaltung der internen Register in ein
Scan-Register.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 102/221
3. Zufallstest
4. Selbsttest mit LFSR
Testobjekt
Kombinatorik
Signaturregister
Ein Scan-Register ist ein Register, das im Testmodus zwischen
den normalen Operationsschritten serielle gelesen und neu
beschrieben wird. Erweiterter Testablauf:
Wiederhole für jeden Testschritte (z.B. 1 Million mal)
Prof. G. Kemnitz
Schiebe den Scan-Registerzustand in das Signaturregister
und beschreibe das Scan-Register mit Pseudo-Zufallswerten,
die vom Eingaberegister gebildet werden.
Ausführung eines Testschritt mit Pseudo-Zufallswerten am
Eingang und in den internen Registern und Ergebnisabildung
in das Scan- und Signaturregister.
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 103/221
3. Zufallstest
4. Selbsttest mit LFSR
Für sehr groÿe Systeme, z.B. Multi-Chip-Module gibt es
vergleichbare Lösungen mit mehreren Scan-Registern, die
zwischen den Testschritten parallel gelesen und mit neuen
Zufallswerten beschrieben werden.
LFSR
lineares Summennetzwerk zur Erzeugung
phasenverschobener
Zufallsfolgen
Testobjekt
Kombinatorik
Signaturregister
Weiterführende Literatur [Ke07]
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 104/221
3. Zufallstest
Prof. G. Kemnitz
5. Gewichteter Zufallstest
Gewichteter Zufallstest
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 105/221
3. Zufallstest
5. Gewichteter Zufallstest
Gewichteter Zufallstest
Ein Möglichkeit, die Fehlerüberdeckung von Zufallstestsätzen
erheblich zu erhöhen, ist die Umschaltung des Operationsprols
während des Tests. Pragmatischer Ansatz:
1 Festlegung einer gröÿeren Menge von Modellfehlern.
2 Längerer Test mit ungewichteten Zufallswerten und Abhaken
aller damit nachweisbaren Modellfehler.
3 Suche für die restlichen Modellfehler eine Eingabewichtung,
die deren Nachweiswahrscheinlichkeiten erheblich erhöht.
4 Längerer Test mit den so gewichteten Zufallswerten und
Abhaken aller damit nachweisbaren Modellfehler.
5 Wenn erforderlich, Wiederholung von Schritt 3 und 4.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 106/221
3. Zufallstest
5. Gewichteter Zufallstest
Experiment mit den Schaltungen c2670 und c75528
Test mit 104 bzw. 105 ungewichteten Zufallsmustern, die
90% bzw. 95% der Haftfehler nachweisen.
Gezielte Testberechnung für die restlichen Haftfehler.
Individuelle Wichtung aller Eingabebits zur Maximierung der
mittleren Auftrittshäugkeit der berechneten Testeingaben.
100%
E(F Csa )
90%
100%
Fortsetzung
mit einer
gewichteten
Zufallsfolge
E(F Csa )
70%
102
10
103
Fortsetzung mit
einer ungewichteten Zufallsfolge
ungewichteter
Zufallstest
90%
Fortsetzung mit
einer ungewichteten Zufallsfolge
ungewichteter
Zufallstest
c2670
80%
Fortsetzung mit
einer gewichteten
Zufallsfolge
104
105
106
80%
70%
c7552
10
102
103
n
104
105
n
Kombinatorische Benchmakschaltungen zum Vergleich von Testlösungen.
Die Zahl hinter dem c ist die Anzahl der Signalleitungen.
8
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 107/221
3. Zufallstest
5. Gewichteter Zufallstest
Implementierung als Selbsttest
Im Experiment wurde der Wertebereich für die Wichtung auf die
schaltungstechnisch einfach einstellbare Werte begrenzt:
n
o
gi ∈ 0, 2−k , 0,5, 1 − 2−k , 1
Diese werden mit wenigen UND-Gattern erzeugt und mit
Scan-Registern an die Eingänge weitergeleitet.
Testobjekt
&
Mux
S1
&
S2
S3
Umschaltsignal
(Details siehe [2]).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 108/221
3. Zufallstest
Prof. G. Kemnitz
6. Aufgaben
Aufgaben
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 109/221
3. Zufallstest
6. Aufgaben
Aufgabe 3.1: Ideensammlung
1
2
3
Schaltung mit Haftfehlern vorgeben. Berechnung der
Nachweiswahrscheinlichkeiten.
Fehlerprol und gewünsche zu erwartende
Fehlerüberdeckung vorgeben. Erforderliche Testdauer
bestimmen. Häugkeit der falschen Ergebnisse bestimmen.
Änderung der Nachweiswahrscheinlichkeit durch Wichtung /
anderes Operationsprol.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 110/221
3. Zufallstest
6. Aufgaben
Aufgabe 3.2: LFSR-Zykluslänge
Untersuchen Sie für das nachfolgende 5-Bit linear rückgekoppelte
Schieberegister die Zyklusstruktur.
D
D
y0
1
2
3
D
y1
D
y2
D
y3
y4
Bestimmen Sie für jeden der 32 möglichen Zustände den
Folgezustand.
Wie viele unterschiedliche Testeingaben lassen sich maximal
hintereinander erzeugen?
Wie lautet die zyklisch generierte Testeingabefolge, wenn der
Generator mit y4 y3 y2 y1 y0 = 01011 initialisiert und jeder
zweite Zusand als Testeingabe verwendet wird?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 111/221
3. Zufallstest
6. Aufgaben
Aufgabe 3.3: Built-in Logic Block Observer
Die gezeigte Schaltung ist ein Built-in Logic Block Observer
(BILBO) und führt in Abhängigkeit von den Steuersignalen M0
bis M2 die Funktionen aus: Intialisierung, normales Register,
Schieberegister, Pseudo-Zufallsgenerator oder Signaturegister.
x1
M0
M1
M2
sin
x2
&
0
1
&
&
D
&
y1
1
2
xr
&
D
&
y2
D
sout
yr
Welche Steuersignalbelegung steuert welche Funktion?
Vereinfachen Sie für jede dieser Steuersignalbelegungen die
Schaltung durch Konstanteneliminierung (Vereinfachen bzw.
Weglassen der logischen Verknüpfungen mit Konstanten.)
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 112/221
3. Zufallstest
6. Aufgaben
Aufgabe 3.4: xxx
Ein Fehler erzeugt im Mittel eine Fehlfunktion pro Stunde.
Welche Testzeit ist erforderlich, damit der Fehler mit einer
Wahrscheinlichkeit von 95% nachgewiesen wird.
Derselbe Fehler wird, wenn ihn der Testsatz nachweist, nur in
M F C = 70% der Fälle erkannt. Wie lang muss die Testzeit
mindestens sein, damit der Fehler mindestens mit einer Wahrscheinlichkeit von 95% von den Kontrollfunktionen erkannt wird?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 113/221
3. Zufallstest
6. Aufgaben
Aufgabe 3.5: Exponenten der Fehlerdichte
Für einen bestimmten Systemtyp sei bekannt, dass sich bei einer
Verzehnfachung der Testzeit die beobachtbare Häugkeit der
falschen Ergebnisse auf etwa ein Fünfzehntel verringert.
1 Welchen Exponent k hat eine Potenzfunktion der
Fehlernachweisdichte unter dieser Annhame?
2 Um welchen Faktor verringert sich die Fehleranzahl bei einer
Verzehnfachung der Testzeit?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 114/221
4. Testberechnung
Prof. G. Kemnitz
Testberechnung
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 115/221
4. Testberechnung
Pfadalgorithmen
Signalwerte zur Sensibilisierung
des Beobachtungspfades
Eingaben zur
Fehleranregung
1
1 1
1
&
1 1
0 0
&
&
≥1
1
beobachtbarer
Ausgang
Signalwertfestlegungen
Beobachtungspfad
Modellfehler (sa1)
Vom (Modell-) Fehlerort werden durch Festlegung von
Signalwerten
in Signalussrichtung Beobachtungspfade sensibilisiert und
entgegen der Signalussrichtung Steuerbedingungen
eingestellt.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 116/221
4. Testberechnung
Prof. G. Kemnitz
1. D-Algorithmus
D-Algorithmus
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 117/221
4. Testberechnung
1. D-Algorithmus
D-Algorithmus
Erweiterung der Logikwerte um Pseudo-Werte:
D Signalwert ist gleich dem Logikwert am Fehlerort.
D̄
Signalwert ist gleich dem inversen Signalwert am Fehlerort.
X
Signalwert ist ungültig oder für den Fehlernachweis ohne
Bedeutung.
Regeln für die Sensibilisierung eines Beobachtungspfades:
eindeutig
1
1
&
D
eindeutig
D
0
0
D
≥1
eindeutig
D D
D̄
mehrdeutig
D X X
D
X D X
X X D
Für D̄ analog.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 118/221
4. Testberechnung
1. D-Algorithmus
Einstellung von Steuerwerten
eindeutig
1
1
1
&
mehrdeutig
1
1 XX
X 1 X
XX 1
mehrdeutig
0 XX
X 0 X
XX 0
&
0
≥1
1
eindeutig
0
eindeutig
0
0
0
≥1
1
eindeutig
0
1
0
Jede kombinatorische Schaltung kann in eine Schaltung aus
AND, OR, NOT nachgebildet werden.
Später Verallgemeinerung auf LUT (look-up table,
Tabellenfunktionen).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 119/221
4. Testberechnung
x1
0
7
&
x2
1 1
5
0
8 6
x3
1. D-Algorithmus
z1
z3
0 1 D
1
&
1
2
1
z1 = 0/D
2
z3 = D
3
x3 = 1
0
4
D
z2
≥1
D
y
4
3
y=D
z2 = 0
x2 = 0
7
x1 = 0
6 x2 = 1
(Widerspruch)
8
x2 = 1
5
x 3 x 2 x 1 z3 z2 z1
y
Baumsuche:
0 X X X
X X 0D X
1 1 X X
X X 0D X
Bei der Wertefestlegung kön2 1 X X
X D 0D X
3 1 X X
X D 0D D
nen Widerspüche auftreten.
0 D 0D D
4 1 X X
Zurück zur letzten mehr0 D 0D D
5 1 0 X
6 1 01 X
0 D 0D D
deutigen Entscheidung.
7 1 X 0
0 D 0D D
8 1 1 0
0 D 0D D
Keine Lösung nach Durchmusterung des gesamten Baums. ⇒ Fehler nicht nachweisbar
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 120/221
4. Testberechnung
1. D-Algorithmus
Erfolgsrate der Testberechnung:
Anteil der Fehler, für die ein Test gefunden oder für die der
Beweis nicht nachweisbar erbracht wird.
Die Testsuche für einen Fehler kann hunderte von
Wertefestlegungen beinhalten.
Der Suchraum wächst exponentiell mit der Anzahl der
mehrdeutigen Festlegungen.; Suchräume der Gröÿen
> 230...40 nicht mehr vollständig durchsuchbar.
Abbruch der Suche nach einer bestimmten Rechenzeit.
Heuristigen:
Frühe Erkennung von Widersprüchen,
Suchraumbegrenzung und
gute Suchraumstrukturierung.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 121/221
4. Testberechnung
1. D-Algorithmus
Implikationstest (Widerspruchsfrüherkennung)
Aus den berechneten Wertefestlegungen alle eindeutig
folgenden Werte berechnen.
Implikation in
Signalflussrichtung
G2
X
≥1
G1
X
X
&
0
1
G3
X
&
D-Pfad- und Rückwärtsimplikation
D
X
0
X
X
*
≥1
1
D̄
0
1
X
* eindeutige Weiterführung
&
Mindert die Entscheidungsbaumtiefe.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 122/221
4. Testberechnung
1. D-Algorithmus
Rückwärtsimplikation über mehrere Gatterebenen:
x1
Variante
1 2
0 X
x2
0
0
x3
X
0
Variante
Variante
1 2
1 2
0 X G1
0 X
0 X ≥1
X 0 G2
X 0
X 0 ≥1
G3
&
0
y
Für y = 1 gibt es zwei Einstellmöglichkeiten.
Für beide Möglichkeiten muss x2 = 1 sein.
Das Erkennen von Implikationen dieser Art mindert die
Backtracking-Häugkeit um bis zu 80 %.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 123/221
4. Testberechnung
1. D-Algorithmus
Suchraumbegrenzung
Der D-Algorithmus baut den Suchbaum über alle
mehrdeutigen Wertefestlegungen auf:
mehrere Alternativen
für den D-Pfad
D X X
mehrdeutige Wertefestlegungen
0 XX
X 0 X
XX 0
&
0
1 XX
X 1 X
XX 1
&
1
D
X D X
X X D
Nur die Schaltungseingänge können unabhängig voneinander
alle Wertevariationen annehmen.
Es genügt, den Suchbaum mit den Eingabewertefestlegungen
aufzubauen.
Das begrenzt den Suchraum auf 2NE (NE Eingangsanzahl).
Verringerung des Rechenaufwands um Zehnerpotenzen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 124/221
4. Testberechnung
D
1. D-Algorithmus
Testobjekt
Suchbaum
Start
&
D̄
1
1: x3 = 1
&
1
2: x4 = 0
1
0/D
x3 = 0
x4 = 1
3: x2 = 0
4: x4 = 1
x4 = 0
5
1
4
1
0
1→0
0 → 1 →X 1 → 0
x3
x4
x1 x2
2
5: x1 = 1
3
Erfolg
Widerspruch Implikationstest
Lange Steuerpfade vom Fehlerort und vom D-Pfad zu
Eingängen.
Aufbau des Suchbaums über Eingangssignale.
Wenn Implikationstest-Widerspruch, letzte
Eingabefestlegung invertieren.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 125/221
4. Testberechnung
1. D-Algorithmus
Geschätzte Erfolgswahrscheinlichkeiten
x1 = 1
x2 =X; g(x2 ) = 60%
x3 =X; g(x3 ) = 30%
&
x3 = 0
z1 =X; g(z1 ) = 82%
z1 = 1
≥1
y=0
x4 =X; g(x4 ) = 50%
≥1
x5 =X; g(x5 ) = 60%
z2 =X; g(z2 ) = 20%
x3 = 0;
g(. . .) Signalgewicht, Auftrittshäufigkeit einer 1
Schätzen der Signalgewichte (Auftrittshäugkeit einer 1)
über ein kurze Simulation mit Zufallswerten oder analytisch.
Wahl der Steuerwerte / Beobachtungspfade, die mit gröÿerer
Wahrscheinlichkeit aktivierbar / sensibilisierbar sind.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 126/221
4. Testberechnung
1. D-Algorithmus
Komplexe Funktionsbausteine
Beschreibung durch Tabellenfunktion (Bsp. Volladdierer):
x2
0
0
0
0
1
1
1
1
x1
0
0
1
1
0
0
1
1
x0
0
1
0
1
0
1
0
1
s
0
1
1
0
1
0
0
1
c
0
0
0
1
0
1
1
1
gegeben
XXX00
Lösungsmenge
00000
01DXX
01DD̄D
1XXXD
10DD̄D, 1D0D̄D
11XX1
11111, 111001
Vervollständigung des Vektors der gegebenen Anschlusswerte
durch Vergleich mit allen Tabellenzeilen:
Prof. G. Kemnitz
1 und 0 passen nur auf 1 und 0
X passt immer
D muss für D=0 und für D=1 passen
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 127/221
4. Testberechnung
1. D-Algorithmus
Implikationstest an einem Volladdierer
nicht eindeutig
x1
x2
x3
?
? =1
bekannt
bekannt
y1 = 1
y1 = 1
=1
Volladdierer
&
&
y2 = 1
?
? ≥1
y2 = 1
eindeutig
x1 = 1 x2 = 1 x3 = 1
An der Gatterbeschreibung eines Volladdierers ist die
Implikation y1 = y2 = 1 ⇒ x1 = x2 = x3 = 1 nicht zu
erkennen. Lösungsndung über Baumsuche.
Bei Zusammenfassung zu einer Tabellenfunktion wird die
Lösung bereits bei der Anschlusswertevervollständigung
erkannt.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 128/221
4. Testberechnung
1. D-Algorithmus
0
X
1
zero
lsb
msb
X
D
Codeumsetzer
Eingänge
a b c d
0 0 0 0
1 0 0 0
X 1 0 0
XX 1 0
XXX 1
a
b
X
D
Ausgänge
zero lsb msb
1
0 0
0
0 0
0
1 0
0
0 1
0
1 1
c
d
X
Multiplexer
X
1
s1 0 0 1 1
s0 0 1 0 1
0
1 1 1 X
Implikationen
X
lsb hängt bei zero=0 und msb=1 nicht von b ab.
Eindeutiger D-Pfad über Multiplexer.
Tabelleneingabewerte X (Eingang beeinusst nicht die
Ausgabe) führt zu Tabellen mit 2AE Tabellenzeilen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 129/221
4. Testberechnung
Prof. G. Kemnitz
2. Sequentielle Schaltungen
Sequentielle Schaltungen
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 130/221
4. Testberechnung
2. Sequentielle Schaltungen
Sequenzielle Schaltungen
Zurückführung auf kombinatorische Schaltungen:
nur Abtastung
Testeingabeberechnung
Testobjekt
f1
x
T
f2
f1
f2
y
z
T
xn−3
yn
z
T
Testberechnung wie für eine kombinatorische Schaltung
Zeitversatz zwischen Ein- und Ausgabe berücksichtigen
x
x
x
x
x
<=
<=
<=
<=
<=
Prof. G. Kemnitz
Eingabe_1;
Eingabe_2;
Eingabe_3;
Eingabe_4;
Eingabe_5;
·
wait
wait
wait
wait
wait
on
on
on
for
for
rising_edge(T);
rising_edge(T);
rising_edge(T);
tP; assert y = Ausgabe_1 ...;
tP; assert y = Ausgabe_2 ...;
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 131/221
4. Testberechnung
2. Sequentielle Schaltungen
Verarbeitung in mehreren Zeitebenen
Testeingabeberechnung
Testobjekt
f1
x
f2
f1
z
T
y
T
xn−2
f2
T
yn
f1
x
n−3
Die kombinatorisch Ersatzschaltung enthält mehrere
Kopien derselben Schaltung.
Die Haftfehler sind in jeder Kopie.
Eingaben mehrerer Zeitebenen / Mehr-Pattern-Test:
x <= Eingabe_1A; wait on rising_edge(T);
x <= Eingabe_1B; wait on rising_edge(T);
... wait on rising_edge(T); assert y = Ausgabe_1 ...;
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 132/221
4. Testberechnung
2. Sequentielle Schaltungen
Schaltungen mit Rückführung
serieller Addierer
cn
an
VA
sn
bn
D
Takt
VA - Volladdierer
aufgerollter Addierer
cn−1
an−1
bn−1
VA
cn
an
bn
VA
sn
cn+1
an+1
bn+1
VA
sn+1
sn−1
Ersatzschaltung aus unbegrenzt vielen Kopien.
Regeln zur Begrenzung der Länge der Steuer- und
Beobachtungspfade.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 133/221
4. Testberechnung
2. Sequentielle Schaltungen
Zusammenfassung
Das Haftfehlermodell ist das an meisten angewendete
Fehlermodell.
Modellfehleranzahl etwa proportional zur Systemgröÿe.
Erlaubt relativ einfache und eziente Algorithmen für die
Berechnung der Fehlermengen, die Fehlersimulation und die
Testberechnung für speicherfreie digitale Schaltungen.
Anwendbarkeit der Tessatzauswahl- und
Bewertungstechniken durch prüfgerechten Entwurf sichern.
Andere Testauswahl und -bewertungstechniken werden im
Weiteren mit den Haftfehler-basierten Techniken verglichen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 134/221
4. Testberechnung
Prof. G. Kemnitz
3. Äquivalenzklassen
Äquivalenzklassen
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 135/221
4. Testberechnung
3. Äquivalenzklassen
Testauswahl mit Äquivalenzklassen
Äquivalenzklasse: Menge ähnlich
E5
E1 E3
E6 Ω
verarbeiteter Eingabewerte
E2
E4
Annahme, dass die meisten Fehler
Ω Eingaberaum
mit Werten an den Bereichsgrenzen
E
i Äquivalenzklasse
nachweisbar sind.
Gezielte Suche von Werten an Bereichsgrenzen.
optionale Wichtung der Testanzahl innerhalb der Bereiche
nach Wichtigkeit, Kompliziertheit, ... der Funktion
gehört zu den Funktionstests
Testerstellung bereits vor oder unabhängig von der
Codierung möglich
nicht ganz unabhängige (zufällige) Auswahl in Bezug auf zu
erwartende Fehler
Auswahltechnik für Programmmodule mit EVA-Struktur
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 136/221
4. Testberechnung
3. Äquivalenzklassen
praktisches Vorgehen:
Beschreibung der gesamten Funktion durch Bedingungen
bi (x) und Funktionen fi (x), nach denen unter diesen
Bedingungen die Ausgabe zu berechnen ist:
wenn b1 (x) dann y = f1 (x)
wenn b2 (x) dann y = f2 (x)
Bedingungen bestehen aus Vergleichen und logischen
Operationen, z.B.:
int a, b, c; if ((a>3)|(b+c>5))&(a<34) ...
Suche Wertetupel, bei denen geringe Werteänderungen einer
Variablen den Wahrheitswert ändern:
a
b
c
nachweisbarer Verfälschungen
3
-3
4
a+[1 . . . 30]
34
7
9
a-[1 . . .]
Ergänzen einiger Zufallstests innerhalb des Bereiches
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 137/221
4. Testberechnung
3. Äquivalenzklassen
int a, b, c;
...
if ((a>3)|(b+c>5))&(a<34)
{...
a
b
c
nachweisbarer Verfälschungen
3
-3
4
a+[1 . . . 30]
34
7
9
a-[1 . . .]
1
2
3
b+[1 . . .]; c+[1 . . .]
2
4
2
b-[1 . . .]; c-[1 . . .]
33
14
-15
a+[1 . . .]
34
-2
28
a-[1 . . .]
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 138/221
4. Testberechnung
3. Äquivalenzklassen
Beispiel einer abschnittsweise denierte Funktion
x
0≤x<1
1≤x<3
3≤x≤4
sonst
y
y := x
2
y := (x − 2)
y := 3 − x
Fehlermeldung
Beschreibung als Programm:
Beispiel Testauswahl für x
0, 0.5, 0.999
1, 1.5, 2, 2.7, 2.98
3, 3,2, 4
-100, -0.1, 4.01, 345
function f(x: real) return real is
variable y: real;
begin
assert x>0.0 and x<=4.0 report "Eingabefehler";
if x < 1.0 then y := x;
- AK1
elsif x < 3.0 then y := (x-2.0)**2; - AK2
else
y := 3.0-x;
- AK3
end if;
return y;
end function;
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 139/221
4. Testberechnung
x
0≤x<1
1≤x<3
3≤x≤4
sonst
y
y := x
2
y := (x − 2)
y := 3 − x
Fehlermeldung
3. Äquivalenzklassen
Beispiel Testauswahl für x
0, 0.5, 0.999
1, 1.5, 2, 2.7, 2.98
3, 3,2, 4
-100, -0.1, 4.01, 345
Testrahmen mit Testeingaben:
type tRealArray is array (natural range <>) of real;
constant xVektor: tRealArray := (0.0, 0.5, ..., 345.0);
variable x, y: real;
...
for idx in xVector'range loop
x := xVector(idx);
y := f(x);
write("x=" & str(x) & "
end loop;
y=" & str(y));
Die Testausgaben sind hier manuell zu kontrollieren.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 140/221
4. Testberechnung
3. Äquivalenzklassen
Richtlinien zur Festlegung der Äquivalenzklassen:
überschaubare Anzahl
einfach beschreibbare Einzelfunktionen9
Abschlussbemerkungen
Über Äquivalenzklassen ausgewählte Tests erkennen in der
Regel mehr Fehler als Zufallstestsätze derselben Länge.
Den Aufwand, eine Funktionsbeschreibung in die
Äquivalenzklassenform zu bringen, ist relativ hoch.
Aus einer Äquivalenzklassenbeschreibung lässt sich relativ
einfach (auch automatisiert) ein Programm erzeugen;
Über den Weg Nachbildung durch Äquivalenzklassenform
⇒ Abbildung in ein Programm lassen sich diversitäre
Beschreibungen für Mehrversionsvergleich ableiten.
gut strukturiert, kurz und übersichtlich sind auch Grundregeln zur
Fehlervermeidung
9
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 141/221
4. Testberechnung
Prof. G. Kemnitz
4. Speichertest
Speichertest
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 142/221
4. Testberechnung
4. Speichertest
Speichertest
Schreib-Lese-Speicher (RAM) besteht aus der Speichermatrix,
dem Adressdecoder, der Eingabelogik und der Ausgabelogik.
Fehler in der Decodier-, Eingabe- und Ausgabelogik werden als
Fehler in der Speichermatrix modelliert. Modellfehler für
Speicher:
Haftfehler (Lesewert ist ständig null oder ständig eins),
Übergangsfehler,
Stuck-open-Fehler (Ausgabe des zuletzt gelesenen Wertes),
zerstörendes Lesen (Löschen des Inhalts beim Lesen) und
gegenseitige Beeinussung unterschiedlicher Zellen.
Aufsetzend auf den Fehlerannahmen gibt es algorithmisch
beschriebene Testabläufe mit der Speicherorganaisation als
Parameter, die alle unterstellen Modellfehler nachweisen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 143/221
4. Testberechnung
beteiligte
Zellen
Name
Haftfehler
1
2
Definition
Veränderung des Inhalts von Zelle i
bewirkt eine Änderung in Zelle j
W (i)1 Schreibe 1
W (i)0 Schreibe 0
R(j) Lese eine beliebige andere Zelle
Prof. G. Kemnitz
·
Fälle
Wert der Speicherzel- stuck-at-0
stuck-at-1
le ist nicht setzbar
Übergangs- Wert der Speicherzelle i ist nur in einer
fehler
Richtung änderbar
Stuck-open- kein Zugriff auf Speicherzelle i (Ausgabe
Fehler
des Wertes der vorherigen Leseoperation)
zerstören- Inhalt von Speicherzelle i wird beim
des Lesen
Lesen verändert
Kopplung Veränderung des InTyp 1
halts von Zelle i bestimmt Zustand in
Zelle j
Kopplung
Typ 2
4. Speichertest
Testfolge für den
Nachweis
W (i)1, R(i)
W (i)0, R(i)
kein Übergang
1→0
0→1
W (i)1, R(i), W (i)0, R(i)
W (i)0, R(i), W (i)1, R(i)
R(i) ⇒ C(i) = C(i)
W (i)0, R(i), R(i)
W (i)1, R(i), R(i)
W (i)0 ⇒ C(j) = 0
W (i)0 ⇒ C(j) = 1
W (i)1 ⇒ C(j) = 0
W (i)1 ⇒ C(j) = 1
C(i) = C(i) ⇒
C(j) = C(j)
W (i)0, R(j)1, R(i), W (i)1,
R(j)0, R(i)
W (i)0, R(j), W (i)1, R(j),
W (i)0, R(j)
R(j), W (i)0, R(j), W (i)1, R(j)
R(i) Lese Inhalt und Vergleiche mit Sollwert
R(j)0 Lese eine andere Zelle, in der 0 steht
R(j)1 Lese eine andere Zelle, in der 1 steht
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 144/221
4. Testberechnung
4. Speichertest
Marching Test
March 4
R(i)1, W (i)0
R(i)1, W (i)0
R(i)1,. W (i)0
..
R(i)1, W (i)0
March 1a
R(i)0, W (i)1
R(i)0, W (i)1
R(i)0, .W (i)1
..
R(i)0, W (i)1
Wartezeit
0
1
2.
..
N −1
March 1
March 2
March 3
Initialisierung
R(i)1, W (i)0
R(i)0, W (i)1
R(i)0, W (i)1
W (i)0
R(i)1, W (i)0
R(i)0, W (i)1
R(i)0, W (i)1
W (i)0
R(i)1, .W (i)0
R(i)0,. W (i)1
R(i)0, .W (i)1
W (i)0
..
..
..
..
.
R(i)1, W (i)0 R(i)0, W (i)1
R(i)0, W (i)1
W (i)0
Wartezeit
Adresse
i
0
1
2.
..
N −1
March 2a
R(i)1
R(i)1
R(i)1
..
.
R(i)1
Mehrfachen Durchwandern des Speichers in unterschiedlicher
Reihenfolge mit der Operationsfolge Zelle Lesen, Wert
kontrollieren und inversen Wert zurückschreiben.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 145/221
4. Testberechnung
Prof. G. Kemnitz
5. Aufgaben
Aufgaben
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 146/221
4. Testberechnung
5. Aufgaben
Ideensammlung
1
2
3
D-Algorithmus per Hand.
Schaltung mit festgelegten Werten vorgeben. Alle implizit
festgelegten Werte bestimmen.
Beispielschaltung als Schaltplan vorgeben. Wie sieht die
aufgerollte Schaltung für die Testsuche aus?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 147/221
5. Fehlerbeseitigung
Prof. G. Kemnitz
Fehlerbeseitigung
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 148/221
5. Fehlerbeseitigung
Fehlerbeseitigung
Die Reparatur alter Fehler kostet oft mehr als die
Anschaung neuer. (Wieslaw Brudzinski, 1920*)
Vorabtests vor der Fehlersuche:
Fehler oder Störung? ⇒ Fehlverhalten reproduzierbar?
Lassen sich Tests nden, die bei Wiederholung dasselbe
Fehlverhalten anregen? Fehlerwirkung beseitigbar?
Entwurfs- oder Fertigungsfehler? ⇒ Unterschiedliches
Verhalten baugleicher Systeme?
Möglichkeiten der Fehlerbeseitigung:
Ersatz
Reparatur (oft Ersatz von Teilsystemen)
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 149/221
5. Fehlerbeseitigung
Prof. G. Kemnitz
1. Ersatz
Ersatz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 150/221
5. Fehlerbeseitigung
1. Ersatz
Ersatz, Fehleranzahl und Fehleranteil
Eine Einheit wird getauscht, wenn sie mindestens einen
nachweisbaren Fehler enthält. Zu erwartende Fehleranzahl
ungetesteter Systeme nach F2, Abschn.3.2:
E (ϕ) =
Nϕ
X
i=1
hi = Nϕ · h̄
(Nϕ Anzahl der potentiellen Fehler; hi Auftrittshäugkeiten
der einzelnen potenziellen Fehler; h̄ mittlere Fehlerauftrittshäugkeit). Der zu erwartende Fehleranteil ist die
Wahrscheinlichkeit, dass das System mindestens einen Fehler
Nϕ
enthält:
Y
E (DL) = 1 −
i=1
(1 − hi ) = 1 − e−Nϕ ·h̄
Ersatz ist nur bei Verfügbarkeit fehlerarmer Ersatzteile oder beim
Fertigungstest für hinreichend kleine Bausteine mit im Mittel
nicht viel mehr als einem Fehler sinnvoll.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 151/221
5. Fehlerbeseitigung
E (DL) = 1 − e−Nϕ ·h̄
1. Ersatz
1
E(DL)
Für den Fertigungstest steht
0,8
die Anzahl der potenziellen
0,6
Fehler Nϕ für die Systemgröÿe
0,4
und h̄ für die Güte des Entsteh0,2
ungsprozesses. Derzu erwartende
0,2
Fehleranteil ist gleichzeitig der zu
erwartende Ausschuss.
0,4
1
2
4
E(ξE ) = Nϕ · h̄
Durch Aussortieren werden alle erkennbaren Fehler beseitigt.
Übrig bleiben nur nicht erkannte Fehler:
E (ϕT ) = (1 − E (F C)) · E (ϕ)
(F C Fehlerüberdeckung). Fehleranteil nach Ersatz erkannter
fehlerhafter Systeme:
Prof. G. Kemnitz
E (DLT ) = 1 − e−(1−E(F C))·Nϕ ·h̄
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 152/221
5. Fehlerbeseitigung
1. Ersatz
Fehleranteil nach Aussortieren aller fehlerhaften Objekte in dpu
(defects per unit) bzw. dpm (defects per million):
vor dem Test
E (ϕ) = 2
E (ϕ) = 1
E (ϕ) = 0,5
E (ϕ) = 0,2
ohne Test
0,865 dpu
0,632 dpu
0,393 dpu
0,181 dpu
F C = 70%
0,45 dpu
0,26 dpu
0,14 dpu
0,058 dpu
F C = 90%
0,18 dpu
0,095 dpu
0,049 dpu
0,020 dpu
F C = 99,7%
0,058 dpu
0,030 dpu
0,015 dpu
6000 dpm
F C = 99%
0,020 dpu
0,010 dpu
5000 dpm
2000 dpm
F C = 99,7%
5000 dpm
3000 dpm
1500 dpm
600 dpm
F C = 99,9%
2000 dpm
1000 dpm
500 dpm
200 dpm
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 153/221
5. Fehlerbeseitigung
1. Ersatz
Fehleranteil und -überdeckung für Schaltkreise
vor dem Test
E (ϕ) = 2
E (ϕ) = 1
E (ϕ) = 0,5
E (ϕ) = 0,2
Ausbeute
13,5%
36,8%
60,1%
81,9%
F C = 90%
0,18 dpu
0,095 dpu
0,049 dpu
0,020 dpu
F C = 99,7%
0,058 dpu
0,030 dpu
0,015 dpu
6000 dpm
F C = 99%
0,020 dpu
0,010 dpu
5000 dpm
2000 dpm
F C = 99,7%
5000 dpm
3000 dpm
1500 dpm
600 dpm
F C = 99,9%
2000 dpm
1000 dpm
500 dpm
200 dpm
Gründlich getestete Schaltkreise haben einen Fehleranteil
von 100...1000 dpm (grün gekennzeichnet).
Verlangt etwa eine Ausbeute Y ≈ 1 − DL = e−E(ϕ) von 50%
und eine Fehlerüberdeckung von F C ≈ 99,9%.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 154/221
5. Fehlerbeseitigung
1. Ersatz
vor dem Test
E (ϕ) = 2
E (ϕ) = 1
E (ϕ) = 0,5
E (ϕ) = 0,2
Ausbeute
13,5%
36,8%
60,1%
81,9%
F C = 99,7%
5000 dpm
3000 dpm
1500 dpm
600 dpm
F C = 99,9%
2000 dpm
1000 dpm
500 dpm
200 dpm
Die angestebten Haftfehlerüberdeckungen sind typisch nur
F Csa ≈ 98% und die erzielten Ausbeuten nicht viel gröÿer als
50%. Die Zahlen passen nicht zusammen!
Ansätze für die Forschung:
Sind die Abschätzungen für den Fehleranteil in der Literatur
zu optimistisch?
Ist der Anteil der nicht nachweisbaren tatsächlichen Fehler
eine Zehnerpotenz kleiner als der der Haftfehler und wenn ja,
warum?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 155/221
5. Fehlerbeseitigung
1. Ersatz
Fehleranteil von Bauteilen und Baugruppen
Gründlich getestete Schaltkreise: 100...1000 dpm =
10−4 . . . 10−3 dpu
(dpm defects per million; dpu defects per unit)
Rechner aus 102 Schaltkreisen mit DLIC = 10−4 dpu:
Wie viele Rechner enthalten (mindestens) einen defekten
Schaltkreis?
DL = 1 − 1 − 10−4
Jeder hundertste Rechner.
2
≈ 10−2
Vom Herstellertest übersehene Schaltkreisfehler
beeinträchtigen die Funktion fast nicht / kaum zu erkennen.
Ein HW-Fehler im Einsatz auf 100 Rechner ist eine
glaubhafte Gröÿenordnung.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 156/221
5. Fehlerbeseitigung
Prof. G. Kemnitz
2. Input-Workaround
Input-Workaround
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 157/221
5. Fehlerbeseitigung
2. Input-Workaround
Alternativen zum Ersatz des Gesamtsystems
Bei einem Fehleranteil nahe eins ist Austausch defekter Objekte
unbezahlbar. Alternativen:
System so nutzen, dass die internen Fehler hinreichend selten
Fehlfunktionen verursachen (input work-around).
Reparatur (z.B. Ersatz von Teilsystemen).
Anfrage-Umformulierung (input work-around):
Geänderte Anfrage, die im fehlefreien Fall dasselbe Ergebnis
liefert (anderen Bedatung, andere Schnittstellen, andere
Ausführungsreihenfolge, ...)
Für Benutzer von IT-Systemen intuitiv erlernte Technik.
Auch bei langer Systemnutzung ohne Beseitigung erkannter
Fehler nimmt die Häugkeit der Fehlfunktionen dadurch in
der Regel ab.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 158/221
5. Fehlerbeseitigung
2. Input-Workaround
Beispiele studentischer Arbeiten im Arbeitsbereich, die nur mit
Input-Workarounds lösbar waren:
CAN-Busansteuerung c167: SFR-Register mussten in einer
nicht in der Doku stehenden Reihenfolge initialisiert werden.
Sharp-Abstandssensoren: Im Datenblatt steht nicht, dass
sich mehrere Sensoren im Raum gegeseitig stören, ...
Power-Cube (Gelekte des groÿen Laborroboters): Bei
Nachrichtenkollision auf dem CAN-Bus keine
Übertragungswiederholung und andere Bugs. ...
Andere Beispiele:
Vor der Compilierung des Linux-Kernals können die
Hardware-Bugs abgewählt werden, für die InputWorkarounds überüssig sind (z.B. Float/Div-Bug).
Bei Problemen mit neue Hard- oder Software am besten Internet
durchsuchen, ob schon Work-Arounds dafür bekannt sind.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 159/221
5. Fehlerbeseitigung
Prof. G. Kemnitz
3. Reparatur
Reparatur
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 160/221
5. Fehlerbeseitigung
3. Reparatur
Reparatur
Die Reparaturmöglichkeiten legt der Entwurf fest. Einige
Prinzipien des reparaturgerechten Entwurfs:
Zusammensetzten aus austauschbaren Einheiten:
Software aus Bibliothekselementen, Funktionen,
Anweisungen, ...
Geräte aus Baugruppen, Verbindungen, ...
Baugruppen aus Bauteilen, ...
hochintegrierte Schaltkreise: über Programmierelemente
abschaltbare Einheiten und zuschaltbare Reserveeinheiten
Unterstützung der Fehlerlokalisierung:
auftrennbare Steck- und Lötverbindungen, ... (Baugruppen),
Assertanweisungen, Fehlercodes, ... (Software),
Einschalttest (Rechner),
Diagnosebus, lesbarer Fehlerspeicher (Fahrzeugsteuergeräte).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 161/221
5. Fehlerbeseitigung
3. Reparatur
Experimentelle Reparatur
Intuitives iteratives Vorgehen:
Fehlfunktion entdeckt
Aufstellen einer Fehlerhypothese
Suche (weiterer) Tests, die die Fehlfunktion reproduzierbar nachweisen
experimentelle Reparatur
beobachtete
Fehlfunktion
noch vorhanden
Wiederholung der Test
Rückbau der Änderung
beobachtete
Fehlfunktion
beseitigt
Fehler gilt als beseitigt
Der Reparaturversuch ist die Kontrolle, ob die aufgestellte
Hypothese über die Ursache der Fehlfunktion richtig war.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 162/221
5. Fehlerbeseitigung
3. Reparatur
Jede Fehlerbeseitigungsiteration startet mit einer
beobachteten Fehlfunktion.
Für die Fehlfunktion werden Testbeispiele festgelegt, die sie
nachweisen10 .
Wiederhole, bis die Fehlfunktion nicht mehr auftritt:
Ersatz von Einheiten, Reparatur von Verbindungen, ...11
Erfolgskontrolle mit Testbeispielen.
kein Erfolg: (möglichst) Rückbau vorheriger Zustand12
Erfolg: Iterationsabbruch.
Für beim Test bemerkte Fehlfunktionen ist das der Testsatz. Für im
Einsatz erkannte Fehlfunktionen müssen diese u.U. erst konstruiert werden.
11
Aufwandsminimierung: Zusätzliche Tests zur Einschränkung der
Fehlermöglichkeiten und damit der zu erwartenden Iterationsanzahl, z.B.
Ausschluss von Unterbrechungen oder Kurzschlüssen durch
Widerstandsmessungen. Beginn mit einfachen Reparaturmöglichkeiten. ...
12
Z.B. Ersatz einer geänderten Programmdatei durch ein Backup, wenn die
Programmänderung des Fehlersymptom nicht beseitigt hat. Ohne
gewissenhaften Rückbau kann sich durch die Reparaturiterationen die
Fehleranzahl vergröÿern statt abnehmen.
10
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 163/221
5. Fehlerbeseitigung
3. Reparatur
Fakt 2
Eine Fehlerbeseitigung auf Verdacht beseitigt alle erkennbaren
Fehler, auch wenn sich der Verdacht, welche Einheit oder
Verbindung defekt ist, mehrmals nicht bestätigt.
Für die Fehlerlokalisierung
genügt eine Erfolgswahrscheinlichkeit weit unter 100%
wesentlich weniger qualiziertes Personal als für die
Testauswahl.13
Praktische Lokalisierungstechniken:
Systematisches Tauschen.
Erfahrungsbasierte Reparaturentscheidung.
Rückverfolgung.
13
Braucht im Studium deshalb auch nicht unterrichte zu werden.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 164/221
5. Fehlerbeseitigung
3. Reparatur
Systematisches Tauschen
hierarchisches System mit
tauschbaren Komponenten
Tauschbaum
A
B
b
1
2
Aa
A
a
1
2
Aa1
B
Ab
Ab1
Aa2
Ba
Ba1
Ab2
Bb
Bb1
Ba2
Bb2
Nach jedem Tausch, Erfolgskontrolle durch
Testwiederholung.
Ideal: binärer Suchbaum, Tausch der Hälfte, eines Viertel, ...
der Komponenten.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 165/221
5. Fehlerbeseitigung
3. Reparatur
Erfahrungsbasierte Reparaturentscheidung
Pareto-Prinzip: Produkte haben Schwachstellen. Richtwert:
80% der Probleme geht auf 20% der Ursachen zurück.
Zählen der erfolgreichen und erfolglosen Reparaturversuche.
Bei Alternativen, Beginn mit der erfolgsversprechenden
Reparaturmöglichkeit.
bisherige Häufigkeit, mit der
die Reparaturentscheidung
für das Symptom richtig war
Reparaturentscheidung
Fehlersymptom
Nach erfolglosen Reparaturversuchen Vorzustand wieder
herstellen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 166/221
5. Fehlerbeseitigung
3. Reparatur
Rückverfolgung
Zeitebene n − 1
Rückverfolgungspfad
Zeitebene n
S
Ende des Rückverfolgungspfades
gespeicherter Zustand
S
Ausgang
Aufzeichnung der Zeitverläufe potenziell verfälscher Signalverläufe oder Variablenwerte (Simulation, Logikanalyse,
Programm-Trace)
Ausgehend von einer erkannten falschen Ausgabe
Rückwärtsuche nach dem Entstehungsort.
Entstehungsort: Funktionsbaustein, der aus richtigen
Eingaben falsche Ausgaben erzeugt.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 167/221
5. Fehlerbeseitigung
3. Reparatur
Am Fehlerort erfahrungsbasierte Reparaturentscheidung:
Nicht unbedingt der Funktionsbaustein mit richtigen
Eingaben und falschen Ausgaben verursacht den Fehler.
Weitere potenzielle Ursachen:
Kurzschluss zu einem anderen Signal, Unterbrechung,
defekter Schaltkreiseingang, ... (Baugruppen),
Schreiboperation auf eine falsche Variable, ... (Programme).
Spezielle Fehlerausschlusstests z.B.
Prof. G. Kemnitz
Widerstandsmessungen zwischen und entlang von
Verbindungen.
Suche nach falscher Schreiboperation auf die Variable.
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 168/221
5. Fehlerbeseitigung
3. Reparatur
Reparatur der Hardware eines PCs
Typisches Mechaniker-Vorgehen:
Grobabschätzung, welcher Rechnerteil defekt sein könnte aus
den Fehlersymptomen.
Kontrolle der Steckverbinder auf Kontaktprobleme durch
Abziehen, Reinigen, Zusammenstecken, Ausprobieren.14
Tausch möglicherweise defekter Baugruppen gegen
Ersatzbaugruppen, Ausprobieren, ...
Voraussetzungen:
Wiederholbare Tests, die den Fehler nachweisen.
Ausreichend Ersatzteile.
Verlangt nur allgemeine Mechnikerkenntnisse, aber keine
Kenntnis der Funktionsweise des zu reparierenden Systems.
Ein cleverer Mechaniker bauen getauschte vermutlich ganze Teile statt in
denselben, in einen anderen Rechner ein. Warum sollte das unterbleiben?
14
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 169/221
5. Fehlerbeseitigung
3. Reparatur
Abschätzung der Anzahl nicht beseitigten Fehler
AE
Entwurfsprozess
ϕ⋄E =
ursprüngliche Fehler
Fehler durch Reparatur
AE
QE
Test
ϕ⋄R =
AR
QR
Reparatur
Beseitigungsiteration
AE Entwurfsaufwand
AR Reparaturaufwand
QE Güte des Entwurfsprozesses
ϕ⋄! = (1 − F C) · (ϕ⋄E + ϕ⋄R )
nicht beseitigte Fehler
ϕ⋄T = F C · (ϕ⋄E + ϕ⋄R )
erkennbare Fehler
i=0
ϕ⋄T
ϕ⋄.i =
(1 − RC) · ϕ⋄.i−1 i > 0
QR Güte des Reparaturprozesses
F C Fehlerüberdeckung des Tests
RC Erfolgsrate der Reparatur
Die Fehleranzahl sei proportional zum Aufwand und
umgekehrt proportional zur Prozessgüte.
Fehler, die der Test durchlässt, erreichen nie die Reparatur
Nachweisbare Fehler werden iterativ beseitigt.
Je mehr Beseitigungsiterationen, desto mehr neue Fehler.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 170/221
5. Fehlerbeseitigung
AE
ϕ⋄E =
Entwurfsprozess
3. Reparatur
AE
QE
ϕ⋄! = (1 − F C) · (ϕ⋄E + ϕ⋄R )
Test
ursprüngliche Fehler
Fehler durch Reparatur
ϕ⋄R =
AR
QR
Reparatur
Beseitigungsiteration
nicht beseitigte Fehler
ϕ⋄T = F C · (ϕ⋄E + ϕ⋄R )
erkennbare Fehler
i=0
ϕ⋄T
ϕ⋄.i =
(1 − RC) · ϕ⋄.i−1 i > 0
Fehleranzahl je Beseitigungsschritt ⇒ geometrische Reihe:
i
ϕ.i = (1 − RC) · ϕT
Anzahl der Reparaturen gleich Summe aller ϕ.i :
AR =
∞
X
i=0
ϕ.i = ϕT ·
∞
X
i=0
i
(1 − RC) =
ϕT
RC
Anzahl der durch Reparaturen verursachten Fehler
ϕR =
Prof. G. Kemnitz
·
ϕT
F C · (ϕE + ϕR )
=
QR · RC
QR · RC
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 171/221
5. Fehlerbeseitigung
ϕR =
QR · RC =
3. Reparatur
ϕT
QR ·RC
Anz. Reparaturen
neue Fehler
·
=
F C·(ϕE +ϕR )
QR ·RC
beseitigte Fehler
Anz.Reparaturen
=
beseitigteFehler
neue Fehler
Wenn die Anzahl der nachweisbaren Fehler abnimmt:
QR · RC > F C
Gesamtanzahl der durch Reparatur verursachen Fehler:
ϕR = ϕE ·
FC
QR ·RC−F C
Ursprüngliche + reparaturbedingte Fehler
ϕE + ϕR = ϕE · 1 +
FC
QR ·RC−F C
= ϕE ·
QR ·RC
QR ·RC−F C
Gesamtanzahl der nicht beseitigten Fehler (. . . · (1 − F C))
Prof. G. Kemnitz
ϕ! = ϕE ·
·
(1−F C)·QR ·RC
QR ·RC−F C
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 172/221
5. Fehlerbeseitigung
3. Reparatur
Idealer Reparaturprozess
Es werden viel mehr Fehler beseitigt als neu eingebaut:
QR · RC =
beseitigteFehler
1
neue Fehler
Fehlerbeseitigung ist so gut wie der Test
ϕ! = ϕE ·
(1 − F C) · QR · RC
≈ (1 − F C) · ϕE
QR · RC − F C
Wenn im Mittel für jeden beseitigten Fehler ein neuer eingebaut
wird: QR · RC = 1
ϕ! = ϕE ·
(1 − F C) · 1
(1 − F C) · QR · RC
= ϕE ·
= ϕE
QR · RC − F C
1 − FC
Werden alle nachweisbaren Fehler beseitigt und
entstehen etwas genauso viele nicht nachweisbare Fehler.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 173/221
5. Fehlerbeseitigung
3. Reparatur
Typische studentische Programmierarbeiten
ϕ! = ϕE ·
(1−F C)·QR ·RC
QR ·RC−F C
Fall A: wenige Testbeispiele, brauchbarer Reparaturprozess
Beispiel: F C = 30% erkennbare Fehler, QR · RC = 2
beseitigte je neuer Fehler
ϕ! = ϕE ·
(1 − 0.,3) · 2
≈ 82% · ϕE
2 − 0.,3
Reduktion der Fehleranzahl auf 82%. Davon sind 70% nicht
erkannte ursprüngliche und 12% · ϕE bei der Reparatur
entstandene Fehler.
Erkannt und beseitigt werden die am meisten störenden
Fehler (siehe Zufallstest). Es bestehen Chancen, dass das
System einen Abnahmetest mit 1 bis 2 neuen zufälligen
Testbeispielen erfolgreich passiert.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 174/221
5. Fehlerbeseitigung
ϕ! = ϕE ·
3. Reparatur
(1−F C)·QR ·RC
QR ·RC−F C
Fall B: Entwurf wird beherrscht, aber Test und
Reparaturtechniken nicht
Beispiel: F C = 25% erkennbare Fehler, QR · RC = 0,5
beseitigte je neuer Fehler
ϕ! = ϕE ·
(1 − 0, 25) · 0, 5
= 2,5 · ϕE
0, 5 − 0, 25
System enthält nach Test und Fehlerbeseitigung viel mehr
Fehler als zuvor.
Reparatur versteckt die Fehler (ersetzt alle erkennbaren
durch nicht erkennbare Fehler); Testbeispiele entwertet
Begleitsymtom: übermäÿig lange Test- und Reparaturphase.
Abnahmetest mit 1 bis 2 neuen zufälligen Testbeispielen
ndet in der Regel Fehler.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 175/221
5. Fehlerbeseitigung
ϕ! = ϕE ·
3. Reparatur
(1−F C)·QR ·RC
QR ·RC−F C
Fall C: Studierender ist mit seiner Aufgabe überfordert
F C > QR · RC
Zunahme der Anzahl der nachweisbaren Fehler mit
Fortschreiten der Beseitigungsversuche.
Projekt wird nie fertig.
Vor der Übertragung einer Entwicklungsaufgabe sollte der
personengebundenen Parameter QR · RC (beseitigte Fehler je
neuer Fehler) kontrolliert und, wenn schlecht, Einarbeitungszeit
verlängert werden.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 176/221
5. Fehlerbeseitigung
3. Reparatur
Reparaturempfehlungen
Fehlfunktion entdeckt
Aufstellen einer Fehlerhypothese
Suche (weiterer) Tests, die die Fehlfunktion reproduzierbar nachweisen
experimentelle Reparatur
beobachtete
Fehlfunktion
noch vorhanden
Wiederholung der Test
Rückbau der Änderung
beobachtete
Fehlfunktion
beseitigt
Fehler gilt als beseitigt
Zur Minimierung der Iterationszahl:
Ausschluss von Hypothesen durch zusätzliche Tests.
Reparaturentscheidungen so wählen, dass bei Nicht-Erfolg
weitere Hypothesen ausgeschlossen werden. ...
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 177/221
5. Fehlerbeseitigung
AE
Entwurfsprozess
ϕ⋄E =
ursprüngliche Fehler
Fehler durch Reparatur
AE
QE
Test
ϕ⋄R =
AR
QR
Reparatur
Beseitigungsiteration
3. Reparatur
ϕ⋄! = (1 − F C) · (ϕ⋄E + ϕ⋄R )
nicht beseitigte Fehler
ϕ⋄T = F C · (ϕ⋄E + ϕ⋄R )
erkennbare Fehler
i=0
ϕ⋄T
ϕ⋄.i =
(1 − RC) · ϕ⋄.i−1 i > 0
Fehlervermeidung bei der Reparatur:
Sorgfältig reparieren (hohe Güte QR und hohe Erfolgsrate
RC des Reparaturprozesses).
Sorgfältiger Rückbau. (Beseitigt auch entstandene Fehler, die
der Test nicht erkennt.)
Zahl der erfolglosen Reparaturversuche je Fehler begrenzen,
z.B. auf drei, dann Ersatz.
Von Systemen mit sehr vielen Änderungen nur die
Zielfunktion und die Testbeispiele übernehmen. System
selbst neu entwerfen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 178/221
5. Fehlerbeseitigung
3. Reparatur
Regel für den Einkauf von IT-Systemen:
Zur Kontrolle, ob der Hersteller eine akzeptable Prüf- und
Reparaturtechnologien hat, neu angeschate IT-System mit
einer Stichprobe zufälliger Eingaben testen.
Wenn ein System diesen Test nicht besteht, zurückgeben und
von diesem Hersteller nie wieder etwas kaufen. Denn das ist
ein sicherer Hinweis darauf, dass dieser Hersteller seine
Entwurfs- und Reparaturprozesse nicht beherrscht.
Akzeptiere nie ein IT-System, ohne vorher selbst gewählte,
dem Entwerfer unbekannte Tesetbeispiele auszuprobieren.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 179/221
5. Fehlerbeseitigung
Prof. G. Kemnitz
4. Aufgaben
Aufgaben
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 180/221
5. Fehlerbeseitigung
4. Aufgaben
Aufgabe 5.1: Fehleranteil
1
2
Die zu erwartende Fehleranteil eines Systemtyps sei vor dem
Test 0,7 dpu und nach dem Test 0,01 dpu. Welche
Fehlerüberdeckung hat der Testsatz unter der Annahme, dass
die Fehleranzahl vor und nach dem Test poison-verteilt ist?
Ein Schaltkreistest hat 60% aller gefertigten Schaltkreise als
fehlerhaft aussortiert. Aus dem Garantierückläufen seitens
der Anwender wurde für die getesteten Schaltkreise ein
Fehleranteil von 200 dpm abgeschätzt. Auf welche Ausbeute
und auf welche Fehlerüberdeckung lassen diese Zahlen
schlieÿen, wenn eine poisson-verteile Fehleranzahl unterstellt
wird?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 181/221
5. Fehlerbeseitigung
4. Aufgaben
Aufgabe 5.2: Input Workaround
1
Beschreiben Sie in der Programmiersprache C einen
Work-Around zur Ausführung der Anweisung
int a, b, c;
...
a = b * c;
2
für einen Rechner, der bei einer Multiplikation mit null
aufgrund eines Fehlers eins berechnet so, dass das Programm
auch funktioniert, wenn der Fehler in späteren
Rechnergenerationen nicht mehr vorhanden ist.
Welche Dokumente eines Software-Prototypentwurfs, an
denen sehr viel geändert und in dem bereits sehr viele Fehler
beseitigt wurden, sollten weiterverwendet und welche neu
geschrieben werden?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 182/221
5. Fehlerbeseitigung
4. Aufgaben
Aufgabe 5.3: Fehlerlokalisierung
Für die nachfolgende Schaltung wurden die Signalwerte in der
Tabelle während des Tests aufgezeichnet.
1 Welche Bauteile oder Verbindungen könnten die Ursache der
Fehlfunktion sein?
2 Wie lieÿen sich die Fehlermöglichkeiten vor dem ersten
Reparaturversuch weiter einschränken?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 183/221
5. Fehlerbeseitigung
4. Aufgaben
Aufgabe 5.4: Reparaturprozess
Ein Student macht angenommen beim Programmieren im Mittel
5 Fehler auf Hundert Programmzeilen, die weder vom Syntaxtest
noch von den gewählten Testbeispielen erkannt werden. Auf jeden
nicht erkannten Fehler kommt im Mittel ein Syntaxfehler und ein
erkannter semantischer Fehler. Die Beseitigung eines erkannten
Fehlers erfordert im Mittel drei Versuche. Bei jedem zweiten
Versuch entsteht ein neuer Fehler. Von den neuen Fehlern wird
ein Drittel vom Syntaxtest, ein Drittel von den Testbeispielen
und ein Drittel nicht erkannt. Wie hoch ist die zu erwartende
Fehleranzahl nach Beseitigung aller erkennbaren Fehler eines 200
Codezeilen groÿen Programms?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 184/221
5. Fehlerbeseitigung
4. Aufgaben
Aufgabe 5.5: Fehlerbeseitigungsiteration
Wie groÿ ist die zu erwartende Fehleranzahl nach einer Iteration
aus Test und Fehlerbeseitigung?
Fehleranzahl vor der Fehlerbeseitigungsiteration 20;
Fehlerüberdeckung F C = 60% und
im Mittel einem neu entstehenden Fehler je fünf
Beseitigungsversuche.
Unter welcher Bedingung nimmt die Anzahl der nachweisbaren
Fehler in einer Fehlerbeseitigungsiteration denoch ab, wenn bei
jedem erfolgreichen Beseitigungsversuch im Mittel 1,2 neue
Fehler in das System eingebaut werden?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 185/221
5. Fehlerbeseitigung
4. Aufgaben
Aufgabe 5.6: Fehleranteil Baugruppen
1
Eine Leiterplatte wird aus folgenden Bauteilen mit
bekanntem Fehleranteil zusammengesetzt. Wie hoch ist der
Fehleranteil der Baugruppe nach Beseitigung aller
Verbindungsfehler?
Typ
Anzahl
Fehleranteil
Widerstände, Kondensatoren, ...
Schaltkreise
Steckkontakte
2
Leiterplatte
Begründen Sie aus Reparatursicht, warum auf Baugruppen
auch manchmal Teilbaugruppen als vorgefertigte, seperat
testbare Module gesteckt werden.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 186/221
5. Fehlerbeseitigung
4. Aufgaben
Aufgabe 5.7: Fehleranteil Rechner
Ein Rechner besteht aus Leiterplatten, Schaltkreisen, diskreten
Bauteilen (Widerstände, Kondensatoren, . . .) und Lötstellen.
Typ
Anzahl
E (DLBT )
Leiterplatten
10
10 dpm
Schaltkreise
100
200 dpm
diskrete Bauteile
200
10 dpm
Lötstellen
10000
1 dpm
Fehleranteil des gesamten Rechners
15 ?
Für die Bauteile und den kompletten Rechner sei unterstellt, dass die
Fehleranzahl poisson-verteilt ist.
15
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 187/221
5. Fehlerbeseitigung
4. Aufgaben
Aufgabe 5.8: Objektüberdeckung, Ausbeute, ...
Ist die Objektfehlerüberdeckung gröÿer oder kleiner als die
Fehlerüberdeckung?
Die Objektfehlerüberdeckung sei 50% und die Ausbeute
80%. Wie hoch ist der Fehleranteil, wenn die Fehleranzahl
Poisson-verteilt ist?
Für einen bestimmten Schaltkreistyp, z.B.
Speicherschaltkreise sei die Ausbeute 80%. Um welchen
Faktor kann die Chipäche vergröÿert werden, damit die
Ausbeute nicht unter 20% absinkt? Annahmen: Die
Fehleranzahl sei Poisson-verteilt und verhalte proportional
zu Chip-Fläche.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 188/221
6. Testumgebungen
Prof. G. Kemnitz
Testumgebungen
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 189/221
6. Testumgebungen
Testumgebungen
Zur Durchführung eines dynamischen Tests sind Eingaben
bereitzustellen und die Ergebnisse zu kontrollieren. Für
Software-Module erfordert das nur einen Rechner und ein
Programm (Testrahmen), in den das Testobjekt eingebunden ist.
Interaktive Programme brauchen eine kompliziertere
Testumgebung, im ungünstigsten Fall einen Bediener. Für den
ganzheitlichen Test reaktiver Systeme sind Teile der Umgebung
nachzubilden bis hin zur Simulation des gesteuerten Objekts
(Antrieb, Fahrzeug, ...). Hardware verlangt oft Spezialtester, die
in Echtzeit Testeingaben bereitstellen und Ergebnisse
kontrollieren.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 190/221
6. Testumgebungen
Prof. G. Kemnitz
1. Modultest
Modultest
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 191/221
6. Testumgebungen
1. Modultest
Modultest
IT-Systeme sind modular aufgebaut. Module sind die kleinsten
sinnvoll testbaren Systembausteine. Nach dem Service-Modell hat
jedes Modul Schnittstellen für die Ein- und Ausgabe und eine
interne Funktion.
Eingabe
Ausgabe
Schnittstelle
Verarbeitung
Für den Modultest wird jedes Modul aus dem Kontext gelöst, in
einen Testrahmen eingebettet, der Testeingaben bereitstellt und
die Testausgaben kontrolliert. Die Modularisierung legt der
Entwurf fest und ist fundamental für die Testbarkeit.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 192/221
6. Testumgebungen
1. Modultest
Entwurfs- und Testreihenfolge
Software hat eine hierarchische Aufrufstruktur, in der das
Hauptprogramm Unterprogramme nutzt, die wiederum
Unterprogramme nutzen.
M0
Modul
Verweis auf
genutzte
Untermodul
M1
M3
M2
M4
M5
Strategien für die Entwurfs- und Testreihenfolge:
Bottom-Up: Beginn mit dem Entwurf und Test der untersten
Module. Test der übergeordneten Module mit den bereits
getesteten Untermodulen.
Top-Down: Beginn mit dem Entwurf übergeordneter Module
und Test mit Dummies für die Untermodule. Schrittweise
Ersatz der Dummies durch getestete Untermodule.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 193/221
6. Testumgebungen
nacheinander abzuarbeiten
TR3
M3
Buttom-Up
TR4
TR5
M4
M5
TR1
M2
M4 M5
TR1
M1
M3 M4
TR0
M0
M1
M3 M4
M2
M4 M5
Di Dummie für Modul Mi
1. Modultest
Top-Down
TR0
M0
D1
D2
TR0
M0
M1
D3 D4
M2
D4 D5
TR0
M0
M1
D3 D4
M2
D4 D5
Der Buttom-Up-Entwurf verlangt für jedes Modul einen eigenen
Testrahmen. Der Top-Down-Entwurf kommt mit einem
Testrahmen für oberste Modul aus, verlangt aber die
Entwicklung von Dummies für die zu Beginn noch nicht
eingebundenen Module.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 194/221
6. Testumgebungen
1. Modultest
Testrahmen für Software
Für Software-Module und Hardware-Simulationsmodelle ist der
Testrahmen ein Programm, dass die Eingaben bereitstellt und die
Ausgaben auswertet oder aufzeichnet. Beim Top-Douw-Entwurf
kommen die Dummies hinzu, die die noch nicht entworfenen
Untermodule ersetzen.
Im Prinzip lassen sich die Testrahmen bis auf die Bedatung und
Sollwerte automatisch aus den Schnittstellenbeschreibungen
generieren. Sprachen wie VHDL unterstützen das. Konstrukte
wie die Datenübergabe mit Zeigern oder über globale Variablen
erschweren die Testrahmenprogrammierung.
Testfälle, -daten, Sollwerte, ... möglichst getrennt vom
Testrahmen in einer Datei oder Datenbank abspeichern.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 195/221
6. Testumgebungen
1. Modultest
Modularer Hardware-Test
Datenbus
Prozessor
ROM
RAM
Ein-/Ausgabe
Tester
Adressbus
Steuerbus
Der modulare Hardware-Test verlangt Entwurfsvorkehrungen, die
dem Tester Zugri auf die Schnittstellen zwischen dem einzelnen
Teilsystemem erlauben. Für den Tester zugängliche
Busstrukturen sind dafür besonders geeignet.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 196/221
6. Testumgebungen
Prof. G. Kemnitz
2. Funktionstester
Funktionstester
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 197/221
6. Testumgebungen
2. Funktionstester
Modularer Funktionstester
Der komplette Test reaktiver
Systeme verlangt die Bereitstellung von Testverläufen für die
Sensorsignale und die Kontrollen
der Ausgabesignale. Typische
Lösung ist ein Rechner mit einem
modular zusammensetzbaren System aus
Logikgenerator- und Logikanalysatorbaugruppen,
DAU- und ADU-Baugruppen,
programmierbaren Spannungsversorgungen,
Baugruppen für Busschnittstellen (RS232, SPI, CAN, ...),
Lastschaltungen, Adapter, ...
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 198/221
6. Testumgebungen
2. Funktionstester
HIL- (Hardware in the
Loop) Tester
Nachbildung der Systemumgebung (Antrieb, Sensoren, Prozesse,
komplette Fahrzeuge, ...) physikalisch, als Simultionsmodelle oder
gemischt. Abarbeitung/Simulation echter Betriebssituationen als
Tests.
#
Einfaches Beispiel:
<Bild>
Testobjekt ist ein Regler mit der Schrittfunktion ... (als
Matlab-Funktion)
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 199/221
6. Testumgebungen
2. Funktionstester
HIL- (Hardware in the Loop) Tester
Nachbildung der Systemumgebung
physikalisch, als Simultionsmodell oder
gemischt. Maschinen und Anlagenbau:
Physikalische Simulation der gesteuerten Maschine oder Anlage,
3D-Visualisierung des physikalischen Verhaltens,
Untersuchung von Grenzwert- und Gefahrensituationen.
Fahrzeugbau, Luft- und Raumfahrt
physikalische Simulationen von Motoren, Lenksystemen bis
hin zu kompletten Flugzeugen,
Nachstellung komplizierter Testsituationen im Labor
(fahrendes Auto, Flugzeug in der Luft, ...)
Jedes Simulationsmodell hat Genauigkeitsgrenzen. Kein
vollständiger Ersatz für den Test in der Anwendungsumgebung
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 200/221
6. Testumgebungen
Prof. G. Kemnitz
3. Schaltungstester
Schaltungstester
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 201/221
6. Testumgebungen
3. Schaltungstester
Datei∗
Prinzip eines Digitaltesters
∗
x
0000
0001
0010
0011
···
ysoll Maske
0111 1111
0000 1101
1011 0011
1001 1111
···
···
Testobjekt
yist
==
Testtakt
Datei mit den Testeingabe- und Soll-Ausgabewerten
&
≥1
Vergleichsfehler
ODER aller Bits
bitweises UND
bitweiser Vergleich
Das Testprogramm beschreibt:
Eingabebitvektoren
Sollausgaben
Maskenbitvektoren: Festlegung der zu kontrollierenden
(gültigen) Bitwerte je Testschritt
Testtakt zur Festlegung der Zeitpunkte der
Eingabesignalwechsel und der Ausgabeabtastung
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 202/221
6. Testumgebungen
3. Schaltungstester
Baugruppentester
Elektronische Baugruppen
werden für den Test meist
auf ein Nadelbett gelegt und
mit Unterdruck angesaugt.
Über die Nadeln sind Prüfgeräte angeschlossen. Die
Kontaktierung schaltungsinterener Punkte erlaubt einen
modularen Test und eine Lokalisierung von Kurzschlüssen,
Unterbrechungen und defekten Baussteinen.
Weitere Unterteilung:
MDA (manufacturing defect analyzer),
ICT (in-circuit tester).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 203/221
6. Testumgebungen
3. Schaltungstester
MDA
Suche potenzieller Bestückungs- und Verdrahtungsfehler mit
elektrischen Messungen, in der Regel zwischen zwei Punkten:
Stromeinspeisung und Messung der Spannung,
Spannungseinspeisung und Strommessung.
Bauteiltypische Strom-Spannungsbeziehungen:
Widerstand: Gerade,
digitaler Schaltkreis
Kondensator: Elypse,
UV
Diode: Kennlinie mit Knick,
Schaltkreise: Ausmessen
x
y
der Schutzdioden,
Unterbrechung: kein Strom,
Kurzschluss: kein SpannungsEinspeisen eines Messstroms
abfall,
≈ 1 mA
...
Prof. G. Kemnitz
Messen der Flussspannung
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 204/221
6. Testumgebungen
IC
3. Schaltungstester
Testobjekt
Signalgenerator
RM
x
y
Oszi
Die Strom-Spannungs-Beziehung zwischen zwei Punkten in
einer Schaltung hängt von der kompletten Schaltung, nicht
nur einem einzelnen Bauteilen.
Bestimmbar durch Ausprobieren an einem Golden Device.
Problematisch kann sein die
Prof. G. Kemnitz
die Festlegung der Toleranzbereiche für die Signatur aus den
Bauteilstreuungen,
die Erkennungssicherheit, z.B. Fehlbestückungen bei kleinen
Kondensatoren.
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 205/221
6. Testumgebungen
3. Schaltungstester
Analoger In-Circuit Test
Testobjekt
IC
Kompensationsspannungsquelle
−
+
V
A
Um = 100 mV
Unterdrückung von Parallelströmen zum Testobjekt durch
Kompensation der Spannungsabfälle über den wegführenden
Bauteilen auf einer Testobjektseite auf null. Erlaubt einen
isolierten Zweipoltest.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 206/221
6. Testumgebungen
3. Schaltungstester
Digitaler In-Circuit-Tester
Tester
Deaktivierung
Test
IC
Deaktivierung
IC
Testobjekt
IC
Signalquellen, die der
Tester überschreibt
Überschreiben digitaler Eingabesignale des Testobjekts mit
stromstarken Treibern.
Andere Schaltkreise werden möglichst deaktiviert
(Anschlüsse hochohmig).
Erlaubt isolierten Bestückungstest der Schaltkreise.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 207/221
6. Testumgebungen
3. Schaltungstester
Voraussetzung für ICT-Einsatz
prüfgerechter Entwurf:
Bei Vakuumansaugen luftdichter
Rand, keine Löcher.
Geeignete Kontaktächen.
Deaktivierungsmöglichkeit
der Schaltkreise, ...
Automatisch Generierung der Testvorschrift möglich:
Zusammensetzen aus Test- und Deaktivierungsvorschriften
für alle Bauteile (gut gestellt).
Fehlererkennung und Lokalisierung:
Erkennt fast alle Kurzschlüsse, Unterbrechungen und
Fehlbestückungen und gibt den genauen Fehlerort an.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 208/221
6. Testumgebungen
3. Schaltungstester
Optische Inspektion
Es gibt Bestückungsfehler, die sind optisch, aber nicht elektrisch
erkennbar. Bild links korrekt bestückter SMD-Widerstand,
Lötäche durch Kleber verschmutzt. Elektrisch leitende aber
keine feste Lötverbindung:
Nachweis nur durch visuelle Kontrolle möglich. Besonderes
Problem: Nach einem Ausfall der Baugruppe z.B. bei Vibration
in einem Fahrzeug ist sofort erkennbar, dass es sich um einen
Fertigungsfehler handelt, der (optisch) erkennbar gewesen wäre,
so dass der Hersteller auch für alle Folgeschäden, z.B.
Unfallschaden,
haftet.
·
Prof. G. Kemnitz
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 209/221
6. Testumgebungen
3. Schaltungstester
Automatisierte Baugruppeninspektion
Bildverarbeitungssystem mit Beleuchtung, Kamera,
Verarbeitung, Monitor.
Lernen von Bildern mit Fehlern und korrekten Bauteilen.
Generierung des Prüfprogramms aus einer geometrischen
Beschreibung und einer Bilddatenbank.
Picht für sicherheitskritische Baugruppen (Automotive).
Gehört zu den statischen Tests.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 210/221
6. Testumgebungen
Prof. G. Kemnitz
4. Boundary Scan / JTAG
Boundary Scan / JTAG
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 211/221
6. Testumgebungen
4. Boundary Scan / JTAG
Das Prinzip von Boundary-Scan
IS schaltkreisinterne Schaltungsteile
ExS externe Schaltungsteile
serieller
Ausgang
Schaltkreisanschluss
Mux
serieller
Eingang
D
D
Mux
interne
Schaltung
Takt- und Steuersignale
Tester
Testdateneingang (TDI)
Testtakt (TCK)
Teststeuersignal (TMS)
Testdatenausgang (TDO)
Verbindungstest
IS
IS
&
ExS
Ersatz der mechanischen Nadeln durch silicon nails (seriell
beschreibbare Register an den Schaltkreisanschlüssen, im
Normalbetrieb überbrückt)
Aufspaltung in viele kleine, separat testbare Teilschaltungen.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 212/221
6. Testumgebungen
IS schaltkreisinterne Schaltungsteile
ExS externe Schaltungsteile
serieller
Ausgang
Schaltkreisanschluss
Mux
serieller
Eingang
D
D
4. Boundary Scan / JTAG
Mux
interne
Schaltung
Takt- und Steuersignale
Tester
Testdateneingang (TDI)
Testtakt (TCK)
Teststeuersignal (TMS)
Testdatenausgang (TDO)
Verbindungstest
IS
IS
&
ExS
Ablauf eines Testschritts für den Baugruppentest:
BS-Register aller Schaltkreise auf der Baugruppe seriell
beschreiben,
einen Arbeitsschritt ausführen,
die im Arbeitsschritt in den BS übernommenen Werte seriell
an den Tester ausgeben und zeitgleich nächsten
Eingabevektor laden.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 213/221
6. Testumgebungen
4. Boundary Scan / JTAG
Ursprungsidee: Alternative zu den teueren, für jede
Baugruppe speziell anzufertigenden Nadeladaptern.
Als IEEE 1149.1 standardisierter serieller Testbus.
Nutzbar für weitere Test-, Diagnose- und
Rekongurationsfunktionen (z.B. für die Xilix-FPGA und
die ATMEGA-Mikroprozessoren aus den Übungen zur
Programmierung, zur Kommunikation mit dem
In-Circuit-Debugger (Atmel) und eines intergrierbaren
Logikanalysators (Xilinx-ChipsScope).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 214/221
6. Testumgebungen
4. Boundary Scan / JTAG
Die Testbusarchitektur der Schaltkreise
Datenregister
Bypass-Register
optionale Register
Teststeuersignal
(TMS)
Testtakt (TCK)
Multiplexer
Boundary-Scan-Register
serieller Testbuseingang (TDI)
serieller Testbusausgang (TDO)
Befehlsregister
TAP-Controller
den TAP- (test access port) Controller
ein Befehlsregister
mehrere Testdatenregister (mindestens das Boundary-Scanund das Bypassregister).
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 215/221
6. Testumgebungen
4. Boundary Scan / JTAG
Datenregister
Bypass-Register
optionale Register
Teststeuersignal
(TMS)
Testtakt (TCK)
Multiplexer
Boundary-Scan-Register
serieller Testbuseingang (TDI)
serieller Testbusausgang (TDO)
Befehlsregister
TAP-Controller
Über TMS und TAP-Controller steuerbare Funktionen:
Capture: Übernahme von Daten aus der Schaltung in das
Befehlsregister
Shift: Werte im Befehlsregister eine Position weiter schieben
Update: eingeschobenes Bitmuster in das Befehlsregister
übernehmen
dieselben drei Funktion für ein über das Befehlswort
ausgewähltes Datenregister, ...
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 216/221
6. Testumgebungen
4. Boundary Scan / JTAG
Datenregister
Bypass-Register
optionale Register
Teststeuersignal
(TMS)
Testtakt (TCK)
Multiplexer
Boundary-Scan-Register
serieller Testbuseingang (TDI)
serieller Testbusausgang (TDO)
Befehlsregister
TAP-Controller
Datenregister:
Boundary-Scan: Register am Schaltkreisrand
Bypass: 1-Bit-Register zur Überbrückung des Schaltkreises
in der Schieberegisterkette der Baugruppe
Optionale Erweiterungen:
Hersteller- und Bauteilidentikationsregister
weitere Test-, Programmier- oder Debug-Register
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 217/221
6. Testumgebungen
4. Boundary Scan / JTAG
TAP-Controller, Busprotokoll
Automat mit 16 Zuständen
Kantenauswahl über TMS- Testfunkt.
0 lt. Befehl
(test mode select) Signal
Typischer Testablauf:
Befehlsregister lesen (enthält
ein Muster zur Erkennung von
Busunterbrechungen und der
Gröÿe der Befehlsworte je
Schaltkreis)
Bauteilnummern lesen
(Bestückungskontrolle)
ein Teil der Schaltkreise auf
Bypass setzen, für die anderen
Datenregister auswählen, ...
Prof. G. Kemnitz
·
0
1
1
normale Funktion
(Testlogik rücksetzen)
1
0
Übernahme
0
1
Schieben
1
1
0
P 0
1
0
1
Übergabe
1
0
Datenübertragung
Institut für Informatik, Technische Universität Clausthal
1
0
0
Übernahme
0
1
Schieben
1
1
0
P 0
1
0
1
Übergabe
1
0
0
Befehlsübertragung
29. Juni 2014 218/221
6. Testumgebungen
Prof. G. Kemnitz
5. Aufgaben
Aufgaben
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 219/221
6. Testumgebungen
5. Aufgaben
Aufgabe 6.1: Ideensammlung
Testrahmen schreiben: Gegeben: Schnittstelle des
Testobjekts, Datei-Lesefunktion für Testfälle. Testprotokoll
auf der Standardausgabe nur die Tests, die versagt haben in
der Form <Test-ID>: Testzweck, Eingabe, Sollwert, Istwert
\n
Digitaltest: Eingabe, fehlerhaftes Objekt, Sollausgabe,
erkennbar?
HIL: Funktion der Strecke und eines Reglers vorgeben.
Kontrolle Toleranzschema für einen Sprung der Stellgröÿe.
Mit Matlab kontrollieren.
Test für MDA Übung mit Spice/.op mit Toleranzen?
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 220/221
6. Testumgebungen
5. Aufgaben
Literatur
[1] Benedikte Elbel.
Zuverlässigkeitsorientiertes Testmanagement.
www.systematictesting.com/.../Zuverlaessigkeitsorientiertes_Testmanagement.pdf,
2003.
[2] J. Hartmann and G. Kemnitz.
How to do weighted random testing for BIST?
pages 568571, 1993.
Prof. G. Kemnitz
·
Institut für Informatik, Technische Universität Clausthal
29. Juni 2014 221/221
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement