Produktqualität: Statische Testverfahren - Userpage
Produktqualität: Statische Testverfahren - Userpage
Produktqualität: Statische Testverfahren - Userpage
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Software Engineering<br />
<strong>Produktqualität</strong> - <strong>Statische</strong> <strong>Testverfahren</strong><br />
Die Inhalte der Vorlesung wurden primär auf Basis der jeweils angegebenen Literatur<br />
erstellt. Darüber hinaus finden sich ausgewählte Beispiele zur Softwareentwicklung<br />
aus dem Bereich der Telekommunikation.<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 1
Inhaltsübersicht<br />
formal<br />
• Motivation<br />
• <strong>Statische</strong>s <strong>Testverfahren</strong> - Inspektion<br />
• <strong>Statische</strong>s <strong>Testverfahren</strong> - Review<br />
• <strong>Statische</strong>s <strong>Testverfahren</strong> - Walkthrough<br />
• Möglichkeiten einer Werkzeugunterstützung<br />
informell<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 2
Motivation<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 3
Motivation<br />
• Syntax-, Konsistenz- und Vollständigkeitsprüfungen können<br />
automatisiert durchgeführt werden.<br />
• Semantik ist jedoch schwer formalisierbar<br />
- manuelle Prüfung erforderlich!<br />
- Eingrenzung potentieller Problembereiche möglich<br />
• Außerdem können verschiedene Qualitätsmerkmale wie<br />
Verständlichkeit, Aussagefähigkeit von Bezeichnern und<br />
Kommentaren geprüft werden.<br />
• Die manuellen Prüfmethoden Inspektion, Review und Walkthrough<br />
lassen sich in allen Phasen der SW-Entwicklung einsetzen.<br />
Unter Verwendung von: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 4
Kosten der Fehlerbehebung<br />
Quelle: Sneed, H.: Neue Trends in der Software-Entwicklung, ANECON Software Design und Beratung G.m.b.H.,<br />
URL: http://www.anecon.com/downloads/Qualitaetssicherung_Sneed.pdf, abgerufen im September 2008<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 5
Vergleichende Betrachtung<br />
• Gemeinsamkeiten:<br />
- Manuelle Analyse der Produkte<br />
- Ziel ist das Auffinden von Unzulänglichkeiten<br />
- Überprüfung durch ein Team mit definierten Rollen<br />
• Voraussetzungen:<br />
- Aufwand und Zeit sind geplant<br />
- Teammitglieder müssen geschult sein<br />
- Mitarbeiter werden nicht beurteilt<br />
- Prüfmethode muss feststehen<br />
- Prüfungen besitzen hohe Priorität<br />
- Keine Vorgesetzten und Zuhörer<br />
Unter Verwendung von: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 6
• Vorteile<br />
Vor- & Nachteile manueller<br />
Prüfmethoden<br />
- Einzige Möglichkeit, Semantik zu überprüfen<br />
- Effizientes Mittel zur Qualitätssicherung<br />
- Ergänzung werkzeuggestützter Prüfungen<br />
- Team trägt Verantwortung für Qualität<br />
- Verteilung von Wissen (techn. Komponenten, Methoden)<br />
- Verbesserung der Verständlichkeit/ Ausdrucksweise<br />
- Verbesserung der Ergebnisse einzelner Autoren<br />
• Nachteile<br />
- Hoher Aufwand (bis zu 20% der Erstellung)<br />
- Psychologisch schwierige Situation („Anklage“, „Verteidigung“)<br />
Unter Verwendung von: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 7
Prüfmethode Inspektion<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 8
Prüfmethode Inspektion<br />
A formal evaluation technique in which software requirements,<br />
design, or code are examined in detail by a person or group other<br />
than the author to detect faults, violations of development standards,<br />
and other problems.<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 305, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998 (ursprüngliche Quelle: ANSI/IEEE Std. 729-1983)<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 9
Aspekte der Inspektion<br />
• Freigabe von Teilprodukten für folgende Entwicklungstätigkeiten<br />
• Betrachtung des Prüfobjekts durch das „Mikroskop“<br />
• Defekte werden durch Überarbeitung beseitigt<br />
• Inspektion wird durch Anforderung eines Autors ausgelöst<br />
• Auswahl eines Moderators<br />
- Verantwortlich für die Organisation und Durchführung<br />
• Anforderungen an den Moderator<br />
- kein Linienvorgesetzter<br />
- Bedarf einer Ausbildung<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 305, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 10
Ablauf einer Inspektion I<br />
• Eingangsprüfung<br />
- Moderator überprüft Objekt, bei auffälligen Defekten Rückgabe an Autor<br />
• Planung der Inspektion<br />
- Festlegung des Teams, Zuordnung von Rollen (spez. Aspekte),<br />
Referenzunterlagen, Aufteilung des Prüfobjekts in Einheiten,<br />
Terminfestsetzung<br />
• Individuelle Vorbereitung und Prüfung<br />
- Jedes Teammitglied überprüft Objekt auf Defekte<br />
• Inspektionssitzung<br />
- Protokollierung aller gefundenen Defekte, Verbesserungsvorschläge und<br />
Fragen an den Autor, Dauer ca. 2 Stunden, nach Art eines<br />
Brainstormings (keine Diskussion/ Kommentierungen)<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 305, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 11
Ablauf einer Inspektion II<br />
• Überarbeitung<br />
- Autor überarbeitet Prüfobjekt, stellt Änderungsanträge für<br />
Referenzprodukte, meldet Metriken „Überarbeitungszeit“ und „Anzahl<br />
schwerer Defekte“ an Moderator, vermerkt Aktionen im<br />
Inspektionsprotokoll<br />
• Nachprüfung<br />
- Moderator prüft Sorgfalt und Vollständigkeit der Überarbeitung<br />
• Freigabe<br />
- Moderator prüft Qualität des Prüfobjekts, meist anhand generischer<br />
Kriterien (z.B. Restdefekte pro Seite)<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 305, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 12
Bewertung von Inspektionen<br />
• 50 bis 75 % Entdeckungsrate<br />
Kosten<br />
Nutzen<br />
potentieller Entwurfsfehler<br />
• Kostenintensive Analysemethode<br />
• Frühe Inspektionen sind<br />
wichtiger als späte!<br />
Schulung<br />
Durchführung<br />
Zeitersparnis<br />
gegenüber späterer<br />
Entdeckung<br />
Eingesparte<br />
Entwicklungszeit<br />
48 Stunden<br />
(6 Entwickler a 8h)<br />
96 Stunden<br />
(6 Entwickler a 16h)<br />
1759 Stunden<br />
(55% Effektivität)<br />
1,8 Monate<br />
Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 316, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998<br />
(ursprüngliche Quelle: Grady, R.B., Practical Software Metrics for Project Management …, Prentice Hall, 1992)<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 13
Prüfmethode Review<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 14
Prüfmethode Review<br />
Ein Review ist ein mehr oder weniger formalisierter Prozess zur<br />
Überprüfung von schriftlichen Dokumenten durch Gutachter, um<br />
Stärken und Schwächen des Dokuments festzustellen.<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 317, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 15
Durchführung von Reviews<br />
• Eingangsprüfung – Reifegrad des Prüfobjektes?<br />
• Einführungssitzung (optional – 30 bis 60 min.)<br />
- Vorstellung Prüfobjekt & Referenzunterlagen<br />
- Aufgabenverteilung an mitwirkende Gutachter<br />
• Individuelle Vorbereitung auf die Reviewsitzung<br />
- Konzentration auf zugewiesene Aspekte<br />
- Dokumentation aller identifizierten Mängel<br />
• Reviewsitzung (moderiert – max. 120 min.)<br />
- Gutachter stellen Gesamteindruck dar<br />
- Schrittweise Analyse des Prüfobjekts (Dokument)<br />
Freigabeempfehlung (akzeptiert, akzeptiert mit Auflagen, nicht akzeptiert)<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 320, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 16
Ziele von Code-Reviews<br />
• Identifikation möglicher Problembereiche<br />
• Aufdecken von redundanten Codefragmenten -„cut & paste“<br />
• Identifikation nicht genutzter Methoden<br />
• Feststellen nicht eingehaltener Konventionen<br />
• Unprofessionelle Implementierungsansätze aufdecken<br />
• Ansätze für Verbesserungen Refactoring<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 17
Aufwände zum Review<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 363, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 18
Übung 8-1<br />
• Überlegen Sie sich konzeptionelle Ansätze für eine Werkzeugunterstützung<br />
bei der Durchführung von Code-Reviews.<br />
- Bezogen auf den Quellcode<br />
- Bezogen auf den Prozess des Reviews<br />
- Bezogen auf die Ergebnissicherung<br />
- …<br />
• Recherchieren Sie nach geeigneten Werkzeugen, welche die<br />
identifizierten Ansätze in geeigneter Weise unterstützen könnten.<br />
Beschreiben Sie kurz deren Funktionsumfang.<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 19
Prüfmethode Walkthrough<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 20
Prüfmethode Walkthrough<br />
A review process in which a designer or programmer leads on or<br />
more other members of the development team through a segment of<br />
design or code that he or she has written, while the other members<br />
ask questions and make comments about technique, style, possible<br />
errors, violation od development standards, and other problems.<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 321, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998 (ursprüngliche Quelle: ANSI/IEEE Std. 729-1983)<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 21
Ablauf Walkthrough<br />
• Autor führt Gruppe von Gutachtern durch das Prüfobjekt, bei<br />
Programmcode z.B. Durchlauf eines typischen Anwendungsfalls<br />
• Gutachter stellen Fragen, geben Kommentare zu Technik, Stil,<br />
möglichen Fehlern, Verletzung von Standards<br />
• Autor leitet als Moderator die Sitzung<br />
• Gutachter erhalten vor der Sitzung das Prüfobjekt<br />
• Probleme werden während der Sitzung protokolliert<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 322, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 22
Vor- & Nachteile von Walkthroughs<br />
• Vorteile<br />
- Geringer Aufwand<br />
- Geeignet für kleine Teams<br />
- Sinnvoll für unkritische Dokumente<br />
- Endbenutzer können mit einbezogen werden<br />
- Schnelle Verbreitung von Wissen über ein Dokument<br />
• Nachteile<br />
- Anzahl identifizierter Defekte meist gering<br />
- Autor kann Sitzung dominieren und Gutachter „blenden“<br />
- Überarbeitung liegt im Ermessen des Autors<br />
Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 323, Spektrum Akademischer Verlag,<br />
Heidelberg Berlin, 1998<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 23
Werkzeugunterstützung<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 24
Quellcodeanalyse<br />
Quelle: RSM – Resource Standard Metrics, M Squared Technologies LLC 2006<br />
URL: http://msquaredtechnologies.com<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 25
Quellcodeanalyse<br />
Quelle: RSM – Resource Standard Metrics, M Squared Technologies LLC 2006<br />
URL: http://msquaredtechnologies.com<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 26
Identifikation von Problembereichen<br />
• Automatisiertes Auffinden potentieller Problembereiche<br />
- Priorisierung zu prüfender Komponenten<br />
- Qualitätssicherung gegen def. Konventionen<br />
- Bewertung von Trends Produktivität vs. Fehler<br />
- Sicherung der Wartbarkeit<br />
• Unterstützung notw.<br />
Änderungen (z.B.<br />
Ablösen von Komponenten)<br />
# Methoden mit hoher Cycl.<br />
Kompl.<br />
18<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
MSPIF-Base MSPIF-BSI MSPIF-<br />
Controller<br />
MSPIF-<br />
Controller-EP<br />
MSPIF-MNP<br />
MSPIF-SIM<br />
Java_Fachkkomponenten<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 27
Übung 8-2<br />
• Grenzen Sie die manuellen Prüfmethoden Review/Inspektion und<br />
Walkthrough gegeneinander ab. Wo liegen die Hauptunterschiede?<br />
• Sie sind Projektleiter eines SW-Entwicklungsprojekts. Führen Sie eine<br />
Aufwandsschätzung für die durchzuführenden Reviewprozesse<br />
durch, wenn für Ihr Projekt die Erstellung von 300 Seiten technische<br />
Dokumentation und 100 Seiten Programmcode geplant wurden.<br />
25.03.2013 Prof. Dr. Andreas Schmietendorf 28