Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko...
Transcript of Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko...
Lehrstuhl fürSoftware & Systems Engineering
Techniken imSoftware-Test
Heiko Lötzbeyer
Institut für Informatik
Lehrstuhl für Software & Systems Engineering
Technische Universität München
München, 4. Juli 2000
4. Juli 2000 H. Lötzbeyer 2
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Inhalt
• Ziele des Software Tests
• Überblick
• Teststufen– Unit-Test
– Integrationstest
– Systemtest
• Testverfahren– manuelle Testverfahren
– Whitebox
– Blackbox
• Testfallermittlung– Spezifikationsbasierte Testfallermittlung
• Schluß
4. Juli 2000 H. Lötzbeyer 3
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Ziele
• Was ist Testen?– G. J. Myers, ´79:
„Testen ist der Prozeß, ein Programm mit der Absichtauszuführen, Fehler zu finden.“
– Hetzel ´83:„Messung derSoftwarequalität“
– Die Überprüfung, daß ein System die spezifiziertenAnforderungen erfüllt.
• Ziele:– Fehler finden
– auch:Fehler vermeiden(B. Beizer)
– nicht:Korrektheitsnachweis
4. Juli 2000 H. Lötzbeyer 4
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Überblick
• Entstehung und Entdeckung von Fehlern(aus Balzert, IEEE Software, Jan. 1985, S.83)
0%
10%
20%
30%
40%
50%
60%
Anforderungs- undEntwurfsphase
TechnischeEntwurfsphase
Konstruktions- undSystemphase
Abnahmetest undBetriebsphase
Eingebrachte Fehler Gefundene Fehler
4. Juli 2000 H. Lötzbeyer 5
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Fehlerbeseitigung
• Relative Kosten zur Fehlerbeseitigung(H. Balzert, 1998; Boehm, 1976)
35
1015
40
150
1
10
100
1000
Definitio
n
Entwur
fIm
plem
entie
rung
Entwick
lung
stes
tAbn
ahm
etest
Betrie
b
4. Juli 2000 H. Lötzbeyer 6
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Fehlerverteilung
• Fehlerverteilung (Dick Bender, 1993)
Requirements56%Design
27%
Code7%
Other10%
4. Juli 2000 H. Lötzbeyer 7
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Fehlerverteilung
• Fehlerverteilung:(Beispiel von Hewlett-Packard, Grady 1997)
Computation18%
Logic32%
Process/Interprocess5%
Hardware4%
Requirements5%
Documentation19%
Data handling6%
Other code11%
4. Juli 2000 H. Lötzbeyer 8
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Testdurchführung
Testfall-ermittlungTestfall-
ermittlung
TestfälleTestfälle
Testtreiber Stu
bs
AblaufprotokolleAblaufprotokolle
Testobjekt
NeuesTestobjekt
Regressionstest Regressionstest
4. Juli 2000 H. Lötzbeyer 9
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Teststufen
• Unit-, Komponenten-, Modul- oder Klassentest– Test einer einzelnen Einheit
• Integrationstest– Überprüfung des fehlerfreien Zusammenwirkens von
Systemkomponenten
• Systemtest– abschließender Test des Gesamtsystems
Funktion, Leistung (Massen-, Zeit-, Streßtest), Benutzbarkeit,Sicherheit, Interoperabilität
• Abnahmetest– Test unter Mitwirkung des Auftraggebers
– Alpha-Test, Beta-Test
4. Juli 2000 H. Lötzbeyer 10
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Integrationstest
• Integrationsstrategien:– nicht-inkrementell:
• big bang
• geschäftsprozeßorientiert
– inkrementell:• top-down-Integration
• bottom-up-Integration
• funktionsorientiert
• nach Verfügbarkeit
4. Juli 2000 H. Lötzbeyer 11
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Testverfahren
• Manuelle Prüfverfahren:– Programminspektion, Review, Walkthrough
– effektiv: 30-70% (Myers, Balzert)
– Zeit- und Personalaufwendig
• Whitebox-Test (struktureller Test)– Ausgangspunkt: Struktur des Prüflings
– Messung derTestüberdeckung mittels Metrik
• Blackbox-Test (funktionaler Test)– Ausgangspunkt: Spezifikation des Prüflings
– Sicherstellung der gewünschten Funktionalität
4. Juli 2000 H. Lötzbeyer 12
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Whitebox-Test
• Instrumentierung des Codes (Zähler einfügen)
• Tests durchführen
• Messung der– verarbeiteten Anweisungen
– ausgewerteten Bedingungen
– Schleifendurchläufe
• Auswertung der erreichten Überdeckung anhand vonMetriken– kontrollflußorientiert
– datenflußorientiert
4. Juli 2000 H. Lötzbeyer 13
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Kontrollflußorientiert
Function count(int x) {
int z;
if x < 0 then z = -x;
else z = x;
whil e z > 0 { z--; }
}
X < 0
z = -x z = x
z > 0
YES NO
Z--
2
3
1
YES
NO
Programm Flußdiagramm
4. Juli 2000 H. Lötzbeyer 14
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
F
FT
T,F
Kontrollflußorientiert• Metriken:
– Anweisungsüberdeckung• jede Anweisung mind. 1 mal durchlaufen
• hier: 3 Anweisungen können mit 2Testdurchläufen überdeckt werden
– Zweigüberdeckung• jeder Zweig (jede Bedingung:true, false)
• hier: 2 Bedingungen mit jeweils 2Möglichkeiten können mit 2 Testdurchläufenüberdeckt werden
– Pfadüberdeckung• jeder Pfad muß durchlaufen werden
• hier: unendlich viele Pfade
– Bedingungsüberdeckung, MC/DC
4. Juli 2000 H. Lötzbeyer 15
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
• Es gilt:
• Probleme:– Infeasible Paths (nicht erreichbare Pfade)
• z.B. if A do x; [...] if ¬A do y;
• aus Redundanzen (z.B. Range-Checking-Code vom Compiler)
• bei Exceptions
– geeignete Testdaten zu finden
Anweisungsüberdeckung
⊂Zweigüberdeckung
⊂ ⊂Modified Condition/Decision Coverage Pfadüberdeckung
⊂Bedingungsüberdeckung
Kontrollflußorientiert
4. Juli 2000 H. Lötzbeyer 16
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Datenflußorientiert
• Betrachtet werden– Definition,
– lesende Zugriffe,
– schreibende Zugriffe
von Variablen
• Defs/Uses-Verfahren:– def: Wertzuweisung, auch Definitionen, Initialisierung
– c-use: berechnende Benutzung (computational use)
– p-use: prädikative Benutzung (predicate use)
4. Juli 2000 H. Lötzbeyer 17
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Datenflußgraph
• Kontrollflußgraph mit Datenflußdarstellung:
Function count(int x) {
int z;
if x < 0 then z = -x;
else z = x;
whil e z > 0 { z--; }
}
defx
defz
p-usex p-usex
c-usexdefz
c-usexdefz
p-usezp-usez
c-usezdefz
4. Juli 2000 H. Lötzbeyer 18
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Datenflußmetriken
• Metriken: (Statistiken aus Girgis, Woodware `86)– all defs: (24%, keine Kontrollflußfehler)
• jede Definition muß in einer Berechnung oder Bedingung benutztwerden
– all p-uses: (34%, identifiziert sicher Kontrollflußfehler)• Jede Kombination aus Variablendefinition und deren prädikative
Nutzung muß getestet werden
• Beinhaltet Zweigüberdeckung
– all c-uses: (48%, identifiziert Berechnungsfehler)• Jede Kombination aus Variablendefinition und deren berechnende
Benutzung muß getestet werden
– all uses: (insgesamt ca. 70% der Programmierfehler)• c-usesundp-useszusammen
4. Juli 2000 H. Lötzbeyer 19
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Testfallermittlung
• Whitebox-Test:
Code
Modell
Abstraktion
Automatische Verfahren:Model-Checker,
KI
Überdeckung:Anweisungsüberdeckung,
MC/DC
Test Testfälle undTestdaten
Konkretisierung
4. Juli 2000 H. Lötzbeyer 20
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Blackbox-Test
• Blackbox-Test:– Ermittlung der Testfälle ausschließlich aus der Spezifikation
– Ziel ist eine möglichst umfassende und redundanzarmePrüfung der Funktionalität
• Techniken:– Äquivalenzklassenbildung
– Grenzwertanalyse
– Testsequenzermittlung aus• Use-Cases
• Beispielabläufen
• Zustandsdiagrammen
4. Juli 2000 H. Lötzbeyer 21
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Äquivalenzklassen
• Äquivalenzklassenbildung:– Definitions- und Wertebereich in Äquivalenzklassen zerlegen
• gültige Äquivalenzklassen => Funkionstests
• ungültige Äquivalenzklassen => Stabilitätstests
– Bsp: Monat : [1..12] zerlegen in• eine gültige Äquivalenzklasse : 1 <= Monat <= 12
• 2 ungültige Äquivalenzklassen: Monat < 1, Monat > 12
• Testfallauswahl:– Auswahl eines Repräsentanten aus jeder Äquivalenzklasse
– max. 1 ungültige Äquivalenzklasse
– Grenzwertanalyse:Werte an Rändern der Äquivalenzklassen
– spezielle Werte:z.B. 0 bei int, Sonderzeichen usw.
4. Juli 2000 H. Lötzbeyer 22
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
CTE
Klassifikationsbaum≈ Kombination von
Äquivalenzklassen
Kombinationstabelle
Classifaction Tree Editor:
4. Juli 2000 H. Lötzbeyer 23
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Zustandsautomaten
• Ableitung von Testfällen aus Zustandsautomaten:– über Graphen:
• Transitionsüberdeckung (Transitionstour)
• Zustandsüberdeckung
• Pfadüberdeckung
– durch Simulation• manuell mit Aufzeichnung
• symbolische Ausführung
– logikbasiert• Transformation in Aussagenlogik/Prädikatenlogik, deklarative
Beschreibung der Testfälle
4. Juli 2000 H. Lötzbeyer 24
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Testfallermittlung
• Blackbox-Test:
Testobjekt
Spezifikation
Automatische Verfahren:Model-Checker,
KI
Testziel
Testfälle undTestdaten
Test
4. Juli 2000 H. Lötzbeyer 25
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Mealy-Automaten
• Methoden:– Transitionstour, W-Methode, UIO-Methode
• Vorteile:– vollautomatisch
– auch Korrektheitsbeweis
• Nachteile:– nur endliche Systeme
– Korrektheitsbeweise erfordern starke Annahmen über Testobjekt
10
1/0
0/1
1/10/0
4. Juli 2000 H. Lötzbeyer 26
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Transitionstour
• Findet den kürzesten Pfad durch den Automaten, der alleTransitionen überdeckt
• Vorteile:– vollautomatisch
• Nachteile:– Automat muß bestimmte Eigenschaften haben:
• stark zusammenhängend
• errechnete Transitionssequenz muß wirklich durchführbar sein
4. Juli 2000 H. Lötzbeyer 27
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Model-Checking
• Methode:– Verwendung von Gegenbeispielen vom Model-Checker
– Ermittlung der Systemläufe durch die Lösung aussagenlogischerFormeln
• Vorteile:– vollautomatisch
• Einschränkungen– nur zustandsendliche Systeme
sonst Abstraktion notwendig
4. Juli 2000 H. Lötzbeyer 28
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Aussagenlogik
TestzielTestziel
AF-SpezifikationAF-SpezifikationSATO
(Aussagenlogik)SATO
(Aussagenlogik)
Testfall(EET)
Testfall(EET)
Übersetzung Rückübersetzung
4. Juli 2000 H. Lötzbeyer 29
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
CLP
• Methode:– Codierung in regelbasierte Systeme mit Constraint-Mechanismen (CLP
= Constraint Logic Programming)
– symbolische Simulation
• Vorteile:– vollautomatisch
– auch unendliche Systeme
• Einschränkungen– Datentypen / Arithmetik
– Schwierigkeiten mit nichtlinearen Prädikaten
4. Juli 2000 H. Lötzbeyer 30
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Constraintlogik
TestzielTestziel
AF-SpezifikationAF-SpezifikationProlog/CLP
(Regeln,Constraintlogik)
Prolog/CLP(Regeln,
Constraintlogik)
Testfall(EET)
Testfall(EET)
Übersetzung Rückübersetzung
4. Juli 2000 H. Lötzbeyer 31
Inhalt Ziele Überblick Teststufen Testverfahren Testfallermittlung Schluß
Lehrstuhl fürSoftware & Systems Engineering
Schluß
• Weitgehend gelöst:– Metriken für Whitebox-Tests
• Problematisch:– Testziele definieren
• Aktuell:– automatische Testfallermittlung aus
• Use-Cases,
• graphischen Beschreibungstechniken
– Generierung von Testtreibern, Stubs
Lehrstuhl fürSoftware & Systems Engineering
ENDE
Next Events:
Steinheil
Alex B. Schmidt:
Anwendungen der RelationenalgebraDienstag 18.7.2000, 17.00 Uhr, Raum1546