Software Tests (2) Quellcode Reviews



Ähnliche Dokumente
Qualitätssicherung. Was ist Qualität?

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

Softwaretechnikpraktikum SS Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal

Erläuterungen zur Untervergabe von Instandhaltungsfunktionen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Deutschland-Check Nr. 35

Verwendung von OO-Metriken zur Vorhersage

Qualitätsmanagement im Projekt

The AuditFactory. Copyright by The AuditFactory

Validierung und Verifikation

Hinweise zum elektronischen Meldeformular

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Terminabgleich mit Mobiltelefonen

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

Validierung und Verifikation!

ECDL Europäischer Computer Führerschein. Jan Götzelmann. 1. Ausgabe, Juni 2014 ISBN

Betriebliche Gestaltungsfelder

Professionelle Seminare im Bereich MS-Office

Allgemeines zu Datenbanken

Anforderungsanalyse: Tutor

Schuljahreswechsel im Schul-Webportal

Arbeitsgruppen innerhalb der Website FINSOZ e.v.

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Vorgehensweise bei Lastschriftverfahren

Dokumentenlenkung - Pflicht oder Kür-

Artenkataster. Hinweise zur Datenbereitstellung. Freie und Hansestadt Hamburg. IT Solutions GmbH. V e r s i o n

ECO-Manager - Funktionsbeschreibung

Installation OMNIKEY 3121 USB

Die vorliegende Arbeitshilfe befasst sich mit den Anforderungen an qualitätsrelevante

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Mean Time Between Failures (MTBF)

Kapitel 10: Dokumentation

Was bringt TDD wirklich?

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

DIN EN 1090 Anforderungen an die Schweißgeräte. Ein praktischer Leitfaden für Anwender!

IMS - Learning Design

Die Zertifizierungsstelle der TÜV Informationstechnik GmbH bescheinigt hiermit dem Unternehmen

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Maschinenrichtlinie 2006/42/EG 150 Fragen und Antworten zum Selbststudium

FRAGEBOGEN ANWENDUNG DES ECOPROWINE SELBSTBEWERTUNG-TOOLS

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Erfahrungen mit Hartz IV- Empfängern

Modul Klausur zum Teilgebiet Software-Qualitätsmanagement

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Kosten runter, Qualität hoch - der ewige Spagat zwischen Steigerung der Serviceleistung und Kostenoptimierung

Erstellen der Barcode-Etiketten:

Die richtigen Partner finden, Ressourcen finden und zusammenführen

IBM SPSS Statistics Version 22. Konfigurieren von Technologie für behindertengerechte Bedienung

Was beinhaltet ein Qualitätsmanagementsystem (QM- System)?

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Dokumentation Bonuspunkteverwaltung. Verfasser(in) / Autor: Check it Consulting

Nikon Message Center

Skype for Business. Online zusammenarbeiten. Reinhold Gaugler. 1. Ausgabe, Juli 2015 ISBN: SKYPE2015AN

Lehrer: Einschreibemethoden

T1 - Fundamentaler Testprozess

Wirtschaftsförderung und Technologietransfer Schleswig-Holstein GmbH

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Abschluss Version 1.0

QM: Prüfen -1- KN

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Checklistenbasiertes QM 1. Qualitätsmanagement

WIN- MAWI. Auftragsbearbeitung und Materialwirtschaft. Update März Nürnberg,

mobifleet Beschreibung 1. Terminverwaltung in der Zentrale

Die Zertifizierungsstelle der TÜV Informationstechnik GmbH bescheinigt hiermit dem Unternehmen

Inspektionen, Reviews und Walkthroughs. Christian Peucker

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

GS-Buchhalter/GS-Office 2015 Saldovorträge in folgenden Wirtschaftsjahren erfassen

Netzwerkeinstellungen unter Mac OS X

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

BABOK und IREB : der praktische Unterschied

White Paper - Umsatzsteuervoranmeldung Österreich ab 01/2012

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

1 topologisches Sortieren

Klausurbesprechung im Propädeutikum WS 2013/14. Modul FernUniversität Hagen

Info-Veranstaltung zur Erstellung von Zertifikaten

Arbeitsblätter. Sinnvolle Finanzberichte. Seite 19

Technischer Standard Seite 1 von 7

1 Mathematische Grundlagen

Software Engineering. Dokumentation! Kapitel 21

ACHTUNG: Voraussetzungen für die Nutzung der Funktion s-exposé sind:

Ergebnisse. Umfrage Kurz-Statistiken Umfrage 'Feedback und Entertain 2.0'

Datenexport aus JS - Software

Qualitätsmanagement. Andreas Bäuml SWT-Projekt WS 07/08

Empirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010

Softwarequalität. TÜV SÜD Product Service GmbH. Damit Ihre Softwareprodukte sicher ins Ziel kommen.

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

Windows-Sicherheit in 5 Schritten. Version 1.1 Weitere Texte finden Sie unter

Vision für Mac BENUTZERHANDBUCH

Allgemeine Geschäftsbedingungen. der

Datenexport mit orgamax

Kundenspezifische Preise im Shop WyRu Online-Shop

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Umfrage in den 5er-Klassen zu Hausaufgaben in den Nebenfächern im Schuljahr 2014/15

Grundlagen der Künstlichen Intelligenz

Agile Software Verteilung

Microsoft Access 2010 Navigationsformular (Musterlösung)

Transkript:

Software Tests (2) Quellcode Reviews

Was ist? Was ist Testen? G. J. Myers, 79: "Testen ist der Prozess, ein Programm mit der Absicht auszuführen, Fehler zu finden. Hetzel 83: "Messung der Softwarequalität" Systematische Überprüfung des Verhaltens von Software im Vergleich mit ihrer Spezifikation Dynamische Tests / Testlings z.b. JUnit Tests Statische Tests / Analytische Tests z.b. Software-Messtechniken

Was ist? Was ist Software Qualität? DIN ISO 9126: Software-Qualität ist die Gesamtheit der Merkmale und Merkmalswerte eines Software- Produkts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. Oberstes Ziel der industriellen Software-Entwicklung ist es, ein Software-Produkt zu erstellen, das den Qualitätszielen gerecht wird.

Was ist? Was ist der Software Review? Das Software-Review ist laut dem IEEE Standard (729) ein mehr oder weniger formal geplanter und strukturierter Analyse- und Bewertungsprozess.

Maßnahmen im Qualitätsmanagement nach Baltzert [Bal98]: Qualität

In der Software-Qualitätssicherung wird zumindest zwischen folgenden zwei Qualitäts-Begriffen unterscheidet [ISO 9126-1]: Qualität

Qualität Interne Qualität statische Tests bzw. Analysen Analysentypen: Statische Analysen nur aufgrund des Quellcodes Dynamische Analysen aus der Beobachtung der Programmausführung

Qualität Statisch vs. Dynamisch? statische Tests können die dynamischen Tests nicht ersetzen beide bieten gute Ergänzung statische Tests sind gute Vorab-Tests Welche Eigenschaften? Statische Tests bzw. Analysen: statische Tests beschränken sich nicht auf Code/Programme Test (größtenteils) schon während Entwicklungsphase möglich statische Tests auch ohne Computer durchführbar vollständige Aussagen über Korrektheit und Zuverlässigkeit nicht möglich oft unterschätzte Prüfmethoden

Qualität Welche Ziele? Statische Tests bzw. Analysen: Fehlern und potentiellen Fehlerquellen Verstößen gegen Spezifikation/Standards Verletzung der Projektplanung... und zwar so früh wie möglich (Prävention). Weitere Unterschiedskriterien? Statische Tests bzw. Analysen: Interpretierende Analysen dienen der Ableitung von Aussagen über das Verhalten Strukturelle Analysen dienen der Aufdeckung der Struktur des Systems

Formaler Review Formaler Review laut IEEE? Planung Auswahl der beteiligten Personen und Besetzung der Rollen, Dokumente, Verfahren, Aufwand. Einführung / Kick-Off Verteilung der Dokumente, Erläuterung der Ziele und des Prozesses. Vorbereitung Notierung von potentiellen Fehlern, Fragen und Kommentaren, Auseinandersetzung mit Prüfling. Inspektionssitzung Diskussion und Protokollierung der Ergebnisse. Abarbeitung bzw. Überarbeitung Durchführung von Fehlerkorrekturen. Wiedervorlage bzw. Nacharbeitung Überprüfung von Korrekturen und Anfertigung der Inspektionsberichte.

Formaler Review Ziele bzw. Vorschriften? Ziele Steigerung von Effektivität und Effizienz der Fehlerfindung durch formal definierten Prozess Vorschriften definierte Inspektionsphasen festgelegte Ein- und Ausgangskriterien geschulte Teilnehmer mit festgelegten, verteilten Rollen explizite Dokumentation von Fehlern Vorgaben für die Vorbereitungsraten und Inspektionsgeschwindigkeit Zielvorgaben für Ergebnisse

Formaler Review Rollen? Manager / Projektleiter Moderator Autor Inspektoren Protokollant Leser

Formaler Review Vorteile bzw. Nachteile? Vorteile anwendbar auf alle Arten von formalen Dokumenten in der Softwareentwicklung leistungsfähigste manuelle und werkzeuggestützte Technik Nutzen der menschlichen Denk- und Analysefähigkeiten anwendbar auf alle Dokumente in der Softwareentwicklung kostengünstige Fehlerbeseitigung Nachteile jedoch zeitaufwendig und teuer in der Durchführung Kosten: 10%-15% vom Entwicklungsbudget Einsparung: 14%-25% bei konsequenter Anwendung werden 70% der Fehler entdeckt daher nur auf kleine bis mittlere Teilprodukte anwendbar

Formaler Review Konkrete Schritte? 1. Festlegung des Starts der QS Code Review Phase (zeitnah zu einem vordefinierten Meilenstein). Die Beteiligten stehen bereits fest und müssen nicht mehr identifiziert werden. Jede beteiligte Person hat eine präzise und vordefinierte Rolle. 2. Eine Reihe von automatisierten Auswertungen der aktuellen Version der Software. 3. Eine manuelle Auswertung der Software aufgrund von Warnings aus den automatisierten Auswertungen. Die Erstellung einer Zusammenfassung aller Auswertungsergebnisse in einem Dokument (z.b. Excel Tabelle). 4. Die Besprechung der oben erzielten Ergebnisse und die Zustimmung zwischen dem QS Code Reviewer und den Projektleitern. Die zugestimmten Ergebnisse (hier sind die gemeinsam abgestimmten Fehler, Warnungen, die abgearbeitet werden muss) werden z.b. in Change Synergy oder Bugzilla eingetragen. 5. Die Abarbeitung entstehender Fehler durch dem QS Code Reviewprozess. 6. Die Verfolgung des Bearbeitungsablaufsplan z.b. in Change Synergy oder Bugzilla.

Formaler Review Konkrete Rollen? Projektleiter des Auftragsgebers (IT und Fachbereich) Projektleiter des Auftragnehmers Technischer Ansprechpartner des Auftragnehmers (z.b. Hauptentwickler) QS Reviewer

Quellcode Review Ziele bzw. Eigenschaften? Ziele Aufdeckung von Fehlern und fehlerträchtigen Stellen vollständige Aussage in Bezug auf betrachtetes Kriterium kein Korrektheitsnachweis umfassende Automatisierbarkeit Eigenschaften Analyse durch Tools statt 100% menschliche Analyse- und Denkfähigkeit (vgl. Rechtschreibprüfung) Voraussetzung: Dokument hat formale Struktur (z.b. UML, XML, Sourcecode) meist Ausgabe Liste von Warnungen und Hinweisen Tool! Nutzung erfordert wenig Zeit und geringen Aufwand

Quellcode Review Warum? was will der Kunde damit erreichen? was verschafft sich der Kunde? warum jetzt? warum nicht für alle Projekte? welcher Hintergrund hat der Kunde?

Quellcode Review Stilanalyse? Vereinbaren von Programmierkonventionen semantische Konventionen (manuelle und werkzeuggestützte Prüfung) syntaktische Konventionen (werkzeuggestützte Prüfung) metrische Konventionen (werkzeuggestützte Prüfung) McCabe s cyclomatic complexity LOC lines of code Instabilität usw. Testen des Codes gegen syntaktische und metrischen Programmierkonventionen Analysieren die Trends der Qualität

Quellcode Review

Quellcode Review Best Practices CA Afferent coupling CE Efferent coupling RMI Instabitlity RMA - Abstracness RMD - Normalised Distance SIX Specialisation Index NOM Number of Methods NORM Number of overridden Methods DIT - Depth of Inheritance Tree

Quellcode Review Best Practices LOC Lines of Code (Methodenebene): Max 50 LOC Lines of Code (Klassenebene): Max 750 NOP Number of Parameters (Methodenebene): Max 5 NOM Number of Methods per Class: Max 20 NBD Nested Block Depth (Method Level): Max 5 VG McCabe Cyclomatic Complexity (Methodenebene): Max 10 DIT Depth of Inheritance Tree (Klassenebene): Max 6 NOC Number of Children (Klassenebene): Max 10 WMC Weigthed Methods per Class: Max 200 (VG * NOM)

Quellcode Review Open-Source Tools? Semantische Konventionen: Checkstyle, PMD, usw. Syntaktische Konventionen: Checkstyle, PMD, Findbugs, usw. Metrische Konventionen: Metrics, PMD, Checkstyle, Byecycle, JNCSS, usw. Trends XRADAR Checkstyle: http://checkstyle.sourceforge.net PMD: http://pmd.sourceforge.net Metrics: http://metrics.sourceforge.net XRADAR: http://xradar.sourceforge.net/ ByeCycle: http://byecycle.sourceforge.net Resource Standard Metrics: http://msquaredtechnologies.com/m2rsm/index.htm

Quellcode Review Weitere Artikels? Statischer Test - Methoden und Möglichkeiten der statischen Analyse, Matthias Böhmer, FH Münster http://www.m-boehmer.de/pdf/statische-analyse.pdf NUI Maynooth - DYNAMIC COUPLING AND COHESION METRICS FOR JAVA PROGRAMS http://www.cs.nuim.ie/~ainem/contents.html IBM - How the metrics of coupling can impact code quality http://www-128.ibm.com/developerworks/java/library/j-perf07304/?ca=dgr-jw10j-perf07304 IBM - Automate code quality analysis within Eclipse with five helpful plugins http://www-128.ibm.com/developerworks/java/library/j-ap01117/index.html

Vielen Dank fürf Ihre Aufmerksamkeit!