qualitätskriterien für software ein vortrag von anton afanasjew informatik-seminar ws05/06
TRANSCRIPT
Qualitätskriterien für Software
Ein Vortrag von Anton Afanasjew
Informatik-Seminar WS05/06
Inhalt des Vortrags
Qualitätskriterien Qualitätskriterien für Software Qualitätskriterien für Softwareentwicklung
Qualitätsmanagement Begriffe Elemente des Qualitätsmanagements Total Quality Management DIN EN ISO 9000:2000 – Familie
Testverfahren Allgemeines Statische Testverfahren Dynamische Testverfahren Kontrollflussbezogene Verfahren
Qualitätskriterien für Software
Was sind die Anforderungen an eine Software?
Was sind die Anforderungen an Software-Entwicklung?
Wie kann man Softwarequalität messen?
Allgemeine Qualitätsklassen
„Quick and Dirty“- Software Software funktioniert nur bei sinnvollen Eingaben korrekt
Betriebswirtschaftliche Software Die Software arbeitet korrekt und blockt unsinnige
Eingaben ab
Software mit zusätzlichen Anforderungen Software berücksichtigt weitere Anforderungen wie
Ausfallssicherheit, Reaktionszeit usw.
Software-Eigenschaften (1)
Korrektheit Software führt ihre Aufgaben korrekt durch
Robustheit Software funktioniert auch unter besonderen Umständen
korrekt (z. B. falsche Eingaben)
Zuverlässigkeit Korrektheit+Robustheit
Software-Eigenschaften (2)
Änderbarkeit: Erweiterbarkeit und Wartbarkeit
Leichtigkeit, mit der die Software geändert werden kann
Erweiterbarkeit: Änderungen aufgrund von Softwareerweiterung
Wartbarkeit: Änderungen aufgrund von Fehlern
Änderbarkeit wirkt sich sehr auf Kosten aus
Software-Eigenschaften (3)
Wiederverwendbarkeit Eigenschaft der SW-Teile, die es erlaubt, sie mit anderen
Teilen zu kombinieren Vorteile: Weniger Fehler, Kostenreduzierung Methode: OOAD
Kompatibilität Zusammenspiel mit den anderen SW-Produkten Problem: Unterschiedliche Datenformate Lösung: Standards
Software-Eigenschaften (4)
Portabilität Leichtigkeit, die Software auf anderen Systemen zu
verwenden Wichtig, da Portierung ein großer Kostenfaktor ist Java als positives Beispiel
Integrität Sicherheit der Software Fähigkeit, sich gegen unerlaubte Zugriffe zu wehren
Software-Eigenschaften (5)
Performance Schnelligkeit und Effizienz in der Ausführung Heute nicht mehr so wichtig, wegen schneller und billiger
Hardware Ausnahmen: Echtzeitanwendungen und DB- BS-Kernel
Benutzerfreundlichkeit Aussehen Ergonomie Effizienz bei der Eingabe von Daten Standardisierte grafische Oberflächen
Qualitätskriterien für den Entwurf von Software (1)
Zerlegbarkeit Zerlegung des Problems in Teilprobleme, die unabhängig
voneinander gelöst werden können
Kombinierbarkeit Geschickte Entwicklung von Modulen, so dass sie später
nach dem Baukastenprinzip kombiniert werden können (=>Wiederverwendbarkeit)
Qualitätskriterien für den Entwurf von Software (2)
Verständlichkeit Die Funktionalität und das Nutzen des Moduls soll später
ohne Kenntnisse der anderen Module verstanden werden können
Stetigkeit Änderungen der Spezifikation sollen möglichst wenige
Module beeinflussen (=>Änderbarkeit)
Modulgeschütztheit Ein Fehler oder eine Ausnahmesituation soll möglichst
wenige Module beeinflussen
Qualitätsmanagement
Was ist Qualitätsmanagement?
Wer hat‘s erfunden?
Welche Normen gibt es?
Welche Beziehungen gibt es zwischen normalen QM und Software-QM?
Begriffe (1)
Qualität Ein Maß, das angibt, inwiefern ein Produkt die gestellten
Anforderungen erfüllt Aber auch die Güte der Prozesse, zur Herstellung von
Produkten Qualität muss definiert und geschaffen werden
Anforderung Eine Erwartung einer bestimmten Güte des Produktes Sie ist meistens definiert, aber kann auch intuitiv erwartet
und vorausgesetzt werden
Begriffe (2)
Qualitätsmanagement Definierte Prozesse und
Tätigkeiten zur Steuerung und Prüfung einer Organisation bezüglich der Qualität
Qualitätssicherung Früher: mit QM gleichgesetzt Heute: Teil des QM, der
Maßnahmen umfasst, das Vertrauen zu schaffen, dass Qualitätsanforderungen erfüllt werden
Elemente des Qualitätsmanagement (1)
Qualitätspolitik Prinzipien des Unternehmens bezüglich der Qualität Von der Unternehmensführung definiert und durchgesetzt Selbstverpflichtung des Unternehmens
Qualitätsplanung Festlegen der Qualitätsziele und der dafür notwendigen
Prozesse und Ressourcen Definition der Qualitätsziele bei SW nur mit einer
eindeutigen Anforderungsspezifikation möglich Qualitätslenkung
Erfüllung der Qualitätsanforderungen Vorbeugende Maßnahmen Nachtragende Maßnahmen
Elemente des Qualitätsmanagement (2)
Qualitätssicherung Schaffen des Vertrauens in die Erfüllung der
Qualitätsanforderungen Regelmäßige Überprüfung der Prozesse, die mit der
Qualität zusammenhängen (Audits) Dokumentation und Publikation der Prozesse und der
Messgrößen Zertifizierung
Qualitätsverbesserung Verbessern der Fähigkeit, Qualitätsanforderungen zu
erfüllen Auswertung von Messergebnissen Änderungen der Prozesse aufgrund von Audit-Ergebnissen
Total Quality Management
Dt. Begriff: Umfassendes Qualitätsmanagement
Eine Führungsmethode, die Kundenzufriedenheit zum Hauptziel des Unternehmens macht
Alle anderen Ziele werden davon abgeleitet
Qualität steht im Mittelpunkt
Alle Mitarbeiter werden in das Qualitätsmanagement eingebunden
Geschichte des TQM (1)
Ende des 19. Jahrh. : Industrialisierung Arbeitsteilung Qualitätskontrolle durch Kontrollmeister (Taylor‘sche
Methode)
Ab 1920: Verbesserung der Qualitätskontrolle durch statistische
Methoden und Stichprobenprüfungen (Dr. W. Andrew Shewart)
Geschichte des TQM (2)
Ab 1950: Nach dem Ende des 2. Weltkriegs liegt
japanische Industrie am Boden
Qualität ist Fremdbegriff
Amerikaner W. E. Deming kommt nach Japan
Mit seiner Hilfe erobern qualitativ hochwertige Waren aus Japan den Weltmarkt
Japanischer Held W.E.
Deming
Geschichte des TQM (3)
Demings Thesen: Qualitätskontrolle ist mehr als eine
Endkontrolle
Sie ist ein Prozess, der die gesamte Produktherstellung begleitet
Qualität spart Geld: Weniger Nacharbeitung, höhere Produktivität, neue Märkte
Qualitätsverbesserung durch PDSA-Zyklus
Demings Wheel
Geschichte des TQM (4)
In den 80-ern zieht Deming nach USA und veröffentlicht „If Japan can, why can‘t we?“ wodurch er auch dort berühmt wird
J.M. Juran führt den kundenorientierten Qualitätsbegriff ein
In 1961 prägt A.V. Feigenbaum den Begriff „Total Quality Control“ Vorbeugende Beseitigung potentieller Fehler Überwachung der Qualität von Produkten und deren
Produktion Kundendienst und Wartung
Geschichte des TQM (5)
Der Japaner Ishikawa nimmt diesen Aspekt auf Qualitätskontrolle als Managementaufgabe Beteiligung aller Mitarbeiter an der Verbesserung der
Qualität
Prozessorientierte Unternehmensführung gewinnt an Bedeutung Diese Stufe der Entwicklung heißt TQM
Qualitätsmanagementsysteme und Standards für deren Umsetzung (1)
Großer Konkurrenzdruck
Kunden sind wählerisch, was Qualität angeht
Firmen müssen nachweisen, dass sie besser als Andere sind (z.B. durch eine Zertifizierung)
Dazu ist die Einhaltung der Anforderungen während des gesamten Produktionsprozesses erforderlich
Ein Qualitätsmanagementsystem gibt Anhaltspunkte zur Umsetzung
Qualitätsmanagementsysteme und Standards für deren Umsetzung (2)
Aktuelle Standards: ISO 9000:2000: Grundlagen und Begriffe für
Qualitätsmanagementsysteme
ISO 9001:2000: Anforderungen an die Qualitätsmanagementsysteme
ISO 9000-Teil 3: Leitfaden für die Anwendung von ISO 9001 auf die Entwicklung, Lieferung und Wartung von Software
Die wichtigsten Prinzipien der 9000ff- Normen (1)
QM-System Das Unternehmen muss ein QM-System entwickeln und es
in einem QM-Handbuch niederlegen
Alle Prozesse zur Erfüllung der Anforderungen müssen dort auch beschrieben werden
Ebenso die QM-Politik und die QM-Ziele
Die wichtigsten Prinzipien der 9000ff- Normen (2)
Verantwortung der obersten Leitung Selbstverpflichtung QM-Politik und QM-Ziele, Ressourcen Verantwortungsbereiche für die Kontrolle der
Prozessdurchführung und –verbesserung Qualitätsbeauftragte
Prüfen die Durchführung der Prozesse Sorgen für die gute Kommunikation im Unternehmen
QM-Bewertung und Anpassung nach folgenden Infos Auswertung interner Audits Kundenrückmeldungen Fehler und Wirksamkeit der Prozesse
Die wichtigsten Prinzipien der 9000ff- Normen (3)
Management der Ressourcen Das Unternehmen muss die notwendigen Mittel zur
Einführung und Aufrechterhaltung des QM-Systems zur Verfügung stellen Motivation und Schulung der Mitarbeiter Infrastruktur Hard- und Software Dienstleistungen Finanzmittel
Die wichtigsten Prinzipien der 9000ff- Normen (4)
Produktrealisierung Produktionsprozesse müssen geplant werden (unter
Berücksichtigung der Qualitätsziele) Kundenanforderungen müssen ermittelt werden Kommunikation zw. Entwicklungsgruppen und mit den
Kunden Entwicklungsphasen Regelmäßige Beurteilung der Erfüllbarkeit der
Qualitätsanforderungen (mit Lösungsvorschlägen) Lieferantenkontrolle Validierung der Produktionsprozesse
Die wichtigsten Prinzipien der 9000ff- Normen (5)
Messung, Analyse und Verbesserung Entsprechende Prozesse Methoden zur Messung der Kundenzufriedenheit Methoden zur Messung und Verbesserung von Prozessen Messung der Produkte Analyse der gemessenen Daten Vorbeugende und Korrekturmaßnahmen
Testverfahren
Was muss man bei den Software-Tests beachten?
Wie testet man systematisch?
Was sind statische und dynamische Testverfahren?
Was sind kontrollflussbezogene Testverfahren?
Begriffe
Test: Prüfung der Software auf die
Übereinstimmung mit den Anforderungen Verifikation:
Prüfung eines Software-Modells auf die Übereinstimmung mit den Anforderungen mit Hilfe von mathematischen Beweisen
Testfall: Eine Menge von Eingabedaten mit den
erwarteten Ergebnissen Testdaten:
Teilmenge aller möglichen Eingabedaten der Testfälle, mit denen das Programm tatsächlich getestet wird
Grundlagen zum Testen
Entwickler sollten ihre eigene Software nicht testen
Hauptproblem beim Testen: geeignete Testfälle finden
Testen mit sinnlosen, falschen, ungültigen Eingaben notwendig
Tests müssen reproduzierbar sein
Testen, ob ein Programm etwas tut, was es nicht sollte, und ob es etwas nicht tut, was es sollte
Testen ist eine anspruchsvolle und kreative Aufgabe !!!
Statische Testverfahren
Testen des Codes Code-Inspection
Programmierer erklärt den Code Die Anderen stellen Fragen und versuchen die Fehler zu
finden 30%-80% der Fehler werden so entdeckt
Walkthrough Durchlaufen möglichst vieler Testfälle
Analyse und Verifikation der Komplexität Berechnen der Geschwindigkeit der Algorithmen
abhängig von den Eingabedaten (Lineare, quadratische, exponentielle Komplexität)
Dynamische Testverfahren
Testen in der realen Umgebung
Testen nach dem Prinzip der Stichproben Exemplarische Standard- und Sonderfälle
Passende Testfälle sind wichtig
Kontrollflussbezogene Testverfahren (1)
Das Programm wird als ein Kontrollflussdiagramm dargestellt
Anweisungsblöcke bilden die Knoten
Kontrollfluss wird durch Kanten dargestellt
Durch geschickte Wahl der Testfälle sollen möglichst viele Teile der Kontrollstrukturen durchlaufen werden
Beispiel if (a>=0)
b=a+1; else
b=a-1; if (c+d>=0)
e=c+d else
e=a+b return e
E1: a>=0
A1: b=a+1 A2: b=a-1
E2: c+d>=0
A3: e=c+d A4: e=a+b
A5: return e
true
true
false
false
Kontrollflussbezogene Testverfahren (2)
Anweisungsüberdeckung Alle Anweisungen werden mindestens einmal
durchgeführt (nicht ausreichend)
Zweigüberdeckung Alle Verzweigungen werden mindestens einmal verfolgt
(Fehler sind immer noch möglich)
Pfadüberdeckung Alle möglichen Pfade werden mindestens einmal
durchlaufen (Nicht praktikabel)
Beispiel Anweisungsüberdeckung:
a=2,c=0,d=0 erreicht: A1,A3,A5 a=-2,c=-1,d=-1 erreicht: A2,A4,A5 VOLLSTÄNDIG
Zweigüberdeckung: Obere 2 Eingaben reichen aus, um E1 und
E2 jeweils für die Werte true und false zu verfolgen
Pfadüberdeckung: a=2,c=0,d=0 durchläuft Pfad true, true a=2,c=-1,d=-1 durchläuft Pfad true, false a=-2,c=0,d=0 durchläuft Pfad false, true a=-2,c=-1,d=-1 durchläuft Pfad false, false VOLLSTÄNDIG (Bei k linearen Binärentscheidungen 2 hoch
k Pfade, bei Schleifen evtl unendlich viele Pfade)
E1: a>=0
A1: b=a+1 A2: b=a-1
E2: c+d>=0
A3: e=c+d A4: e=a+b
A5: return e
true
true
false
false
Softwarequalitätskriterien:Zusammenfassung Qualitätskriterien für
Software (Korrektheit, Robustheit, Performance usw.) Softwareentwicklung (Zerlegbarkeit, Verständlichkeit
usw.) Qualitätsmanagement
Total Quality Management (Deming, Kundenorientierung, QM-Systeme)
ISO 9000:2000ff (Standards für QM-Systeme) Testverfahren für Software
Testpraxis (sinnlose Eingaben testen, geeignete Testfälle finden, Reproduzierbarkeit von Tests)
Statische und dynamische Testverfahren (Code-Inspection, Walkthrough, Kontrollflussbezogene Testverfahren)
Ende
Vielen Dank für die Aufmerksamkeit !!!
Fragen
FRAGEN???