Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Open-Source-Werkzeugkasten für           Software-QS      05.05.2011 | 10:15 - 11:15 Uhr | Zagrebsaal IFreitag, 13. Mai 20...
Speaker         • Tobias Joch               – inovex GmbH               – Head of Solution                 Development    ...
Kurzer Überblick über das                        Thema QSFreitag, 13. Mai 2011                        3
Ziel = Erfüllung der                        Qualitätsmerkmale                                  •   Korrektheit            ...
Agiler Prozess am Beispiel                        von Scrum                               24                              ...
QS im SDLC                            Tracking                                                               Specs        ...
Abgrenzung / Scope                                 • Umfangreiches                                   Thema                ...
Inhalt des heute mitgebrachten                 WerkzeugkastenFreitag, 13. Mai 2011                     8
Inhalt des heute mitgebrachten                 Werkzeugkasten         •    Unit-Tests         •    Web-Tests         •    ...
Unit-Tests         • xUnit               – JUnit                        •   de facto Standard                        •   D...
JUnit         •    XP / TDD         •    Kent Beck, Erich Gamma         •    passed         •    failed               – fa...
JUnit         • IDE-IntegrationFreitag, 13. Mai 2011                12
Test Double         • Test Stub               – Hand geschriebenes Objekt für Testzwecke         • Mock Objects           ...
Test Coverage         • Eclipse Plugins               – djUnit               – EclEmma         • Reports               – C...
Web-TestsFreitag, 13. Mai 2011               15
Web-Tests         • Validatoren               – Link Checker               – HTML-Syntax, ...         • Functional / Accep...
Web-Tests         • Cucumber für Java              (und viele weitere Sprachen für die JVM)               – cuke4duke 0.4....
Web-Tests         • Cucumber für Java              (und viele weitere Sprachen für die JVM)               – cuke4duke 0.4....
Performance- / Last-TestsFreitag, 13. Mai 2011                         19
Performance- / Last-Tests         • Apache               – ab               – JMeter         • Grinder               – Gri...
JVM-Analyse Tools /                            TechnikenFreitag, 13. Mai 2011                         21
JVM-Analyse Tools /                            Techniken         • Shell / Console               – kill -3 / jstack       ...
Build-Tools / CIFreitag, 13. Mai 2011                      23
Build-Tools / CI         • Build-Tools               – Ant               – Maven               – Buildr               – Gr...
Build-Tools / CI                               Maven         • einheitliche der Projektstruktur         • Standard Aufgabe...
Build-Tools / CI                            Jenkins         • aktive Community         • viele Plugins         • einfache ...
Build-Tools / CI                             Jenkins         • Beispiel               – http://ci.jenkins-ci.org/Freitag, ...
Statische Code-AnalyseFreitag, 13. Mai 2011                            28
Statische Code-Analyse         • oder auch „linting“ genannt (Lint)         • formaler Prüfung               – Quelltext  ...
Statische Code-Analyse         • FindBugs               – static bytecode analyzer               – based on Jakarta BCEL  ...
Reports / MetrikenFreitag, 13. Mai 2011                        31
Reports / Metriken         • Formale Vergleichs- und           Bewertungsmöglichkeiten               – ausgedrückt in Meßz...
Reports / Metriken         • Umfang (LOC, Wiederverwendung,           Prozeduren, ...)         • Komplexität (McCabe)     ...
Reports / Metriken         • Sonar               – Integration in Maven und Eclipse               – Jenkins-Plugin        ...
Vielen Dank!Freitag, 13. Mai 2011                  35
Nächste SlideShare
Wird geladen in …5
×

Jax 2011-qs

774 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Jax 2011-qs

  1. 1. Open-Source-Werkzeugkasten für Software-QS 05.05.2011 | 10:15 - 11:15 Uhr | Zagrebsaal IFreitag, 13. Mai 2011 1
  2. 2. Speaker • Tobias Joch – inovex GmbH – Head of Solution Development – leichtgewichtige und hochskalierende (Web-) Anwendungen – CCDFreitag, 13. Mai 2011 2
  3. 3. Kurzer Überblick über das Thema QSFreitag, 13. Mai 2011 3
  4. 4. Ziel = Erfüllung der Qualitätsmerkmale • Korrektheit • Zuverlässigkeit • Robustheit • Effizienz • Benutzerfreundlichkeit • Wartbarkeit • Wiederverwendbarkeit • Portierbarkeit • Kompatibilität • VertrauenswürdigkeitFreitag, 13. Mai 2011 4
  5. 5. Agiler Prozess am Beispiel von Scrum 24 2-4Freitag, 13. Mai 2011 5
  6. 6. 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
  7. 7. 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
  8. 8. Inhalt des heute mitgebrachten WerkzeugkastenFreitag, 13. Mai 2011 8
  9. 9. 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
  10. 10. Unit-Tests • xUnit – JUnit • de facto Standard • DBUnit • XMLUnit • HTTPUnit • EJB3Unit • SpringJUnit4ClassRunner... – TestNGFreitag, 13. Mai 2011 10
  11. 11. 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
  12. 12. JUnit • IDE-IntegrationFreitag, 13. Mai 2011 12
  13. 13. 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
  14. 14. Test Coverage • Eclipse Plugins – djUnit – EclEmma • Reports – Cobertura – EmmaFreitag, 13. Mai 2011 14
  15. 15. Web-TestsFreitag, 13. Mai 2011 15
  16. 16. Web-Tests • Validatoren – Link Checker – HTML-Syntax, ... • Functional / Acceptance – Fitnesse – Selenium (Grid) – Windmill – Cucumber (rake, rspec) – Celerity, Watir, ...Freitag, 13. Mai 2011 16
  17. 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 17
  18. 18. 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
  19. 19. Performance- / Last-TestsFreitag, 13. Mai 2011 19
  20. 20. Performance- / Last-Tests • Apache – ab – JMeter • Grinder – GrinderStone • Tsung – Erlang – High Performance – Multi-ProtokollFreitag, 13. Mai 2011 20
  21. 21. JVM-Analyse Tools / TechnikenFreitag, 13. Mai 2011 21
  22. 22. 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
  23. 23. Build-Tools / CIFreitag, 13. Mai 2011 23
  24. 24. Build-Tools / CI • Build-Tools – Ant – Maven – Buildr – Gradle • CI – CruiseControl – Apache Continuum – Hudson => JenkinsFreitag, 13. Mai 2011 24
  25. 25. 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
  26. 26. Build-Tools / CI Jenkins • aktive Community • viele Plugins • einfache Verwaltung • http://www.wakaleo.com/books/ jenkins-the-definitive-guideFreitag, 13. Mai 2011 26
  27. 27. Build-Tools / CI Jenkins • Beispiel – http://ci.jenkins-ci.org/Freitag, 13. Mai 2011 27
  28. 28. Statische Code-AnalyseFreitag, 13. Mai 2011 28
  29. 29. 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
  30. 30. 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
  31. 31. Reports / MetrikenFreitag, 13. Mai 2011 31
  32. 32. 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
  33. 33. 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
  34. 34. Reports / Metriken • Sonar – Integration in Maven und Eclipse – Jenkins-Plugin • http://nemo.sonarsource.org/Freitag, 13. Mai 2011 34
  35. 35. Vielen Dank!Freitag, 13. Mai 2011 35

×