Your SlideShare is downloading. ×
0
Continuous Integration mit HudsonExpertenkreis Java, 15.04.2010, IPS GmbH HannoverDirk Weil, GEDOPLAN GmbH
Automatischer SoftwaretestTestgetriebeneSoftwareentw.2Test-automatisierung
Automatischer SoftwaretestExperimentelles Verfahren zum Test einer Anwendung(SUT = System Under Test)Zwei Zielsetzungen:Zw...
Ziele der TestautomatisierungExplizite und detaillierte Beschreibung des TestwissensEffiziente TestdurchführungReproduzier...
Unit TestsWeit verbreitetes Framework: JUnit 4Nutzt intensivAnnotationenBedingt Java 5public class MitarbeiterServiceTest{...
Test von Swing-GUIsAbbotFramework zum Test von Java-GUI-ElementenOpen Sourcehttp://abbot.sourceforge.nethttp://abbot.sourc...
Test von WebanwendungenSeleniumTestframework für Web-AnwendungenOpen SourceOpen Sourcehttp://seleniumhq.org/Record and Pla...
TestautomatisierungVoraussetzung: Projekt enthält ausführbare TestsJUnitSelenium, Abbot, …Build selbst ist auch ein Test!8
TestautomatisierungManuelle Ausführung reicht nichtbelastet des Entwicklungsprozesskeine (einheitliche) Veröffentlichung d...
TestautomatisierungAnforderungen an eine Build- und Test-UmgebungRegelmäßige, automatische Ausführungzeitgesteuert ("Daily...
TestautomatisierungCI-SystemInformArte-fakte11Entw.-UmgebungSCMCommit UpdateRe-ports
Hudson"Extensible Continuous Integration Engine"Build und Test von Software-ProjektenMonitoring von beliebigen JobsMonitor...
Installation und StartDownload von hudson.war von http://hudson-ci.org/Start …per Kommandozeile: java –jar hudson.warper K...
Job-Übersicht14
Zusammenfassung eines Jobs15
Zugriff auf Build-ErgebnisseJavadocGebaute ArtefakteUnittest-Ergebnisse(inkl. Drill-Down)16
BenachrichtigungenPer Mailnach jedem fehlgeschlagenen Buildnach erstem erfolgreichen Buildan Mail-Verteiler oder Verursach...
ErweiterbarkeitPlugin-KonzeptBenachrichtigungen (z.B. IRC)OberflächeBenutzerverwaltung (z.B. AD-Anbindung)Benutzerverwaltu...
Projekt-VoraussetzungenBuild per Cmd Lineant, mvn, make, shell, …Projekt komplett im SCMProjekt komplett im SCMalle Depend...
Erweiterungen: CheckstyleÜberprüft die Einhaltung von Konventionen im Java-Code.Maven-Plugin:Prüfung des CodesHudson-Plugi...
Erweiterungen: CoberturaPrüft die Code-Abdeckung durch TestsMaven-Plugin:Instumentierung des Codes,Instumentierung des Cod...
Erweiterungen: Extreme FeedbackProminente Darstellung des Build-StatusEmotional Mr. HudsonBlinklichtBlinklicht…22
Danke für Ihre Aufmerksamkeit!Haben Sie Fragen?
Upcoming SlideShare
Loading in...5
×

Softwarequalitätssicherung mit Continuous Integration Tools

185

Published on

Vortrag Java Expertenkreis 15.4.2010

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Transcript of " Softwarequalitätssicherung mit Continuous Integration Tools"

  1. 1. Continuous Integration mit HudsonExpertenkreis Java, 15.04.2010, IPS GmbH HannoverDirk Weil, GEDOPLAN GmbH
  2. 2. Automatischer SoftwaretestTestgetriebeneSoftwareentw.2Test-automatisierung
  3. 3. Automatischer SoftwaretestExperimentelles Verfahren zum Test einer Anwendung(SUT = System Under Test)Zwei Zielsetzungen:Zwei Zielsetzungen:Destruktiver Test: Im SUT möglichst viele Fehler aufdeckenDemonstrativer Test: Korrektheit des SUT demonstrierenEffiziente und kostensparende Test-Durchführung:Möglichst viele Test-Aktivitäten durch Werkzeuge unterstützenTest-Aktivitäten automatisiert ablaufen lassen3
  4. 4. Ziele der TestautomatisierungExplizite und detaillierte Beschreibung des TestwissensEffiziente TestdurchführungReproduzierbare TestergebnisseBeliebige Wiederholbarkeit von TestläufenBeliebige Wiederholbarkeit von TestläufenErhöhung der Software-QualitätEinsparung von Personal- und Sachkosten4
  5. 5. Unit TestsWeit verbreitetes Framework: JUnit 4Nutzt intensivAnnotationenBedingt Java 5public class MitarbeiterServiceTest{@BeforeClasspublic static void setUpBeforeClass(){Bedingt Java 5Gute Integrationin IDE, Maven, …5{… // Test-Fixture erzeugen}@Testpublic void testAddBerechtigung(){… // zu testende Funktionalität aufrufenAssert.assertEquals(…);}}
  6. 6. Test von Swing-GUIsAbbotFramework zum Test von Java-GUI-ElementenOpen Sourcehttp://abbot.sourceforge.nethttp://abbot.sourceforge.netRecord and PlayEditor für GUI-SkriptsEinbindung in JUnit möglich6
  7. 7. Test von WebanwendungenSeleniumTestframework für Web-AnwendungenOpen SourceOpen Sourcehttp://seleniumhq.org/Record and Play viaBrowser-PluginIntegrierbar in JUnit7
  8. 8. TestautomatisierungVoraussetzung: Projekt enthält ausführbare TestsJUnitSelenium, Abbot, …Build selbst ist auch ein Test!8
  9. 9. TestautomatisierungManuelle Ausführung reicht nichtbelastet des Entwicklungsprozesskeine (einheitliche) Veröffentlichung der Ergebnissekeine (einheitliche) Eskalation bei Fehlernkeine (einheitliche) Eskalation bei Fehlern9Bei mir läufts! Oh, sorry – das habeich noch nichteingecheckt.An dem Teil habe ichnichts gemacht!
  10. 10. TestautomatisierungAnforderungen an eine Build- und Test-UmgebungRegelmäßige, automatische Ausführungzeitgesteuert ("Daily Build")durch Check-In getriggert…Kompletter BuildAusführung aller TestsGgf. Qualitätsprüfung (Style, Coverage, …)ReportingBenachrichtigung10
  11. 11. TestautomatisierungCI-SystemInformArte-fakte11Entw.-UmgebungSCMCommit UpdateRe-ports
  12. 12. Hudson"Extensible Continuous Integration Engine"Build und Test von Software-ProjektenMonitoring von beliebigen JobsMonitoring von beliebigen JobsEinfache Installation und KonfigurationUmfangreiche Werkzeugunterstützung "out-of-the-Box"SVN, CVSant, mvn, shelljavadoc, junit, …12
  13. 13. Installation und StartDownload von hudson.war von http://hudson-ci.org/Start …per Kommandozeile: java –jar hudson.warper Kommandozeile: java –jar hudson.warals Deployment in JBoss, Tomcat, …Bedienung per Browser auf http://host:8080[/hudson]13
  14. 14. Job-Übersicht14
  15. 15. Zusammenfassung eines Jobs15
  16. 16. Zugriff auf Build-ErgebnisseJavadocGebaute ArtefakteUnittest-Ergebnisse(inkl. Drill-Down)16
  17. 17. BenachrichtigungenPer Mailnach jedem fehlgeschlagenen Buildnach erstem erfolgreichen Buildan Mail-Verteiler oder Verursacheran Mail-Verteiler oder Verursacher17
  18. 18. ErweiterbarkeitPlugin-KonzeptBenachrichtigungen (z.B. IRC)OberflächeBenutzerverwaltung (z.B. AD-Anbindung)Benutzerverwaltung (z.B. AD-Anbindung)Build-AuslöserBerichte (z.B. Checkstyle, Cobertura, PMD)Build-WerkzeugeVersionsverwaltung…18
  19. 19. Projekt-VoraussetzungenBuild per Cmd Lineant, mvn, make, shell, …Projekt komplett im SCMProjekt komplett im SCMalle Dependencies verfügbarauch im SCMper Maven o.ä.19
  20. 20. Erweiterungen: CheckstyleÜberprüft die Einhaltung von Konventionen im Java-Code.Maven-Plugin:Prüfung des CodesHudson-Plugin:Hudson-Plugin:Sammeln und Darstellender PrüfergebnisseTrendDrill-Down20
  21. 21. Erweiterungen: CoberturaPrüft die Code-Abdeckung durch TestsMaven-Plugin:Instumentierung des Codes,Instumentierung des Codes,Testausführung.Hudson-Plugin:Sammeln und Darstellender PrüfergebnisseTrendDrill-Down21
  22. 22. Erweiterungen: Extreme FeedbackProminente Darstellung des Build-StatusEmotional Mr. HudsonBlinklichtBlinklicht…22
  23. 23. Danke für Ihre Aufmerksamkeit!Haben Sie Fragen?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×