1 / 39

Qualitätssicherung

Qualitätssicherung. Externe Qualitätsprobleme (1). Externe Qualitätsprobleme (1). Entwicklungskosten >300 Mio. € Erwartete Dauer: 1 Jahr (tatsächlich: 3 Jahre) Unterstützt 10 Nutzer gleichzeitig statt den geplanten 1.000

thyra
Download Presentation

Qualitätssicherung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Qualitätssicherung Software(technik)praktikum - Vorlesung Qualitätssicherung

  2. Externe Qualitätsprobleme (1) Software(technik)praktikum - Vorlesung Qualitätssicherung

  3. Externe Qualitätsprobleme (1) • Entwicklungskosten >300 Mio. € • Erwartete Dauer: 1 Jahr (tatsächlich: 3 Jahre) • Unterstützt 10 Nutzer gleichzeitig statt den geplanten 1.000 • Zitat: „Hauptproblem sei das Design des Systems, das Servern den Zugriff auf brachliegende Kapazitäten anderer Rechner nicht ermögliche.“ Software(technik)praktikum - Vorlesung Qualitätssicherung

  4. Externe Qualitätsprobleme (2) Software(technik)praktikum - Vorlesung Qualitätssicherung

  5. Interne Qualitätsprobleme: Wartung Prozesskontrollsystem Probleme beheben Charakteristika? Warumwarten? Wosuchen? Lange Lebenszeit (>30 Jahre) Doku- mentation Software ändern GroßeCodebasis (>1 Mio. LOC) Quell- code Software(technik)praktikum - Vorlesung Qualitätssicherung

  6. Interne Qualitätsprobleme: Wartung [Som12] Rebecca Tiarks: WhatMaintenance ProgrammersReally Do: An Observational Study Software(technik)praktikum - Vorlesung Qualitätssicherung

  7. Inhalte dieser Vorlesung • Was ist Qualität? • Begriffsdefinition • Welche Qualitätseigenschaften gibt es? • Qualitätsmodelle definieren diese • Wie quantifiziert man Qualität? • Messen & Schätzen • Qualitätsmetriken • Wo im Entwicklungsprozess spielt Qualität eine Rolle? • Am Beispiel des V-Modells Software(technik)praktikum - Vorlesung Qualitätssicherung

  8. Qualität • Qualität kann verschiedene Bedeutungen haben, bzw. hängt von der Perspektive ab • produktbezogene Qualität („Wie gut ist das Produkt“) • benutzerbezogene Qualität („Wie gut ist das Produkt für die Bedürfnisse eines bestimmten Benutzers“) • prozessbezogene Qualität („Wie gut ist der Erstellungsprozess des Produkts“) • Qualität möchte man erzielen • Qualität sollte daher nachweisbar sein 8 Software(technik)praktikum - Vorlesung Qualitätssicherung

  9. Qualität Gesamtheit der Merkmale eines Produkts oder einer Tätigkeit, die die Erfüllung festgelegter oder vorausgesetzter Eigenschaften betreffen(nach DIN EN ISO 8402) Dazu gehören auch Dokumente des Entwicklungs-prozesses Qualitäts-anforderung Welche Qualitätseigenschaften gibt es?  Hierfür gibt es Qualitätsmodelle 9 Software(technik)praktikum - Vorlesung Qualitätssicherung

  10. Qualitätsmodelle • Mit Hilfe eines Qualitätsmodells kann eine systematische und begründete Abschätzung der Qualität eines Produkts erfolgen • Qualität wird in DIN EN ISO 8402 „Quality management and quality assurance” definiert • Typischerweise werden Qualitätseigenschaften über mehrere Hierarchiestufen in Teileigenschaften zerlegt • ISO/IEC 25010 • ehemals ISO/IEC 9126 “Software engineering — Product quality” 10 Software(technik)praktikum - Vorlesung Qualitätssicherung

  11. ISO/IEC 25010 • Software product quality model (interne und externeQualitäten) Software(technik)praktikum - Vorlesung Qualitätssicherung

  12. Relevanz der Q-Eigenschaften Ähnlich zu McCall, Richards und Walters und nach Balzert 12 Software(technik)praktikum - Vorlesung Qualitätssicherung

  13. Qualitätsmetriken • Qualität lässt sich durch Qualitätsmetriken nachweisen • Eine Metrik M ist eine präzise definierte Methode, um ein Element einer (geordneten) Menge V einem System S zuzuordnen • M ist zugleich auch die Einheit in der man die Qualität angibt • Beispiel: • S = Code eines Softwaresystems • M = Lines of Code von S • V = Natürliche Zahlen • Methode: Zähle alle LOCs von S • Weitere Beispiele für weitere Metriken: • Anzahl der Methoden, Klassen, Codekommentarzeilen • Antwortzeit • Auslastung (z.B. der CPU) • Durchsatz (z.B. in Netzwerken relevant) 13 Software(technik)praktikum - Vorlesung Qualitätssicherung

  14. Qualitätsmetriken • Wie ermittelt man Metriken? • Schätzen? – Ja, aber wenn dann möglichst • genau, • begründet • und systematisch • Messen • Bestenfalls wiederholbare Messungen 14 Software(technik)praktikum - Vorlesung Qualitätssicherung

  15. Beispiel für ein Qualitätsmodell: Factor-Criteria-Metrics-Model Q-Eigenschaften Q-Teileigenschaften Q-Metriken QM-Bericht Die Qualität beträgt: 0,4 Qualitätsstufe: gut Richtigkeit 0,3 Funktionalität 0,1 Angemessenheit 0,7 Interoperabilität 0,2 380k Zuverlässigkeit LOC 0,3 … 0,2 2,5 0,2 Verständlichkeit Bedienbarkeit Interactions/Use Case 0,2 Erlernbarkeit 0,01 0,5 … 0,5 Bedienbarkeit … 15 Software(technik)praktikum - Vorlesung Qualitätssicherung

  16. Arten des Qualitätsmanagements • Produktorientiertes und prozessorientiertes Qualitätsmanagement • Konstruktive und analytische Maßnahmen des Qualitätsmanagements • Diskussion: Welche Maßnahmen können wir in der Gruppe zur Erhöhung der Softwarequalität treffen? 16 Software(technik)praktikum - Vorlesung Qualitätssicherung

  17. Produkt- und Prozessorientiertes QM • Produktorientiertes Qualitätsmanagement • Das Softwareprodukt und Zwischenergebnisse (Klassen, Methoden oder Komponenten wie GUI, Parser, Algorithmen, usw.) werden auf vorher festgelegte Q-Eigenschaften und Metriken überprüft • Direkte Sicherstellung, dass das Produkt bestimmte Q-Eigenschaften besitzt • Prozessorientiertes Qualitätsmanagement • Bezieht sich auf den Entwicklungsprozess der Software, eingesetzte Werkzeuge, Richtlinien für Dokumente, etc. • Wird der Prozess eingehalten, ergibt sich automatisch eine hohe Qualität • Inspiriert durch die industrielle Serienfertigung • die gibt es aber bei Software kaum, daher muss prozess-orientiertes QM typischerweise an Projekte angepasst werden • Rein prozessorientiertes QM hat sich als unzweckmäßig erwiesen nach Balzert 17 Software(technik)praktikum - Vorlesung Qualitätssicherung

  18. Konstruktive und Analytische QM-Maßnahmen • Konstruktive QM-Maßnahmen • Sorgen während des Erstellungsprozesses dafür, dass am Ende Qualitätsmerkmale erfüllt werden • Analytische QM-Maßnahmen • Dienen nur der Diagnose • Messen des Qualitätsniveaus • Finden von Defekten • Erhöhen nicht direkt die Qualität eines Produkts, bzw. Prozesses • Analytische Verfahren: Sammeln von Informationen über das Produkt bzw. den Prozess durch statische Betrachtung • Testenden Verfahren: Sammeln von Informationen über das Produkt bzw. den Prozess durch dynamische Ausführung nach Balzert 18 Software(technik)praktikum - Vorlesung Qualitätssicherung

  19. Konstruktive, produktorientierte QM-Maßnahmen (Beispiele) • sind Methoden, Sprachen, Standards, Richtlinien, etc., die für das erreichen bestimmter Q-Merkmale im Produkt sorgen, z.B. • Richtlinien für Dokumente (z.B. Schema für das Pflichtenheft) • Einsatz einer Programmiersprache mit statischer Typprüfung, z.B. Java (vermeidet viele Fehler) • Objektorientierte Entwicklung (Vererbung und Polymorphie unterstützt die Wiederverwendbarkeit und Erweiterbarkeit) • Einsatz von Design-Patterns (Plug-in-Mechanismus, MVC, etc. unterstützen das Erreichen verschiedene Q-Merkmale) • Modellbasierte Entwicklung (z.B. mit UML, EMF; viele Fehler in automatisch generiertem Code werden vermieden) • Einsatz von Werkzeugen wie z.B. Eclipse: automatische Code-Vervollständigung, Syntax-Highlighting, … nach Balzert 19 Software(technik)praktikum - Vorlesung Qualitätssicherung

  20. Konstruktive, prozessorientierte QM-Maßnahmen (Beispiele) • sind Methoden, Sprachen, Standards, Richtlinien, etc., die für das erreichen bestimmter Q-Merkmale im Prozess sorgen, z.B. • Richtlinien: Welche Teilergebnisse mit welchem Inhalt müssen wann und von wem erstellt werden • Definition eines Prozessmodells (Transparenz, Planbarkeit) • Unterstützung der Zusammenarbeit durch ein Versions- und Konfigurationsmanagementsystem (SVN) • Automatische Überwachung des Entwicklungsprozesses • Einsatz von Wikis, oder z.B. Mylyn, IBM Rational Jazz, … • Regelmäßige Treffen mit standardisiertem Ablauf und schriftlichen Protokollen • Pair-programming (prozess- oder produktorientierte Maßnahme?) nach Balzert 20 Software(technik)praktikum - Vorlesung Qualitätssicherung

  21. Analytische QM-Maßnahmen (Beispiele) • Analytische Verfahren • Statische Analyse • Review • Inspektion • Walkthrough • Audit (Erfassung von Prozessmerkmalen) • Testende Verfahren • Test • Simulation • Verifikation (vollständiger Beweis der Korrektheit eines Systems bzgl. bestimmter Eigenschaften, z.B. Model Checking) – analytisches oder testendes Verfahren? nach Balzert 21 Software(technik)praktikum - Vorlesung Qualitätssicherung

  22. Prüfmethode Review • Mehr oder weniger formale Prozess, in dem es darum geht, Fehler, Unklarheiten, Inkonsistenzen (allg. Schwächen) eines Dokumentes (oder Code-Abschnitts) aufzudecken. • Dazu wird das Dokument systematisch in einem Team (von Gutachtern und unter Beteiligung der Autoren des Dokuments) angesehen und besprochen • Das Ergebnis ist ein Prüfprotokoll oder die Freigabe des Dokumentes (ggf. nach Iteration) Software(technik)praktikum - Vorlesung Qualitätssicherung

  23. Psychologie des „Reviews“ • Problem: Autoren „stehen in der Schusslinie“ bzw. werden „in die Mangel genommen“ • Psychologische Aspekte müssen beim Ablauf berücksichtigt werden: z.B. • Keine Vorgesetzen anwesend • Keine Beurteilung anhand der Reviews • … Software(technik)praktikum - Vorlesung Qualitätssicherung

  24. Prüfmethode Inspektion • Sehr formale Form des Reviews • Beteiligte: Gutachter, Autor(en), Moderator, Protokollant • Ablauf: • Eingangsprüfung: Moderator prüft Eingangskriterien und kann Prüfung ablehnen • Planung: Moderator plant den Prüfprozess (Rollen, Zeitplan, Unterlagen, Aufteilung des Prüfobjekts, Kriterien) • Einführung: Aufgaben verteilen, Vorgehen abstimmen • Individuelle Vorbereitung: Beteiligte bereiten sich auf die Inspektionssitzung vor • Inspektionssitzung: Prüfobjekt wird auf Defekte untersucht • Überarbeitung • Nachprüfung • Abgabe nach Balzert 24 Software(technik)praktikum - Vorlesung Qualitätssicherung

  25. Prüfmethode Walkthrough • Informelle Form des Reviews • Beteiligte: Autor(en), Gutachter • Ablauf: • Ggf. Individuelle Vorbereitung und Prüfung des Gutachters • kann den Walkthrough-Prozess verkürzen • Walkthrough-Sitzung: • Autor stellt das Produkt Schritt für Schritt vor • Gutachter stellt fragen und weist auf Probleme hin • Probleme werden protokolliert • Walkthroughs können während des Software(technik)praktikums gut in Gruppen-Sitzungen durchgeführt werden • Tutor kann Rolle des Gutachter spielen 25 Software(technik)praktikum - Vorlesung Qualitätssicherung

  26. Fehler und Tests • „Testen ist das Ausführen eines Programms, mit der Absicht (möglichst viele) Fehler zu finden“ • Ein Fehler ist eine Abweichung des Verhaltens eines Produkts/Programms (IST) vom erwarteten Verhalten (SOLL). • Ein Test besteht aus einem Satz von Eingabedaten zusammen mit dem jeweils erwarteten Ergebnis (SOLL). • Beim Durchführen eines Tests wird das Programm mit den Eingabedaten ausgeführt und das Ergebnis mit dem erwarteten Ergebnis verglichen. Software(technik)praktikum - Vorlesung Qualitätssicherung

  27. Testen zur Qualitätssicherung • Tests können Zutrauen in die Fehlerfreiheit vermitteln und liefern damit ein Maß für die • Richtigkeit (Funktionalität) und die • Fehlertoleranz und Reife (Zuverlässigkeit) • des Programms • Tests können meist automatisch durchgeführt werden; problematisch sind nur graphische Benutzeroberflächen Software(technik)praktikum - Vorlesung Qualitätssicherung

  28. Stufen des Tests Tests können auf verschiedenen Stufen durchgeführt werden • Abnahmetest(vom/mit Auftraggeber) • Systemtest • Integrationstest • Unit-Test Test* Dekomposition Spezifikation Integration Implementierung * der vorher spezifizierten Eigenschaften Software(technik)praktikum - Vorlesung Qualitätssicherung

  29. Erinnerung: Bereits bekannt aus Vorlesung Softwareentwurf Software(technik)praktikum - Vorlesung Qualitätssicherung

  30. Automatisierung • Tests können meist automatisch durchgeführt werden; dazu sind evtl. Testtreiber nötig • schwierig zu testen sind • graphische Benutzeroberflächen • Eingebettete Systeme • … warum? JUnit Software(technik)praktikum - Vorlesung Qualitätssicherung

  31. Grenzen des Testens • Testen kann nur die Anwesenheit von Fehlern zeigen • nicht deren Abwesenheit, also die Fehlerfreiheit der Software • „der Fehler ist immer genau da, wo man nicht getestet hat“ • Die Abwesenheit von Fehlern kann nur durch eine vollständige Verifikation überprüft werden • z.B. Modelchecking: jeden möglichen erreichbaren Zustand eines Programms auf bestimmte Eigenschaften untersuchen • „jeden Fall testen“ • Aber auch hier gibt es Grenzen: • man überprüft nur vorher spezifizierte Eigenschaften • aber erfüllt die Software die Erwartungen? Ist die Software dann „sicher“? Software(technik)praktikum - Vorlesung Qualitätssicherung

  32. Prinzip: Frühzeitige Maßnahmen • Je früher ein Fehler gefunden und beseitigt wird, desto weniger Folgekosten verursacht er. • Extremform: „Test-Driven Development“ – Test-Cases werden vor der eigentlichen Implementierung geschrieben Frühzeitige Maßnahmen:Fehler sollten möglichst früh entdeckt werden! Podcast: http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/ Software(technik)praktikum - Vorlesung Qualitätssicherung

  33. Prinzip: Unabhängige Qualitätssicherung • Niemand macht gern das eigene Produkt kaputt(„Psychologie des Testens“)! • Wer beim Entwickeln einen Fall vergisst, vergisst ihn auch beim Testen. Unabhängige Qualitätssicherung:QS-Maßnahmen sollten niemals vom Entwickler selbst durchgeführt werden! Software(technik)praktikum - Vorlesung Qualitätssicherung

  34. Prozessorientiertes QM • Es gibt verschiedene Vorgehensmodelle bei der Softwareentwicklung • Wasserfallmodell, V-Modell, Spiralmodell, … • es sind nur grobe Beschreibungen für das Vorgehen bei der Entwicklung • es ist nicht immer zweckmäßig, diese Modelle weiter zu detaillieren • Daher wurden verschiedene Rahmenmodelle entwickelt, welche allgemeiner Kriterien für die Durchführung eines Entwicklungsprozesses definieren • CMMI • SPICE / ISO 15504 • ISO-9000 • TQM 34 Software(technik)praktikum - Vorlesung Qualitätssicherung

  35. ISO 9000-3 / ISO 9001 • Das ISO 9000-Modell besteht aus einer Reihe von Normen für ein Qualitätsmanagementsystem • ISO 9000 RahmenwerkAuftraggeber - Lieferanten – Verhältnis • ISO 9001 beschreibt ganz allgemein Modelle zur Darlegung der Qualitätssicherung in Entwicklung, Produktion, Montage und Kundendienst • ISO 9000-3 ist eine Richtlinie für die Anwendung von ISO 9001 auf die Entwicklung und Wartung von Software(mit der hier üblichen Terminologie) 35 Software(technik)praktikum - Vorlesung Qualitätssicherung

  36. Wichtig: Darlegung! • ISO 9000-1 legt kein Vorgehensmodell (Phasenmodell) fest; • sie verlangt aber die Darlegung der Phasen, Ergebnisse und der jeweiligen Qualitätssicherungsmaßnahmen (Verifizierung) und • sie legt einmalig oder periodisch im Unternehmen durchzuführende Maßnahmen und pro Projekt durchzuführende Maßnahmen fest • Sie verlangt Maßnahmen zur Dokumentation der Projektabläufe( Konfigurationsmanagement) Vorgeschriebene Tags im SVN Software(technik)praktikum - Vorlesung Qualitätssicherung

  37. Qualitätssichernde Maßnahmen • Festlegung der Qualitätspolitik • Festlegung eines mit der Qualitätspolitik Beauftragten • Regelmäßige Überprüfung • Einplanung der Ressourcen für die Qualitätssicherung • … • Konfigurationsmanagement • Schulung • … Software(technik)praktikum - Vorlesung Qualitätssicherung

  38. Dokumente Dokumente laut Projektplanskizze • Vertrag • Spezifikation • Entwicklungsplan • Qualitätssicherungsplan • Testplan • Wartungsplan • Konfigurationsmanagementplan Software(technik)praktikum - Vorlesung Qualitätssicherung

  39. Vor- und Nachteile von ISO 9000 Vorteile Nachteile Gefahr der Bürokratie(Dokumente um der Dokumente willen) Gefahr der Inflexibilität … • Qualitätsbewusstsein(auf Geschäftsführungsebene und Mitarbeiterebene) • Dokumentation der Qualitätspolitik und ihrer Umsetzung • Anpassungszwang (jährliche Überwachung) • Wettbewerbsvorteil Software(technik)praktikum - Vorlesung Qualitätssicherung

More Related