Beruflich Dokumente
Kultur Dokumente
Software Testen
Martin Pinzger
Software Engineering Research Group
University of Klagenfurt
!
!
bersicht
Einfhrung
Teststrategien
Funktionales Testen (Black-Box)
4-2
Einfhrung
Qualitt
Qualitt ist die Gesamtheit von Merkmalen (und Merkmalswerten) eines
Produktes bezglich seiner Eignung, festgelegte und vorausgesetzte
Erfordernisse zu erfllen [ISO 8402]
Qualittsstandards helfen,
die Softwarequalitt zu verbessern bzw. zu sichern
Fehler zu vermeiden oder diese zumindest leichter auffindbar zu machen
Kosten zu sparen (auf Dauer gesehen)
4-3
Qualittseigenschaften (Xxx-ilities)
Korrektheit (correctness)
Wiederverwendbarkeit (re-usability)
Zuverlssigkeit (reliability)
Sicherheit (security)
Testbarkeit (testability)
Robustheit (robustness)
Effizienz (efficiency)
Modularitt (modularity)
Verstndlichkeit (understandability)
Flexibilitt (flexibility)
Portabilitt (portability)
Gebrauchstauglichkeit (usability)
Wartbarkeit (maintainability)
...
4-4
Konstruktive Manahmen
Planung, Vorgehensmodelle, Dokumentation, Schulungen, etc.
Analytische Manahmen
Tests, berprfungen (inspection), Verifikation, Metriken, etc.
-> Zur Erkennung von Fehlern
4-5
Ziel: Durch das Testen will man Fehler finden (und zwar so viele wie
mglich und so frh wie mglich!)
4-6
4-7
4-9
Fault
Ein Fault ist ein Zustand des Systems, der ohne Korrekturmanahmen zu einem Ausfall
(Fehlverhalten) fhrt
Failure (Fehlverhalten)
Ein Fehlverhalten tritt auf, wenn das externe Verhalten nicht der Spezifikation entspricht
Error
Implementierung
Fehler/Bug/Defekt
Fault
Failure
Inakzeptables Verhalten
4-10
Fehlerbehandlung
Fault Handling
Fault Avoidance
Design
Methodology
Verification
Fault Tolerance
Fault Detection
Atomic
Transactions
Reviews
Modular
Redundancy
Configuration
Management
Testing
Unit
Testing
Integration
Testing
System
Testing
Debugging
Acceptance
Testing
Correctness
Debugging
Performance
Debugging
Verifikation ist die berprfung, dass ein Programm oder System die
spezifizierten Anforderungen erfllt (meist ein interner Prozess)
Baue ich das Produkt richtig?
Testebenen
Validierung
Kunde
Hohe
Ebene
Anforderungsanalyse
Anwendungsszenarien
Abnahmetest
sts
Entwickler
Komponentenentwurf
Testflle
Integrationstest
Implementierung
Testflle
Modultest
sts
Te
von
Niedrige
Ebene
n Te
llen
g vo
Systemtest
Aus
fh
run
Testflle
Verifikation
itste
Bere
Systementwurf
4-13
Modultest (Komponententest)
berprft, ob das Verhalten des Moduls dem Design entspricht
Integrationstest
berprft die Integration von Komponenten (Fokus liegt auf Kommunikations- und
Schnittstellenfehler)
Systemtest
hnlich wie Integrationstest, aber gewhnlich gehren dazu Funktionstest und
Tests nicht-funktionaler Anforderungen (Leistung, Sicherheit, Usability, etc.)
4-14
Alpha-Test
eine frhe Prfung des Systems von Benutzern innerhalb der
Entwicklungsorganisation
Beta-Test
letzte Prfung des Systems vor der Freigabe durch den Kunden (bzw. potentielle
Kunden)
Funktionstest
berprft das Verhalten der Funktion, ob es dem erwarteten Verhalten entspricht
4-15
Konfigurationstest
berprft das Verhalten des Systems mit verschiedenen Konfigurationen
(Hardware und Software)
Installationstest
berprft die Softwareinstallationsroutinen in verschiedenen
Systemumgebungen (z.B. unterschiedliche Betriebssystemversionen,
verschiedene Konfigurationen)
Usability Test
Die potentiellen Benutzer berprfen die Gebrauchstauglichkeit einer Software
(verschiedene Benutzerklassen und unter unterschiedlichen
Betriebsbedingungen)
4-17
Testvorbereitung
Spezifikation der Testflle (reprsentativ, stark, redundanzfrei)
Identifizierung der Testumgebung
Identifizierung der Testwerkzeuge
4-18
Fehlerbehebung
Analyse der entdeckten Fehler
Debugging: Bestimmung der Ursachen
Behebung der Fehler (z.B. im Source Code)
4-19
Verschiedene berdeckungskriterien
Anweisungsberdeckung
Zweigberdeckung
Bedingungsberdeckung
Pfadberdeckung, etc.
4-23
4-24
Anforderungsanalyse
Anwendungsszenarien
Abnahmetest
Tes
ts
gv
on
Systemtest
s
Test
von
run
Testflle
Komponentenentwurf
Implementierung
Testflle
Testflle
Integrationstest
Modultest
Au
sf
h
llen
itste
Bere
Systementwurf
Funktional
Black-Box
Strukturell
White-Box
4-25
Testfall = (<x,y,z>, a)
<x,y,z> ist die Eingabe
a ist die erwartete Ausgabe
Wert (value)
Tests zeigen, was Kunden wissen wollen (testen die Anforderungen der Kunden)
Minimalitt (minimality)
Anzahl der Testflle soll so gering wie mglich sein (redundanzfrei)
Etc.
4-27
4-28
min min+
nominal
max- max
x1
a untere Grenze
b obere Grenze
4-29
Grenzwertanalyse
bei zwei
Variablen
Boundary Value
analysis
Two variables
x2
d
c
a
x1
w many
tests
for erstellt
2, 3, , n variables?
4n +boundary
1 = 9 Testflle
werden
4n + 1
4-30
Beispiel: Blutdruckmessung
Boundary Value analysis
x2= diastolic
Range
200
High
90
Low
Normal
0
0
120
250
x1=systolic
4-32
ension
of the Boundary
Analysis
Robustness
TestingValue
bei zwei
Variablen
mines the cases when the boundaries are slightly
Zustzliche
2 Werte:
max+, mineeded
(negative
testing)
x2
d
min-
max+
c
a
x1
6n + 1
4-33
4-34
4-35
WorstWorst
Case Testing
zwei Variablen
case bei
testing
x2
d
c
a
b
Min
Min+
nominal
Max
Max-
x1
Min
Min+
nominal
Max
Max-
4-36
c
a
x1
w many
boundary
forerzeugt?
2, 3, , n variables?
Wieviele
Testflletests
werden
n
4-37
4-39
4-40
4-41
Weak ECT
Aus jeder quivalenzklasse muss ein Wert getestet werden
Klasse b < x1 < c
x2
g
x1
a
d
43
4-
Strong ECT
Jede quivalenzklasse muss mit (mind.) einem Wertetupel getestet
werden
Jede mgliche Kombination von quivalenzklassen wird getestet mglicherweise sind nicht alle sinnvoll
x2
g
f
e
x1
a
4-44
x2
g
f
x1
a
d
4-45
Gltiger Input:!
a <= x1 <= d!
e <= x2 <= g!
!
Ungltiger Input:!
x1 < a!
x1 > d!
x2 < e!
x2 > g
x2
g
e
x1
a
d
4-46
Beispiel: Autoversicherung
A car insurance company Simplicity provides insurance cover for
motor vehicles.
When a customer applies for a quote on insurance, the agent
requests the following information:
Vehicle type
Age of the driver
4-47
4-48
Age
<21
21 - 65
> 65
Motorcycles
4-49
Vehicle type
!
!
Cars
Trucks
Vans
Age
<21
21 - 65
> 65
> 65
21 - 65
<21
!
Motorcycles
!
How many tests?
4 = max (4, 3)
4-50
Code coverage
> 65
21 - 65
<21
Cars
How many tests?
Trucks
Vans
Motorcycles
4 = max (4, 3)
4-51
Cars
Trucks
Vans
<21
21 - 65
> 65
>6
21 - 6
<2
Motorcycles
12 = 4 x 3
4-52
Path coverage
> 65
21 - 65
<21
Cars
Trucks
Vans
Motorcycles
12 = 4 x 3
Fahren von Trucks mit unter 21 Jahren?
Random Testing
Auswahl der Testflle basiert auf einer Wahrscheinlichkeitsverteilung
(siehe auch [Musa, 93])
Uniform: Testflle werden mit gleicher Wahrscheinlichkeit aus der gesamten
Eingabe-Domne ausgewhlt
Operationell: Testflle werden aus einer Verteilung, die durch gesammelte
historischen Daten definiert wird, gezogen
Auswahl der Eingabedaten entspricht annhernd der tatschlichen Verteilung der Eingabedaten bei
Nutzung der Software
4-54
4-55
Literatur
Balzert H., Lehrbuch der Software Technik: Software Management, Software Qualittssicherung,
Unternehmensmodellierung, Spektrum Akademischer Verlag, 1998.
Beizer B.: "Software Testing Techniques"; van Nostrand Reinhold, 1983.
Beizer B.: Black- Box Testing: Techniques for Functional Testing of Software Systems, J. Wiley,
1995.
Bruegge, B. and Dutoit, A.: Object-Oriented Software Engineering: Using UML, Patterns, and
Java, 2nd ed., Prentice Hall, 2004.
Burnstein, I., Practical Software Testing, Springer-Verlag, 2003
Jorgensen Paul C.:Software Testing: A Craftsmans Approach, 2nd ed., CRC Press, 2002
Kaner C., Falk J., Nguyen Hung Q.: Testing Computer Software , Wiley &Sons, 1999.
Musa, J. Operational profiles in software-reliability engineering, IEEE Software, March 1993, pp.
1432.
Myers, G. "The Art of Software Testing", Wiley, 1979
4-56