Qualitätssicherung von Software

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Ziele von EINI I + II Einführen in „Informatik“
der Universität Oldenburg
Integrations- und Funktionstests im Rahmen des V-Modelles
Objektorientierte Programmierung
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Qualitätssicherung von Software
On the Criteria to Be Used in Decomposing Systems into Modules
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
Testplanung.
Unter- und Oberklassen: Beispiel
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Prof. Dr. Holger Schlingloff
Qualitätssicherung von Software
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Qualitätssicherung von Software
Qualitätssicherung von Software
Qualitätssicherung von Software
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Qualitätssicherung von Software
Qualitätssicherung von Software
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.
Erfahrungen aus Tests komplexer Systeme
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Java: Objektorientierte Programmierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Agenda Einführung Haskell QuickCheck Zusammenfassung
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Modellierung komplexer Realität mit Objekten
Automatisches Testen und Bewerten von Java-Klassen
Die Skriptsprache Perl (7)
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
DVG Klassen und Objekte
Visual FoxPro Objektorientierte Programmierung. © 1999 TMN-Systemberatung GmbH Grundbegriffe n Objekte n Eigenschaften n Methoden n Objektnamen n Klasse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Objektorientierte Modellierung
Agenda 13: Begrüßung & Einführung in das Thema
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vom Geschäftsprozess zum Quellcode
Objektorientierung.
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Software Design Patterns
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
 Präsentation transkript:

Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST

Kapitel 2. Testverfahren 2.1 Testen im SW-Lebenszyklus 2.2 funktionsorientierter Test Modul- oder Komponententest Integrations- und Systemtests 2.3 strukturelle Tests, Überdeckungsmaße 2.4 Test spezieller Systemklassen Test objektorientierter Software Test graphischer Oberflächen Test eingebetteter Realzeitsysteme 2.5 automatische Testfallgenerierung 2.6 Testmanagement und –administration http://qse.ifs.tuwien.ac.at/courses/skriptum/script.htm 2.4 OO-Test 26.11.2004

OO-Entwicklungszyklus Analyse Klassendesign Implementierung Einführung Betrieb Debugging Zielerforschung Qualitäts- Sicherung 2.4 OO-Test 26.11.2004

Besonderheiten im Entwurf Hiding: starke Kapselung von Klassen gegenüber äußeren Zugriffen Inheritance: Übernahme von großen Teilen der Funktionalität anderer Klassen durch Vererbung, ggf. sogar Mehrfachvererbung Polymorphie: verschiedene Bedeutung der selben Operation für verschiedene Objekte, dynamische Bindungen abstrakte und generische Klassen: Schablonen, die selbst keine ausführbaren Methoden enthalten 2.4 OO-Test 26.11.2004

Schwierigkeiten starke Zustandsabhängigkeit: Operationen sind über den Zustand der jeweiligen Objektattribute verknüpft, sehr viele mögliche Zustände Verlagerung der Komplexität von strukturellen Einheiten in deren Beziehungsgeflecht (Methodenaufrufe als Botschaften) viele Entscheidungen werden erst zur Laufzeit getroffen (Objekterzeugung, Methodenbindung usw.) weitere Freiheitsgrade durch andere OO-Konstrukte  komplexere Beziehung zwischen Programmtext und Programmverhalten  Ableitung von Testfällen aus dem Programmtext schwierig 2.4 OO-Test 26.11.2004

Stimmen zum Test objektorientierter SW Grady Booch "... the use of object-oriented design doesn’t change any basic testing principles; what does change is the granularity of the units tested." Booch, G. Object Oriented Design With Applications. Benjamin/Cummings, 1991, S. 212 Boris Beizer “... it costs a lot more to test OO-software then to test ordinary software - perhaps four or five times as much ... Inheritance, dynamic binding, and polymorphism creates testing problems that might exact a testing cost so high that it obviates the advantages.” Beizer, B. Testing Technology - The growing gap. American Programmer, Vol. 7, No. 4, 1994, S. 3-12 2.4 OO-Test 26.11.2004

Objektorientierter Testprozess Klassentest (intra-class – testing) (normale) Klasse als kleinste sinnvoll testbare Einheit, Test aller einzelnen Methoden Kombination von zustands- und funktionsorientiertem Test Erweiterungen Vererbung, Polymorphie, generische Klassen Integrationstest (inter-class – testing) Test der Kommunikation zwischen einzelnen Klassen Systemtest, Abnahmetest Black-Box-Sicht, Benutzungsschnittstelle siehe auch Spillner, http://www.fbe.hs-bremen.de/spillner/HHOOTest/HHOOTest.pdf 2.4 OO-Test 26.11.2004

Testen von Klassen Erzeugung eines (instrumentierten) Objektes der zu testenden Klasse Aufruf der Konstruktoren, Besetzung der Attribute Überprüfung der einzelnen Methoden zunächst die nicht zustandsverändernden, dann die Datenfeld-manipulierenden Äquivalenzklassenbildung bzw. Grenzwertanalyse bezüglich der Objekt- und Methodenparameter Vergleich des erreichten Objektzustands mit dem Sollzustand nach jeder Methodenausführung Test von Folgen von Methodenaufrufen Beachtung der Modalität der Methoden (nächste Folie) 2.4 OO-Test 26.11.2004

Modalität der Methoden Nichtmodale Klassen Methoden sind unabhängig vom Zustand aufrufbar z.B. getAccountValue(…), setAccountValue(…) Unimodale Klassen zulässige und unzulässige Reihenfolgen der Methodenaufrufe z.B. getSensorReading(…), setActuatorOutput(…) Quasimodale Klassen Zulässigkeit eines Methodenaufrufs abhängig vom Zustand des Objektes z.B. pushStack(…), popStack(…) Modale Klassen Reihenfolge und Zustand 2.4 OO-Test 26.11.2004

Checkliste für den Klassentest Wird jede Methode / Operation einmal ausgeführt? Werden alle Nachrichtenparameter und exportierten Attribute berücksichtigt mittels Äquivalenzklassen und Grenzwertanalyse? Wird jede geworfene Ausnahme erzeugt und jede abgefangene behandelt? Wird jeder Zustand erreicht? Wird jeder Zustandsübergang durchgeführt? Wird jede Operation in jeder äquivalenten Zustandsklasse ausgeführt (korrekt bearbeitet wo zulässig, zurückgewiesen wo unzulässig)? Werden adäquate Stress- und Lasttests für jede Klasse durchgeführt? nach Binder, R.V.: Testing Object-Oriented Software: a Survey. Journal of Software Testing, Verification and Reliability, John Wiley & Sons, 1996, Vol. 6, No. 3/4 2.4 OO-Test 26.11.2004