Post on 06-Apr-2016
transcript
VU Softwarequalitätssicherung WS2003VU Softwarequalitätssicherung WS2003Testen von SoftwaresystemenTesten von Softwaresystemen
Dipl.-Ing. Denis FrastDipl.-Ing. Denis Frastdenis.frast@qse.ifs.tuwien.ac.atdenis.frast@qse.ifs.tuwien.ac.at
Institut für Softwaretechnik und Interaktive Institut für Softwaretechnik und Interaktive SystemeSysteme
2
Was kostet Qualität?
Testkosten und Fehlerkosten
Qualität bzw. Testfortschritt
Kos
ten
Testkosten Fehlerkosten Gesamtkosten
Minimum der Gesamtkosten
3
Testkosten und Qualität in der Praxis
Testzyklus
Testkosten
Fehlerkosten
Test
- bzw
. Fe
hler
kost
en
4
Definition des Begriffs Testen
Testen wird oft falsch definiert:• Testen ist der Prozess, der zeigen soll, dass ein Programm keine
Fehler enthält• Testen soll zeigen, dass ein Programm seine Spezifikation erfüllt• Testen ist der Prozess, der das Vertrauen erzeugt, dass ein
Programm das tut, was es soll
5
Was ist Testen?
• Testen ist…Aufdecken von möglichst vielen Fehlern
• Testen ist nicht…Fehlerstellen lokalisieren und Fehler entfernen (Debuggen)
• Testen ist nicht… Fehlerfreiheit nachweisen (das geht nur mit einem Korrektheitsbeweis!)
6
Testen von Software
• Was ist Testen?– “Testen ist das Ausführen eines Programms, mit der Absicht,
Fehler zu finden.“ [Myers 1979]• Was ist ein Fehler?
– “Ein Fehler ist eine Abweichung zwischen einem Programm und dessen Spezifikation.“ [Kaner et al., 1999]
• Testen als Teil des Qualitätsmanagements ist ein wichtiger und fortlaufender Bestandteil des Software-Entwicklungsprozesses, nicht bloß eine Pflichtübung am Ende
7
Testen: Ein Beispiel
Ein Programm liest 3 ganze Zahlen a, b und c und soll feststellen, ob sie die Seiten eines
– gleichseitigen Dreiecks– gleichschenkligen Dreiecks– rechtwinkeligen Dreiecks– sonstigen gültigen Dreiecks
bilden.
Mit welchen Eingaben würden Sie es testen?
b
c
a
8
Beispiel: Testfälle
Gültige Dreiecke• Gleichseitig: 3, 3, 3• Gleichschenkelig: 5, 5, 3• Rechtwinkelig: 3, 4, 5• Sonstiges: 3, 5, 7• Permutationen davon
(3,5,5), (5,3,5),(3,5,4), (4,5,3), (4,3,5), (5,3,4), (5,4,3),(3,7,5), (5,7,3), (5,3,7), (7,3,5), (7,5,3)
Ungültige Dreiecke• a+b < c: 3, 3, 7• a+b = c: 3, 4, 7• Negative Seitenlänge: 3, 4, -5• 0, 0, 0• Nur 2 Seitenlängen: 3, 4• Permutationen davon
(3,7,3), (7,3,3),(3,7,4), (7,4,3),...(3,-5,4), (-5,3,4)...
• Haben Sie überall das erwartete Ergebnis dazugeschrieben?
9
Testfälle
• Tests bestehen aus einer Menge von Testfällen (Testsuite)• Ein Testfall besteht aus einer Menge (V, E, A, R)
– V: Vorbedingungen– E: Eingabewerte– A: Aktionen zur Eingabe der Werte– R: erwartete Ergebnisse
• Testerfolg– Ein Testfall ist erfolgreich, wenn er einen Fehler gefunden hat– kein Fehler Information über Produktqualität
(Testüberdeckung!)
10
Qualität von Testfällen
• Fehlerfindungsrate: Wahrscheinlichkeit, Fehler zu finden• Fehlerlokalisierung: Einschränkung der Fehlerlokation• Testüberdeckung: Wenige gute überdecken mehr als viele
schlechte• Komplexität: Allzu komplexe Testfälle sind selten zur Gänze
durchführbar! Kompromiss zwischen Anzahl und Komplexität! • Generalität: so allgemein wie möglich und so genau wie nötig
generische Beschreibung der relevanten Eigenschaften ohne konkrete Werte; diese werden erst beim Test inkludiert
11
Testfälle: Negativ-Beispiel 1 (Badeanstalt)
• Zwei an sich gute Testfälle testen dasselbe• TF 1
– V: Schlüssel ist Garderobeschlüssel, zum Schlüssel existiert ein noch nicht zurückgegebenes Codeband.
– E/A: Kunde gibt Schlüssel zurück– R: Automat akzeptiert Schlüssel
• TF 2– V: Codeband noch nicht zurückgegeben– E/A: Codeband und Schlüssel werden zurückgegeben– R: Ausgang wird freigegeben
12
Testfälle: Negativ-Beispiel 2 (Bibliothek)
• Vermischung von Eingaben und Ergebnissen• TF 1
– V: -– E/A: Leser möchte Buch x entlehnen– R: Entlehnung wird vom System zugelassen
• TF 2– V: -– E/A: Leser möchte Buch x entlehnen– R: Entlehnung wird nicht zugelassen
• vielleicht fehlt aber auch nur die Vorbedingung: Buch x ist entlehnbar / nicht entlehnbar
13
Testfälle: Negativ-Beispiel 3 (Bibliothek)
• kein Ergebnis• TF 1
– V: -– E/A: Leser möchte Buch x entlehnen– R: -
14
Testfälle: Negativ-Beispiel 4 (Bibliothek)
• keine Eingabe an das System bzw. kein vom System beeinflusstes Ergebnis
• TF 1 – V: -– E/A: Person kann sich nicht ausweisen, gibt aber Adresse
bekannt. Leser soll angelegt werden.– R: Leser wird ohne Vorlage eines Ausweises nicht angelegt.
Leserkarte wird nicht ausgegeben
15
Testfall-Spezifikationsmethoden
• Strukturierte Anweisungen zur Generierung von Testfällen• Vorteile gegenüber zufälliger Testfalldefinition
– Höhere Qualität der Testfälle– Machen Qualität und Intensität eines Tests transparent– Erreichen gewünschte Abdeckung für jeden Teil der
Applikation– Effektiver für gegebene Fehlertypen– Tests werden nachvollziehbar– Testprozess wird unabhängig von Personen– Testfall-Spezifikationen werden übertragbar und aktualisierbar– Testprozess wird besser plan- und steuerbar
• „Nachteile“– Fundiertes Wissen der Tester notwendig
16
Black Box vs. White Box
• Black Box– Basiert auf Spezifikation– Wissen über innere Struktur
wird ignoriert– Daten-getriebene, Input-
Output-getriebene Tests– Anforderungsüberdeck.– Partitionierung der Eingabe-
Daten
• White Box (Glass Box)– Basiert auf Code(struktur)– Wissen über innere Struktur
notwendig– Logik-getriebene Tests– Überdeckung von Pfaden im
Kontrollflussgraphen– Partitionierung von Daten f.
Bedingungsauswertung
Input Output Input Output
17
Ableitungsprinzipien
• Äquivalenzklassen• Grenzwertanalyse• Verarbeitungslogik• CRUD-Matrix• Ursache/Wirkungs-Graphen• Zustandsübergänge• Error Guessing
• Überdeckungsmaße geben Testintensität an– Pathn coverage: Pfade der
Länge n– Anweisungs- bzw.
Knotenüberdeckung (C0)– Entscheidungs- bzw.
Kanten-Überdeckung (C1)– Bedingungsüberdeckung– Anforderungsüberdeckung– Abdeckung aller Eingaben,
Ausgaben, Funktionen...
18
Äquivalenzklassenzerlegung
• Zerlegung einer Menge von Daten (Input oder Output) in Untermengen (Klassen), welche das selbe oder ähnliche Ergebnisse oder Auswirkungen produzieren
• Jede Klasse(nkombination) sollte mindestens einmal getestet werden
• Bestimmung des Eingabe-Vektors (A,B,C,...) und der Ausprägungen (Klassen A1, A2, ...; B1, B2, ...; ...)
• Anforderung: 18 < Alter 65 drei Äquivalenzklassen– A1: Alter 18 (ungültig)– A2: 18 < Alter 65 (gültig)– A3: Alter > 65 (ungültig
• Drei Testfälle: x A1, z.B. 10, x A2, z.B. 35, x A3, z.B. 70• Kombinationen: (A1, B1), (A1,B2), ...
19
Grenzwertanalyse
• Erweiterung der Äquivalenzklassenzerlegung für bessere Überdeckung
• Grenzwerte werden als Klassenrepräsentanten gewählt je Klassengrenze ein Testfall
• Anforderung: 18 < Alter 65– 18 (ungültig), 19 (gültig), 65 (gültig) and 66 (ungültig)
• Ev. mehrere Testfälle je Klassengrenze: Alter 18– 17 (gültig), 18 (ungültig) and 19 (ungültig)
Bedenke Tippfehler: Alter = 18!
20
Strukturtest: Testmaß 1
• Pfade der Länge 1– -: (1)– A: (2); (3); (4)– B: (5); (6)
• Testfälle– (1, 2, 5)– (1, 3, 6, 4, 5)
A
B6
5
2 3 4
1
21
Strukturtest: Testmaß 2
• Pfade der Länge 2– A: (1,2); (1,3); (1,4);
(6,2); (6,3); (6,4)– B: (2,5); (3,5); (4,5);
(2,6); (3,6); (4,6)• Testfälle
– (1, 2, 5)– (1, 3, 5)– (1, 4, 5)– (1, 2, 6, 2, 5)– (1, 3, 6, 4, 6, 3, 5)
A
B6
5
2 3 4
1
22
Datenzyklustest
• Bilde CRUD-Matrix• Testfälle für jede Entität
– Create, Read– Update, Read– Delete, Read
• Relationen nicht vergessen!
Entität 1 Entität 2 Entität 3
Funktion 1 R C, U, D -
Funktion 2 C R -
Funktion 3 C, R, D - -
23
Testen als Prozess
• Also was tun Sie wenn Sie die Aufgabe bekommen, ein Programm zu testen?– „Unter Testen versteht man den Prozess des Planens, der
Vorbereitung und der Messung, mit dem Ziel, die Eigenschaften eines IT-Systems festzustellen und den Unterschied zwischen dem tatsächlichen und dem erforderlichen Zustand aufzuzeigen.“ [Pol et al., 2000]
• Phasen im Testprozess– Planung und Verwaltung– Spezifikation– Durchführung– Abschluss
Planung
und Verwaltung
Spezifikation AbschlussDurchführung
24
Testmanagement
Umgang mit• verschiedenen Abteilungen im
Unternehmen• gegensätzlichen Interessen• Unvorhersehbarkeit• Komplexen administrativen
Aufgaben• Mangel an Erfahrung(-szahlen)• Zeitdruck
Organisatorische Aspekte:• Betrieblich: Wie viele Personen?
Wann sollen sie was tun? Welches Wissen benötigen sie? ...
• Strukturell: Welche Organisationsstruktur? Ein Test-Team für alle Projekte? ...
• Management: Verwaltung und Kontrolle
• Personal und Ausbildung: Kurse und Motivation
25
CM im Testprozess
• Dokumente– Testplan– Testfall-Spezifikationen– Testprotokolle (auch ad
hoc erfundene Testfälle!)– Spezifikation, Design, ...
• Fehlerverfolgung– Fehlerverfolgungs-Tool– Definierter Workflow
• Testware– Backups der Test-DB– Freigabe-Versionen f. Test
Melde Fehler Fehler bewerten
Fehler delegieren
Fehler korrigieren
Korrektur ausliefern
Nachtest
Fehler schließen
Tester Test-Manager Entwickler CM
Fehler ablehnen
26
Position von Testen im SE-Prozess
27
Teststufen und Testtypen
• Teststufen– Komponententest– Integrationstest– Systemtest– Regressionstest– Akzeptanztest
• Testtyp– Funktionaler Test– Massentest– Stresstest– Performance-Test– Review– etc.
• Jede Teststufe besteht aus einem oder mehreren Testtypen• Jeder Testtyp testet ein oder mehrere Qualitätskriterien und
verlangt eigene Test-Methoden
28
Beispiel: Test IBS
• Insurance Business Server– E-Commerce Applikation zur Erfassung von
Versicherungsanträgen über einen Internet-Browser– DHTML-Frontend, generiert aus XML-Schnittstelle mittels XSLT,
basierend auf Produktmodelldaten aus DB– Kommunikationsschnittstelle von IIS-Webserver zu Unix
Backend-Server über VB-Programm und COM+– Antragsberechnung auf Unix-Server mit Natural und Oracle– Entwicklungsaufwand ca. 100 (125) Personenmonate (PM)
• Tests:– Modultest: Statement-Abdeckung (C0)– Integrationstest: mehrere Phasen mit verschiedener Modul-
Zusammensetzung und speziellen Treiberprogrammen– Lasttest: Simulation von steigender Anzahl Anträge– Testaufwand ca. 25 (40) PM
29
Beispiel: Architektur des IBS
Web-Server
Legende
RechnerTechnologie Technologie
Geschäftslogik-ServerDB-Server
Web-Client
Wartungs-Client
CNatural
Oracle C
Visual C++Visual BasicIIS ASP
Visual BasicVisual Basic
MSXML MSXML
Visual Basic
Internet Explorer
Geschäftslogik Verbindungs-Auf-/Abbau
Verbindungs-Pooling
Produkt-Datenbank
Dialog-Komponente
Kommunika-tions-Arbiter
Generator
Web-Server
XMLXSL
Transformator
Java-Script
XML-Übersetzer
HTML
Socket
SocketEntire-Access
ADO SocketCOM
COMCOM/XML
Socket
HTTP/XML
COM/XML
Asynchrone Schnittstelle über File Synchrone Schnittstelle
Kommunikations-protokollKomponente Komponente
30
Planung und Durchführung von Tests
• Finden einer Teststrategie– Die wichtigsten Fehler so früh wie möglich mit geringen
Kosten zu finden effizienter Personaleinsatz, solider Testbericht!
– Variation in der Testintensität je Produktkomponente– Eigene Strategie für jede Teststufe
• Testfallspezifikation– Definition der Testfälle der Teststrategie entsprechend
• Checklisten– Test von Qualitätskriterien ohne Programmausführung
• Review-Techniken– Dokumente und Source-Code im Team prüfen
31
Qualitätskriterien nach ISO 9126 / DIN 66272
32
Test-Strategie – Generisches BeispielKompon. (kLOC)
Kriterium
Teilsyst. 1 (50)
Teilsyst. 2 (20)
Teilsyst. 3 (15)
Migration (10)
Gesamt-system (5)
Relative Bedeutung
Sicherheit + + 5
Einsetzbarkeit -
Kontinuität -
Kontollierbarkeit -
Funktionalität ++ + + ++ + 60
Benutzungs-freundlichkeit
++ + 10
Leistung + + 5
Integrierbarkeit + + + ++ 20
Sparsamkeit -
Rel. Bedeutung 30 15 20 15 20 100%
33
Teststrategie – Funktionaler Test
Kompon.Methode
G/B
#TF / kLOC
Teilsyst. 1 (50/30)
Teilsyst. 2 (20/15)
Teilsyst. 3 (15/20)
Migration (10/15)
Gesamt (5/20)
Strukturtest Maß 2 80 Strukturtest Maß 1 60Entsch.tabellentest 40 Datenzyklus-Test 30 Error Guessing 10• Schätze Anzahl Testfälle je Methode und Größeneinheit sowie
Aufwand je Testfall (wenn möglich, aus empirischen Daten!)• Ermittle Aufwand für mehrere verschiedene Szenarien (hier H, M, L)
für Angebote, Reaktion auf eingetretene Risken etc.• Beispiel: Definiere 3 Szenarien H, M, L.
34
Zusammenfassung
• Testen hat zum Ziel, Fehler zu finden• Testfälle sind Eingaben an das System mit definierten erwarteten
Ergebnissen• Testfall-Spezifikationsmethoden sind strukturierte Anweisungen zur
Generierung von qualitativ hochwertigen Testfällen mit vielen Vorteilen gegenüber „zufälligen“ Tests
• Eine Teststrategie hat zum Ziel, die wichtigsten Fehler so früh wie möglich mit geringen Kosten zu finden
• Testen ist ein Prozess, der den gesamten Software-Lebenszyklus begleitet
• Der Testprozess basiert auf vier Eckpfeilern:– Phasenmodell– Brauchbare Methoden– Ressourcen und Infrastruktur– Organisatorische Einbettung
35
Literaturempfehlungen
• Martin Pol, Tim Koomen, Andreas Spillner: “Management und Optimierung des Testprozesses: ein praktischer Leitfaden für erfolgreiches Testen von Software, mit TPI und TMap”, dpunkt.verlag, 2000, ISBN 3-932588-65-7
• Cem Kaner, Jack Falk, Hung Quoc Nguyen: “Testing Computer Software", Wiley, 1999, ISBN 0-471-35846-0
• DeMarco, Tom: “Der Termin: Ein Roman über Projektmanagement”, Carl Hanser Verlag, 1998, ISBN 3-446-19432-0
• Thaller, "Software-Test", dPunkt, 2002• Spillner et al., "Basiswissen Software-Test", dPunkt, 2003