• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
 Softwarequalitätssicherung mit Continuous Integration Tools
 

Softwarequalitätssicherung mit Continuous Integration Tools

on

  • 216 views

Vortrag Java Expertenkreis 15.4.2010

Vortrag Java Expertenkreis 15.4.2010

Statistics

Views

Total Views
216
Views on SlideShare
216
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

     Softwarequalitätssicherung mit Continuous Integration Tools Softwarequalitätssicherung mit Continuous Integration Tools Presentation Transcript

    • 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: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
    • 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
    • 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(…);}}
    • 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
    • Test von WebanwendungenSeleniumTestframework für Web-AnwendungenOpen SourceOpen Sourcehttp://seleniumhq.org/Record and Play viaBrowser-PluginIntegrierbar in JUnit7
    • 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 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!
    • 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
    • TestautomatisierungCI-SystemInformArte-fakte11Entw.-UmgebungSCMCommit UpdateRe-ports
    • 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
    • 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
    • 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 Verursacheran Mail-Verteiler oder Verursacher17
    • 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
    • Projekt-VoraussetzungenBuild per Cmd Lineant, mvn, make, shell, …Projekt komplett im SCMProjekt komplett im SCMalle Dependencies verfügbarauch im SCMper Maven o.ä.19
    • 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
    • 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
    • Erweiterungen: Extreme FeedbackProminente Darstellung des Build-StatusEmotional Mr. HudsonBlinklichtBlinklicht…22
    • Danke für Ihre Aufmerksamkeit!Haben Sie Fragen?