VU Softwarequalitätssicherung WS2003 Testen von Softwaresystemen

Slides:



Advertisements
Ähnliche Präsentationen
ATROPHIE Die sogenannte Atrophie zählt zu den Anpassungsreaktionen unseres Organismus. Anpassungsreaktionen beschreiben die Reaktion des Körpers auf Umweltveränderungen,
Advertisements

Lexikon der Qualität Begriffe in Verbindung mit Qualität und ISO9000 finden sie auch im Lexikon der Qualität erläutert (
Risiko-Management im Projekt
Qualität „Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener.
Integrations- und Funktionstests im Rahmen des V-Modelles
Submodell Softwareentwicklung (SE)
Phasen und ihre Workflows
Qualitätssicherung von Software (SWQS)
Testplanung.
Ontologien- Query 1 Teil2
Bewertung des Prozessoptimierungsansatzes 'ITIL' am Beispiel des Projektes PolyWorkPlace bei Bayer Business Services GmbH.
Evaluierung und Implementierung der Automated Test Life-Cycle Methodology (ATLM) am Beispiel der IT3-Software Vorträger: Ling Yan.
Konzeption und prototypische Implementierung eines zentralen Informationssystems für Systemmanagement Motivation Oft wird es schwierig, die benötigten.
Qualitätssicherung von Software
Qualitätssicherung von Software
On a Buzzword: Hierachical Structure David Parnas.
Herzlich Willkommen zu vc 3 ! Wir möchten Sie gerne in den nächsten fünf Minuten durch die Simulation führen und mit den grundlegenden Abläufen vertraut.
Dynamische Testverfahren
LE LM 10 - LO3 Verfahren zur Qualitätssicherung
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Testfallbestimmung Dynamische Testverfahren wie das Black Box-Testen benötigen konkrete.
Was ist und wie prüft man Qualität
Prozessqualität und Produktqualität
Erfahrungen aus Tests komplexer Systeme
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Funktionalität Vorhandensein vor Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen. Richtigkeit - Liefern.
Schulung der Mitarbeiter
Was ist Qualität ? Qualität von Produkten oder Dienstleistungen ist das Gesamtergebnis aller Aktivitäten in jeder Phase des gesamten Leistungsprozesses.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme System- und Abnahmetests Inhalt Testen des Systems unter Mitwirkung des Auftraggebers.
Husain Aljazzar, Software Engineering, Universität Konstanz
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Testen, Analysieren und Verifizieren von Software
Agenda Einführung Haskell QuickCheck Zusammenfassung
Der Testprozess als Bestandteil des SE Prozesses:
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
eXtreme Programming (XP)
Wismar Business School
Das Wasserfallmodell - Überblick
Software Engineering SS 2009
Was ist Qualität? Qualität nach DIN ISO ist das...
Whitebox Testen mit JUnit
Design and analysis of GUI test-case prioritization using weight-based methods Samra Khan.
Zentralübung Automotive Software Engineering – Übungsblatt 8
Prototypentwicklung für ein Testmanagementsystem
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Agenda 13: Begrüßung & Einführung in das Thema
Die Struktur von Untersuchungen
Wilhelm Klein, März 2010 Entwickeln mit Methode Projekt Manager Projektplanung Steuerung und Kontrolle Bereitstellung (Hardware und Software) Qualitätssicherung.
Wasserfallmodell und Einzelbegriffe
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
5 Software-Qualität 5.1 Qualität 5.2 Taxonomie der Software-Qualitäten.
Blackbox-Testverfahren
Vienna University of Technology Pirker Simon 1. Überblick Definition Motivation Vorteile Entwurf von VP Pirker Simon 2.
Korrektheit von Programmen – Testen
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Eike Schallehn, Martin Endig
EnergieManagementSystem (EnMS) und EnergieAudit (EnA)
Korrektheit von Programmen – Testen
Software - Testung ETIS SS05.
Projektantrag für die Umsetzung von ISO :2011 Untertitel oder Sprecher.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Performanz- und Lasttests Formale Methoden
Semesterprojekt Präsentation Thema 1 Test-Arten
Formale Methoden Semesterprojekt Präsentation Thema 1 Test-Arten Fernstudium Master WI, MWI 10F Jan te Kock,
Projektmanagement und Softwarequalität
Softwareentwicklung & Testprozess
SEMINARVORTRAG Von Jonas Robers METHODEN UND TOOLS ZUR ERFASSUNG VON TESTFÄLLEN.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
 Präsentation transkript:

VU Softwarequalitätssicherung WS2003 Testen von Softwaresystemen Dipl.-Ing. Denis Frast denis.frast@qse.ifs.tuwien.ac.at Institut für Softwaretechnik und Interaktive Systeme

Was kostet Qualität? Minimum der Gesamtkosten

Testkosten und Qualität in der Praxis Fehlerkosten Test- bzw. Fehlerkosten Testkosten Testzyklus

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

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!)

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

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

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?

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!)

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

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

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 R: Entlehnung wird nicht zugelassen vielleicht fehlt aber auch nur die Vorbedingung: Buch x ist entlehnbar / nicht entlehnbar

Testfälle: Negativ-Beispiel 3 (Bibliothek) kein Ergebnis TF 1 V: - E/A: Leser möchte Buch x entlehnen R: -

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

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

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

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...

Ä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), ...

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!

Strukturtest: Testmaß 1 B 6 5 2 3 4 1 Pfade der Länge 1 -: (1) A: (2); (3); (4) B: (5); (6) Testfälle (1, 2, 5) (1, 3, 6, 4, 5)

Strukturtest: Testmaß 2 B 6 5 2 3 4 1 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)

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 Funktion 3 C, R, D

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 Abschluss Durchführung

Testmanagement Umgang mit Organisatorische Aspekte: 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

CM im Testprozess Dokumente Testplan Testfall-Spezifikationen Melde Fehler Fehler bewerten Fehler delegieren Fehler korrigieren Korrektur ausliefern Nachtest Fehler schließen Tester Test-Manager Entwickler CM Fehler ablehnen 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

Position von Testen im SE-Prozess

Teststufen und Testtypen 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

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

Beispiel: Architektur des IBS

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

Qualitätskriterien nach ISO 9126 / DIN 66272

Test-Strategie – Generisches Beispiel Kompon. (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 Integrierbarkeit 20 Sparsamkeit Rel. Bedeutung 30 15 100%

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 60 Entsch.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.

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

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