Softwarequalitätssicherungmit Continuous Integration ToolsTreffpunkt Semicolon, 26.10.2010, GFU Cyrus AGDirk Weil, GEDOPLA...
Entwicklung von Informationssystemen30+ Jahre am Markt~35 MitarbeiterBeratung und EntwicklungMaßgeschneiderte Lösungen    ...
Seit 1998 im Bereich Java:   100+ Beratungs- und Entwicklungsprojekte   Konzeption und Entwicklung   30+ Seminartitel für ...
IT-Systeme und ProzesseBeratung, Schulung, Entwicklung80+ Mitarbeiterwww.involva-gruppe.de
Automatischer Softwaretest                                  Testgetriebene                                  Softwareentw. ...
Automatischer Softwaretest  Experimentelles Verfahren zum Test einer Anwendung  (SUT = System Under Test)  Zwei Zielsetzun...
Ziele der Testautomatisierung  Explizite und detaillierte Beschreibung des Testwissens  Effiziente Testdurchführung  Repro...
Unit Tests  Weit verbreitetes Framework: JUnit 4    Nutzt intensiv        public class MitarbeiterServiceTest    Annotatio...
Test von Swing-GUIs  Abbot     Framework zum Test von Java-GUI-Elementen     Open Source     http://abbot.sourceforge.net ...
Test von Webanwendungen  Selenium      Testframework für Web-      Anwendungen      Open Source      http://seleniumhq.org...
Continuous Integration  Voraussetzung: Projekt enthält ausführbare Tests     JUnit     Selenium, Abbot, …  Build selbst is...
Continuous Integration  Manuelle Ausführung reicht nicht    belastet den Entwicklungsprozess    keine (einheitliche) Veröf...
Continuous Integration  Anforderungen an eine Build- und Test-Umgebung     Regelmäßige, automatische Ausführung        zei...
Continuous Integration                         14
Continuous Integration                                                 Arte-                         Inform               ...
Hudson  "Extensible Continuous Integration Engine"  Build und Test von Software-Projekten  Monitoring von beliebigen Jobs ...
Installation und Start  Download von hudson.war von http://hudson-ci.org/  Start …     per Kommandozeile: java –jar hudson...
Job-Übersicht                18
Zusammenfassung eines Jobs                             19
Zugriff auf Build-Ergebnisse                               Javadoc                               Gebaute Artefakte        ...
Benachrichtigungen  Per Mail      nach jedem fehlgeschlagenen Build      nach erstem erfolgreichen Build      an Mail-Vert...
Erweiterbarkeit                                       Plugins                                       Core       2006       ...
Erweiterbarkeit  Plugin-Konzept     Benachrichtigungen        IRC, Jabber, Twitter, …     Oberfläche        Emotical Hudso...
Erweiterbarkeit  Plugin-Konzept     Build-Werkzeuge         Buckminster, Gradle, Rake, …     Quellcodeverwaltung         C...
Projekt-Voraussetzungen  Build per Cmd Line     ant, mvn, make, shell, …  Projekt komplett im SCM  alle Dependencies verfü...
Erweiterungen: Checkstyle  Überprüft die Einhaltung von Konventionen im Java-Code.  Maven-Plugin:  Prüfung des Codes  Huds...
Erweiterungen: Cobertura  Prüft die Code-Abdeckung durch Tests  Maven-Plugin:  Instumentierung des Codes,  Testausführung....
Erweiterungen: Extreme Feedback  Prominente Darstellung des Build-Status  Emotional Mr. Hudson  Builderlein  …            ...
Weitere Features                                     S  Verteiltes Build                      M              S            ...
Danke für Ihre Aufmerksamkeit!      Haben Sie Fragen?
Nächste SlideShare
Wird geladen in …5
×

Softwarequalitätssicherung mit Continuous Integration Tools

2.099 Aufrufe

Veröffentlicht am

Kurzbeschreibung

Automatische Softwaretests rücken immer mehr in den Mittelpunkt. Gerade die derzeit vielfach eingesetzten agilen Vorgehensweisen benötigen ein teamübergreifendes und reproduzierbares Verfahren zur Sicherung der Softwarequalität. In diesem Vortrag legt Dirk Weil, Geschäftsführer der GEDOPLAN GmbH aus Bielefeld, das Augenmerk auf die Werkzeuge, die in Java-Projekten zum fortlaufenden Build und Test von Software genutzt werden können. Anhand einiger Praxisbeispiele zeigt er den Aufbau und Betrieb einer Continuous-Integration-Umgebung, die GEDOPALN für Softwareprojekte betreibt. Dozent: Dirk Weil, Gedoplan

Inhalt

- Grundlagen und Motivation automatischer Softwaretests
- Testziele und Verfahren (Unit-Tests, Regressionstests, Akzeptanztests etc.)
- Build- und Testautomatisierung
- Beispielumgebung auf Basis von Ant, Maven, Subversion und Hudson
- Code-Analyse
- Extreme Feedback

Veröffentlicht in: Technologie
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
2.099
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
30
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Softwarequalitätssicherung mit Continuous Integration Tools

  1. 1. Softwarequalitätssicherungmit Continuous Integration ToolsTreffpunkt Semicolon, 26.10.2010, GFU Cyrus AGDirk Weil, GEDOPLAN GmbH
  2. 2. Entwicklung von Informationssystemen30+ Jahre am Markt~35 MitarbeiterBeratung und EntwicklungMaßgeschneiderte Lösungen GEDOPLANStandardsoftware Archi- Entwick- Analyse tektur lung SAP® Java
  3. 3. Seit 1998 im Bereich Java: 100+ Beratungs- und Entwicklungsprojekte Konzeption und Entwicklung 30+ Seminartitel für Seminarpartner Java / Java EE GEDOPLAN Diverse App.-Server Glassfish Archi- Entwick- IBM WebSphere Analyse tektur lung JBoss Oracle WebLogic SAP® SAP NetWeaver Java
  4. 4. IT-Systeme und ProzesseBeratung, Schulung, Entwicklung80+ Mitarbeiterwww.involva-gruppe.de
  5. 5. Automatischer Softwaretest Testgetriebene Softwareentw. Test- automatisierung 5
  6. 6. Automatischer Softwaretest Experimentelles Verfahren zum Test einer Anwendung (SUT = System Under Test) Zwei Zielsetzungen: Destruktiver Test: Im SUT möglichst viele Fehler aufdecken Demonstrativer Test: Korrektheit des SUT demonstrieren Effiziente und kostensparende Test-Durchführung: Möglichst viele Test-Aktivitäten durch Werkzeuge unterstützen Test-Aktivitäten automatisiert ablaufen lassen 6
  7. 7. Ziele der Testautomatisierung Explizite und detaillierte Beschreibung des Testwissens Effiziente Testdurchführung Reproduzierbare Testergebnisse Beliebige Wiederholbarkeit von Testläufen Erhöhung der Software-Qualität Einsparung von Personal- und Sachkosten 7
  8. 8. Unit Tests Weit verbreitetes Framework: JUnit 4 Nutzt intensiv public class MitarbeiterServiceTest Annotationen { @BeforeClass Bedingt Java 5 public static void setUpBeforeClass() { Gute Integration … // Test-Fixture erzeugen } in IDE, Maven, … @Test public void testAddBerechtigung() { … // zu testende Funktionalität aufrufen Assert.assertEquals(…); } } 8
  9. 9. Test von Swing-GUIs Abbot Framework zum Test von Java-GUI-Elementen Open Source http://abbot.sourceforge.net Record and Play Editor für GUI-Skripts Einbindung in JUnit möglich 9
  10. 10. Test von Webanwendungen Selenium Testframework für Web- Anwendungen Open Source http://seleniumhq.org/ Record and Play via Browser-Plugin Integrierbar in JUnit 10
  11. 11. Continuous Integration Voraussetzung: Projekt enthält ausführbare Tests JUnit Selenium, Abbot, … Build selbst ist auch ein Test! 11
  12. 12. Continuous Integration Manuelle Ausführung reicht nicht belastet den Entwicklungsprozess keine (einheitliche) Veröffentlichung der Ergebnisse keine (einheitliche) Eskalation bei Fehlern An dem Teil habe ich nichts gemacht! Bei mir läufts! Oh, sorry – das habe ich noch nicht eingecheckt. 12
  13. 13. Continuous Integration Anforderungen an eine Build- und Test-Umgebung Regelmäßige, automatische Ausführung zeitgesteuert ("Daily Build") durch Check-In getriggert … Kompletter Build Ausführung aller Tests Ggf. Qualitätsprüfung (Style, Coverage, …) Reporting Benachrichtigung 13
  14. 14. Continuous Integration 14
  15. 15. Continuous Integration Arte- Inform fakte CI-System Checkout Entw.-Umgebung Re- ports Checkout Commit SCM 15
  16. 16. Hudson "Extensible Continuous Integration Engine" Build und Test von Software-Projekten Monitoring von beliebigen Jobs Einfache Installation und Konfiguration Umfangreiche Werkzeugunterstützung "out-of-the-Box" SVN, CVS ant, mvn, shell javadoc, junit, … 16
  17. 17. Installation und Start Download von hudson.war von http://hudson-ci.org/ Start … per Kommandozeile: java –jar hudson.war als Deployment in JBoss, Tomcat, … Bedienung per Browser auf http://host:8080[/hudson] 17
  18. 18. Job-Übersicht 18
  19. 19. Zusammenfassung eines Jobs 19
  20. 20. Zugriff auf Build-Ergebnisse Javadoc Gebaute Artefakte Unittest-Ergebnisse (inkl. Drill-Down) 20
  21. 21. Benachrichtigungen Per Mail nach jedem fehlgeschlagenen Build nach erstem erfolgreichen Build an Mail-Verteiler oder Verursacher 21
  22. 22. Erweiterbarkeit Plugins Core 2006 2007 2008 2009 22
  23. 23. Erweiterbarkeit Plugin-Konzept Benachrichtigungen IRC, Jabber, Twitter, … Oberfläche Emotical Hudson, Green Balls, … Benutzerverwaltung Active Directory, LDAP, … Berichte Checkstyle, Cobertura, Crap4J, FindBugs, PMD, … 23
  24. 24. Erweiterbarkeit Plugin-Konzept Build-Werkzeuge Buckminster, Gradle, Rake, … Quellcodeverwaltung ClearCase, Git, PVCS, Visual Sourcesafe, … Artefaktverteilung FTP, SCP, … … 24
  25. 25. Projekt-Voraussetzungen Build per Cmd Line ant, mvn, make, shell, … Projekt komplett im SCM alle Dependencies verfügbar auch im SCM per Maven o.ä. 25
  26. 26. Erweiterungen: Checkstyle Überprüft die Einhaltung von Konventionen im Java-Code. Maven-Plugin: Prüfung des Codes Hudson-Plugin: Sammeln und Darstellen der Prüfergebnisse Trend Drill-Down 26
  27. 27. Erweiterungen: Cobertura Prüft die Code-Abdeckung durch Tests Maven-Plugin: Instumentierung des Codes, Testausführung. Hudson-Plugin: Sammeln und Darstellen der Prüfergebnisse Trend Drill-Down 27
  28. 28. Erweiterungen: Extreme Feedback Prominente Darstellung des Build-Status Emotional Mr. Hudson Builderlein … 28
  29. 29. Weitere Features S Verteiltes Build M S S Matrix Build Derby Oracle JBoss MySQL 29
  30. 30. Danke für Ihre Aufmerksamkeit! Haben Sie Fragen?

×