Qualitätssicherung von Software

Slides:



Advertisements
Ähnliche Präsentationen
Benutzerorientierte Designprinzipien für die Microsoft-Guidelines
Advertisements

Lexikon der Qualität Begriffe in Verbindung mit Qualität und ISO9000 finden sie auch im Lexikon der Qualität erläutert (
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
Phasen und ihre Workflows
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Qualitätssicherung von Software
On the Criteria to Be Used in Decomposing Systems into Modules
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS)
Die Softwarelebenszyklen
Das „Vorgehensmodell“
Testplanung.
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Evaluierung und Implementierung der Automated Test Life-Cycle Methodology (ATLM) am Beispiel der IT3-Software Vorträger: Ling Yan.
Projektplanung Tanja Blascheck cims. Projektplanung cims Agenda Implementierung Modul Test Integration System Test Handbuch Abnahme.
Prof. Dr. Holger Schlingloff
Prof. Dr. Holger Schlingloff
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
Qualitätssicherung von Software
Qualitätssicherung von Software
Qualitätssicherung von Software
Der Einstieg in das Programmieren
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
Was ist und wie prüft man Qualität
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Einzeltests im Rahmen des V-Modelles Aufgaben Überprüfung des Programmcodes mit Hilfe.
Funktionalität Vorhandensein vor Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen. Richtigkeit - Liefern.
Schulung der Mitarbeiter
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Testen, Analysieren und Verifizieren von Software
Gliederung der Vorlesung Software Engineering WS 2001/2002
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
Agenda Einführung Haskell QuickCheck Zusammenfassung
Rational Unified Process (RUP) - Definitionen
Qualitätskriterien zur Beurteilung von Dokumentationen
Datenbankentwurfsprozess
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
Vorgehensmodelle: Schwergewichtige Modelle
Spezifikation von Anforderungen
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Whitebox Testen mit JUnit
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Zentralübung Automotive Software Engineering – Übungsblatt 8
Prototypentwicklung für ein Testmanagementsystem
GIS - Seminar Wintersemester 2000/2001
Agenda 13: Begrüßung & Einführung in das Thema
Auslegung eines Vorschubantriebes
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Wilhelm Klein, März 2010 Entwickeln mit Methode Projekt Manager Projektplanung Steuerung und Kontrolle Bereitstellung (Hardware und Software) Qualitätssicherung.
Fachhochschule München, Projektstudium Chipkarten SS 2002 Qualitätssicherung/Tester Wozu braucht man Tester? Vorbereitung Durchführung Ergebnisse Resumée.
Wasserfallmodell und Einzelbegriffe
HFWI System Development Teil B Der Softwareentwicklungsprozess
David Lorge Parnas and Paul C
Schneider. Event. Kommunikation.
Analyseprodukte numerischer Modelle
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Software-Entwicklung
Semesterprojekt Präsentation Thema 1 Test-Arten
Formale Methoden Semesterprojekt Präsentation Thema 1 Test-Arten Fernstudium Master WI, MWI 10F Jan te Kock,
Testsysteme für Automatisierte Softwaretests Seminarvortrag von Rica Wedowski.
SEMINARVORTRAG Von Jonas Robers METHODEN UND TOOLS ZUR ERFASSUNG VON TESTFÄLLEN.
 Präsentation transkript:

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

Kapitel 2. Testverfahren Abgrenzung Experimentieren = Ausführen einzelner Versuche zur Erlangung einer neuen Erkenntnis Probieren = experimentelles Feststellen der Qualität eines Objekts Testen = systematisches Probieren nach verschiedenen Qualitätskriterien Prüfen = Testen einer Serie gleichartiger Objekte 2. Testverfahren 27.10.2004

Fragestellung beim Testen Verifikation: Die Software ist richtig! Debugging: Warum ist die Software nicht richtig? Validation: Ist es die richtige Software? Test: Ist die Software richtig? 2. Testverfahren 27.10.2004

Der Vorgang des Testens

w-Fragen warum was wer wozu wie wann sollen wir testen? 2. Testverfahren 27.10.2004

Warum sollen wir testen? Mangelnde Qualität kostet Geld: Benutzerakzeptanz, Kundenverlust Fehlerkorrektur- und Folgekosten Gewährleistung, Produkthaftung Sicherheitsprobleme 2. Testverfahren 27.10.2004

2. Testverfahren 27.10.2004

Was sollen wir testen? Qualität = Übereinstimmung mit den Anforderungen Tested Quality z.B.: Funktionalität, Zweckdienlichkeit, Robustheit, Zuverlässigkeit, Sicherheit, Effizienz, Benutzbarkeit, Geschwindigkeit, Preisgünstigkeit, ... 2. Testverfahren 27.10.2004

Testbare Anforderungen! Anforderungsanalyse unabhängig von Marktverfügbarkeit Quantifizierung der Anforderungen nicht: „akzeptable Antwortzeiten sind wichtig“ sondern: „Antwortzeit höchstens 5 Sekunden, in 80% der Fälle kleiner als 3 Sekunden“ Kategorisierung der Anforderungen (unerläßlich / wichtig / erwünscht / irrelevant / unerwünscht) Testbare Anforderungen! 2. Testverfahren 27.10.2004

Standard- versus Individual- Software Standardsoftware: Massenprodukt Starr Separat Billig Individualsoftware: Kundenspezifisch Adaptierbar Integrierbar Teuer Beim Einsatz von COTS-Software reduziert sich Testen meist auf Probieren Für Custom-Software sind i.a. Akzeptanz- und Korrektheitstests notwendig 2. Testverfahren 27.10.2004

Wer soll testen? „Bugs“ schleichen sich nicht ein, sie werden gemacht Niemand kennt das Produkt so genau wie der Entwickler Motivation des Entwicklers: Debugging und Verifikation Motivation des Testers: Fehler identifizieren 2. Testverfahren 27.10.2004

QS-Abteilung Qualitätsrunden Moderation durch unabhängige Berater! Trennung von Produktverantwortung und Qualitätsverantwortung Produktivität statt Qualität mangelnde Fehleranalysen Qualitätsrunden Peer Review oder Walkthrough aktive Beteiligung aller Mitwirkenden Gleichberechtigung Konsensbildung Moderation durch unabhängige Berater! 2. Testverfahren 27.10.2004

Wozu sollen wir testen? Fehlervermeidung statt Fehlererkennung! Individualverantwortlichkeit Diskriminierungen Schuldzuweisungen verminderte Produktivität Teamverantwortung Kooperation Qualitätsbewußtsein Produktverbesserung 2. Testverfahren 27.10.2004

Globale Fehlerrückverfolgung Explosion durch Sprengung, weil Schräglage durch Ruder, weil vermeintliche Fehlbahn, weil falsche Lagedaten, weil Sensorausfall, weil Übertragungsfehler, weil Zahlbereichsüberlauf, weil undokumentierte Anforderung, weil ungetestetes Ariane4-Bauteil, weil Termin- und Kostendruck Handlungsempfehlungen: ... Fehlerkorrekturmaßnahmen, klare Aufgabenverteilung, Software-Redundanz, Leistungsbedarfsermittlung, Ausnahmebehandlung, formale Dokumentation, vollständige Integrationstests, QS-getriebene Entwicklung 2. Testverfahren 27.10.2004

Wie sollen wir testen? Konzentration auf Benutzersicht (Relevante Testfälle, Benutzbarkeitsprobleme) Systematische Vorgehensweise (Testplanung und -dokumentation) Einbeziehung aller Komponenten (auch: Dokumentation, Installationsroutinen usw.) Automatisierung wo möglich 2. Testverfahren 27.10.2004

Notwendigkeit der Formalisierung Natürliche Sprache mehrdeutig! Beispiel: „alle 30 Sekunden sollen die Werte der Sensoren abgelesen werden; wenn die Standardabweichung 0,25 überschreitet, soll die Normalisierungsprozedur ausgeführt werden, anschließend sollen die Werte an das Analysepaket weitergegeben werden.“ Akzeptanztest ergibt falsche Analysewerte. Problem: Komma! 2. Testverfahren 27.10.2004

Formale Anforderungsdefinition (a) Festlegung der Schnittstellen und Ereignisse (b) Festlegung des reaktiven Verhaltens data_sampling data from data_ackquis x:=calc_dev(data) normalize(data) x>0,25 data to data_analysis j n data_ackquisition start_sig from timer get_data (data) data to data_sampling (a) Methoden: get_data (...) calc_dev(...) normalize (...) set_timer (...) Signale: data: ... deviation: ... start_sig: ... (b) 2. Testverfahren 27.10.2004

Deklarative statt operationaler Beschreibungsformen (was statt wie) Noch besser: Deklarative statt operationaler Beschreibungsformen (was statt wie) Alle Werte sollen normalisiert analysiert werden. Logische Spezifikation der gewünschten Eigenschaften (formale Grundlage) For all x exists y: y=normalize(x) and sometime analyzed(y) 2. Testverfahren 27.10.2004

Wann sollen wir testen? Analyse Entwurf Implementierung Integration Einsatz Wartung 2. Testverfahren 27.10.2004

In jeder Phase! Analyse Entwurf Implementierung Integration Einsatz Anforderungstest Designtest Funktionstest Systemtest Akzeptanztest Einsatz Wartung Konfigurationstest In jeder Phase! 2. Testverfahren 27.10.2004

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

Phasenbezogene Teststrategien Anforderungsphase Konstruktionsphase Betriebsphase 2.1 Lebenszyklen 27.10.2004

1. Tests in der Anforderungsphase Test: Anforderungstest Objekt: Anforderungsdefinition Methode: Testfähige Formulierung und Formalisierung der Anforderungen Besonders wichtig in den frühen Planungsphasen eines Projekts Entscheidend für Benutzerakzeptanz und Gesamterfolg 2.1 Lebenszyklen 27.10.2004

extrem wichtig: Benutzerbeteiligung! Auftraggeber Entwickler Nutzer Vorgehen: Progress reviews, Prototyping, Use cases 2.1 Lebenszyklen 27.10.2004

Formales Benutzermodell z.B. als Transitionssystem: Formulareingang Akteneinsicht Zuständigkeitsprüfung Weiterleitung Vollständigkeitsprüfung Rückfrage Zurückstellung Formprüfung Datenabgleich Vorbearbeitung 2.1 Lebenszyklen 27.10.2004

Vollständigkeit und Konsistenz der Anforderungsdefinition Funktionsvollständigkeit Ist der Aufgabenbereich klar abgegrenzt? Beschreibungsvollständigkeit Wurden alle relevanten Werte definiert? innere Vollständigkeit Sind alle Querbezüge vorhanden? äußere Vollständigkeit Liegen alle Zusatzdokumente vor? Versäumnisfreiheit Wurde nichts wichtiges ausgelassen? terminologische Konsistenz Sind alle Begriffe eindeutig? innere Konsistenz Existieren widersprüchliche Anforderungen? externe Konsistenz Sind alle externe Objekte mit den Anforderungen vereinbar? zirkuläre Konsistenz Gibt es zyklische Referenzen? 2.1 Lebenszyklen 27.10.2004

2. Tests in der Entwicklungsphase Test: Designtest Objekt: Systementwurfsdokument Methode: Testfallbeschreibung Systementwurf: Definition von E/A-Formaten Definition von Dateien und Datenbasen Definition der Ablauflogik Definition der Moduldekomposition Testfälle: Ein- und Ausgabedatensätze Daten-Wörterbuch-Konzept Aufrufhierarchie-Tests Schnittstellen-Überprüfung 2.1 Lebenszyklen 27.10.2004

Verschiedene Testüberdeckungs-Begriffe Tests: Funktionstests, strukturelle Tests Objekt: Einzelmodule Methode: black-box und glass-box Skripten Kombinatorische Explosion bei erschöpfenden Tests (exhaustive / exhausting) Verschiedene Testüberdeckungs-Begriffe (Datenüberdeckung, Anweisungsüberdeckung, Pfadüberdeckung, Zweigüberdeckung, ...) Äquivalenzklassenbildung, Grenzwertanalyse, Entscheidungstabellen Werkzeugunterstützung möglich 2.1 Lebenszyklen 27.10.2004

Methode: Stümpfe und Treiber Tests: Systemtests Objekt: Teilsysteme Methode: Stümpfe und Treiber 1 1.1 1.2 1.3 1.3.1 1.3.2 Top-down Integration: Module als Stümpfe, Rapid Prototyping Bottom-up Integration: Testtreiber als Master, hierarchisches Vorgehen 2.1 Lebenszyklen 27.10.2004

3. Tests in der Betriebsphase Test: Akzeptanztest Objekt: Gesamtsystem Methode: Benutzertestprotokolle Alpha- und Beta- Tests: mit bzw. ohne Entwicklerbeteiligung Protokollierung aller Benutzeraktionen! Installationsvorgang, Hilfesystem, Migrationsroutinen mit berücksichtigen! 2.1 Lebenszyklen 27.10.2004

kombinatorische Explosion PD-Benutzer nicht repräsentativ Test: Konfigurationstest Objekt: Eingebettete Hard/Software Methode: HW-in-the-loop Tests kombinatorische Explosion PD-Benutzer nicht repräsentativ Testautomatisierung! 2.1 Lebenszyklen 27.10.2004

Bücher zum Testen Myers, Glenford J.: The Art of Software Testing. Wiley & Sons (1979) (auch in deutsch erhältlich: „Methodisches Testen von Programmen“; Neuauflage in Vorbereitung) Andreas Spillner, Tilo Linz: Basiswissen Softwaretest. DPUNKT Verlag (2003) (für ASQF Zertifizierung) Bart Broekman, Edwin Notenboom: Testing Embedded Software, Addison-Wesley (2003) (DC) Harry Sneed, Mario Winter: Testen objektorientierter Software. Hanser (2002) Edward Kit: Software Testing in the Real World – Improving the process. Addison-Wesley (1995) Dorothy Graham, Mark Fewster: Software Test Automation - Effective Use of Test Execution Tools. Addison-Wesley (2000) Cem Kaner, Jack Falk, Hung Q. Nguyen: Testing Computer Software. Wiley (2 ed. 1999) Marnie L. Hutcheson: Software Testing Fundamentals - Methods and Metrics. Wiley (2003) Georg E. Thaller: Software-Test. Heise (2002) 2.1 Lebenszyklen 27.10.2004