Your SlideShare is downloading. ×
0
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Jax 2011-qs
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Jax 2011-qs

327

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
327
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Open-Source-Werkzeugkasten für Software-QS 05.05.2011 | 10:15 - 11:15 Uhr | Zagrebsaal IFreitag, 13. Mai 2011 1
  • 2. Speaker • Tobias Joch – inovex GmbH – Head of Solution Development – leichtgewichtige und hochskalierende (Web-) Anwendungen – CCDFreitag, 13. Mai 2011 2
  • 3. Kurzer Überblick über das Thema QSFreitag, 13. Mai 2011 3
  • 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. Agiler Prozess am Beispiel von Scrum 24 2-4Freitag, 13. Mai 2011 5
  • 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. 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. Inhalt des heute mitgebrachten WerkzeugkastenFreitag, 13. Mai 2011 8
  • 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. Unit-Tests • xUnit – JUnit • de facto Standard • DBUnit • XMLUnit • HTTPUnit • EJB3Unit • SpringJUnit4ClassRunner... – TestNGFreitag, 13. Mai 2011 10
  • 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. JUnit • IDE-IntegrationFreitag, 13. Mai 2011 12
  • 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. Test Coverage • Eclipse Plugins – djUnit – EclEmma • Reports – Cobertura – EmmaFreitag, 13. Mai 2011 14
  • 15. Web-TestsFreitag, 13. Mai 2011 15
  • 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. 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. 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. Performance- / Last-TestsFreitag, 13. Mai 2011 19
  • 20. Performance- / Last-Tests • Apache – ab – JMeter • Grinder – GrinderStone • Tsung – Erlang – High Performance – Multi-ProtokollFreitag, 13. Mai 2011 20
  • 21. JVM-Analyse Tools / TechnikenFreitag, 13. Mai 2011 21
  • 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. Build-Tools / CIFreitag, 13. Mai 2011 23
  • 24. Build-Tools / CI • Build-Tools – Ant – Maven – Buildr – Gradle • CI – CruiseControl – Apache Continuum – Hudson => JenkinsFreitag, 13. Mai 2011 24
  • 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. Build-Tools / CI Jenkins • aktive Community • viele Plugins • einfache Verwaltung • http://www.wakaleo.com/books/ jenkins-the-definitive-guideFreitag, 13. Mai 2011 26
  • 27. Build-Tools / CI Jenkins • Beispiel – http://ci.jenkins-ci.org/Freitag, 13. Mai 2011 27
  • 28. Statische Code-AnalyseFreitag, 13. Mai 2011 28
  • 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. 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. Reports / MetrikenFreitag, 13. Mai 2011 31
  • 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. 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. Reports / Metriken • Sonar – Integration in Maven und Eclipse – Jenkins-Plugin • http://nemo.sonarsource.org/Freitag, 13. Mai 2011 34
  • 35. Vielen Dank!Freitag, 13. Mai 2011 35

×