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

Qualitätssicherung von Software

  • Upload
    charo

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Qualitätssicherung von Software

Qualitätssicherung von Software

Prof. Dr. Holger Schlingloff

Humboldt-Universität zu Berlinund

Fraunhofer FIRST

Page 2: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 2H. Schlingloff, Software-Qualitätssicherung

Prüfen = Testen einer Serie gleichartiger Objekte

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

Kapitel 2. Testverfahren

Abgrenzung

Page 3: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 3H. Schlingloff, Software-Qualitätssicherung

Verifikation:Die Software ist richtig!

Debugging:Warum ist die Software

nicht richtig?

Validation: Ist es die richtige Software?

Test:Ist die Software richtig?

Fragestellung beim Testen

Page 4: Qualitätssicherung von Software

Folie 4H. Schlingloff, Software-Qualitätssicherung

Der Vorgang des Testens

Page 5: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 5H. Schlingloff, Software-Qualitätssicherung

w-Fragen

•warum

•was

•wer

•wozu

•wie

•wannsollen wir testen?

Page 6: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 6H. Schlingloff, Software-Qualitätssicherung

• Mangelnde Qualität kostet Geld:

• Benutzerakzeptanz, Kundenverlust

• Fehlerkorrektur- und Folgekosten

• Gewährleistung, Produkthaftung

• Sicherheitsprobleme

Warum sollen wir testen?

Page 7: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 7H. Schlingloff, Software-Qualitätssicherung

Page 8: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 8H. Schlingloff, Software-Qualitätssicherung

• Qualität = Übereinstimmung mit den Anforderungen

z.B.: Funktionalität, Zweckdienlichkeit, Robustheit, Zuverlässigkeit, Sicherheit, Effizienz, Benutzbarkeit, Geschwindigkeit, Preisgünstigkeit, ...

Was sollen wir testen?

Page 9: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 9H. Schlingloff, Software-Qualitätssicherung

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

Page 10: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 10H. Schlingloff, Software-Qualitätssicherung

• Individualsoftware:

• Kundenspezifisch

• Adaptierbar

• Integrierbar

• Teuer

• Standardsoftware:

• Massenprodukt

• Starr

• Separat

• Billig

Beim Einsatz von COTS-Software reduziert sich Testen meist auf Probieren

Für Custom-Software sind i.a. Akzeptanz- und Korrektheitstests notwendig

Standard- versus Individual- Software

Page 11: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 11H. Schlingloff, Software-Qualitätssicherung

• „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

Wer soll testen?

Page 12: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 12H. Schlingloff, Software-Qualitätssicherung

• QS-Abteilung

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!

Page 13: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 13H. Schlingloff, Software-Qualitätssicherung

Individualverantwortlichkeit

• Diskriminierungen

• Schuldzuweisungen

• verminderte Produktivität

Teamverantwortung

• Kooperation

• Qualitätsbewußtsein

• Produktverbesserung

Fehlervermeidung statt Fehlererkennung!

Wozu sollen wir testen?

Page 14: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 14H. Schlingloff, Software-Qualitätssicherung

Explosion durch Sprengung,

weilSchräglage durch Ruder, weilvermeintliche Fehlbahn, weilfalsche Lagedaten, weilSensorausfall, weilÜbertragungsfehler, weilZahlbereichsüberlauf, weilundokumentierte Anforderung, weilungetestetes Ariane4-Bauteil, weilTermin- und Kostendruck

Handlungsempfehlungen:

...Fehlerkorrekturmaßnahmen,klare Aufgabenverteilung,Software-Redundanz,Leistungsbedarfsermittlung,Ausnahmebehandlung,formale Dokumentation,vollständige Integrationstests,QS-getriebene Entwicklung

Globale Fehlerrückverfolgung

Page 15: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 15H. Schlingloff, Software-Qualitätssicherung

• Konzentration auf Benutzersicht

(Relevante Testfälle, Benutzbarkeitsprobleme)

• Systematische Vorgehensweise

(Testplanung und -dokumentation)

• Einbeziehung aller Komponenten

(auch: Dokumentation, Installationsroutinen usw.)

• Automatisierung wo möglich

Wie sollen wir testen?

Page 16: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 16H. Schlingloff, Software-Qualitätssicherung

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

Notwendigkeit der Formalisierung

Page 17: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 17H. Schlingloff, Software-Qualitätssicherung

• (a) Festlegung der Schnittstellen und Ereignisse

Methoden:

get_data (...)calc_dev(...)normalize (...)set_timer (...)

Signale:

data: ...deviation: ...start_sig: ...

(b)(a)

• (b) Festlegung des reaktiven Verhaltens

data_sampling

data_samplingdata_sampling

data from data_ackquis

x:=calc_dev(data)

normalize(data) x>0,25

data to data_analysis

data to data_analysis

j

n

data_ackquisition

data_ackquisition

start_sig from timer

get_data (data)

data to data_sampling

Formale Anforderungsdefinition

Page 18: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 18H. Schlingloff, Software-Qualitätssicherung

Deklarative statt operationaler Beschreibungsformen

(was statt wie)

Logische Spezifikation der gewünschten Eigenschaften

(formale Grundlage)

Noch besser:

Alle Werte sollen normalisiert analysiert werden.

For all x exists y: y=normalize(x) and sometime analyzed(y)

Page 19: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 19H. Schlingloff, Software-Qualitätssicherung

Analyse

Entwurf

Implementierung

Integration

Einsatz

Wartung

Wann sollen wir testen?

Page 20: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 20H. Schlingloff, Software-Qualitätssicherung

In jeder Phase!

Analyse

Entwurf

Implementierung

Integration

Anforderungstest

Designtest

Funktionstest

Systemtest

Akzeptanztest

Einsatz

Wartung

Konfigurationstest

Page 21: Qualitätssicherung von Software

27.10.20042. Testverfahren Folie 21H. Schlingloff, Software-Qualitätssicherung

Kapitel 2. Testverfahren

2.1 Testen im SW-Lebenszyklus2.2 funktionsorientierter Test

Modul- oder Komponententest Integrations- und Systemtests

2.3 strukturelle Tests, Überdeckungsmaße2.4 Test spezieller Systemklassen

Test objektorientierter Software Test graphischer Oberflächen Test eingebetteter Realzeitsysteme

2.5 automatische Testfallgenerierung2.6 Testmanagement und -administration

Page 22: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 22H. Schlingloff, Software-Qualitätssicherung

Phasenbezogene Teststrategien

1. Anforderungsphase2. Konstruktionsphas

e3. Betriebsphase

Page 23: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 23H. Schlingloff, Software-Qualitätssicherung

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

1. Tests in der Anforderungsphase

Page 24: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 24H. Schlingloff, Software-Qualitätssicherung

extrem wichtig:Benutzerbeteiligung!

• Vorgehen: Progress reviews, Prototyping, Use cases

EntwicklerAuftraggeber

Nutzer

Page 25: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 25H. Schlingloff, Software-Qualitätssicherung

• z.B. als Transitionssystem:

Formulareingang Akteneinsicht Zuständigkeitsprüfung Weiterleitung

Vollständigkeitsprüfung Rückfrage Zurückstellung

Formprüfung Datenabgleich

Vorbearbeitung

Formales Benutzermodell

Page 26: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 26H. Schlingloff, Software-Qualitätssicherung

• 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?

Vollständigkeit und Konsistenz der Anforderungsdefinition

Page 27: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 27H. Schlingloff, Software-Qualitätssicherung

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

Test: Designtest

Objekt: Systementwurfsdokument

Methode: Testfallbeschreibung

2. Tests in der Entwicklungsphase

Page 28: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 28H. Schlingloff, Software-Qualitätssicherung

• 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

Tests: Funktionstests, strukturelle Tests

Objekt: Einzelmodule

Methode: black-box und glass-box Skripten

Page 29: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 29H. Schlingloff, Software-Qualitätssicherung

• Top-down Integration: Module als Stümpfe, Rapid Prototyping

• Bottom-up Integration: Testtreiber als Master, hierarchisches Vorgehen

1

1.1 1.2 1.3

1.3.1

1.3.2

Tests: Systemtests

Objekt: Teilsysteme

Methode: Stümpfe und Treiber

Page 30: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 30H. Schlingloff, Software-Qualitätssicherung

• Alpha- und Beta- Tests: mit bzw. ohne Entwicklerbeteiligung

• Protokollierung aller Benutzeraktionen!

• Installationsvorgang, Hilfesystem, Migrationsroutinen mit berücksichtigen!

Test: Akzeptanztest

Objekt: Gesamtsystem

Methode: Benutzertestprotokolle

3. Tests in der Betriebsphase

Page 31: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 31H. Schlingloff, Software-Qualitätssicherung

• kombinatorische Explosion

• PD-Benutzer nicht repräsentativ

• Testautomatisierung!

Test: Konfigurationstest

Objekt: Eingebettete Hard/Software

Methode: HW-in-the-loop Tests

mn

Page 32: Qualitätssicherung von Software

27.10.20042.1 Lebenszyklen Folie 32H. Schlingloff, Software-Qualitätssicherung

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)