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?
Nächste SlideShare
Wird geladen in …5
×

Softwarequalitätssicherung mit Continuous Integration Tools

318 Aufrufe

Veröffentlicht am

Vortrag Java Expertenkreis 15.4.2010

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
318
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1
Aktionen
Geteilt
0
Downloads
6
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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?

×