1.2 begriffe qualitätssicherung von software prof. dr. holger schlingloff humboldt-universität zu...
TRANSCRIPT
1.2 Begriffe
Qualitätssicherung von Software
Prof. Dr. Holger Schlingloff
Humboldt-Universität zu Berlinund
Fraunhofer FOKUS
Folie 2H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Kapitel 1. Einleitung
1.1 Einleitungsbeispiel1.2 Begriffe1.3 Software-Qualitätskriterien
Folie 3H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
System, Komponente, Spezifikation
• System = „etwas Zusammengesetztes“; Einheit, die mit anderen Einheiten zusammengearbeitet hat, zusammenarbeitet, oder zusammenarbeiten kann. Menge von Komponenten, die miteinander verbunden sind, um zusammenzuarbeiten
• Komponente = „etwas Zusammenzusetzendes“; Bestandteil eines Systems
• Spezifikation = „etwas Sichtbargemachtes“;Beschreibung der Anforderungen, auf die man sich geeinigt hat
Folie 4H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Qualität
„offizielle“ Definitionen:
• DIN 55350, ISO 8402: „die Gesamtheit von Merkmalen einer Einheit bezüglich ihrer Eignung, festgelegte und abgeleitete Erfordernisse (Qualitätsanforderungen) zu erfüllen“
• EN ISO 9000:2005: „Grad, in dem ein Satz inhärenter Merkmale (eines Objekts) (gegebene) Anforderungen erfüllt“
• Balzert: „die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen“
Qualität = Übereinstimmung mit den Anforderungen
Folie 5H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Qualitätsanforderungen und -maße
Der Begriff „Qualität“ ist zunächst wertneutral
• Qualitätsanforderungen: die Gesamtheit der Einzelanforderungen an eine Einheit, die die Beschaffenheit dieser Einheit betreffen Anforderungen müssen beschrieben sein!
• Qualitätsmaße: stellen den Grad der Ausprägung eines Qualitätsmerkmals (numerisch) dar z.B. MTBF für Zuverlässigkeit
Folie 6H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Qualitätsmerkmale
• Eigenschaften einer Funktionseinheit, anhand derer die Qualität beschrieben und beurteilt wird Funktionalität, Zweckdienlichkeit, Robustheit,
Zuverlässigkeit, Sicherheit, Effizienz, Benutzbarkeit, Verfügbarkeit, Geschwindigkeit, Änderbarkeit, Portierbarkeit, Prüfbarkeit, …
kann aus Teilmerkmalen bestehen
• Hersteller- und Nutzersicht verschiedene Optimierungsfunktionen oft gegensätzliche Optimierungskriterien
• „die beste Qualität“ gibt es nicht
Folie 7H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Mängel und Fehler
• nicht erwartungskonformes Verhalten oder Beschaffenheit eines Artefaktes wer hat die Erwartungen? („bug or feature?“) nur bezüglich einer Spezifikation (explizit oder
implizit) definierbar
• Abweichung zwischen Ist und Soll,zwischen Implementierung und Spezifikation
• Fehler: Nichterfüllung einer Anforderung• Mangel: nur teilweise Erfüllung
Folie 8H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Fehler
•Übung: Ordnen Sie die folgenden Begriffe Irrtum, Fehler, Fehlerursache,
Fehlverhalten, Fehlzustand, Defekt, Versagen, Ausfall
error, failure, fault, bug, defect, mistake
Folie 9H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Ursache, Wirkung und Folge
• Standardwerk zur Terminologie: J.C. Laprie, A. Avizienis,H. Kopetz: Dependability: Basic Concepts and Terminology. Springer-Verlag (englisch, deutsch, französisch)
Irrtum (error) Ursache Fehlzustand (fault) Wirkung Ausfall (failure) Folge
•Ausfall kann Fehlerursache für weiteren Fehler sein!
Folie 10H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Fehlerursachen
• Fehlerursache (cause): direkter oder indirekter Vorgänger in der Wirkfolge ein Fehler hat meist viele Ursachen
• Fehlerursache = Anerkannte oder angenommene Ursache für einen Fehler. Ereignis, das vermieden oder toleriert werden sollte. Auswirkung des Ausfalls eines anderen Systems, das mit dem betrachteten System zusammengewirkt hat oder zusammenwirkt, auf das betrachtete System
• letztlich ist jeder Fehler auf das menschliche Unvermögen zurückzuführen, die Gesamtheit aller Wirkzusammenhänge zu verstehen. Beispiel: Materialbruch Materialforschung Beispiel: Ariane 5 Flugbahneinfluss
• Irrtum (error), Fehlhandlung (mistake)
Folie 11H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Fehlzustände
• Fehlzustände treten auf, wenn ein System auf Grund äußerer Einflüsse oder selbsttätig in einen ungewollten Zustand übergeht
• Fehlzustand = Teil des Systemzustands, der dafür verantwortlich ist, dass ein Ausfall auftritt. Offenbarung einer Fehlerursache im System
• Möglichkeit des Fehlzustands ist immer schon im System vorhanden, der Fehlzustand wird durch den ausführenden Prozess nur aktiviert Beispiel: Division durch 0 in Zeile 739 Beispiel: Bit kippt auf Grund von alpha-Strahlung
• Fehlzustand (fault), Defekt (defect)
Folie 12H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Fehlerauswirkung
• Fehlverhalten ist die Konsequenz aus einem Fehlzustand. Wenn ein System einen Defekt enthält, führt das meist früher oder später zu einem teilweisen oder totalen Ausfall. Beispiel: kaputtes Zahnrad Getriebeschaden Beispiel: ungeschützte Gleitpunktkonversion …
• Ausfall = Abweichung der erbrachten Leistung von der in der Spezifikation geforderten Leistung. Übergang von korrekter Leistungserbringung zu fehlerhafter Leistungserbringung.
• Ausfall und Versagen sind weitgehend synonym (failure) Ausfall eher für Komponenten, Versagen eher für
Gesamtsysteme Im Sinne der Hierarchie ist der Ausfall einer Komponente die
Ursache für das Versagen des Systems
Folie 13H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Klassifikation von Fehlern (1)
• Intention (Art) zufälliger Fehler = zufällig auftretender oder
erzeugter Fehler absichtlicher Fehler = in böswilliger Absicht
erzeugter Fehler
• Idee, phänomenologischer Ursprung physikalischer Fehler = Fehler aufgrund eines
physikalischen Phänomens logischer oder systematischer Fehler = auf
menschlicher Unzulänglichkeit basierende Fehlerursache, Denkfehler
Folie 14H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Klassifikation von Fehlern (2)
• Raum externer Fehler = von der Beeinflussung des
Systems durch seine physikalische Umgebung oder vom Zusammenwirken mit seiner menschlichen Umgebung hervorgerufene Fehlerursache
interner Fehler = Teil des Systemzustandes, der bei Aufruf durch eine Rechenaktivität einen Fehler hervorruft
• Zeit, Entstehungsphase Betriebsfehler = während der Nutzung des Systems
auftretender Fehler Entwurfsfehler, Konstruktionsfehler = während
der Entwicklung oder der Modifikation oder der Erstellung der Betriebsprozeduren entstandener Fehler
Folie 15H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Klassifikation von Fehlern (3)
• Dauer permanente Fehler = Anwesenheit ist nicht von
einer punktuellen Bedingung abhängig Temporäre oder transiente Fehler = nur
während einer bestimmten Zeit vorhanden
Unterscheidung reparierbar oder nicht!
temporäre interne Fehler werden auch intermittierende Fehler genanntjeder Fehler kann als permanenter Entwurfsfehler verstanden werden
Folie 16H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Klassifikation von Ausfällen
•Wert- oder Zeitausfälle
•verfrüht oder verspätet
•konsistent oder inkonsistent
•kritisch oder unkritisch
•Stillstand oder Livelock
•Auslassungsausfälle, Totalausfälle
Folie 17H. Schlingloff, Software-Qualitätssicherung
Maßnahmen
Definieren Sie: Test, Verifikation, Analyse, Review
• Test systematisches Experimentieren mit einem Objekt zur
Bestimmung seiner Qualität (Testum = Schmelztiegel)
• Verifikation Nachweis der Richtigkeit einer Vermutung, Behauptung oder
eines Umstandes (veritas facere)
• Analyse systematisches Auflösen eines Gegenstandes in
Einzelbestandteile zur Untersuchung und Auswertung von Eigenschaften (griech. Auflösen)
• Review Prüfung und Beurteilung eines Schriftstücks durch Fachleute
1.2 Begriffe
Folie 18H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
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
Folie 19H. Schlingloff, Software-Qualitätssicherung 27.10.20042. Testverfahren
Verifikation:Die Software ist richtig!
Debugging:Warum ist die Software
nicht richtig?
Validation: Ist es die richtige Software?
Test:Ist die Software richtig?
VVTD
Folie 20H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Bleibt noch eine Anekdote…
• It has now become a popular tradition that it was the legendary American Naval officer and mathematician Grace Murray Hopper who found the offending insect, but it's also said that she wasn't there when it happened. (Grace was a pioneer in data processing and is credited with developing the first compiler. In 1983, Grace became the first woman to achieve the rank of rear admiral in the United States Navy.)
www.history.navy.mil/photos/images/h96000/h96566kc.htm
Folie 21H. Schlingloff, Software-Qualitätssicherung1.3 Kriterien
Kapitel 1. Einleitung
1.1 Einleitungsbeispiel1.2 Begriffe1.3 Software-Qualitätskriterien
Folie 22H. Schlingloff, Software-Qualitätssicherung
Qualitätskriterien
“Grad der Übereinstimmung mit den Anforderungen”
• Für Software
• funktionale versus nichtfunktionale Anforderungen
• Wichtigstes Kriterium: Korrektheit22.10.20041.2 Begriffe
• Funktionalität
• Zweckdienlichkeit• Robustheit, • Zuverlässigkeit, • Sicherheit, • Effizienz, • Benutzbarkeit,
• Verfügbarkeit, • Geschwindigkeit, • Änderbarkeit, • Portierbarkeit, • Prüfbarkeit, • …
Folie 23H. Schlingloff, Software-Qualitätssicherung1.3 Kriterien
Korrektheit
• ANSI 72983: „Grad der Übereinstimmung zwischen Spezifikation und Programm“ vgl. Definition von Qualität! ungeeignete Definition (ein wenig schwanger…)
• Korrektheit bedeutet Abwesenheit von Fehlern• Software ist korrekt, wenn sie genau das in der
Spezifikation festgelegte funktionale Verhalten zeigt also nicht: Wartbarkeit, Effizienz, Funktionalität, … als Qualitätsmaß schlecht geeignet
• Üblicherweise sind mehrere verschiedene korrekte Implementierungen einer Spezifikation möglich
Folie 24H. Schlingloff, Software-Qualitätssicherung1.3 Kriterien
Sicherheit
„Sicher“ ist sicher ein vielstrapaziertes Wort…
• ISO 8402: „Zustand, in dem das Risiko eines Personen- oder Sachschadens auf einen annehmbaren Wert begrenzt ist“
• Ein System heißt sicherheitskritisch, wenn es beim Ausfall großen Schaden verursachen kann „großer Schaden“: Der Ausfallverlust übersteigt die
regulären Betriebsgewinne um ein Vielfaches
• „Sicherer Zustand“ ist nicht immer sicher… fail-safe, safe-stop, fail-silent, …
Folie 25H. Schlingloff, Software-Qualitätssicherung1.3 Kriterien
Safety vs Security, vs Lifeness
• Security = Informationssicherheit / Geschütztheit Security = Schutz vor böswilligen Schäden Safety = Schutz vor unbeabsichtigten Schäden
• Formale Definitionen von Sicherheit existieren safety = „nothing bad will ever happen“ liveness = „something good will eventually
happen“
Folie 26H. Schlingloff, Software-Qualitätssicherung1.3 Kriterien
Zuverlässigkeit
• Zuverlässigkeit (Reliability) ist ein Maß für die Fähigkeit des Systems, funktionstüchtig zu bleiben; Wahrscheinlichkeit, dass das System während einer bestimmten Zeitdauer t nicht versagt
• Verläßlichkeit: Grad der Vertrauenswürdigkeit in die vom System erbrachte Leistung
• MTTF: mean time to failure
• Überlebenswahrscheinlichkeit R(t): Wahrscheinlichkeit, dass das System nach t Zeiteinheiten noch nicht ausgefallen ist
Folie 27H. Schlingloff, Software-Qualitätssicherung1.3 Kriterien
Verläßlichkeit
• Verläßlichkeit (Dependability) wird oft synonym oder als Erweiterung für Zuverlässigkeit verwendet
• DIN 40041: Zuverlässigkeit ist die Beschaffenheit bezüglich der Eignung, während oder nach vorgegebenen Zeitspannen bei vorgegebenen Arbeitsbedingungen die Zuverlässigkeits-anforderungen zu erfüllen
• Teile: Verfügbarkeit, Funktionsfähigkeit, Sicherheit
• Vertraulichkeit ist Teil der Informationssicherheit
Folie 28H. Schlingloff, Software-Qualitätssicherung1.3 Kriterien
Verfügbarkeit
•MTBF: mean time between failures;MTTR: mean time to repair
•Verfügbarkeit (availability) misst die Wahrscheinlichkeit, mit der ein reparierbares System zu einem beliebigen Zeitpunkt funktioniert: MTBF / (MTBF + MTTR)
Folie 29H. Schlingloff, Software-Qualitätssicherung1.3 Kriterien
Robustheit und Fehlertoleranz
•Robustheit = Eigenschaft des Systems, auch in ungewöhnlichen (unspezifizierten) Situationen bestmögliche Funktionalität zu erbringen
•Fehlertoleranz = Eigenschaft des Systems, auch beim Auftreten von bestimmten Fehlern (Fehlzuständen) die geforderte Funktionalität zu erbringen
Folie 30H. Schlingloff, Software-Qualitätssicherung1.2 Begriffe
Kapitel 2. Testverfahren
2.1 Testen im SW-Lebenszyklus2.2 Modultests2.3 Integrations- und Systemtests...