handouts 40_testmethodologie

March 9, 2016
Codereviews
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Codereviews sind ein Art des asynchronen Pair
Programmings 1 im kleinen Stil.
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
1
Zwei Entwickler arbeiten gemeinsam an einem Rechner.
HOM/FHTenL
Untitled Sheets
March 9, 2016
Interne Codereviews
1/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Ein internes Codereview erfolgt durch einen Kollegen. Das
ist uns Entwicklern nichts Unbekanntes. So hat wohl fast
jeder ein internes Codereview gemacht bzw. sich geben
lassen, wenn wir einen schwierigen Fehler bislang erfolglos
suchen. Wir sitzen dann meist gemeinsam vor dem Code und
gehen ihn durch. Dieses Prinzip wird einfach ausgedehnt.
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Externe Codereviews
2/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Ein externes Codereview erfolgt durch einen Mitarbeiter
außerhalb des Teams. Dies können andere Entwickler sein,
zB von einem zentralen Architekturteam, deren Framework
hier im Einsatz ist, oder aber ein Vertreter der QS.
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Dokumentreviews
Untitled Sheets
HOM
Wir können neben unserem Code noch andere Arten von
Texten bzw. ZB. Dokumenten einem Review unterziehen.
Für uns Entwickler können zB Anforderungs- oder
Planungsreviews von Nutzen sein. Diese Art von Reviews
hat eine etwas andere Zielsetzung. Wir möchten damit im
Wesentlichen zwei Dinge erreichen:
Fehler wie zB vergessene Aufgaben sollen identifiziert
werden.
Die Zustimmung jedes Einzelnen soll ausgesprochen
werden.
HOM/FHTenL
3/25
Untitled Sheets
March 9, 2016
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
4/25
1
March 9, 2016
Beispiel
Untitled Sheets
HOM
In der untenstehenden Abbildung sehen Sie eine auf das
Wesentliche reduzierte Maske. In das Edit-Feld kann eine
Gehaltsgruppe in Form eines Euro-Werts eingetragen
werden. Dabei dürfen nur Werte in ganzen 1000er-Schritten
bis maximal 10 000 e eingegeben werden. Schreiben Sie sich
doch bitte kurz auf, mit welchen Werten Sie diese Maske
testen würden, bevor Sie weitermachen.
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Grenzwerte
5/25
Untitled Sheets
Als visueller Mensch kann ich mir Grenz- und Extremwerte
gut, über die geometrische Analogie von Flächen, im Raum
vorstellen, die in der untenstehenden Abbildung dargestellt
ist.
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Gehaltsstufen-Maske: Gültige Testwerte und
Fehlerfälle
6/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Erfolgversprechende, gültige Testwerte und Fehlerfälle zum
Testen der Gehaltsstufen-Maske
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Gut-Fälle
1 000
10 000
7 000
0
leeres Feld
HOM/FHTenL
Bemerkungen
Äquivalenzklassen
Fehlerfälle
minimaler Extremwert
maximaler Extremwert
zufälliger Zwischenwert
Konkretisierung der Spezifikation
gelöschte Eingabe
999
1 001
9 999
10 001
7777
-1
Untitled Sheets
Überdeckungen:
Wege durch die
-1000kombinatorische
1000.1Explosion
1000,1Pfadüberdeckung
eintausendVereinfachte
Schleifenüberdeckung
Bitmap per PasteTest von Bedingungen: Die
. . . Termüberdeckung
Anweisungs-, Zweig- und
March 9, 2016
Wie ein besseres Design helfen kann.
7/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
8/25
2
March 9, 2016
2 .. 2 = 4
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Durch einen unserer Tests, der mit bestimmten Testdaten
ausgeführt wird, werden Fehler leicht übersehen. So ist ein
Test für mathematische Operatoren mit zwei Parametern,
der die Testwerte (2,2) benutzt, nicht sehr fehlersensibel, da
2 + 2 = 2 · 2 = 22 = 4. Als Fehlersensibilität wird also die
Eignung von Testdaten, zur Aufdeckung von
Fehlerwirkungen, bezeichnet. Im obenstehenden Beispiel
kann ein falscher Operator leicht übersehen werden.
HOM/FHTenL
Untitled Sheets
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
March 9, 2016
9/25
Skalier Beispiel
Untitled Sheets
HOM
p u b l i c i n t s k a l i e r e n ( i n t wert ){
w e r t = w e r t − 1 ; // F e h l e r : w e r t = w e r t + 1 s e i
wert = wert / 30000;
return wert ;
}
richtig
Listing 1 : Beispiel für geringe Fehlersensibilität anhand
einer Skalier-Methode.
Von den 65 536 möglichen Zahlenwerten für wert
produzieren nur vier den Fehler, der sich durch die falsche
Subtraktion ergibt:
-30 000
-29 999
29 999
30 000
HOM/FHTenL
Dokumentreviews
Die richtigen
Testdaten finden
ergibt
ergibt
ergibt
ergibt
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
-1 anstatt 0,
-1 anstatt 0,
0 anstatt 1 und
0 anstatt 1
Untitled Sheets
Lösungen für
methodische
!
Probleme
Test von Bedingungen: Die
Termüberdeckung
March 9, 2016
Beispiel Regelwerk
10/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Kontoregelwerk zum Abbuchen
Uusätzliche Regeln zum Abheben von Geldautomaten
Eigenschaften des Geldautomaten
Stückelung der Geldscheine
EC-Kartenprüfungen
Regeln für Ablaufausnahmen, wie zB
Zeitüberschreitungen
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Regeln der Subsysteme
11/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Kathegorie
Aspekt
Erläuterung
Konto
Kontostand
Dispolimit
aktueller Stand in Euro und Cent
überziehungsbetrag in Euro und Cent
Abheberegeln
Tageslimit
Das Limit für Abhebungen pro Tag (meist 500
Überdeckungen:
e)
Wege durch die
Geldautomat
Stückelung
EC-Kartenprüfungen
Zeitüberschreitungen
Explosion
5, 10, 20, 50, 100, 200 und 500 e
Anweisungs-, Zweig- und
Lesbarkeit, Kundenidentifikation, PIN-Prüfung
Pfadüberdeckung
Vereinfachte
EC-Karten- und Geldentnahme
Schleifenüberdeckung
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
kombinatorische
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
12/25
3
March 9, 2016
Äquivalenzklassen bestimmen
1
2
3
4
Untitled Sheets
Suche die Anforderungen nach spezifizierten
Eingabegrößen und ihren Gültigkeitsbereichen ab. Die
Grenzen dieser Gültigkeitsbereiche trennen die
Äquivalenzklassen für gültige und ungültige Eingaben.
Prüfe die vorläufigen Äquivalenzklassen, ob alle Werte
gleich behandelt werden. Teile sie ggf. in mehrere neue
Äquivalenzklassen auf.
Finde jeweils Sätze von Eingabedaten für die einzelnen
funktionalen Anforderungen, die in einer definierten
Beziehung zueinander stehen. Diese Datensätze sind für
gültige und ungültige Kombinationen zu erstellen.
Prüfe, ob die vorläufigen Kombinationen jeweils gleich
behandelt werden. Teile die Äquivalenzklassen ggf.
weiter auf.
HOM/FHTenL
Untitled Sheets
Bei gültigen Eingabewerten kann ein Testfall meist
mehrere unabhängige Testfälle zusammenfassen, um
ökonomischer durchgeführt werden zu können.
Methodisch ist das kein Problem, da eine eindeutige
Fehlerzuordnung trotzdem möglich sein sollte.
Für ungültige Eingabewerte wird nur eine
Fehlersituation getestet. Es gibt also für jeder dieser
Äquivalenzklassen mindestens einen eigenen Testfall.
Bei den Testfällen für Äquivalenzklassen der Ausgabedaten
wird nach einer Möglichkeit gesucht, den Bereich vollständig
über die Extremwerte abzudecken. Leider ist die zugehörige
Ermittlung der entsprechenden Eingabedaten häufig sehr
mühsam und manchmal gar nicht möglich.
Untitled Sheets
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
March 9, 2016
Testfälle für Äquivalenzklassen bestimmen
HOM/FHTenL
HOM
Lösungen für
methodische
Probleme
13/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
March 9, 2016
Äquivalenzklassen für unser
Geldautomatenbeispiel
14/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Die Reihenfolge der Prüfungen gibt eine Verkettung der
Äquivalenzklassen für unser Geldautomatenbeispiel.
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Hilfe, es lauft aus dem Ruder!
15/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Die Überdeckungskriterien führen uns schnell in
kombinatorisch nicht mehr abdeckbare Bereiche; es erfolgt
eine kombinatorische Explosion. Diese schreckt viele
Entwickler ab. Warum soll ich etwas testen, das ich sowieso
nicht vollständig testen kann. Es gehen mir doch immer
Fehler durch die Lappen.
die vereinfachte Pfadüberdeckung für Schleifen und
die Termüberdeckung für Bedingungen.
HOM/FHTenL
Untitled Sheets
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
March 9, 2016
16/25
4
March 9, 2016
Wesentliche Arten von Coverage
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Anweisungsüberdeckung: Anteil der Anweisungen im Code,
die mit den Tests durchlaufen werden.
Zweigüberdeckung: Anteil der Zweige im Code, die mit den
Tests durchlaufen werden.
Pfadüberdeckung: Anteil der Pfade im Code, die mit den
Tests durchlaufen werden.
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Java-Beispiel für Überdeckungen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
17/25
Untitled Sheets
HOM
public int berechneProvision (
Lösungen für
i n t grundBetrag ,
methodische
int anzahlVertraege , int einzelProvi ,
Probleme
i n t zuschlagsGrenze , i n t z u s c h l a g ){
Reviews
Dokumentreviews
int provision = 0;
i f (0 < a n z a h l V e r t r a e g e ){
Die richtigen
Testdaten finden
p r o v i s i o n = grundBetrag ;
Grenz- und Extremwerte
f o r ( i n t i = 0 ; i < a n z a h l V e r t r a e g e ; i ++){
Fehlersensibilität
p r o v i s i o n += e i n z e l P r o v i ;
// P r o v i s i o n s s u m m e a dFachliche
d i e Regeln
ren
i f ( z u s c h l a g s G r e n z e <= i ) {
Äquivalenzklassen
p r o v i s i o n += z u s c h l a g ; // f u e r Gute g i b t e s Überdeckungen:
mehr
}
Wege durch die
kombinatorische
}
Explosion
i f ( v e r b o s e ){
// g l o b a l e K o n f i g u r o a t i o n
Anweisungs-, Zweig- und
logfileOut ( provision );
// g g f . K o n t r o l l a u s g a b e nPfadüberdeckung
Vereinfachte
}
Schleifenüberdeckung
Test von Bedingungen: Die
}
Termüberdeckung
return provision ;
}
HOM/FHTenL
Untitled Sheets
March 9, 2016
Elemente eines Ablaufgraphs mit UML-Notation
18/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Beispiel eines Ablaufgraphens mit UML-Notation
19/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
Zeilennummern im Buch sind zu korrigieren
HOM/FHTenL
Untitled Sheets
March 9, 2016
20/25
5
March 9, 2016
Vereinfachte Schleifenüberdeckung
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
1
Kein Eintritt in die Schleife
2
Genau ein Durchlauf durch die Schleife
3
Genau zwei Durchläufe durch die Schleife
4
Eine typische Anzahl von Durchläufen
5
Die maximale Anzahl von Durchläufen
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Test von Bedingungen: Die Termüberdeckung
21/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
i f ( ( n r > 1 && ! h a s F a i l e d ( ) ) | | newCustomer ) {
besteht also aus drei elementaren Termen, nämlich nr > 1,
hasFailed() und newCustomer. Die Operatoren &&, ||
und ! entsprechen der UND, ODER und NICHT-Beziehung.
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
Beispiel zur Termüberdeckung
22/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Die zu erfüllenden Bedingungen der elementaren Terme für
eine vollständige Termüberdeckung der Beispielbedingung.
Nr > 1
!hasFailed()
newCustomer
Resultat
wahr
falsch
wahr
falsch
wahr
wahr
falsch
falsch
falsch
falsch
falsch
wahr
wahr
falsch
falsch
wahr
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
1.
2.
3.
4.
HOM/FHTenL
Untitled Sheets
Die Termüberdeckung wird auch als Bedingungsüberdeckung
bezeichnet. Dabei werden drei Ausprägungen unterschieden:
Einfache Bedingungsüberdeckung: Jeder Term der
Bedingung muss in mindestens einem Test
einmal wahr bzw. falsch gewesen sein.
Mehrfachbedingungsüberdeckung: Jede mögliche
Kombination der Wahrheitswerte der einzelnen
Terme müssen in den Tests berücksichtigt
werden.
Minimale Mehrfachbedingungsüberdeckung: Jeder Term
muss in mindestens einem Testfall für den
Wert der Gesamtbedingung verantwortlich sein.
Untitled Sheets
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
March 9, 2016
Die drei Ausprägungen der Termüberdeckung
HOM/FHTenL
Überdeckungen:
Wege durch die
kombinatorische
Explosion
March 9, 2016
23/25
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
24/25
6
March 9, 2016
Die Natur der Fehler
Untitled Sheets
HOM
Lösungen für
methodische
Probleme
Reviews
Dokumentreviews
Fehler mögen es gemütlich. . .
Die richtigen
Testdaten finden
Grenz- und Extremwerte
Fehlersensibilität
Fachliche Regeln
Äquivalenzklassen
Überdeckungen:
Wege durch die
kombinatorische
Explosion
Anweisungs-, Zweig- und
Pfadüberdeckung
Vereinfachte
Schleifenüberdeckung
Test von Bedingungen: Die
Termüberdeckung
HOM/FHTenL
Untitled Sheets
March 9, 2016
25/25
7