Jax 2011-qs

  • View
    339

  • Download
    1

Embed Size (px)

Transcript

  1. 1. Open-Source-Werkzeugkasten fr Software-QS05.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 dasThema QSFreitag, 13. Mai 20113
  4. 4. Ziel = Erfllung derQualittsmerkmale Korrektheit Zuverlssigkeit Robustheit Effizienz Benutzerfreundlichkeit Wartbarkeit Wiederverwendbarkeit Portierbarkeit Kompatibilitt VertrauenswrdigkeitFreitag, 13. Mai 20114
  5. 5. Agiler Prozess am Beispielvon Scrum 24 2-4Freitag, 13. Mai 20115
  6. 6. QS im SDLCTracking Specs BDDAnalyse g De /BusigCRn TDDMonitoring CIxUnit Wa l.prtu Im Pair-nSystemtestsProgramming gDeliveryMetriken UATPen-TestsReviewsIntegrationstestsManuellFreitag, 13. Mai 20116
  7. 7. Abgrenzung / Scope Umfangreiches Thema Konzentration auf die fr Java-(Web-) Entwicklung relevantesten Tools und Frameworks kein Anspruch auf VollstndigkeitFreitag, 13. Mai 20117
  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 201110
  11. 11. JUnit XP / TDD Kent Beck, Erich Gamma passed failed failure error grn = Fehlerfrei? nur so viel testen bis es "grn" ist Antipattern! Autor Code & Test identischhttp://www.junit.org/Freitag, 13. Mai 2011 11
  12. 12. JUnit IDE-IntegrationFreitag, 13. Mai 201112
  13. 13. Test Double Test Stub Hand geschriebenes Objekt fr 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 201113
  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 fr Java(und viele weitere Sprachen fr die JVM) cuke4duke 0.4.3 Feature: Hello JAX 2011Scenario: Say Hello to the JAX 2011Given I have a skeleton web applicationWhen I open the home pageThen the page heading should be "Hello JAX 2011!"Freitag, 13. Mai 201117
  18. 18. Web-Tests Cucumber fr Java(und viele weitere Sprachen fr die JVM) cuke4duke 0.4.3 Feature: Hello JAX 2011Scenario: Say Hello to the JAX 2011Given I have a skeleton web applicationWhen I open the home pageThen the page heading should be "Hello JAX 2011!"Freitag, 13. Mai 201118
  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 fr 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 201123
  24. 24. Build-Tools / CI Build-Tools Ant Maven Buildr Gradle CI CruiseControl Apache Continuum Hudson => JenkinsFreitag, 13. Mai 201124
  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 201125
  26. 26. Build-Tools / CIJenkins aktive Community viele Plugins einfache Verwaltung http://www.wakaleo.com/books/ jenkins-the-definitive-guideFreitag, 13. Mai 201126
  27. 27. Build-Tools / CI Jenkins Beispiel http://ci.jenkins-ci.org/Freitag, 13. Mai 201127
  28. 28. Statische Code-AnalyseFreitag, 13. Mai 201128
  29. 29. Statische Code-Analyse oder auch linting genannt (Lint) formaler Prfung Quelltext Bytecode manuell oder automatisch einfachen Coding-Standards Prfung 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 201131
  32. 32. Reports / Metriken Formale Vergleichs- und Bewertungsmglichkeiten ausgedrckt in Mezahlen interpretierbar als der Erfllungsgrad einer Qualittseigenschaft Indikation fr den Zustand der SW Wartbarkeit, Erweiterbarkeit,VerstndlichkeitFreitag, 13. Mai 2011 32
  33. 33. Reports / Metriken Umfang (LOC, Wiederverwendung, Prozeduren, ...) Komplexitt (McCabe) Lesbarkeit (Stil) Entwurfsqualitt (Modularitt, Kohsion, Kopplung, ...) Produktqualitt (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 201135