methoden der qualitätssicherung...(j.c. maxwell) inst. f. softwaretechnik und interaktive systeme 8...
TRANSCRIPT
Vortragsreihe „Software Engineering for Everyday Business“
Methoden der Qualitätssicherung
Dietmar Winkler
Technische Universität Wien Institut für Softwaretechnik und Interaktive Systeme
[email protected]://qse.ifs.tuwien.ac.at
Inst. f. Softwaretechnik und Interaktive Systeme 2
Inhalt
Teil 4a: Qualitätssicherung und Software Prozess Verbesserung (ca. 45‘)Qualität – einige Definitionen und GrundlagenQualitätssicherung im Software Engineering ProzessSoftware Prozess Verbesserung
Teil 4b: Reviews, Inspektionen, Audits (ca. 45‘)Überprüfung der Qualität in frühen Phasen der SoftwareentwicklungInspektionsprozessAudits und Assessments
Teil 4c: Software Testen (ca. 60‘)Überprüfung der Qualität in „späten Phasen“ der Entwicklung.TeststrategienTestautomatisierung
Teil 4d: Best Practice Testing (ca. 30‘)
Vortragsreihe „ Software Engineering for Everyday Business“
Methoden der QualitätssicherungTeil 4a: Qualitätssicherung und Software Prozess Verbesserung
Dietmar Winkler
Technische Universität Wien Institut für Softwaretechnik und Interaktive Systeme
[email protected]://qse.ifs.tuwien.ac.at
Inst. f. Softwaretechnik und Interaktive Systeme 4
Inhalt
Teil 4a: Qualitätssicherung und Software Prozess Verbesserung (ca. 45‘)Qualität – einige Definitionen und GrundlagenQualitätssicherung im Software Engineering ProzessSoftware Prozess Verbesserung
Teil 4b: Reviews, Inspektionen, Audits (ca. 45‘)Überprüfung der Qualität in frühen Phasen der SoftwareentwicklungInspektionsprozessAudits und Assessments
Teil 4c: Software Testen (ca. 60‘)Überprüfung der Qualität in „späten Phasen“ der Entwicklung.TeststrategienTestautomatisierung
Teil 4d: Best Practice Testing (ca. 30‘)
Inst. f. Softwaretechnik und Interaktive Systeme 5
Was ist „Software-Qualität“?
In der gängigen Literatur gibt es
keine einheitliche Definition von „Qualität“.
aber verschiedene Ansätze, um „Qualität“ begrifflich zu fassen:
Die Kundenzufriedenheit definiert die Qualität eines Produktes.
Erfüllung von Anforderungen und Attributen bzw. Qualitätsfaktoren (z.B. nach dem Modell von McCall, o.ä.).
Erfüllung von Vorgaben, Richtlinien, Normen, Standards und gesetzlichen Regelungen für Produkte, Projekte, Prozesse und Dienstleistungen.
Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produktsoder einer Leistung, die sich auf die Eignung zur Erfüllung vordefinierter Anforderungen beziehen.
Inst. f. Softwaretechnik und Interaktive Systeme 6
Definitionen und Beispiele
Eine formale Definition nach DIN8402: „Die Beschaffenheit einer Einheit bezüglich ihrer Eignung, festgelegte und vorausgesetzte Erfordernisse zu erfüllen“.
Qualitative hochwertige Software-Produkte sind beispielsweisetermingerecht und im Rahmen des Budgets erstellt.für den Anwender verwendbar.für den Professionisten verständlich und änderbar.für den Betreiber effizient und administrierbar.
Beispiele:„Guter“ Projektablauf bezüglich Terminen/Kosten: Einhalten von Meilensteine gemäß Projektplan.Einfache Wartung des Produktes möglich: Messbar über Wartungszeit, -dauer und -kosten.Keine bzw. wenige aufgetretene Fehler während der Programmausführung.
Inst. f. Softwaretechnik und Interaktive Systeme 7
Qualitätsmodell nach McCall (1980)
Qualitätsfaktoren beschreiben dasVerhalten des Systems
Qualitätskriterien sind Eigenschaftenvon Qualitätsfaktoren in Bezug zurSoftwareproduktion und Entwicklung
Qualitätsmetriken sind Messungen, diedefinierte Aspekte der Qualitätsfaktorenbeschreiben
Produkt-wechsel
Einsatzdes
Produktes
Produkt-änderungen
Wartbarkeit
Flexibilität
Testbarkeit
Portierbarkeit
Wiederverwendbarkeit
Kompatibilität
Fehlerfreiheit
Verwend-barkeit
Effizienz
Verfügbarkeit
Integrität
RückverfolgbarkeitVollständigkeit
FehlertoleranzKonsistenz
Genauigkeit
Einfachheit
AusführungseffizienezSpeichereffizienzZugriffsüberprüfungZugriffskontrolle
BedienbarkeitSchulung, TrainierbarkeitKommunikativität
AllgemeinheitErweiterbarkeit
Modularität
Instrumentierung
Selbsterklärend
Hardware-UnabhängigkeitPlattform-UnabhängigkeitKommunikationskompatibilitätDatenkompatibilität
Übersichtlichkeit, KürzeTestabdeckung
Verwendung Faktoren Kriterien
MET
RIK
EN
Metriken
„To measure is to know“(J.C. Maxwell)
Inst. f. Softwaretechnik und Interaktive Systeme 8
Messungen
“You can’t manage what you can’t measure”, Tom DeMarco“What is not measurable make measurable”, Galileo Galilei
DefinitionMessen heißt “Ermitteln eines Wertes durch quantitativen Vergleich der Messgröße mit einer Einheit (Normal)” DIN 1319 Teil 1.
Beispiele
Prozess
Produkt
Ressourcen
Größe
Aufwand
Erfahrung
Aufwand für eine Aufgabe
Lines of Code
>10 Projekte
10 PM
700 (LoCs)
“high”
Inst. f. Softwaretechnik und Interaktive Systeme 9
Ausgewählte Typen von Messungen und Daten
Direkte vs. indirekte Messungen:Direkte Messung: Wertermittlung direkt beim zu untersuchenden Objekt (z.B. Dauer, Aufwand einer Aufgabe)Indirekte Messung: Ermittlung von Messwerten aus direkten Messungen (z.B. Effizienz einer Fehlererkennungsmethode = Anzahl der gefundenen Fehler pro Zeiteinheit)
Objektive vs. Subjektive MessungenObjektive Messung: LoC, Auslieferungsdatum, Aufwand usw.Subjektive Messung: Messergebnisse basierend auf der individuellen Sichtweise des Betrachters, z.B. Fragebögen zur Erfassung der Kundenzufriedenheit.
Quantitative vs. Qualitative Daten:Quantitativ: Daten als konkrete Zahlenwerte (z.B. für statistische Auswertungen)Qualitativ: Visualisierte Informationen (Text, Bilder), z.B. durch Interviews, Interpretationen.
Inst. f. Softwaretechnik und Interaktive Systeme 10
Einflussfaktoren bei der SW-Entwicklung
In einem Entwicklungsprojekt sind 4 wesentliche Einflussfaktorenbzw. Zielsetzungen, die sich wechselseitig beeinflussen, zu finden:
QualitätBeispiele: Anzahl der Fehler in einem Produkt, Termin- und Kostentreue.
Quantität Beispiele: die Anzahl der implementierten Funktionen, Function Points, Lines Of Code (LOC).
Entwicklungsdauer (z.B. in Monaten) bzw. Aufwand (z.B. in Personenmonaten)Beispiele: kleine“ vs. „große“ Projekte
Kosten
Diese Einflussfaktoren wirken wechselseitig auf die Produktivität, die in Abhängigkeit der verfügbaren Ressourcen als konstant betrachtet wird.
Symbolisierung durch das „Teufelsquadrat nach Sneed“
Inst. f. Softwaretechnik und Interaktive Systeme 11
Teufelsquadrat nach Sneed
Spannungsfeld von Qualität, Quantität (Umfang), Entwicklungsdauer und Kosten.
Messung und Skalierung der Werte (von den Ecken zur Mitte).
Die Fläche des Quadrats ändert sich nicht (= Produktivität).
Erhöhung der Qualität und Senkung der Entwicklungsdauer funktioniert nur durch Reduktion des Umfangs und/oder Erhöhung der Entwicklungskosten.
Qualität Quantität
Entwicklungsdauer Kosten
Produktivität
a b
cd
Inst. f. Softwaretechnik und Interaktive Systeme 12
Erstellung qualitativ hochwertiger Software
Die Erstellung qualitativ hochwertiger Produkte erfordert, …
Einen angemessenen Softwareprozess (z.B. Life-Cycle Modell) und adäquate Vorgehensmodelle zur kontrollierten Projektabwicklung (z.B. V-Modell XT, RUP, Spiralmodell, Agile Ansätze)
siehe Vortragsreihe 1.
Wirkungsvolle Methoden zur Produkterstellungsiehe Vortragsreihe 2 und 3.
Wirkungsvolle Methoden zur Produkt- und Prozessverbesserung (z.B. Reviews, Inspektionen, Testen)
siehe Vortragsreihe 4 (heute)
Die Erzeugung eines qualitativ hochwertigen Produktes wird dadurch NICHT garantiert!
Die Wahrscheinlichkeit dafür steigt jedoch …
Inst. f. Softwaretechnik und Interaktive Systeme 13
Qualitätssicherung in der Softwareentwicklung
Einige Aspekte der Qualitätssicherung
Verifikation und Validierung von (Teil-)Produkten in jeder Phase der Software-Herstellung.
Die Organisation der QS sollte unabhängig von einem bestimmten Projekt sein, und projektübergreifende Leistungen erbringen.
Qualität ist keine Eigenschaft, die später hinzugefügt werden kann. Qualität muss während der Entwicklung erstellt und gesichert werden.
Qualitätsmanagement ist die Menge aller Aktivitäten, Vorgehensweisen, Techniken und Hilfsmittel, die sicherstellen, dass ein Software-Produkt vordefinierte Standardserreicht oder übertrifft.
Auch „gute“ Produkte und Prozesse können immer noch verbessert werden (Grundsatz der kontinuierlichen Verbesserung).
Inst. f. Softwaretechnik und Interaktive Systeme 14
Konstruktive vs. Analytische Qualitätssicherung
Konstruktive Qualitätsmaßnahmen
Technische Maßnahmenz.B. Verwendung von Prinzipien, Methoden und Werkzeugen der Softwareentwicklung .
Organisatorisch Maßnahmen z.B. Verwendung von Vorgehensmodellen
Menschliche Maßnahmen z.B. Schulung der Projektmitarbeiter.
Analytische Qualitätsmaßnahmen (Prüfung und Bewertung der Qualität eines Produktes)
Statische Prüfungen z.B. Reviews, Inspektionen, Audits
Dynamische Prüfungen z.B. Software Tests
Inst. f. Softwaretechnik und Interaktive Systeme 15
QS im Kontext mit dem V-Modell
operation / maintenance
system specification
system design
module specification
tested modules
tested design/system
installed systemuser view
archetectural view
implementing view
system / acceptance test
integration test
module test
idea / study
QP
InfrastructureStandards
QualitätssicherungConfiguration Management
Audits
QP: QualitätsplanR: Review / InspektionTP: Testplan
P: PrototypT: Test
R P TP
R P TP
TP
R
RT
R
R
Inst. f. Softwaretechnik und Interaktive Systeme 16
Integration von QS in Vorgehensmodellen*
V-Modell XTQS ist als eigenständigen Vorgehensbaustein realisiert.Dieser Vorgehensbaustein ist ein verpflichtender Bestandteil aller Projekttypen (z.B. Auftraggeberprojekt, Auftragnehmerprojekt usw.)Der Projekttyp „Einführung und Wartung eines organisationsspezifischen Vorgehensmodells“ beinhaltet den Gedanken der ständigen Verbesserung.
Rational Unified Process (RUP)QS mit zugeordneten Rollen ist ständiger Begleiter während des gesamten Projektverlaufs.Review bei allen Meilensteinen.Eigene „Test Discipline“
Agile Entwicklungsprozesse (z.B. SCRUM)Reviews und Tests als fixer Bestandteil der Sprints. Test-Driven Development.
*Aufbau und Grundstruktur der beschriebenen Vorgehensmodelle wurden in der ersten Vortragsreihe behandelt
Inst. f. Softwaretechnik und Interaktive Systeme 17
Prinzipien des Qualitätsmanagements
Konkrete operationalisierbare Qualitätsmerkmale.
Produkt- und projektabhängige Qualitätsplanung.
Unabhängigkeit bei Qualitätsprüfungen.
Mehraugenkontrolle bei Qualitätsprüfungen.
Frühzeitige Entdeckung und Behebung von Fehlern und Mängeln.
Bewertungen der eingesetzten Qualitätsmaßnahmen.
Organisation in Form von Qualitätsmanagementsystemen, z.B. ISO 9001, CMM(I), SPICE (ISO 15504) u.ä.
Rückkopplung der Ergebnisse der Qualitätsprüfungen.
Prinzip der ständigen Verbesserung von Produkten und Prozessen.
Inst. f. Softwaretechnik und Interaktive Systeme 18
Produkt- und Prozessverbesserung (PDCA-Zyklus)
ACT(Rückkopplung)
DO(Produkt herstellen)
Unternehmen
Projekt
Arbeitspaket
tech. ReviewCheckliste
Projektplan
QM Handbuch
Managementreview
Assessment / Audit
Inst. f. Softwaretechnik und Interaktive Systeme 19
SPI mit dem PDCA-Zyklus
Kernelemente des SPI Zyklus sind [nach W.E. Deming]Plan: Planen der nächsten Iteration des SPI-Zyklus basierende auf aktuellen Erfahrungswerten (inkl. Zielsetzung)Do: Durchführen der geplanten Aktivität (Task, Projekt usw).Check: Überprüfung der Produkt- und Prozessergebnisse (z.B. durch Messung) Act: Analyse der Ergebnisse als Feedback für den nächsten SPI Zyklus. Verbesserung der Erfolgsfaktoren, Vermeidung von Wiederholungsfehlern, Beseitigen von Schwachstellen usw.
Ebenen des PDCA-Zyklus:Arbeitspaketebene (work space, task level)ProjektebeneUnternehmensebene (Management, Qualitätsmanagementsysteme)
Auch gute Prozesses können bzw. müssen optimiert werden !
Inst. f. Softwaretechnik und Interaktive Systeme 20
Beispiel: Prozesse auf Arbeitspaketebene
Komponenten eines Prozesses
Aufgabe: Erstellung einer technischen SpezifikationProzessinput: Anforderungsdokument.Ergebnis: Technische SpezifikationRessourcen: Modellierungstools, CVS, Office-PaketPersonal: Designer, ArchitektMethoden: ModellierungstechnikenMessung: Messung der erkannten Abweichungen
Prozessverbesserungszyklus gemäss PDCA
Plan: Erstellung einer technischen Spezifikation gemäß ProjektauftragDo: Erstellen der SpezifikationCheck: Überprüfung durch technisches Review oder Inspektion.Act: Basierend auf der Fehlerliste (Reviews) Fehlerliste zur Verbesserung
des Produktes und des Prozesses der Modellierungstechnik.
Inst. f. Softwaretechnik und Interaktive Systeme 21
Zusammenfassung & Ausblick
ZusammenfassungEs gibt keine einheitliche Definition für "Qualität" aber verschiedene Ansätze, um "Qualität" begrifflich zu fassen.Überprüfung, Beurteilung und Verbesserung der Produkt- und Prozessqualität erfordert messbare Attribute.Qualität, Quantität, Kosten und Entwicklungsdauer bilden ein Spannungsfeld in der Softwareentwicklung.QS ist integraler Bestandteil von Vorgehensmodellen (z.B. V-Modell (XT), Rational Unified Process, Agile Ansätze usw.)Das Prinzip der ständigen Verbesserung von Produkten und Prozessen ist ein integraler Bestandteil von Qualitätsmanagementsystemen und ist auf allen Ebenen (Arbeitspaket, Projekt, Unternehmen) anwendbar.Produkte und Prozesse können immer verbessert werden!
Ausblick: Ausgewählte statischen Methoden der Qualitätssicherung (Reviews und Inspektionen).
Inst. f. Softwaretechnik und Interaktive Systeme 22
Literaturreferenzen
Biffl Stefan, Winkler Dietmar, Frast Denis: „Qualitätssicherung, Qualitätsmanagement und Testen in der Softwareentwicklung“, Skriptum zur Lehrveranstaltung, 2004.http://qse.ifs.tuwien.ac.at/courses/skriptum/script.htmSoftware Engineering – Best practices: http://best-practice-software-engineering.blogspot.com/
Sommerville Ian: „Software Engineering“, 6th Edition, Addison-Wesley, 2001, ISBN 0 201 39815 X.Thaller Georg Erwin: „Software Qualität“, VDE Verlag, 2000, ISBN: 3-8007-2494-4.
Wallmüller Ernest: „Software Qualitätsmanagement in der Praxis; Software-Qualität durch Führung und Verbesserung von Software-Prozessen“, 2. völlig überarbeitete Auflage, Hanser, 2001, ISBN 3-446-21367-8.
Inst. f. Softwaretechnik und Interaktive Systeme 23
Vielen Dank für die Aufmerksamkeit !
Kontakt: Dipl.-Ing. Dietmar Winkler
Technische Universität WienInstitut für Softwaretechnik und Interaktive Systeme
Favoritenstr. 11/188, A-1040 Vienna, Austria
[email protected]://qse.ifs.tuwien.ac.at