+ All Categories
Home > Documents > Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Date post: 05-Apr-2015
Category:
Upload: hrodwulf-westheimer
View: 108 times
Download: 4 times
Share this document with a friend
17
Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011
Transcript
Page 1: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Software-Qualität

Testen, Analysieren und Verifizieren von Software

Michael Zeller

14. Juli 2011

Page 2: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Gliederung

1. Einführung und Motivation

2. Wichtige Begriffe und Definitionen

3. Prozesse und Organisation

4. Test- und Prüftechniken

5. Dynamische Testverfahren

6. Statische Analysen

7. Werkzeuge

Page 3: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Motivation

1. SW-Kosten steigen gegenüber HW-Kosten

2. Kosten während der Wartungsphase größter Anteil der SW-Entwicklungskosten

Ursache:

Fehler der SW-Entwicklung, werden erst bei der Produktnutzung entdeckt

Fehlerkorrektur besonders zeitaufwändig wenn:

• SW schlecht strukturiert • unzureichend dokumentiert• schwer verständlich

= Ausdruck unzureichender SW-Qualität

Page 4: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Motivation

Hauptprobleme:

• Vermeintliche Fehlerkorrekturen können zu Folgefehlen führen Wechselwirkungen mit anderen Teilen der SW, besonders wenn SW schlecht strukturiert

• Ursache des Fehlers geht auf Frühphase der SW-Entwicklung zurück (z.B. Anforderungsdefinition) umfangreiche Änderungen nötig

Ziele:

• Methoden, die die Erstellung zuverlässiger, verständlicher und leichter änderbarer SW ermöglichen

• Neben konstruktiven Verfahren wird die Qualität mit analytischen Mitteln geprüft

Page 5: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Motivation

Prinzip der integrierten Qualitätssicherung

Voraussetzung: Der SW-Entwicklungsprozess ist in Phasen unterteilt.

• Während jeder Phase werden konstruktive Methoden eingesetztz.B. Structured Design (SD), Unified Modeling Language (UML)

• Am Ende jeder Phase wird mit analytischen Mittel die Qualität des entstandenen Zwischenprodukts beurteilt.

• frühzeitige Erkennung von Fehlern, Korrektur mit geringem Aufwand möglich.

Page 6: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Motivation

Integrierte Qualitätssicherung

• Q-Sicherung setzt mit dem erstem Zwischenprodukt ein

• Verzahnung von Konstruktions- und Prüfschritten

• Möglichst viele Fehler erkennen, die auf den Konstruktionsschritt folgen, in denen die Fehler entstanden sind

• Test nur des fertigen Programms nicht ausreichend

Page 7: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Motivation

Qualitätszielbestimmung

• Verschiedene SW-Eigenschaften ergeben die SW-Qualität

• Sind unterschiedlich wichtig (für Hersteller u. Benutzer)

• Stehen teilweise in Wechselwirkung

• Die „beste“ SW-Qualität gibt es nicht, es gibt nur die „richtige“

• Berücksichtigung von Zeit- u. Kostenaspekten

Page 8: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Begriffe und Definitionen

Qualität

„Die Beschaffenheit einer Einheit bezüglich ihrer Eignung, festgelegte und abgeleitete Erfordernisse (Qualitätsanforderungen) zu erfüllen.“ (DIN 55350-11 95)

Qualitätsanforderung

„Bezeichnet die Gesamtheit der Einzelanforderungen an eine Einheit.“

Page 9: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Qualitätsmerkmale

„Ermöglichen die konkrete Festlegung und Beurteilung von Qualität. Sie stellen Eigenschaften einer Funktionseinheit dar, anhand derer ihre Qualität beschrieben und beurteilt wird.“

• Sicherheit• Zuverlässigkeit• Verfügbarkeit• Robustheit• Speicher- u. Laufzeiteffizienz• Änderbarkeit• Portierbarkeit• Prüfbarkeit• Benutzbarkeit

Begriffe und Definitionen

Page 10: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Organisation der Prüfung

• Software muss während der Entwicklung u. abschließend geprüft werden

• Die Prüfung sollte vor Arbeitsbeginn eingeplant werden, um Effizienz und sichere Prüfung zu gewährleisten

• Zeitpunkte, Methoden und Verantwortliche sollten festgelegt werden (Programmierer, Projektleiter, speziell eingerichtete Organisationseinheit)

• Die Entwicklung muss auf Randbedingungen abgestimmt werden (wird in Phasen getestet, muss die Software in entkoppelten Modulen programmiert werden)

Prozesse u. Organisation

Page 11: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Prozesse u. OrganisationProzesse

• Qualität, Sicherheit und Dokumentation müssen vordefinierte Anforderungen und Standards erfüllen

• Entwicklungsprozesse sind nötig, um Einhaltung dieser Standards sicher zu stellen (sind organisatorischer Rahmen der Entwicklungsphase)

• Prüfung findet in Phasen statt, um Komplexität großer Systeme beherrschbar zu machen

• Unterscheidung:

• Modultest: Überprüft einzelne Komponenten

• Integrationstest: Überprüft Interagieren über Schnittstellen

• Systemtest: Überprüft Funktion, Leistung und Qualität des fertig integrierten Systems

Page 12: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Test- und Prüftechniken

1. Dynamische Testverfahren

• Setzt Ausführbarkeit des Programms voraus

• Ausführung mit konkreten Eingabewerten, denen bestimmte, erwartete Ausgabewerte zugeordnet sind Stichprobenverfahren

• Ziel der Testtechniken: Erzeugung von Testfällen, die repräsentativ, fehlersensitiv, redundanzarm, ökonomisch sind

• Fehler können demonstriert werden, ihre Abwesenheit aber nicht bewiesen

• Universell anwendbar, daher von großer praktischer Bedeutung

Page 13: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Test- und Prüftechniken

2. Statische Analysen

• Code (statisch) wird noch vor Ausführung des Programms geprüft

• Erkennt inhaltliche Fehler

• Entweder durch Entwickler (manuell) oder durch Programm (automatisch)

• Klassisches Programm: Lint („linten“) erkennt nur funktionale Fehler

• Neuere Programme erkennen auch qualitative Fehler (z.B. Flawfinder)

• Besonders wichtig bei älteren Programmiersprachen

• Oft größtenteils durch Compiler durchgeführt

Page 14: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Dynamische Tests

Funktionsorientiert, dynamisch

• Bewertet die Testvollständigkeit und Korrektheit der Testergebnisse anhand der Spezifikation

• Wichtigste Verfahren:

• Äquivalenzklassenbildung

• Zustandstest

• Ursache-Wirkungs-Analyse

Page 15: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Dynamische Tests

Strukturorientiert, dynamisch

• Testfälle werden auf Basis des Softwarequellcodes bestimmt

• Unterschieden werden:

• Kontrollflussorientierter Test

• Datenflussorientierter Test

Page 16: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

Dynamische Tests

Strukturorientierter Test

• Vollständige Abdeckung der Struktur, aber keine garantierte Abdeckung der Spezifikation.

• Das Fehlen von Programmcode wird nur zufällig erkannt.

Funktionsorientierter Test

• Vollständige Abdeckung der Spezifikation und aussagefähige Testfälle

• Aber keine garantierte Vollständigkeit der Abdeckung der Programmstruktur

Page 17: Software-Qualität Testen, Analysieren und Verifizieren von Software Michael Zeller 14. Juli 2011.

• Sind zahlreich für die gängigen dynamischen u. statischen Prüfmethoden verfügbar

• Ziele für die Nutzung:

• Bereitstellung von Informationen über die Prüfung

• Durchführung von Messungen

• Erhöhung der Effizienz Übernahme einfacher, sich wiederholender oder schwieriger (mathematischer) Tätigkeiten

• Erzeugen von Prüfprotokollen dienen als Nachweis gegenüber Auftraggeber oder Prüfbehören

Werkzeuge


Recommended