Jax 2011-qs
 

Jax 2011-qs

on

  • 397 views

 

Statistics

Views

Total Views
397
Views on SlideShare
397
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Jax 2011-qs Jax 2011-qs Presentation Transcript

    • Open-Source-Werkzeugkasten für Software-QS 05.05.2011 | 10:15 - 11:15 Uhr | Zagrebsaal IFreitag, 13. Mai 2011 1
    • Speaker • Tobias Joch – inovex GmbH – Head of Solution Development – leichtgewichtige und hochskalierende (Web-) Anwendungen – CCDFreitag, 13. Mai 2011 2
    • Kurzer Überblick über das Thema QSFreitag, 13. Mai 2011 3
    • Ziel = Erfüllung der Qualitätsmerkmale • Korrektheit • Zuverlässigkeit • Robustheit • Effizienz • Benutzerfreundlichkeit • Wartbarkeit • Wiederverwendbarkeit • Portierbarkeit • Kompatibilität • VertrauenswürdigkeitFreitag, 13. Mai 2011 4
    • Agiler Prozess am Beispiel von Scrum 24 2-4Freitag, 13. Mai 2011 5
    • QS im SDLC Tracking Specs BDD Analyse g De /Bu sig CR n TDD Monitoring CI xUnit Wa l. p rtu Im Pair- n Systemtests Programming g Delivery Metriken UAT Pen-Tests Reviews Integrationstests ManuellFreitag, 13. Mai 2011 6
    • Abgrenzung / Scope • Umfangreiches Thema • Konzentration auf die für Java-(Web-) Entwicklung relevantesten Tools und Frameworks • kein Anspruch auf VollständigkeitFreitag, 13. Mai 2011 7
    • Inhalt des heute mitgebrachten WerkzeugkastenFreitag, 13. Mai 2011 8
    • Inhalt des heute mitgebrachten Werkzeugkasten • Unit-Tests • Web-Tests • Performance- / Last-Tests • JVM-Analyse Tools / Techniken • Build-Tools / CI • Statische Code-Analyse • Reports / Metriken • Code-Review-Tools, SCM, ...Freitag, 13. Mai 2011 9
    • Unit-Tests • xUnit – JUnit • de facto Standard • DBUnit • XMLUnit • HTTPUnit • EJB3Unit • SpringJUnit4ClassRunner... – TestNGFreitag, 13. Mai 2011 10
    • JUnit • XP / TDD • Kent Beck, Erich Gamma • passed • failed – failure – error • grün = Fehlerfrei? – nur so viel testen bis es "grün" ist • Antipattern! • Autor Code & Test identisch http://www.junit.org/Freitag, 13. Mai 2011 11
    • JUnit • IDE-IntegrationFreitag, 13. Mai 2011 12
    • Test Double • Test Stub – Hand geschriebenes Objekt für Testzwecke • Mock Objects – Erwartung vor dem Test konfiguriert • z.B. EasyMock / PowerMock • Test Spy – Verifikation findet nach dem eigentlichen Test statt • z.B. MockitoFreitag, 13. Mai 2011 13
    • Test Coverage • Eclipse Plugins – djUnit – EclEmma • Reports – Cobertura – EmmaFreitag, 13. Mai 2011 14
    • Web-TestsFreitag, 13. Mai 2011 15
    • Web-Tests • Validatoren – Link Checker – HTML-Syntax, ... • Functional / Acceptance – Fitnesse – Selenium (Grid) – Windmill – Cucumber (rake, rspec) – Celerity, Watir, ...Freitag, 13. Mai 2011 16
    • Web-Tests • Cucumber für Java (und viele weitere Sprachen für die JVM) – cuke4duke 0.4.3 Feature: Hello JAX 2011 Scenario: Say Hello to the JAX 2011 Given I have a skeleton web application When I open the home page Then the page heading should be "Hello JAX 2011!"Freitag, 13. Mai 2011 17
    • Web-Tests • Cucumber für Java (und viele weitere Sprachen für die JVM) – cuke4duke 0.4.3 Feature: Hello JAX 2011 Scenario: Say Hello to the JAX 2011 Given I have a skeleton web application When I open the home page Then the page heading should be "Hello JAX 2011!"Freitag, 13. Mai 2011 18
    • Performance- / Last-TestsFreitag, 13. Mai 2011 19
    • Performance- / Last-Tests • Apache – ab – JMeter • Grinder – GrinderStone • Tsung – Erlang – High Performance – Multi-ProtokollFreitag, 13. Mai 2011 20
    • JVM-Analyse Tools / TechnikenFreitag, 13. Mai 2011 21
    • JVM-Analyse Tools / Techniken • Shell / Console – kill -3 / jstack – Thread Dump für z.B. „looping threads“, timeouts, etc. • jvmstat – jps – jstat – visualgc • jConsole • VisualVM • Eclipse Memory Analyzer – Heap Dump AnalyseFreitag, 13. Mai 2011 22
    • Build-Tools / CIFreitag, 13. Mai 2011 23
    • Build-Tools / CI • Build-Tools – Ant – Maven – Buildr – Gradle • CI – CruiseControl – Apache Continuum – Hudson => JenkinsFreitag, 13. Mai 2011 24
    • Build-Tools / CI Maven • einheitliche der Projektstruktur • Standard Aufgaben „out-of-the-box“ – Plugins • Dependency Management – Firmen eigener Proxy sinnvoll – QSFreitag, 13. Mai 2011 25
    • Build-Tools / CI Jenkins • aktive Community • viele Plugins • einfache Verwaltung • http://www.wakaleo.com/books/ jenkins-the-definitive-guideFreitag, 13. Mai 2011 26
    • Build-Tools / CI Jenkins • Beispiel – http://ci.jenkins-ci.org/Freitag, 13. Mai 2011 27
    • Statische Code-AnalyseFreitag, 13. Mai 2011 28
    • Statische Code-Analyse • oder auch „linting“ genannt (Lint) • formaler Prüfung – Quelltext – Bytecode • manuell oder automatisch – einfachen Coding-Standards – Prüfung von Typumwandlungen /Bereichsgrenzen – Speicherlecks – „Bad Smells“ – null-Referenzen – uninitialized values, ...Freitag, 13. Mai 2011 29
    • Statische Code-Analyse • FindBugs – static bytecode analyzer – based on Jakarta BCEL • PMD – source code analyzer – identifies potential problems – static ruleset • Checkstyle – some static code analysis – shows violations of a configured coding standardFreitag, 13. Mai 2011 30
    • Reports / MetrikenFreitag, 13. Mai 2011 31
    • Reports / Metriken • Formale Vergleichs- und Bewertungsmöglichkeiten – ausgedrückt in Meßzahlen – interpretierbar als der Erfüllungsgrad einer Qualitätseigenschaft – Indikation für den Zustand der SW • Wartbarkeit, Erweiterbarkeit, VerständlichkeitFreitag, 13. Mai 2011 32
    • Reports / Metriken • Umfang (LOC, Wiederverwendung, Prozeduren, ...) • Komplexität (McCabe) • Lesbarkeit (Stil) • Entwurfsqualität (Modularität, Kohäsion, Kopplung, ...) • Produktqualität (Testergebnisse, Testabdeckung, Dubletten, ...) • ...Freitag, 13. Mai 2011 33
    • Reports / Metriken • Sonar – Integration in Maven und Eclipse – Jenkins-Plugin • http://nemo.sonarsource.org/Freitag, 13. Mai 2011 34
    • Vielen Dank!Freitag, 13. Mai 2011 35