57
quality for IT projects

quality for IT projects

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: quality for IT projects

quality for IT projects

Page 2: quality for IT projects

quality for IT projects

Vortrag Q9

Quality Inside – Teil 2Hit the Code Jack

MATHEMA

frühjahrs-campus 2008

19. April 2008

Detlef Burkhardt

Andreas Kock

Page 3: quality for IT projects

19.04.08 Folie 3 www.gjc-quality.com

Guten Tag, wir sind:

Detlef Burkhardt Enterprise Engineer & Architect als freier Berater

für GJC & MATHEMA 42+1 Jahre jung, bekennender Bassist, Blogger & Codesemiotiker Gestartet 1986, seit 1998 in zahlreichen IT-Projekten Mache mit bei: JCP (JSR-260 Javadoc-Update), Cuba, Oracle TechNet,

MotoCoder, Apple DevCon, Bea Dev2Dev & Arch2Arch

Andreas Kock Senior Consultant bei der GJC 36 Jahre alt, elektronische Musik & überzeugter "Foto-Graf" Gestartet 1992 als Softwareentwickler, später Projektleiter Seit 7 Jahren als QM & QS Berater unterwegs

Page 4: quality for IT projects

Inhalt

19.04.08 Folie 4 www.gjc-quality.com

Einleitung1. Rolle & Prozesse2. Funktionales Testen mit der IT3. Statische Code Analyse

3.1 Sourcecode-Only-Tools3.2 Bytecode & more

4. Last words about Integration

Page 5: quality for IT projects

19.04.08 www.gjc-quality.com

Gnädinger & Jörder ConsultingGJC bietet seit 1991 umfassende Beratungsleistungen in den

Bereichen Projektbegleitung und Qualitätssicherung von

Optimierungs- und IT-Projekten.

Leistungsportfolio:QualitätsmanagementQualitätssicherungProzessmanagementBetriebsmanagementOrganisationsberatung

Enge Kooperation mit der MATHEMA seit 2006

Weites Tal 2, 69198 Schriesheim a.d. Bergstrasse

Page 6: quality for IT projects

19.04.08 www.gjc-quality.com

Rolle der Abteilung

Fachseiten

Internet-Abteilung

Entwicklungs-Dienstleister 1

Betriebs-DienstleisterEntwicklungs-Dienstleister 2

Entwicklungs-Dienstleister n…

Page 7: quality for IT projects

19.04.08 www.gjc-quality.com

5 Ebenen der IPP

Content

Applikationen & Formulare

SW-Plattformkomponenten(PA, PIF, XSL, FGen, WCMS, GSA)

SW-Basiskomponenten(BEA, Oracle, Day, u.a.)

Hardware & OS(Linux Blades)

Page 8: quality for IT projects

19.04.08 www.gjc-quality.com

DE

VINT

RE

F

PR

OD

Internet Portal Platform

NAS Load Drivers Shared Config Log Server IntroscopeShared-Services

Web Presentation Layer

Cache / Proxy

Portal

CampaignServer Farm

Business Logic Layer

Portal Integration Framework

Forms GeneratorPublish & Edit

A2 A1A2 A2

Content ManagementSystem

Publish & Edit

Data Layer

Database Database Database Database

Analytics

Web

min

ing

Mo

nit

ori

ng

Go

og

le S

earc

h A

pp

lian

ce

Page 9: quality for IT projects

Inhalt

19.04.08 Folie 9 www.gjc-quality.com

Einleitung1. Rolle & Prozesse2. Funktionales Testen mit der IT3. Statische Code Analyse

3.1 Sourcecode-Only-Tools3.2 Bytecode & more

4. Last words about Integration

Page 10: quality for IT projects

19.04.08 Folie 10 www.gjc-quality.com

DevQS bedeutet ...

... Partner des Architekten, des Release-Managers, der FachQS und der Entwickler sein

... Standards für CodeQuality, Security, Performance setzen ... Stärken und Schwächen einer Architektur für potentielle

Refactorings auffinden und bewerten ... eine gute Nase, um den Code der riecht aufzuspüren ... Integration der verschiedener Testvorgehen vorantreiben ... Täglicher Kampf gegen Systementropie, um

das System agil zu halten

In der DevQS sorgst Du für den

Quality In <> Quality Out Effekt

im Entwicklungsprozess

Page 11: quality for IT projects

19.04.08 www.gjc-quality.com

QS-Phasen

SpezifikationAM / Projekt

Realisierung

FachlicheAbnahme

BetrieblicheAbnahme

Entwicklungs-QS

Go-Live

Betrieb

„Komponenten“-Abnahme

RtP-Prozess

Quality In Quality Out

Page 12: quality for IT projects

19.04.08 Folie 12 www.gjc-quality.com

Quality In <> Quality Out

Quality In:

Widerspruchsfreie, vollständige Anforderungen inkl. erster belastbarer Testfälle

Abnahme der AnforderungAnalyse und Verteilung gefunder Issues aus

Ticket-System(en)Problem-, Incident- und Risikomanagement

Bewertung der IT- und UmsetzungskonzepteUnterstützung bei Aufwands- und Releaseplanung

Page 13: quality for IT projects

19.04.08 Folie 13 www.gjc-quality.com

Quality In <> Quality Out

Quality Out:

Eingelieferten Komponenten des Dienstleisters abnehmen Reifegrad der Code- und Dokumentations-Qualität darstellen Metriken vergleichbar machen …

… zwischen Packages und Systemen … über die Release-Zyklen

Testabdeckungen aufzeigenSicherheitsrisiken möglichst früh erkennen & bewerten

Page 14: quality for IT projects

Inhalt

19.04.08 Folie 14 www.gjc-quality.com

Einleitung1. Rolle & Prozesse2. Funktionales Testen mit der IT3. Code-Analyse

3.1 Sourcecode-Only-Tools3.2 Bytecode & more

4. Last words about Integration

Page 15: quality for IT projects

19.04.08 www.gjc-quality.com

Wie wird heute funktional getestet?

IT:assertEquals(a,b);automatisiertFokus: Funktioniert

meine Methode

QS:Step1, Expected Result.ManuellFokus: Erhalte ich die

richtigen Ergebnisse

Lösung: Datengetriebener AkzeptanztestErmittlung belastbarer Daten durch Fachseite / FachQSAutomatisierungslösungen durch IT-SeiteHier passt die FIT Idee

Testdaten per Office-Tabellenweiter über den Parser von Ward Cunninghamzum Glue Code der vermittelt

vs.

Page 16: quality for IT projects

19.04.08 Folie 16 www.gjc-quality.com

Funktionales Testen á la F.I.T.

Framework for Integrated Test treibt Ward Cunningham seit 2002 Lösung für Datengetriebener Akzeptanztest Trennung von Datenermittlung und Testcode

Mit Tabellen Fixtures definierenEinfach Fixture bestehen aus den Spalten

Command Target Erwartetes Ergebnis Erhaltenes Ergebnis

Fitnesse ist ein fix und fertigs Wiki-System für Akzeptanztests

Page 17: quality for IT projects

19.04.08 Folie 17 www.gjc-quality.com

Die FIT-Idee mit Selenium leben

Der Anfang ist ganz einfach

Der Ausbau schnell möglich

Die Komposition sinnvoll

Ant-Integration mit eigenem Task

Page 18: quality for IT projects

19.04.08 Folie 18 www.gjc-quality.com

Selenium ist mehr als nur IDE

Selenium RC (=Remote Control) Schlüssel zur Automatisierung Selenese Task für Ant

Aufruf von Suiten Umfangreich Parametrisierbar

Selenium unterstützt Out-Of-the-Box: HTML, Java, C#, Ruby, Perl, PHP & Python

Grenzen Kein Wechsel zwischen HTTP und HTTPS in einem Testfall Domainwechsel nur in Selenium IDE möglich

Highlights auf einen Blick Einfaches aufzeichnen und abspielen Feldauswahl mittels ID's, Namen und XPath Eigene Erweiterungen via user-extensions.js

Debuging mit Breakpoints Walk through Tests Autocomplete

Page 19: quality for IT projects

Inhalt

19.04.08 Folie 19 www.gjc-quality.com

Einleitung1. Rolle & Prozesse2. Funktionales Testen mit der IT3. Statische Code Analyse

3.1 Sourcecode-Only-Tools3.2 Bytecode & more

4. Last words about Integration

Page 20: quality for IT projects

19.04.08 Folie 20 www.gjc-quality.com

Dimensionen der Code-Analyse

Non-Functional Domains Code-Quality Performance Security

Analysestrategien (Tools & Services) Dynamische Analyse

jMeter/Loadrunner und Wily Introscope für Performance-Analyse Emma für Testcoverage

Statische Analysen (siehe Punkt 3.1 bis 3.2) Source- & Bytecode von Java Weitere Artefakte wie Ant, XSL, XML, JS, JSP, Groovy wichtig Datenbank-Schemata nicht vergessen

Metriken: Mengenbasierte Basis-Metriken Aggregierte Metriken & Anti-Pattern

Page 21: quality for IT projects

19.04.08 Folie 21 www.gjc-quality.com

Die wichtigsten Basis-Metriken

Pyramide der GrundzahlenSetzt absolute Gundzahlen in vergleichbare Relationenermittelbar mit Hilfe von javaNCSS oder iPlasma

ANDC

AHIT

Page 22: quality for IT projects

19.04.08 Folie 22 www.gjc-quality.com

Noch mehr Basis-Metriken

DupeCountsBei Bewertung den Kontext beachten Kosten- / Nutzen abwägenermittelbar z.B. Mit CPD, Teilprojekt von PMD

CodecoverageTestabdeckung Ermittelbar mit cobertura oder Emma JavaDoc-Abdeckung mit doccheck

Dependecies (Class, Package & JAR)Alarm bei zyklischen AbhängigkeitenErmittelbar mit jDepend & jarAnalyzer

Page 23: quality for IT projects

19.04.08 Folie 23 www.gjc-quality.com

QBench Anti-Pattern

QBench = Anti-Pattern Katalog des Fraunhofer Institut52 Anti-Pattern aus den Bereichen

Architektur, Design und Coding z.B. mit Sissy ermittelbar

QBench-Reifegrade QBL1: Rudimentary QBL4: Advanced QBL2: Basic QBL5: Complete QBL3: Extended

Zuordnung zu wichtigen ISO 9126 Qualitätseigenschaften: Analysierbarkeit Modifizierbarkeit Stabilität Prüfbarkeit Austauschbarkeit Zeitverhalten Verbrauchsverhalten

Page 24: quality for IT projects

19.04.08 www.gjc-quality.com

Qbench-Klassifikation

Tote Methode aus

Page 25: quality for IT projects

19.04.08 www.gjc-quality.com

Qbench-Klassifikation

Labyrintmethode aus

Page 26: quality for IT projects

19.04.08 www.gjc-quality.com

Qbench-Klassifikation

Pränatale Kommunikation aus

Page 27: quality for IT projects

19.04.08 Folie 27 www.gjc-quality.com

Web of Design-Disharmonies

Prof. Marinescu11 zentrale Anti-Pattern

im KontextHohe Kongruenz

zw. Marinescuund QBench

Ermittelbar mitiPlasma / Sissy

Page 28: quality for IT projects

19.04.08 Folie 28 www.gjc-quality.com

Anti-Pattern des Fortify SCA

Über 150 sicherheitsrelevante Anti-Pattern u.a. aus den Bereichen: Cross-Site Scripting & Buffer Overflow Denial of Service & Race Condition Command- & SQL-Injection Log Forging & Session Fixation uvm.

Regelmässige Fortify-Rule Updates100% OWASP Compliant Java Open Review ProjectAusgereifte Audit-WorkbenchUnterstützt alle wichtigen Programmiersprachen

Java / JSP, Coldfusion, PHP, C, C++, C# Javascript, VisualBasic, VBScript, ASP PLSQL / TSQL

Page 29: quality for IT projects

19.04.08 Folie 29 www.gjc-quality.com

Noch mehr Anti-Pattern

Findbugs-RepositoryUniversity of Maryland ca. 320 Muster in 15 Kategorienauch in Fortify integriert

PMD Rule Sets vs. CheckstylePMD mit ca. 260 Muster in 28 Rule-SetsCS mit 127 Rules in 14 FunktionsgruppenHohe Deckungsgleichheit zw. PMD und CSPMD Rule Sets sind imho besser ...

... Out-Of-The-Box nutzbar ... zwischen Projekten vergleichbar

Page 30: quality for IT projects

19.04.08 Folie 30 www.gjc-quality.com

SCA, The Big Picture

auch XSL,JS, PL/SQL

u.a.

auch für andere Tools

nutzbar

Das Prinzip gilt z.B. auch

für Fortify

Alternative Persitenz-

Mechanismen, wie XML denkbar

Page 31: quality for IT projects

Inhalt

19.04.08 Folie 31 www.gjc-quality.com

Einleitung1. Rolle & Prozesse2. Funktionales Testen mit der IT3. Statische Code Analyse

3.1 Sourcecode-Only-Tools3.2 Bytecode & more

4. Last words about Integration

Page 32: quality for IT projects

19.04.08 Folie 32 www.gjc-quality.com

Starke Werkzeuge für ...

... Statische Code-Analyse JavaNCSSCPD / PMDSissy QBenchFortify SCA ($)

DEMO

Page 33: quality for IT projects

JavaNCSS

Page 34: quality for IT projects

CopyPaste Detector

Page 35: quality for IT projects

PMD

Page 36: quality for IT projects

Sissy / QBench

Page 37: quality for IT projects

Fortify SCA

Page 38: quality for IT projects

19.04.08 Folie 38 www.gjc-quality.com

Starke Werkzeuge für ...

... DocletingXHTML-Doc vs. JavaDocDocCheckXSLDocOraDocletServletDoclet

DEMO

Page 39: quality for IT projects

DocCheck

Page 40: quality for IT projects

Inhalt

19.04.08 Folie 40 www.gjc-quality.com

Einleitung1. Rolle & Prozesse2. Funktionales Testen mit der IT3. Statische Code Analyse

3.1 Sourcecode-Only-Tools3.2 Bytecode & more

4. Last words about Integration

Page 41: quality for IT projects

19.04.08 Folie 41 www.gjc-quality.com

Bytecode für gute Beziehungen

JDependJarAnalyzerFindbugs

DEMO

Page 42: quality for IT projects

JDepend

Page 43: quality for IT projects

JarAnalyzer

Page 44: quality for IT projects

Findbugs

Page 45: quality for IT projects

19.04.08 Folie 45 www.gjc-quality.com

Mehr sehen, mehr verstehen

iPlasmastatSVNjava2HTML

DEMO

Page 46: quality for IT projects

iPlasma / Insider / CodeCities

Page 47: quality for IT projects

statSVN

Page 48: quality for IT projects

java2HTML

Page 49: quality for IT projects

Inhalt

19.04.08 Folie 49 www.gjc-quality.com

Einleitung1. Rolle & Prozesse2. Funktionales Testen mit der IT3. Statische Code Analyse

3.1 Sourcecode-Only-Tools3.2 Bytecode & more

4. Last words about Integration

Page 50: quality for IT projects

19.04.08 Folie 50 www.gjc-quality.com

Glean ist Ant

Mit Ant Test-Suiten integrierenGlean ein ausgereifter Ansatz

Factory System-PropertiesLokale System-Properties

Allgemeine Tool-PropertiesLokale Tool-Properties

Durchlauf-Spezifische PropertiesDutzende von Tools bereits „Vor-Integriert“Einfache Integration eigener Tools schnell möglich

Page 51: quality for IT projects

19.04.08 Folie 51 www.gjc-quality.com

Wie sag ich’s wem am Besten?

Zusammenfassung aller ReportsMit XSLT nach HTML ...

... mit gemeinsamem CSS ... einfacher Navigation ... zum CQM-Portal

Herausforderungen:Entwicklung: Verlinkung zu Quellcode und BackgroundManagement: mehrdimensionale Aggregationen

Page 52: quality for IT projects

19.04.08 Folie 52 www.gjc-quality.com

Wie sag ich‘s wem am Besten?

Herausforderung Aggregierung

Page 53: quality for IT projects

19.04.08 Folie 53 www.gjc-quality.com

Wie sag ich‘s am Besten?

Herausforderung Time-Based Reporting

Page 54: quality for IT projects

19.04.08 Folie 54 www.gjc-quality.com

Weiter geht‘s mit ...

Cruise-ControlMehr als nur “Build-Server”Continous Testing & System-Checking via GleanDaily-, Integration-, Release-Build & TestingReporting & AlarmingDeploy-Targets:

Development & IntegrationReference & Production

Fernziel: Maven ab Version 2

Page 55: quality for IT projects

Inhalt

19.04.08 Folie 55 www.gjc-quality.com

Einleitung1. Rolle & Prozesse2. Funktionales Testen mit der IT3. Statische Code Analyse

3.1 Sourcecode-Only-Tools3.2 Bytecode & more

4. Last words about Integration

Page 56: quality for IT projects

19.04.08 www.gjc-quality.com

Books, Links, Feeds & more

http://codesemiotic.com/hit-the-code-jack

Page 57: quality for IT projects

19.04.08 Folie 57 www.gjc-quality.com

Wir danken für Eure Aufmerksamkeit!

quality for IT projects

Noch Fragen?