Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
[email protected]: 1.0
10 Jahre JavaQualitätssicherung
Beim Erscheinen von Java genügten noch sechs simple konstruktive Eigenschaftenum die Java Plattform und Sprache als Qualitätsangebot zu positionieren. Heuteerstrecken sich die Qualitätsmanagementanstrengungen in der Java, XML und OpenSource Welt von konstruktiven Verfahren wie syntaxvalidierendenEntwicklungsumgebungen bis hin zu kontinuierlichen automatisierten Analysen vonCodes,Funktionen und Architekturen. Wie kam es zu dieser Entwicklung und hat sichdie Qualität der erstellten Software in dieser Zeit wirklich erhöht
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 2
Gliederung
• Grundlagen desQualitätsmanagements
• 1998-2008 Impressionen ausdem OIO-Qualitätsmanagement
• Herausforderung Java 2.0Qualtitätsmanagement
• Ausblick
2
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 3
Magisches Viereck (Sneed)
• Entwicklungs-Projekt• Entwicklungs-Projekt
Fertigstellungszeitpunkt Qualität
Personeller Aufwand Funktionaler Umfang
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 4
Qualitätskosten ein Minimierungsproblem
• Softwarekosten = Herstellungskosten + Qualitätskosten
• Qualitätskosten = Qualitätssicherungskosten + Fehlerkosten
3
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 5
Qualität
• transzendent• produktbezogen• benutzerbezogen• prozessbezogen• Kosten/Nutzen -bezogen
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 6
Qualität
• „Als Qualität eines Gegenstandes bezeichnen wir die Gesamtheitseiner charakteristischen Eigenschaften.“
• „Softwarequalität ist die Gesamtheit der Merkmale undMerkmalswerte eines Softwareproduktes, die sich auf dessenEignuing beziehen, festgelegte oder vorausgesetzte Erfordernissezu erfüllen“( ISO 9126)
4
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 7
Qualitätsmodelle
• Qualität wird durch Merkmale beschrieben - (engl. Factor)– meist benutzerbezogen
• Merkmale können in Teilmerkmale strukturiert werden - (Criteria)– eher produktbezogen
• mess- oder bewertbarkeit durch Indikatoren• Qualitätsmaße sind quantitative Skala und Meß-Methode• bekannte FCM-Modelle(produktbezogen)
– ISO 9126– FURPS– McCall– Boehm– DGQ
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 8
FCM-Modelle und Qualität
Produkt-Qualität
Wartbarkeit
Brauchbarkeit
Prüfbarkeit
Änderbarkeit
Portabilität
Zuverlässigkeit
Nützlichkeit
Bedienbarkeit
Spezifikations-VollständigkeitLokalität
Testbarkeit
StrukturiertheitSimplizitätKnappheitLesbarkeit
Geräte-UnabhänigkeitAbgeschlossenheit
KorrektheitAusfallsicherheitGenauigkeit
EffizienzSparsamkeitLeistungs-VollständigkeitHandbuch-VollständigkeitKonsistenzVerständlichkeitEinfachheit
5
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 9
Strategien im Qualitätsmanagement
• Bottom-up– einfach in die Entwicklung zu integrieren (test first?)– Unterstützung durch Unit-Frameworks– Anlehnung an andere Ingenieurwissenschaften
• Top-down Ansätze– in Form von C/R-Ansätzen– ineffiziente Bsp. bekannt– in anderen Ingenieurwissenschaften teilweise sehr spektakulär und
teuer
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 10
Kaufmännischer Hintergrund
• Aufwand für QM sehr ist hoch• Ist dieser Aufwand gerechtfertigt, bzw. bezahlbar?• Risiko durch
– Personenschaden– Hohe Kosten– Imageverlust
• „Sei mindestens genauso gut wie die Konkurrenz“
6
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 11
Fehlerentstehung
30
25
30
15
63
36
1
30,3
57,8
11,9
0
10
20
30
40
50
60
70
Analyse Design Implementierung Systemintegration
Phase
proz
entu
aler
Feh
lera
ntei
l
Balzert 1985Maus/TestmanagemntNIST 2002
Fehlerentstehung
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 12
Ökonomische Gründe zum Werkzeugeinsatz II
0
20
40
60
80
100
120
Analyse Design Implementierung Systemintegration
Phasen
rela
tive
Fehl
erbe
hebu
ngsk
oste
n
DunnFROX
7
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 13
Allgemeines V-Modell
AbnahmetestAnforderungsdefinition
Funkt. Systementwurf
Techn. Systementwurf
Komponentenspez.
Integrationstest
Komponententest
Systemtest
Programmierung
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 14
„Die agile These“ - Preis für Änderungen
Technologie
$
Höhere Programmiersprachen
Strukturierte Programmierung
Objektorientierte Programmierung
Generative Programmierung
8
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 15
Wasserfallmodell
Anforderungen
Implementierung
Deployment
Analyse
Test
Betrieb
Risk
Time
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 16
Inkrementell und IterativA
nalyse
Design
Implem
entierung
Test
Analyse
Design
Implem
entierung
Test
Analyse
Design
Implem
entierung
Test
Analyse
Design
Implem
entierung
Test
1.Iteration
2.Iteration
3.Iteration
n.Iteration
9
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 17
Classical System Test
Inception Elaboration Construction Transition
TP TBTDTSTCTD
SYSTEMTEST
TP - Test plan TS - Test scripts
TD - Test design specification TE - Test execution protocol
TC - Test case specification TR - Test report
Perform tests
Analyse testresults
Plan tests
Design Tests
Find test cases Implement tests
Operation
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 18
Projektkosten
Kapselung der Protokoll-schichten
Kapselung der Protokoll-schichten
Kapselung der Protokoll-schichten
Kapselung der Protokoll-schichten
Kapselung der Protokoll-schichten
Kapselung der Protokoll-schichten
Kapselung der Protokoll-schichten
Kapselung der Protokoll-schichten
Kapselung der Protokoll-schichten
Anpassung des Test-Management
Kapselung
der Protokoll-schichten
Kapselung
der Protokoll-schichten
Kapselung
der Protokoll-schichten
Kapselung
der Protokoll-schichten
Frame-work
Design
Kap
selu
ng
der P
roto
koll-
schi
chte
n
Kap
selu
ng
der P
roto
koll-
schi
chte
n
Kap
selu
ng
der P
roto
koll-
schi
chte
n
Kap
selu
ng
der P
roto
koll-
schi
chte
n
Testcode im
Container
Anwendungs-
design
Kosten fürfunktionalenTest
10
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 19
Gliederung
• Grundlagen desQualitätsmanagements
• 1998-2008 Impressionenaus dem OIO-Qualitätsmanagement
• Herausforderung Java 2.0Qualtitätsmanagement
• Ausblick
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 20
Gliederung
• Grundlagen desQualitätsmanagements
• 1998-2008 Impressionenaus dem OIO-Qualitätsmanagement
• Herausforderung Java 2.0Qualtitätsmanagement
• Ausblick
• 1998-2001• 2001-2003• 2003-2005• 2005-2006• 2007-2008
11
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 21
QM-Trend: Open Source für kommerzielleProjekte
• Versionsverwaltung• Global Ownership of Code• Dokumentation in Mailarchiv und Code• Bugtracking• Continuous Integration• Wiki
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 22
JUnit das Open Source QM-Projekt
• Entwicklung ursprünglich Gamma/Beck (Atlantikflug?)• www.junit.org• viele Designinformationen im Download
– java api-doc– cookbook– cookstour– faq– testinfected
12
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 23
Frameworkaufbau
Quelle: „A Cooks Tour“
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 24
weitere Trends
• Erste Continuous Integration– Cruisecontrol
• plattformunabhängiges Buildmanagement– Apache ANT
• Konfigurationsmanagement– SCM mit CVS– Einsatz java Doclet-API
13
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 25
Gliederung
• Grundlagen desQualitätsmanagements
• 1998-2008 Impressionenaus dem OIO-Qualitätsmanagement
• Herausforderung Java 2.0Qualtitätsmanagement
• Ausblick
• 1998-2001• 2001-2003• 2003-2005• 2005-2006• 2007-2008
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 26
QM Trend: Test Driven Development
• Enterprise Extensions für Junit– z.B. Cactus, HttpUnit, HTMLUnit, jWebUnit, JUnitEE
• Anwendungsgebietsspezifische Erweiterung– DBUnit– JPerfUnit
• Assertions in der Plattform (jdk 1.4)
• Endoskopisches Testen– z. B. Mockcreator
14
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 27
Kostentreiber - Weyuckers Axiome
• Antiextensionalität• Antidecomposition• Anticomposition
• daher Testsuite der Oberklasse reicht nicht für Unterklasse• Aufbau einer parallelen Testklassenhierarchie
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 28
Ergebnis: JUnit Effizienz-Checklist
• Typische Verwendung• Grenzwerte• Äquivalenzklassen• Fehlerfälle/Exceptions• DBC-Ideen• Einfache Objektinteraktionen• komplexe Objektinteraktionen entlang des Integrationspfades• Typische Fehlerfälle• gemäß Ergebniskategorien• Zufallstestfälle
15
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 29
Gliederung
• Grundlagen desQualitätsmanagements
• 1998-2008 Impressionenaus dem OIO-Qualitätsmanagement
• Herausforderung Java 2.0Qualtitätsmanagement
• Ausblick
• 1998-2001• 2001-2003• 2003-2005• 2005-2006• 2007-2008
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 30
QM Trend - „become Enterprise ready“
• nichtfunktionale Qualität– Last- und Performanztests implementieren– mit Open Source Treibern wie jmeter und the Grinder– Analysen und Monitioring über JMX und VM Erweiterungen
• Design for Testability– POJO Development für Tests– Lightweight Container führt z.B. zu Spring
•
16
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 31
OIO:Testplanung der nichtfunktionalen QM
Erfolg festlegen
Testumgebung und Rahmenbedingungen erfassen
Testplan festlegen
Testszenarien festlegen
Test durchführen
Analyse durchführen
Maßnahmen durchführen
Misserfolg analysieren
[gewichtiger Fehler]
[nicht aussagekräftig]
[erfolgreich][nicht erfolgreich]
[nicht behebbar][behebbar]
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 32
OIO: Performanz Tests mit Grinder durchführen
J2EE-Server
Web / EJB Container
Web Service<<A>>:Dienst
Virtual Interface
Client
Testcontroller Client
Contoller Proxy
TestAutomatTestAutomatTestAutomatTestautomat
Multiclientstart
Transfer Logs
17
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 33
weitere QM Trends
• Model Driven Architecture– generative Softwareentwicklung soll QM-Kosten durch konstruktive
Maßnahmen senken Buildmanagement– muss man generierten Code testen ?
• Verbreitung von werkzeugunterstütztem Issue Tracking– z.B. Bugzilla
• starke Integration von QM-Werkzeugen– IDE als Plattform– z.B. Eclipse und CVS, JUnit, Lightweightcontainer..
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 34
Gliederung
• Grundlagen desQualitätsmanagements
• 1998-2008 Impressionenaus dem OIO-Qualitätsmanagement
• Herausforderung Java 2.0Qualtitätsmanagement
• Ausblick
• 1998-2001• 2001-2003• 2003-2005• 2005-2006• 2007-2008
18
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 35
QM Trend: Skalierung und Modularisierung
• Lightweight Container wie z.B. Spring senken Test-Kosten– Developertests mit geringeren Integrationskosten– Herausforderung ist die Skalierbarkeit der Architektur in der
nichtfunktionalen analytischen QM
• Verteiltes Buildmanagement– z.B. durch Maven, Ivy– Herausforderung:
• Modulorientierte und integrierte QM• Integration mit Konfigurationsmanagment
• verbessertes Konfigurationsmanagment– z.B. SVN
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 36
Problem: Versionskonflikte
Lange oder kurze Cyclen?
Eric Raymond: Release Early, Release Often
1.1 RC 22.1
0.9 Alpha
4.1.283.3.17
3.2.1
4.0 Beta
19
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 37
Versions-Dschungel
• Viele Komponenten in der Laufzeit– Oft gibt es keine Vergleichsinstallationen– Lösung: Disziplin - sind neue Versionen notwendig?– Bundles: z.B. jboss-4.2.3_tomcat-5.5
• Viele Komponenten zur Compilezeit– Repositories verteilter Buildmanagementsysteme
Funktioniert Apache 2.0.45 mit Tomcat 6.0.12 mit JK 2?
Gibt es dafür eine Anleitung?
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 38
weitere Trends
• WEB 2.0– AJAX-Hype– Web-Mashup– Usergruppen akzeptieren ständiges Beta-Status– Herausforderung: Testwerkzeuge
• z.B. Canoo Webtest, Selenium
• Analyse Werkzeuge– Codecoverage
• z.B. Cobertura– Code Style
• z.B: Checkstyle– Integration in CI
• z.B. Maven Report Plugins
20
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 39
OIO: Selenium Remote Control
„Selenium is a test tool for web applications. Selenium tests rundirectly in a browser, just as real users do. And they run in InternetExplorer, Mozilla and Firefox on Windows, Linux, and Macintosh.No other test tool covers such a wide array of platforms.“
Client ABrowser Selenium IDE Anwendung
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 40
Gliederung
• Grundlagen desQualitätsmanagements
• 1998-2008 Impressionenaus dem OIO-Qualitätsmanagement
• Herausforderung Java 2.0Qualtitätsmanagement
• Ausblick
• 1998-2001• 2001-2003• 2003-2005• 2005-2006• 2007-2008
21
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 41
QM Trend: Next Generation Tools
• Continuous Integration– z.B: Hudson
• verteiltes Buildmanagement– z.B. Maven2– verbesserte Moduldefinitionen OSGi
• Bundle Repository
• Konfigurationsmanagment– z.B. atomare SVN-Commits
• Analysewerkzeuge– z.B.Clover Probability Test Reordering
• Integration in IDE– Issuetracker z.B. Mylin
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 42
weitere Trends
• Reife Prozesse– Integration Issuetracker/SCM/Projketplanungswerkzeuge/Wiki– Automatisiertes Architekturmanagement
• z.B: Hello2morrow
• Hochintegrierte Softwareprodukte– Herausforderung: wie managt man die Qualität einer Software aus
mehr als 100 Artefakten(„jar-Archiven“)– Wie
• Agile Entwicklung– Feature getrieben– kurze Releasezyklen– hohes Bugfixingaufkommen
22
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 43
OIO:_ verfeinertes Issue Ablaufschema
In Discussion(Customer)
Confirmed(OIO PL)
In Progress(OIO DEV)
Resolved(OIO PL)
Verified(Klient QM)
Closed(Alle)
Open(Customer)
Reopened(Customer)
Confirm
Verify
Close
Reopen
Reopen
Start Progress Stop Progress
Verify
Resolve
Unresolve VerifyConfirm
Discuss
Verify
Confirm
Status(berechtigt für
Statuswechsel)Legende
Klient: neuer Bug
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 44
OIO: Performance Tactics
1.) Engpässe, deduktive Fehlersucheeinfache Tools für DB und memory
2.) Kennzahlenagile Antwort auf „Performanceafterthought“ Antipattern
3.) SimulationStabilität wird Prio 1 in Betriebsinfrastruktur
4.) benchmarkSkalierung an die Systemgrenzen
development operation
feedback via later operation
feedbackvia simulation
identifybottlenecks
sizing
comparehardware
23
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 45
Gliederung
• Grundlagen desQualitätsmanagements
• 1998-2008 Impressionen ausdem OIO-Qualitätsmanagement
• Herausforderung Java 2.0Qualtitätsmanagement
• Ausblick
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 46
Java 2.0
• Dynamic Languages = Produktivität ?– Objektorientiert– dynamisch typisiert– einsatzspezifische Frameoworks– hohe Produktivität vs. Flexibilität
• Polyglot Programming– JVM Basis
• z.B. JRuby– direkte Kopplung mit Java Bibliotheken und Objekten
• nichtfunktionale Qualitätsaspekte von Java nutzbar– JSR 223
• Realtime Java– JSR 1 auf Solaris frei verfügbar– Scala ?
24
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 47
Polyglot Programming vs. BabylonischeZustände
• Riesige Auswahl an Sprachen– z.B. Groovy,JRuby,Jython, Scala ..– JSR 223 Javascript, Python, Ruby ..
• DSL– dynamische Sprachen erlaubt Laufzeit DSLs– MDD macht DSLs vom Reißbrett möglich– populäre Spezialansätze wie z.B. GWT, JavaFX
• Technology Mashups– z.B. Rich UI mit AJAX, GWT und Spring/JPA Backend
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 48
Gliederung
• Grundlagen desQualitätsmanagements
• Qualitätsmanagement in derJava und XML Welt
• Java 2.0Qualtitätsmanagement
• Ausblick
25
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 49
2010 ?
• werden Mobiltelefone den PC als dominantes Verbindungsgerätins Internet ablösen (Forrester 2006)
• weltweiter Medien und Entertainment Markt erreicht $1.83Billionen US$ (PWC 2006)
• China will be the largest market for PCs (Forrester 2005)• Digital Music Sales account for 40% of Recording Industry (iSuppli
2006)• 12% of the global handset population will be TV capable with over
100 Million new Subscribers (iSuppli 2006)• Content comes from ISVs and SPs, not operators' portals• Nearly all applications “phone home” for updates
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 50
Java als Plattform
• Java ist überall• ca. 4.5 Milliarden Geräte
– davon 1.5 Milliarden Handys– 800 Millionen Desktops– 6 Millionen Set-Top Boxen– 180 Operator Organisationen
• 5 Millionen Entwickler
26
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 51
Auswirkungen
• Webentwicklung– kontinuierliche Entwicklungs- und Releasemodelle– inkrementelle 7-14tägige Releasezyklen
• Releasetestaufwände müssen minimiert werden– weitere Steigerung der QM-Aktivitäten in der Entwicklung– immer höhere Integrationsstufen der Developertests– entwicklungsbegleitende, kontinuierliche nichtfunktionale Optimierung
• Release Tests fokussieren auf– echte Integrationsszenarien
• produktorientiert nicht technologische definiert– Usability
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 52
Qualitätsmanagement
• „Qualitätsmanagement(QM) umfaßt alle Tätigkeiten derGesamtführungsaufgabe, welche die Qualitätspolitik, ziele undVerantwortungen festlegt, sowie diese durch Mittel wieQualitätsplanung, -sicherung und -verbesserung im Rahmen desQM-Systems verwirklichen“(ISO 8402).
• „Qualitätssicherung umfaßt alle geplanten und systematischenTätigkeiten, die innerhalb des QM-systems verwirklicht sind,.., umangemessenes Vertrauen zu schaffen, daß eine Einheit dieQualitätsforderung erfüllen wird.“– konstruktive Maßnahmen– analytische Maßnahmen
27
© 2008 Orientation in Objects GmbH 10 Jahre Java Qualitätssicherung 53
Qualitätsmanagement als Strategie – wozu eigentlich?
Wenn das System komplex wird,kommen detaillierte Plänezuweilen an ihre Grenzen
Dann brauchen Sie eineStrategie
Eine Strategie ist ein längerfristigausgerichtetes planvollesAnstreben einer vorteilhaftenLage oder eines Ziels.
http://de.wikipedia.org/wiki/Strategie
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
[email protected]: 1.0
? ?
???
Fragen ?
28
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
[email protected]: 1.0
Vielen Dank für IhreAufmerksamkeit !