Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko...

32
Lehrstuhl für Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering Technische Universität München München, 4. Juli 2000

Transcript of Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko...

Page 1: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 2: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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ß

Page 3: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 4: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 5: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 6: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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%

Page 7: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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%

Page 8: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 9: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 10: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 11: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 12: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 13: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 14: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 15: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 16: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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)

Page 17: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 18: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 19: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 20: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 21: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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.

Page 22: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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:

Page 23: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 24: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 25: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 26: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 27: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 28: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 29: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 30: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 31: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

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

Page 32: Software-Test Techniken im - TUM · Software & Systems Engineering Techniken im Software-Test Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Software & Systems Engineering

Lehrstuhl fürSoftware & Systems Engineering

ENDE

Next Events:

Steinheil

Alex B. Schmidt:

Anwendungen der RelationenalgebraDienstag 18.7.2000, 17.00 Uhr, Raum1546