Kein Folientitel

Werbung
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Übersicht
Inhalt:
 Testkonzept/-plan
 Testarten, -stufen und -phasen
 Testmethoden für black box testing
 Testmethoden für white box testing
 Kontrollflussbasiert
 Datenflussbasiert
 Testszenarien und Testfälle
 Unittest
 Integrationstest
 Testabschlusskriterien
 Fehlermanagement
Datei: TestenVorlesung.ppt
Seite 1
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Testkonzept/-plan
• Im Testkonzept (häufig auch bezeichnet als Testplan) werden zuerst die geplanten
Testarten (auch bezeichnet als Teststufen bzw. Testphasen) festgelegt (s. nächste
Seite).
• Dabei wird für jede Testart folgendes festgelegt:
• Ziel
• Zuständigkeit (für Koordination, Durchführung und Abnahme)
• Zeitraum der Durchführung
• Testmethode
• Aufwandsabschätzung
• Testumgebung (incl. Tool):
• Treiber für benötigte Testdaten
• Treiber für erforderliche Aufrufmodule
• Simulation der aufgerufenen Module
Seite 2
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Testarten/-phasen/-stufen
Testart
häufig bezeichnet als
Ziel
Unittest
Komponententest, Modultest,
Produkttest
Sicherstellung der Funktionsfähigkeit von Schnittstellen
und Systemfunktionen
Technischer
Integrationstest
delivery acceptance test
Sicherstellen, daß die entwickelte Komponente technisch
ablauffähig ist
Anwendungstest
application integration test
Sicherstellung der Funktionsfähigkeit des Gesamtsystems
Integrationstest
business integration test
Sicherstellung der Durchgängigkeit von Prozessen unter
Einbindung der angrenzenden Systeme, d.h.
Sicherstellung der fachlichen Integration
Rollentest
Sicherstellung der Funktionsfähigkeit der mit den Rollen
verbundenen Berechtigungsprüfungen
Performancetest
(Systemtest), Volumentest
Frühzeitiges Feststellen von Performance-Problemen auf
Basis von Echtdaten
Regressionstest
Upgradetest
Sicherstellung des Produktivbetriebs bei Einspielen von
neuen Releases
Recoverytest
Backuptest
Sicherstellung des korrekten Neuaufsetzens nach einem
Systemstillstand
Inbetriebnahmetest
Systemtest
Sicherstellung der Funktionsfähigkeit der wichtigsten
Schnittstellenanbindungen
Installationskontrolltest, operations
readyness test
Sicherstellen der IT-technischen Integration, d.h. u.a.
dass die Anwendung weiterhin den
Betriebsanforderungen entspricht.
Seite 3
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Testmethoden
Black Box Testing (funktionsorientiertes Testen)
• Spezifikation des Testobjekts als Ausgangspunkt der Testdatenermittlung
• Testdaten werden in Klassen eingeteilt, bei jedem Repräsentant einer Klasse verhält
sich das Testobjekt gleich
• Qualität der Testdaten hängt ab von der Aussagekraft der Spezifikation
• Es kann nicht ermittelt werden, ob das Programm mehr tut als es soll
(Computerkriminalität)
White Box Testing (strukturorientiertes Testen)
• Programmtext als Ausgangspunkt der Testdatenermittlung
• möglichst viele Programmabläufe werden ausgeführt
• unterschiedliche Überdeckungen werden angestrebt (C0, C1, …)
• Programme können getestet werden, für die keine Spezifikation vorliegt
• vergessene Teile der Spezifikation können nicht gefunden werden
• es ist nicht erkennbar, ob die getesteten Anweisungen im Betrieb überhaupt
ausgeführt werden
Seite 4
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Black Box Testing: Testziele
Mögliche Testziele (einzeln oder in Kombination):
•
Funktionsüberdeckung: jede spezifizierte Funktion mindestens einmal
aktiviert
•
Ausgabeüberdeckung: jede spezifizierte Ausgabe mindestens einmal erzeugt
•
Ausnahmeüberdeckung: jede spezifizierte Ausnahme- bzw. Fehlersituation
mindestens einmal erzeugt
•
Attributüberdeckung: alle geforderten Attribute (soweit technisch möglich)
getestet
•
insbesondere Erreichung der spezifizierten Leistungsanforderungen
–
unter normalen Bedingungen
–
unter möglichst ungünstigen Bedingungen (Belastungstest)
Seite 5
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Black Box Testing: Verfahren
Problem der Testfall-Auswahl: die gewählten Testziele mit möglichst wenig und
möglichst guten Testfällen umsetzen
Klassische Techniken:
•
•
•
•
•
Äquivalenzklassenbildung: Gleichartige Eingabedaten werden zu Klassen zusammengefasst
und aus jeder Klasse wird ein Repräsentant getestet
Grenzwertanalyse: An den Grenzen zulässiger Datenbereiche treten erfahrungsgemäß häufig
Fehler auf; Testfälle für solche Grenzfälle auswählen
Ursache-Wirkungsgraphen: systematischen Bestimmung von Eingabedaten, die ein
gewünschtes Ergebnis bewirken
Statistisches Testen (random testing): Eingabedaten werden zufällig ausgewählt; die gezielte
Testfall-Auswahl wird durch eine große Zahl von Testfällen ersetzt; Problem: Auswahl der
Eingabedaten muss der tatsächlichen Verteilung der Eingabedaten im produktiven Betrieb der
Software entsprechen
Fehler raten (error guessing): Intuitive Testfallauswahl aufgrund von Erfahrung; ergänzt andere
Methoden zur Testfallbestimmung; Qualität stark von Erfahrung und Intuition der Tester abhängig
Seite 6
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Black Box Testing: Übung
Gegeben sei ein Programm, das folgende Spezifikation erfüllen soll:
Das Programm fordert zur Eingabe von drei nicht negativen reellen Zahlen auf und liest die
eingegebenen Werte; es interpretiert die eingegebenen Zahlen als Strecken a, b und
c und untersucht, ob die drei Strecken ein Dreieck bilden, und klassifiziert gültige
Dreiecke.
Das Programm liefert folgende Ausgaben:
•
kein Dreieck wenn a+b <= c oder a+c <= b oder b+c <= a
•
gleichseitiges Dreieck, wenn a=b=c
•
gleichschenkliges Dreieck, wenn a=b oder b=c oder a=c
•
unregelmäßiges Dreieck sonst
Das Programm zeichnet ferner alle gültigen Dreiecke winkeltreu und skaliert in einem
Fenster der Größe 10x14 cm auf maximal darstellbare Größe. Die Seite c liegt unten
parallel zur Horizontalen. Alle Eckpunkte haben einen Minimalabstand von 0,5 cm
vom Fensterrand.
Das Programm liefert eine Fehlermeldung, wenn andere Daten als drei nicht negative reelle
Zahlen eingegeben werden. Anschließend wird mit einer neuen Eingabeaufforderung
versucht, gültige Werte einzulesen.
Seite 7
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Black Box Testing: Übung
Welche 4 Funktionen sind bei einer vollständigen Funktionsüberdeckung zu prüfen?
Für eine vollständige Ausgaben- und Ausnahmeüberdeckung sind die notw. Äquivalenzklassen
definiert worden; legen Sie für jede (Sub-)klasse einen Repräsentanten fest:
•
Ausgabenüberdeckung:
–
kein Dreieck mit 3 Subklassen
–
gleichseitiges Dreieck
–
gleichschenkliges Dreieck mit 3 Subklassen
–
unregelmäßiges Dreieck mit 9 Subklassen
•
Ausnahmeüberdeckung
–
ungültige Eingabe mit 3 Subklassen
Legen Sie für jeden Grenzfall einer Grenzwertanalyse einen Testwert fest (insg. 7 Grenzfälle):
•
kein Dreieck mit 4 Werten
•
Sehr flaches Dreieck mit 2 Werten
•
Sehr steiles Dreieck
Seite 8
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: Verfahren
Kontrollflussbasierter Test
•
•
•
•
C0-Überdeckung, Anweisungsüberdeckung, statement coverage (alle Knoten)
C1-Überdeckung, Zweigüberdeckung, branch coverage (alle Zweige)
CGI, Grenze-Inneres Test
C∞-Überdeckung, Pfadüberdeckung, path coverage (alle Pfade)
Test der Bedingungen
• C2-Überdeckung, Bedingungsüberdeckung (alle Bedingungen, auch Teile davon)
• Mehrfachbedingungsüberdeckung (alle Kombinationen der Teilbedingungen)
Datenflussbasierter Test
• Überdeckungsgrad bzgl. der Datenverwendung (Def/Uses-Verfahren):
• (zustandsverändernde) Wertzuweisung: z.B. r=0
• (zustandserhaltende) Benutzung in Ausdrücken: z.B. f(r)
• (zustandserhaltende) Benutzung in Entscheidungen: z.B. r>0
Seite 9
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: C0-Überdeckung
Kontrollfußgraph vom ggT (Bsp.:ggT(4,8)=4, ggT(5,8)=1, ggT(15,35)=5)
1
2-3
4-6
7
8
9-11
12
13
1. public int ggt(int m, int n) {
2.
int r;
3.
if (n > m) {
4.
r = m;
5.
m = n;
6.
n = r
}
7.
r = m % n;
8.
while (r != 0) {
9.
m = n;
10.
n = r;
11.
r = m % n;
}
12.
return n;
13. }
Ein Testfall für die 100%ige
C0-Überdeckung:
1,2-3,4-6,7, 8,9-11,8,12,13
Der Pfad
2-3,7
wird nicht getestet,
weil in diesem Pfad
keine Anweisung
enthalten ist
Seite 10
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: C0-Überdeckung
Beispiel für nicht gefundenen Fehler bei der C0-Überdeckung:
Mit den
Testdaten x=5
und y=0 wird
zwar die C0Überdeckung
erfüllt, jedoch
wird der Fehler
im falschen
Programm nicht
gefunden, denn
die Sollwerte
x=25 und y=30
werden in beiden
Fällen erreicht.
Seite 11
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: C1-Überdeckung
1
1
2-3
2-3
4-6
4-6
7
7
8
8
9-11
9-11
12
12
13
13
Zwei Testfälle für die
100%ige C1-Überdeckung:
1,2-3,4-6,7, 8,9-11,8,12,13
1,2-3,7,8,12,13
neu
Jedoch:
• Schleifen werden nicht ausreichend
getestet.
• Komplexe Bedingungen werden nicht
getestet.
• Kombinationen von Zweigen werden nicht
getestet.
Seite 12
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: C1-Überdeckung
Beispiel für gefundenen Fehler bei der C1-Überdeckung:
Mit den Testdaten
x=5 und y=0
(Ergebnis: x=25,
y=30) wird der
eine Test
durchgeführt, mit
x=-1 und y=0
(Ergebnis: x=-1,
y4) der zweite
Test.
Der Fehler wird im
Gegensatz zur
C0-Überdeckung
gefunden.
Seite 13
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: CGI-Überdeckung
Die CGI-Überdeckung (Grenze-Inneres) bezieht sich
nur auf Schleifenanweisungen und fordert, dass jede
Schleife in mindestens einem Testfall
• gar nicht (gilt nur bei abweisenden
Schleifen, while, for nur wenn Abbruchbedingung bei
erstmaliger Auswertung wahr)
• genau einmal und
• mehr als einmal ausgeführt wird.
3 Testfälle für die CGI-Überdeckung:
1,2-3,7,8,12,13
1,2-3,4-6,7, 8,9-11,8,12,13
1
2-3
4-6
7
8
9-11
12
1,2-3,4-6,7, 8,9-11,8,9-11,8,12,13
13
Seite 14
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: Bedingungsüberdeckung
Die C2-Überdeckung (Bedingungsüberdeckung)
berücksichtigt komplexe/zusammengesetzte
Bedingungen, indem sie fordert, alle
Teilbedingungen zu variieren. Jedoch ist nicht
gefordert, dass unterschiedliche Wahrheitswerte
bei der Auswertung der gesamten Bedingung
berücksichtigt werden. Somit ist die Anweisungsbzw. Zweigüberdeckung stärker, da manche
Zweige bei der C2-Überdeckung nicht getestet
werden.
Testfall1: A=2, B=1, C=4
Testfall2: A=1, B=0, C=1
Die Testfälle überdecken zwar alle Variationen der
Teilbedingungen, jedoch wird der Pfad c nicht
getestet.
Seite 15
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: Bedingungsüberdeckung
Bei der Testfallermittlung sollte man
sowohl die C2-Überdeckung
(Bedingungsüberdeckung) als auch die
Zweigüberdeckung berücksichtigen (s.
auch Beispiel vorige Folie):
Testfall1: A=2, B=0, C=4  Pfad a-c-e
Testfall2: A=1, B=1, C=1  Pfad a-b-d
Mit diesen Testfällen werden zwar alle
Zweige überdeckt, jedoch nicht alle
Zweigkombinationen.
Um das zu zeigen, benötigt man eine
äquivalente Umformung des
Kontrollflussgraphen:
Seite 16
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing: Bedingungsüberdeckung
Testfall1: A=2, B=0, C=4
A>1
true
B=0
true
Testfall2: A=1, B=1, C=1
false
false
C:=C/A
Zwei Zweige fehlen:
false
Lösung:
Mehrfachbedingungsüberdeckung (C3-Ü.)
Die C3-Überdeckung ist dann erfüllt,
wenn jede Kombination der
Wahrheitswerte aller Teilbedingungen in
Testfällen ausgeführt wird.
C>1
false
A=2
true
true
C:=C+1
Seite 17
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
White Box Testing
Datenflussbasiertes Testen (Def/Uses-Verfahren)
• Getestet werden Interaktion zwischen Anweisungen, die einer Variablen einen Wert zuweisen (definieren), und Anweisungen, die diesen Variablenwert benutzen (referenzieren):
• Wertzuweisung (Definition, definitional use, def)
• Berechnungsreferenz (Benutzung in Ausdrücken, computational use, c-use)
• Entscheidungsreferenz (Benutzung in Bedingungen, predicative use, p-use)
• verschiedene Test-/Überdeckungskriterien (Metriken):
• Alle Definitionen: Das Resultat einer Zuweisung
(Definition) wird wenigstens einmal
benutzt (c-use oder p-use)
• Alle DR-Interaktionen: jedes Paar
def(r)
(def/ref) auf irgendeinem Weg ausführen
• Alle Referenzen: p-uses und c-uses
• ….
c-use(m,n)
r = m % n
r = op1(m,n)
while (r != 0)
if (r == 0)
p-use(r)
Seite 18
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Verfahren zum White Box Testing
Kontrollflussgraph mit Datenflussannotation:
Bsp. für DR-Interaktionen:
(1, m, 4, r, 6):
m wird in 1 definiert, in 4
referenziert, r wird in 4
definiert und in 6
referenziert; damit hängt 6
von 1 ab.
(1, m, 7, r, 10):
…..
 Teste die Wegstücke:
(1, 2, 3, 4, 5, 6) und
(1, 2, 3, 7, 8, 9, 10)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public int ggt
(int m, int n) {
int r;
if (n > m) {
r = m;
m = n;
n = r
}
r = m % n;
while (r != 0) {
m = n;
n = r;
r = m % n;
}
return n;
}
1
def(m,n)
2
def(r)
3
p-use(m,n)
4
def(r), c-use(m)
5
def(m), c-use(n)
6
def(n), c-use(r)
7
def(r), c-use(m,n)
8
p-use(r)
9
def(m), c-use(n)
10
def(n), c-use(r)
11
def(r), c-use(m,n)
12
c-use(n)
Seite 19
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Verfahren zum White Box Testing
Testverfahren
Leistungsfähigkeit
Bewertung
C0, (statement coverage)
Anweisungsüberdeckung
Niedrig
Entdeckt knapp 1/5 der Fehler
Entdeckt dead code
Mit and. Verfahren kombinieren
C1, (branch coverage)
Zweigüberdeckung
Entdeckt ca. 1/3 aller Fehler und
80% der Kontrollflussfehler
DAS minimale Testkriterium
C2,
Bedingungsüberdeckung
Niedrig
Umfasst i.Allg. nicht die C0- und C1Überdeckung, da Bedingungen evtl. in
Anweisungen neu berechnet werden
Mehrfach-Bedingungsüberdeckung
Hoch
Umfasst Zweigüberdeckung
Aufwand wächst stark
CGI,
Grenze-Inneres Test
Mittel
Zielt auf komplexe Schleifen
Nur als Ergänzung
C∞, (path coverage)
Pfadüberdeckung
Sehr hoch
Entdeckt ca. 2/3 aller Fehler
In den meisten Fällen nicht
praktikabel
Datenflusstest
Mittel bis hoch
All c-uses deckt 1/2 aller Fehler auf
All p-uses deckt 1/3 aller Fehler auf
All defs deckt 1/4 aller Fehler auf
Zielt auf Variablen-Verwendung
C-uses findet viele Berechnungsfehler
Seite 20
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Testszenarien und Testfälle
Für jede der geplanten Testarten werden die Testszenarien (o. a. Testumfänge) in Form
einer Liste von Testfällen festgelegt.
Für jeden Testfall gibt es dann eine Testanweisung und ein Testprotokoll, die häufig in
einem(!) Formular zusammengefasst sind. Die Beschreibung eines Testfalls beinhaltet
somit folgendes:
• Beschreibung des Testfalls und der dazugehörigen Testschritte incl.
Testbedingungen und Testdaten
• Name des Erstellers der Testanweisung
• Name des Freigebenden der Testanweisung
• Name des Testers
• Name des Abnehmenden
• Die zu testende Eigenschaft (Korrektheit, Bedienoberfläche, Performance, …)
• Erwartetes Ergebnis
• Tatsächliches Ergebnis (diese Information liegt natürlich erst nach der
Testdurchführung vor)
Seite 21
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Unittest
• typgerechte Verwendung aller Datenobjekte (ungewollte Konvertierungen)
• Objektverwendungsnachweise (Cross reference list, Aufrufhierarchie/-graph)
• Datenflussanalyse von Programmobjekten (Variablen, Konstanten):
• Objekte werden vor ihrer Definition verwendet
• Objekte werden mehrfach überschrieben, ohne vorher verwendet worden zu sein
• Objekte werden definiert, ohne danach verwendet zu werden
• “nur-lesbare” Objekte werden überschrieben: z.B. Prüfung durch den ANSI-C-Compiler bei
Verwendung des Schlüsselworts CONST: char *strcpy (char *ziel, const char *quelle);
(der Speicherbereich quelle darf von der Funktion nicht verändert werden).
• Statisch unerreichbare Programmsequenzen (z.B. fehlendes GOTO bei vorh.
Sprungmarken)
• Hinweise auf krasse Programmierfehler (z.B. nicht terminierende Schleife)
• Prüfung von Programmierkonventionen und Qualitätsstandards (z.B.
Namensgebung, Schachtelungstiefe, Komplexität)
Seite 22
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Unittest (Komplexität, Überdeckung)
...
1
IF a>b
2
THEN IF b>c
3
4
THEN p(a,b)
ELSE p(b,c);
Print(a,b,c);
5
Komplexität: metric of McCabe: Cyclomatic
Number is the maximum number of
independent paths in a flowgraph
v(G) = e - n + 2p
v(G) - Cyclomatic Number of the flowgraph G
e - number of edges in G
n - number of nodes in G
p - number of connected components (if you
have subprograms, p=1 in a single program)
v(G) = 8 - 7 + 2*1 = 3
Überdeckung:
Statement coverage:
1-2-3-5 und 1-2-4-5
Branch coverage:
1-5 (additional)
...
Seite 23
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Integrationstest
• Syntaxprüfung der Schnittstellen (z.B. falsche Anzahl von Parametern oder nicht
übereinstimmender Parametertyp), z.B. Prüfung der Argumente/aktuellen Parameter bei
einem Funktionsaufruf unter Verwendung des Funktions-Prototypen zur Deklaration der
Funktionen durch den ANSI-C-Compiler: float hoch (float zahl, int potenz)
• Kopplungskategorisierung nach Myers, sechs Abstufungen für die interne Festigkeit
eines Moduls (Cohesion), fünf Abstufungen für die Bindung zu anderen Moduln (Coupling)
• Anzeige verdeckter Abhängigkeiten, Beispiel: Zwei Module verwenden (importieren)
eine externe Variable, die von einem dritten Modul bereitgestellt wird, d.h. die Kopplung
zwischen den beiden benutzenden Moduln ist nicht unmittelbar ersichtlich
• Intermodulare Datenflussanalyse, Beispiel: Ein Parameter erhält vor dem Aufruf der
Schnittstelle einen Wert und wird in der aufgerufenen Funktion sofort überschrieben, ohne
vorher gelesen zu werden
• Ausschöpfen der Parameterbereiche: Prüfung der Ausnahmebehandlungen und
Grenzfälle (sind häufig in den Simulationen vernachlässigt worden), des Modulverhaltens
bei Systemfehlern, der über Modulgrenzen hinweg realisierten Fehlerbehandlungen und der
globalen Variablen
• Überprüfen der Aufrufreihenfolge: systemweite Überprüfung auf Einhaltung
vorgeschriebener Abläufe und Protokollierung der Abläufe einzelner Operationen
• Funktionalitätsprüfung (Zusammenwirken von Teilfunktionen)
stat.
dyn.
Seite 24
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Testabschlusskriterien
Wenn mit den in der Testvorschrift festgelegten Testdatensätzen keine Fehler mehr gefunden
werden
• Sinnvolles Kriterium, wenn der Umfang des Prüflings eine systematische Auswahl von Testfällen mit
ausreichender Überdeckung ermöglicht
• Übliches Kriterium bei der Abnahme
Wenn die Prüfkosten pro entdecktem Fehler eine im voraus festgelegte Grenze überschreiten
• Sinnvolles Kriterium für das Beenden des Systemtests
• Setzt die Erfassung der Prüfkosten und der Anzahl gefundener Fehler voraus
Wenn während der Ausführung einer im voraus festgelegten Menge von Testfällen keine Fehler
auftreten
• Beispielsweise im Systemtest mit zufällig bestimmten Testdaten. Die Anzahl der hintereinander
fehlerfrei auszuführenden Testfälle bestimmt sich aus der geforderten Zuverlässigkeit
Wenn die vorher festgelegte Obergrenze für die Fehlerdichte unterschritten wird
• Muss mit statistischen Methoden bestimmt werden
Seite 25
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Fehlermanagement beim Testen
Fehlerstatus
Gesetzt durch
Bedeutung
Neu
Tester
Neue Fehlermeldung (s. nä. Folie) wurde erfasst. Der Tester hat eine aus
seiner Sicht sinnvolle Beschreibung und Klassifizierung eingetragen.
Offen
Testmanager (TM)
TM sichtet die Meldungen, bereitet sie für eine einheitliche Bewertung auf,
löscht ggfs. Dubletten und weist die Meldung einem Entwickler zu.
Abgewiesen
Testmanager
Meldung wird als unberechtigt abgewiesen (kein Defekt im Testobjekt,
Änderungswunsch, der nicht berücksichtigt wird).
Analyse
Entwickler
E. dokumentiert das Ergebnis der Problemanalyse (Ursache, Lösungsmöglichkeiten, geschätzter Korrekturaufwand) in Form von Kommentaren.
Beobachtung Entwickler
Das Problem kann nicht nachvollzogen/ausgeschlossen werden. Meldung
bleibt unerledigt, bis weitere Informationen/Erkenntnisse vorliegen.
Korrektur
Projektmanager
Projektmanager entscheidet aufgrund der Analyse, dass die Korrektur erfolgen soll. Der zuständige Entwickler dokumentiert die Art der Korrektur.
Test
Entwickler
Der zuständige Entwickler behebt das Problem. Die Softwareversion, in
der die Korrektur verfügbar ist, wird angegeben.
Erledigt
Tester
Tester wiederholt im nächstmöglichen Testzyklus den fehleraufdeckenden
Test und setzt bei erfolgreicher Fehlerbeseitigung den Endzustand.
Flop
Tester
Ergibt der Fehlernachtest, dass die Fehlerbeseitigung erfolglos oder
ungenügend war, ist eine erneute Analyse notwendig.
Seite 26
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Fehlermeldung: Identifikation und Klassifizierung
Attribut
Bedeutung
Nummer
laufende, eindeutige Meldungsnummer
Testobjekt
Identifikation der genauen Version des Testobjekts
Plattform
Identifikation der HW-/SW-Plattform bzw. der Testumgebung, in der das Problem
auftritt
Entdecker
Identifikation des Testers (ggf. mit Teststufe), der das Problem meldet
Entwickler
Name des für das Testobjekt verantwortlichen Entwicklers oder Teams
Erfassung
Datum, ggf. Uhrzeit, an dem das Problem beobachtet wurde
Status (s. vo. Folie)
Bearbeitungsfortschritt der Meldung; möglichst mit Kommentar und Datum
Klasse
Klassifizierung der Schwere des Problems
Priorität
Klassifizierung der Dringlichkeit einer Korrektur
Anforderung
Verweis auf die (Kunden-)Anforderung, die wegen der Fehlerwirkung nicht erfüllt
oder verletzt ist
Fehlerquelle
Soweit feststellbar, die Projektphase, in der die Fehlhandlung begangen wurde
(Analyse, Design, Programmierung); nützlich zur Planung prozessverbessernder
Maßnahmen
Seite 27
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Anhang: Lösung der Übungsaufgabe von Seite 8
Vollständige Funktionsüberdeckung beinhaltet:
Aktivierung der Funktionen Prüfen, Klassifizieren, Skalieren und Zeichnen
Vollständige Ausgaben- und Ausnahmenüberdeckung benötigen
Äquivalenzklassen für
Erzeugen der Ausgaben
•
kein Dreieck
•
gleichseitiges Dreieck
•
gleichschenkliges Dreieck
•
unregelmäßiges Dreieck
Erzeugung der Ausnahmesituationen
•
ungültige Eingabe
Seite 28
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Anhang: Lösung der Übungsaufgabe von Seite 8
Klasse
Subklasse
Repräsentant
kein Dreieck
b größte Seite
4.25, 2, 1.3
b größte Seite
1.3, 4.25, 2
c größte Seite
2, 1.3, 4.25
gleichseitiges Dreieck
gleichschenkliges Dreieck
unregelmäßiges Dreieck
4.2, 4.2, 4.2
a=b
4.71, 4.71, 2
b=c
3, 5.6, 5.6
a=c
11, 6, 11
α spitz, β spitz
3, 5, 6
α spitz, β rechtwinklig
3, 5, 4
α spitz, β stumpf
3, 6, 4
β spitz, γ spitz
6, 3, 5
β spitz, γ rechtwinklig
4, 3, 5
β spitz, γ stumpf
4, 3, 6
γ spitz, α spitz
5, 6, 3
γ spitz, α rechtwinklig
5, 4, 3
γ spitz, α stumpf
6, 4, 3
Klasse
Subklasse
Repräsentant
Ungültige
Eingabe
Negative
Zahlen
2.3, -1.5, 3
Text statt
Zahl
2.3, 1.5, xrfk.q
Unvollständ
ige Eingabe
2.3, 1.5
Seite 29
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 6
Okt 2011
Testen
Anhang: Lösung der Übungsaufgabe von Seite 8
Grenzwertanalyse
Grenzfall
Subklasse
Testwert
kein Dreieck
a=b=c=0
0, 0, 0
a=b+c
6, 2, 4
b=a+c
2, 6, 4
c=a+b
2, 4, 6
c = a + b – ε, ε sehr klein
3, 4, 6.999999999999
b = a + c – ε, ε sehr klein
3, 6.999999999999, 4
c klein, a = b sehr groß
107, 107, 5
Sehr flaches Dreieck
Sehr steiles Dreieck
Seite 30
Herunterladen