Continuous Integration als Garant für hohe SW-Qualität

Größe: px
Ab Seite anzeigen:

Download "Continuous Integration als Garant für hohe SW-Qualität"

Transkript

1 Continuous Integration als Garant für hohe SW-Qualität Hochschule Neu-Ulm

2 msg systems auf einen Blick Unternehmensgruppe International Unabhängig Über Mitarbeiter Umsatz: 583 Millionen (2013) Gründungsjahr: 1980 Ausgezeichneter Ruf als versierter Branchenspezialist Automotive, Financial Services, Insurance, Life Science & Healthcare, Public Sector, Telecommunications & Media, Travel & Logistics, Utilities Intelligente Branchenlösungen Platz 7 unter den erfolgreichsten deutschen IT- Beratungs- und Systemintegrationsunternehmen Ganzheitliche Unterstützung unserer Kunden durch... klare Branchenfokussierung einfallsreiche Beratung und intelligente Branchenlösungen konsequente Kunden- und Lösungsorientierung partnerschaftliche Zusammenarbeit Wir sind konsequent auf Wachstumskurs 2 Branche Automotive msg systems ag, 27. Januar 2015

3 msg systems - Automotive Die Branche Automotive ist seit langem erfolgreich bei den deutschen Automobilherstellern etabliert. Langjähriger, verlässlicher Partner in Beratungs-, Entwicklungs- und Integrationsprojekten Über 500 versierte Mitarbeiter in Deutschland, Rumänien und China mit einer anerkannten Expertise in den Automotive Kernprozessen Als erfolgreiches mittelständisches Unternehmen sind wir dort, wo unsere Kunden sind 3 Branche Automotive msg systems ag, 27. Januar 2015

4 Branche Automotive Leistungsportfolio Wir bringen durch unsere Leistungen Projekte voran und realisieren in unseren Fokusthemen Lösungen mit einem hohen Kundennutzen. Marketing & Sales Qualität Supply Chain Management Product Lifecycle Management Prozesskette Elektrik / Elektronik Entwicklung & Absicherung Unsere Fokusthemen sind die Standbeine unseres Geschäfts. langjährige Projekterfahrung Partnerschaften mit Universitäten und Lehrstühlen > 500 qualifizierte Mitarbeiter in einer Kundenund Themenfokussierten Organisation marktführende Position Fokusthemen Lösungen Leistungen 4 Branche Automotive msg systems ag, 27. Januar 2015

5 Hochschulpate für die HNU Sucht Ihr eine Praxissemesterstelle Werkstudententätigkeit Abschlussarbeit Einsatz von KANBAN in IT-Projekten, Modelle zur Identifikation von Aufwänden und Störfaktoren Arbeitsstelle [ Your msg ]? oder möchtet ihr sonst etwas von einem ehemaligen HNU-Studenten wissen? Stefan Barth msg systems ag, 27. Januar 2015

6 Vielen Dank für Ihre Aufmerksamkeit! Michael Theis msg systems ag Automotive / Lead IT Consultant phone: mobile: Eigene Auftritte: web: XING: LinkedIn: 6

7 Bevor wir starten... Dies ist kein Monolog! Es gibt keine dummen Fragen! Exakten Ablauf bestimmen Sie! Alle Ausführungen werden mit einer Eclipse-Anwendung demonstriert! Komplette Tool-Suite für Continuous Integration wird mitgeliefert! 7

8 Inhalt 1. Einführung 2. Continuous Integration Tools im Überblick 3. Versionverwaltung mit Git 4. Bauen mit Maven 5. Maven-Builds für Eclipse mit Tycho 6. Jenkins als Continuous Integration Server 7. Automatisiertes Testen 8. Softwarequalität messen mit SonarQube 9. Zusammenfassung 8

9 Einführung 9

10 Was ist Continuous Integration (CI)? Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Quelle: Martin Fowler Continuous Integration abgerufen am

11 Alle großen deutschen Automobilhersteller setzen CI ein... 11

12 ... und wir natürlich auch 12

13 Warum sollte ich Continuous Integration anwenden? Reduziertes Risiko durch zeitnahe Integration CI verhindert keine Bugs, hilft sie aber zeitnah zu erkennen und zu beheben Fehler können sich nicht erst ansammeln sondern werden sofort behandelt Fehleranzahl nimmt dramatisch ab (insbesondere in Produktion) Reduzierte manuelle Prozesse Erzeugen von verteilbarer Software zu jeder Zeit Automatisierte Verteilung (Deployment) erleichtert häufige Releases Neue Features können schnell in Produktion gebracht werden Schnelles Feedback zwischen Kunden und Entwicklung Schnelle Reaktion auf Produktionsprobleme Mögliche Fehlerquellen während des Deployments werden minimiert Sichtbarkeit des Projektstatus nimmt zu Schaffen von Vertrauen 13

14 CI im Schnelldurchgang (2) Ändern (1) Check-Out (3) Aktualisieren (5) Check-In Version Control System (4) Bauen (10) Benachrichtigen (6) Erkenne Check-In (7) Check-Out (8) Bauen Continuous Integration Server (9) Verteilen Produkt Build Server Integrationsumgebung 14

15 Glossar: Build Reihenfolge von Aktivitäten zum automatisierten Kompilieren, Testen, Analysieren und Verteilen von Software Können lokal und zentral ausgeführt werden Basieren auf einem Build-Skript Quellcode auschecken Quellcode kompilieren Datenbank integrieren Tests ausführen Analysen ausführen Software verteilen Zentraler Build Quellcode aktualisieren Quellcode kompilieren Datenbank integrieren Tests ausführen Lokaler Build 15

16 Praktiken für Continuous Integration Alle Sourcen in einem Repository (= Versionshaltungssystem) Automatisieren Sie den Build Machen Sie Ihren Build selbst-testend Vor jedem Check-In wird lokal gebaut Jeder checkt Änderungen mindestens einmal täglich ein Jeder Check-In stößt einen zentralen Build an Fehlgeschlagene Builds sind sofort zu beheben Halten Sie den Build schnell Testen Sie in einem Klon der Produktionsumgebung Jeder kann sehen was passiert Machen Sie es jedem leicht, sich das letzte Buildergebnis zu besorgen Automatisieren Sie die Verteilung (Deployment) Rollback muss jederzeit möglich sein 16

17 Voraussetzungen Zentrale Versionsverwaltung enthält nicht nur Quellcode Hohe Testabdeckung der wesentlichen Funktionen Hohe Disziplin im Team Check-In erst nach lokalem Build Häufiger Check-In (mindestens einmal täglich) Fehlgeschlagene Builds betreffen ALLE im Team Bestimmen eines Build-Managers 17

18 Software besteht aus mehr als Quellcode Quellcode Third-Party-Bibliotheken (JARs, LIBs, DLLs) Konfigurationsdateien Datenbank-Skripte Build-Skripte und Konfigurationsdateien Installations-Skripte All diese Artefakte müssen in die gleiche Versionsverwaltung! 18

19 Herausforderungen Betriebliche Vorgaben verhindern Automatisierung Automatische Integration der Datenbank (insbesondere für Testläufe) Automatische Integrationstests gegen vollständige installierte Software (inklusive Fremdsysteme) Tests in produktionsähnlichen Umgebungen 19

20 Continuous Integration Tools 20

21 Typische Bebauung einer CI-Landschaft Maven, Ant, Ivy, Gradle, Skripte Build Tool JUnit, Arquillian, SWTBot, Jubula Jenkins, Bamboo, Cruise Control baut mit testet mit Test Tool Versionsverwaltung überwacht / checkt aus Continuous Integration Server analysiert mit Analyse Tool FindBugs, Checkstyle, PMD, SonarQube Subversion, Git verteilt nach legt Artefakte ab / bezieht Artefakte von JEE Application Server, Fileshare Zielumgebung Artefakt- Repository Nexus, Artifactory 21

22 Versionsverwaltung mit Git git: engl. Blödmann; unangenehmer Zeitgenosse 22

23 Git Facts Git (http://git-scm.com): kommandozeilen-orientiertes, freies Versionsverwaltungssystem 2005 entwickelt von Linus Torvald u.a. für die Entwicklung von Linux Verteiltes Versionsverwaltungssystem (DVCS) ohne zentralen Server ausgelegt für: Geschwindigkeit Einfaches Design Starke Unterstützung für nicht-lineare Entwicklung Vollständig verteilt Effiziente Verwaltung großer Projekte wie den Linux-Kernel Hervorragend geeignet für verteilte Teams Inzwischen verbreiteter als Subversion 23

24 Verteilte Versionsverwaltung im Schnelldurchgang init add, rm commit lokales Repo Bob add, rm commit lokales Repo gemeinsames Repo Alice Alle Repositories sind gleichwertig! Gemeinsames, zentral gehostetes Repository ist kein MUSS (aber für CI erforderlich!) 24

25 Die wichtigste Git-Befehle Befehl init add rm commit clone push pull status Bedeutung Legt ein neues Repository an Fügt dem Repository eine neue Datei hinzu Entfernt eine Datei aus dem Repository Übernimmt alle Änderungen ins Repository Erstellt einen Klon eines bestehenden Repositories Übernimmt alle Änderungen von einem (lokalen) Quell- Repository in ein (entferntes) Ziel-Repository Übernimmt alle Änderungen von einem (entfernten) Quell- Repository in ein (lokales) Ziel-Repository Zeigt alle Änderungen im Repository an 25

26 Demo 26

27 Bauen mit Maven Maven: (hebräisch-jiddisch) Sammler des Wissens, der sein Wissen weitergibt 27

28 Maven Facts Kommandozeilen-basiertes Build-Management-Tool (http://maven.apache.org/) Defacto-Standard in der Java-Welt Beinhaltet umfangreiches Abhängigkeitenmanagement Benötigte Artefakte werden aus Artefakt-Repositories bezogen Genaute Artefakte werden in Artefakt-Repositories hochgeladen Leicht erweiterbar durch Plugin-Architektur (MOJO) Unterstützt komplexe Multi-Modul-Projekte Schafft Einheitlichkeit durch verpflichtende Konventionen Modell-basierter Build ermöglicht Generierung verschiedenster Artefakte Release-Management und Veröffentlichung von Auslieferungen eingebaut Tests werden automatisch mit jedem Build ausgeführt 28

29 Artefakte und ihre Koordinaten Maven-Universum besteht aus Artefakten Artefakte werden über ihre Maven-Koordinaten eindeutig identifiziert Pro Artefakt existiert meist ein Maven-Projekt Notation einer Maven-Koordinate groupid : artefactid : packaging : classifier : version Bestandteile einer Maven-Koordinate groupid artefactid packaging classifier version Eindeutige Gruppen-ID Meist Kombination Hersteller/Produkt Eindeutige Artefakt-ID Meist Maven- Projektname Artefakt-Typ (JAR/WAR/EAR) Optionale zusätzliche Klassifizierung Versionsnummer des Artefaktes 29

30 Maven Projekte Repräsentiert durch ein Verzeichnis mit standardisierter Struktur Name des Verzeichnisses entspricht Artefakt-ID Projektmodell definiert durch Project Object Model (POM) in XML-Datei pom.xml POM beinhaltet alle Informationen zum Bauen Können hierarchisch organisiert sein Parent-Projekt vererbt Modell an seine Kinder (Inheritance) Aggregator- oder Multi-Module-Projekt aggregiert Modul-Projekte zu einer Baueinheit (Composition) Kombination aus beidem Maven Parent Maven Aggregator Maven Child A Maven Child B 1..* Maven Module Vererbungsbeziehung Aggregationsbeziehung 30

31 Buildergebnisse Quelldateien für Build Einheitliche Verzeichnisstruktur /[Projektname] Wurzelverzeichnis des Projektes pom.xml Projekt Object Model /src Verzeichnis für Quelldateien (= Build-Input) /main /java Java-Quelldateien des Projektes /resources Sonstige Ressource-Dateien des Projektes /filters Filter-Definitions-Dateien /assembly Assembly-Deskriptoren /config Konfigurationsdateien /scripts Skriptdateien /webapp Ressource-Dateien bei Webapplikationen /test /java Quelldateien für Testklassen /resources Ressource-Dateien für die Testausführung /filters Filter-Definitionen für Testklassen /site Quelldateien für die Projekt-Webseite /doc Sonstige Dokumentation /target Verzeichnis für Build-Ergebnisse (=Build-Output) /classes Kompilierte Java-Klassen und Ressourcen /test-classes Kompilierte Test-Klassen und Ressourcen /... Weitere gebaute Artefakte 31

32 Project Object Model Definiert Maven-Koordinaten des zu bauenden Artefaktes Beinhaltet alle notwendigen Informationen über das Projekt Konfiguriert alle für den Build notwendigen Plug-Ins Bestimmt die Abhängigkeiten zu benötigten Artefakten Gibt die Abhängigkeiten zu anderen Projekten an (Parent/Module) Legt die Umgebung für Build, Release-Management und Verteilung fest 32

33 Dependency Management und Repositories Benötigte Artefakte werden aus Artefakt-Repositories heruntergeladen Gebaute Artefakte werden in Artefakt-Repositories hochgeladen Entwickler rechner Firewall lokales Repo Maven Server LAN Server Internet globales Repo privates Repo 33

34 Lebenszyklus eines Maven-Builds Jeder Maven-Build durchläuft einen Lebenszyklus mit Phasen Pro Phase werden bestimmte Plugins ausgeführt (compile -> compiler-plugin) validate processtestsources generatetestresources postintegrationtest verify initialize generatetestsources processtestresources integrationtest install generatesources processclasses testcompile preintegrationtest deploy processsources compile processtestclasses package generateresources processresources test preparepackage 34 Hauptphasen Nebenphasen

35 Demo 35

36 Maven-Builds für Eclipse mit Tycho Tycho: einer der bedeutendsten Mondkrater benannt nach dem dänischen Astronomen Tycho Brahe. 36

37 Wofür brauche ich Tycho? Eclipse-Plattform bietet alles fürs Bauen von Eclipse-Applikationen Kommandozeilen-basierter PDE-Build Build-Metadaten in plugin.xml, feature.xml, build.properties und site.xml Dependency-Management über OSGi und P2-Repositories (früher Updatesites) Eclipse-Buildsystem ist aber nicht ausgelegt für zentrale Builds und CI Eclipse-SDK muss auf Buildserver installiert sein Als Build-Tool steht nur ANT zur Verfügung Maven dagegen bietet hervorragende CI-Unterstützung Tycho bringt Maven und Eclipse zusammen! 37

38 Tycho Facts Tycho (https://eclipse.org/tycho/) erweitert Maven um: MANIFEST-first Dependency Management Unterstützung von P2-Repositories als Artefakt-Repositories Tycho benötigt keine Eclipse-SDK-Installation Eclipse-SDK wird während des Builds heruntergeladen Eclipse selber wird inzwischen mit Tycho gebaut Umstellung PDE-Build nach Maven-Tycho-Build ist einfach Maven-Parent-Projekt als Paren und Aggregator hinzufügen Eclipse-Projekte mavenisieren durch Hinzufügen einer pom.xml Verzeichnisstruktur der Eclipse-Projekte kann erhalten bleiben 38

39 Gegenüberstellung Eclipse vs. Maven/Tycho Eclipse Tycho Packaging Build-Ergebnis Plugin eclipse-plugin Plugin JAR Test-Plugin-Fragment eclipse-test-plugin Plugin JAR Feature eclipse-feature Feature JAR Update Site eclipse-repository Gezipptes p2-repo Product eclipse-repository Gezipptes Produkt Target Definition eclipse-target-definition Referenzierbare Target-Plattform Alle Eclipse-Artefakte lassen sich auch mit Tycho bauen Typ des Buildergebnisses wird bestimmt durch Tycho-spezifisches Packaging 39

40 Demo 40

41 Jenkins als Continuous Integration Server 41

42 Jenkins Facts Continuous Integration Server als Java-Webapplikation WAR Läuft Standalone oder in jedem Servlet-Container (Tomcat) Leicht erweiterbar durch Plugin-Architektur Unterstützt alle gängigen Versionierungssysteme Bietet flexibles Buildsystem Hochskalierbar durch Master-Slave-Verteilung 42

43 Jenkins-Projekte Ein Jenkins-Projekt repräsentiert eine Build-Job-Definition Jenkins bietet 4 Projekttypen: Free Style-Softwareprojekt bauen Maven-Projekt bauen Externen Job überwachen Multikonfigurationsprojekt bauen Jedes Projekt besitzt ein eigenes Projektverzeichnis einen eigenen Arbeitsbereich (Workspace) eine Buildhistorie inklusive Artefakt-Archiv eine Änderungshistorie Projekte können miteinander verkettet werden 43

44 Typische Builds pro Softwareprojekt Pro Softwareprojekt werden in der Regel die folgenden Jenkins-Projekt angelegt (*) CI-Build Pollt alle 15 Minuten die Versionsverwaltung Startet, sobald ein Check-In erkannt wird Checkt kompletten Quellcode aus Kompiliert und führt Unit-Tests aus Optimiert auf kurze Laufzeit (<15 Minuten) Nightly Build Läuft jede Nacht Checkt kompletten Quellcode aus Kompiliert, führt Unit- Tests und Integrations-Tests aus Analysiert Codequalität Versorgt ggf. auf Test-Umgebung Läuft lange (> 1 Stunde) Release Build Läuft auf Anforderung Checkt kompletten Quellcode aus Kompiliert und führt alle Tests aus Versorgt auf gewünschte Ziel- Umgebung Führt Release- Management durch (inkl. Versionierung) Taggt Softwarestand in Versionsverwaltung 44 (*) Persönliche Erfahrungen; Abweichungen je nach Softwareprojekt möglich

45 Demo 45

46 Automatisiertes Testen 46

47 Motivation für das Testen Was geht mich das an? Primäres Ziel von Tests ist das Vermeiden von Fehlern Fehler senken Kundenzufriedenheit und loyalität Fehler lassen Projekte scheitern Fehler verursachen Kosten und Umsatzverluste Fehler führen zu Gefahren Was bringt s mir? Testen macht Mut Testen gibt Sicherheit Je eher desto besser Kosten für das Erkennen und Beheben von Fehlern steigen mit dem Projektfortschritt 47

48 Laufzeit / Komplexität Kategorisierung von Tests Unit-Tests Tests ohne externe Abhängigkeiten (Dateisystem, Datenbank, Applikationsserver,...) Komponenten- Tests Tests mit externen Abhängigkeiten Verifizieren korrekte Interaktion einer Komponente mit ihrer Umwelt System-Tests Technisch orientierte Tests gegen komplettes Produkt Prüfen korrekte Interaktion des Produktes mit externen Schnittstellen Funktionale Tests Fachlich orientierte Tests gegen komplettes Produkt Prüfen korrektes fachliches Verhalten 48

49 Testpraktiken im Kontext von CI Alle Tests sind soweit wie möglich zu automatisieren Alle Tests sind zu kategorisieren, um die Testausführung zu optimieren Schnelle Tests laufen zuerst Für jeden Defect(*) ist ein Test zu schreiben Komponententests müssen wiederholbar ausgeführt werden können Ein Assert pro Test(methode) Fehlschlagende Tests werden nicht auskommentiert Lokales Ausführen der Tests vor jedem Check-In Einsatz von Test-Driven-Development (*) gemeldeter Fehler oder Produktionsproblem 49

50 Test-Driven-Development OK, Entwicklung wird fortgesetzt Test erstellen Tests ausführen Fehler Code erstellen Tests ausführen OK Code refaktorieren Tests ausführen OK Fehler Fehler OK, Entwicklung beendet Neuer Code soll erst dann geschrieben werden, wenn ein automatisierter Test fehlschlägt Doppelte Codesequenzen sollten entfernt werden (DRY principle) Organisches Design mit lauffähigem Code als Feedback Tests werden selbst geschrieben, um nicht auf Andere warten zu müssen Entwicklungsumgebung muss in der Lage sein, auf kleine Änderungen eine schnelle Antworten zu liefern Design muss auf lose gekoppelten Komponenten mit hoher Kohäsion basieren, um das Testen einfacher zu machen 50

51 Testen mit JUnit Ab JUNIT 4.x werden Testklassen/-methoden über Annotations markiert eine Methode als definieren Fixtures für definieren Fixtures für Testklassen Bedingungen werden automatisiert über Assertions geprüft Sicherstellen der Testautomatisierung Konventionen: Name einer Testklasse endet mit Test Name einer Testmethode beschreibt, was getestet wird Testklassen landen im gleichen Package wie die zu testende Klasse Testklassen werden im /src/test/java-verzeichnis eines Maven-Projektes abgelegt Kompilierte Testklassen werden von Maven nicht in fertiges Artefakt übernommen => kein Test-Code in Produktion Über sogenannte Runner werden die Tests ausgeführt Ideale Integration in Eclipse Tests können manuell über Eclipse oder automatisch beim Build ausgeführt werden 51

52 Unit-Tests im Kontext von Eclipse In Eclipse landen die Testklassen in einem Plugin-Fragment Test-Plugin-Fragmente werden nicht in fertiges Produkt übernommen => kein Test-Code in Produktion Plugin-Fragmente sind eigenständige Eclipse-Projekte werden aber zur Test- Laufzeit mit dem Host-Plugin mitgeladen Teilen den gleichen Classloader Fragment hat vollen Zugriff auf Host Plugin-Fragmente erhalten das Maven-Packaging eclipse-test-plugin Tycho übernimmt die automatische Ausführung der Tests während des Builds JAR Plugin (Host) Fragment Source /src/main Tests /src/test Source Tests JUnit-Standard: Source und Test in einem Projekt Eclipse-Standard: Source im Host- Plugin-Projekt, Test im Fragment- Projekt 52

53 Demo 53

54 Softwarequalität messen mit SonarQube 54

55 Technische Schulden und des Entwicklers 7 Todsünden Fehler und potenzielle Fehler Abweichung von Programmierrichtlinien Duplizierter Code Fehlende Unit-Tests Schlechte Verteilung von Komplexität Spaghetti Design Nicht genug oder zu viele Kommentare = Technische Schuld: Aufwand zur Beseitigung der 7 Todsünden Die 7 Todsünden werden nicht mit Absicht begangen! 55

56 Motivation für automatische Codeanalyse Qualität der Software kann nicht manuell geprüft werden Manuelle Reviews dauern zu lange und sind zu aufwändig Größe des Projektes lässt keine manuelle Prüfung mehr zu Defects werden erkannt bevor sie eingeführt werden Reduzierung der Code-Komplexität Einhaltung von Programmier- und Architektur-Richtlinien wird sichergestellt Eliminierung von dupliziertem Code Abdeckung der wesentlichen Funktionen mit Tests wird geprüft 56

57 Best Practices für Codeanalyse Prüfen Sie mindestens täglich die Codequalität Kommunizieren Sie den Sinn von Metriken frühzeitig Verstösse gegen Qualitätsvorgaben müssen Builds fehlschlagen lassen Schneiden Sie das Regelwerk auf Ihre Anforderungen zu Priorisieren Sie, welche Verstösse Sie beheben wollen und welche nicht Streben Sie nicht nach einer Testabdeckung von 100 % Fachliche Korrektheit vor blinder Einhaltung von Qualitätsvorgaben 57

58 SonarQube Facts SonarQube (http://www.sonarqube.org) ist beliebtes Open-Source-Tools zur statischen Codeanalyse Besteht aus zwei Komponenten: SonarRunner: Java-Tool zur Ausführung der eigentlichen Analyse SonarQube Webapplikation: Darstellung der Analyseergebnisse, Management von Regelwerken, Tracking von Verstößen Lässt sich leicht integrieren: Eigenes Maven-Plugin für Maven-Builds Eigenes Eclipse-Plugin für Ausführung lokaler Analysen und Anzeige von Verstößen im Java-Code Server Build Tool Sonar Runner SonarQube DB Server SonarQube Web UI 58

59 Demo 59

60 Zusammenfassung 60

61 Fazit The Good, the Bad and the Ugly CI lässt sich günstig mit Open- Source-Tools umsetzen CI ermöglicht eine frühzeitige Erkennung von Fehlern und Problemen CI schafft Überblick und Vertrauen CI fördert Disziplin und Qualitätsbewusstsein CI ist MUSS für komplexe Projekte mit schwierigen Kunden CI-Tools haben manchmal ihre Tücken Tiefe Gräben zwischen Entwicklung und Betrieb verhindern oft Implementierung von CI 61

62 Fragen? 62

63 Vielen Dank für Ihre Aufmerksamkeit! Michael Theis msg systems ag Automotive / Lead IT Consultant phone: mobile: Eigene Auftritte: web: XING: LinkedIn: 63

64 Quellen Martin Fowler Continuous Integration Paul M. Duvall, Steve Matyas, Andrew Glover Continuous integration: improving software quality and reducing risk Addison Wesley, 2007, ISBN Jez Humble, David Farley Continuous delivery: reliable software releases through build, test and deployment automation Addison Wesley, 2011, ISBN Maven Homepage: Jenkins Homepage: Git Homepage: SonarQube Homepage: 64

Continuous Integration mit Jenkins

Continuous Integration mit Jenkins Continuous Integration mit Jenkins Christian Robert anderscore GmbH Senior Software Engineer Frankenwerft 35 christian.robert@anderscore.com 50677 Köln www.anderscore.com FrOSCon 2012 Christian Robert

Mehr

FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java

FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java Hochschule München FK 07 SS 2009 Theis Michael - Senior Developer HVB Information Services GmbH März 2009 Grundlagen des

Mehr

Maven 2 Softwareprojekte mit Kultur

Maven 2 Softwareprojekte mit Kultur Maven 2 Softwareprojekte mit Kultur Patrick Zeising 28.05.2010 Motivation Projekte unterscheiden sich stark im Aufbau Abläufe beim Übersetzen und Deployen unterscheiden sich stark

Mehr

Build Management. Präsentation von Daniel Mies daniel.mies@1und1.de

Build Management. Präsentation von Daniel Mies daniel.mies@1und1.de Build Management Präsentation von Daniel Mies daniel.mies@1und1.de Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse

Mehr

Softwareprojekte mit Kultur

Softwareprojekte mit Kultur Maven Softwareprojekte mit Kultur Patrick Zeising Konfigurationsmanagement Motivation Projektaufbau unterschiedlich Abläufe zum Übersetzen und Deployen unterschiedlich Verwendete Tools, Prozesse, Skripte

Mehr

Build-Pipeline mit Jenkins

Build-Pipeline mit Jenkins JUG Augsburg 24.10.2013 Seite 1 Wer sind wir? Agiler Architekt und Entwickler Eigenes Produkt mit kompletter Pipeline / CD aktuell: Architekt / Entwickler in einem großen Entwicklungsprojekt im Automotiv

Mehr

Build-Prozesse für Geschäftsanwendungen mit Apache Maven

Build-Prozesse für Geschäftsanwendungen mit Apache Maven Build-Prozesse für Geschäftsanwendungen mit Apache Maven Was sind eigentlich Geschäftsanwendungen? Geschäftsanwendungen (z.b. ERP) potenziell viele Benutzer in unterschiedlichen Rollen und unterschiedlichen

Mehr

Verteilte Systeme (WS 2013/14) Übung 0: Einführung in Maven und Git. Oliver Kleine Institut für Telematik, Universität zu Lübeck

Verteilte Systeme (WS 2013/14) Übung 0: Einführung in Maven und Git. Oliver Kleine Institut für Telematik, Universität zu Lübeck Verteilte Systeme (WS 2013/14) Übung 0: Einführung in Maven und Git Oliver Kleine Institut für Telematik, Universität zu Lübeck Build-Management in JAVA 3 Build-Management? Wozu? Traditionelle manuelle

Mehr

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann.

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann. Softwaretests Werkzeuge zur Automatisierung für Thementag Wer testet, ist feige 24.06.2009 Autor: Markus Alvermann Seite 2 / 39 Agenda Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous

Mehr

Continuous Integration für Eclipse 4 RCP-Anwendungen mit Maven/Jenkins/Nexus/Sonar

Continuous Integration für Eclipse 4 RCP-Anwendungen mit Maven/Jenkins/Nexus/Sonar Continuous Integration für Eclipse 4 RCP-Anwendungen mit Maven/Jenkins/Nexus/Sonar Hannes Schmidt 02.10.2015 Eclipse-Basics Plugins, Features, Produkte Produkt Feature A Plugin A Plugin B Feature B Plugin

Mehr

Einführung in Maven und GWT

Einführung in Maven und GWT Einführung in Maven und GWT Prof. Christoph Knabe Beuth-Hochschule Berlin 08.05.2014 Gliederung Motivation für Build-Werkzeug Maven-Ziele, Begriffe Maven-Benutzung in 5 min Maven-Vorteile GWT-Ziele GWT-Projekt

Mehr

Vom lokalen Build zum Deployment

Vom lokalen Build zum Deployment Vom lokalen Build zum Deployment International PHP Conference Manuel Pichler 12.10.2011 Vom lokalen Build zum Deployment 1 / 36 Über mich Diplominformatiker Mehr als 10 Jahre Erfahrung im PHP-Umfeld Autor

Mehr

Der Weisheit letzter Schluss:

Der Weisheit letzter Schluss: Der Weisheit letzter Schluss: Maven 2 in der Java Entwicklung Web Site: www.soebes.de Blog: blog.soebes.de Email: info@soebes.de Dipl.Ing.(FH) Karl Heinz Marbaise Agenda 1. Was ist Maven? 2. Features von

Mehr

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012 Buildsystem Maven & Scons Controls Entwicklungsforum Januar 2012 1 2 a call from the past Binary Repository Speichern von Artefakten (z.b. Shared Library und zugehörige Header) Versionierung von Artefakten

Mehr

Kontinuierliche Architekturanalyse. in 3D

Kontinuierliche Architekturanalyse. in 3D Kontinuierliche Architekturanalyse in 3D Stefan Rinderle Bachelor an der HS Karlsruhe Master "Software Engineering" in München / Augsburg Seit 2013 bei Payback 2 Software-Visualisierung Visualisierung

Mehr

Automatischer Build mit Maven 2

Automatischer Build mit Maven 2 Automatischer Build mit Maven 2 Stefan Scheidt OPITZ CONSULTING GmbH Ihr Referent Stefan Scheidt Senior Architekt bei der OPITZ CONSULTING GmbH Seit über 10 Jahren im Oracle- und Java-Umfeld tätig Schwerpunkte:

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 12: Metawissen Java Bibliotheken, Maven Robert Jakob Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Robert Jakob (Univ. Freiburg) Programmieren in Java JAVA 1 / 33

Mehr

Git in großen Projekten

Git in großen Projekten Git in großen Projekten Einsatz von Submodulen und Subtrees René Preißel (rp@etosquare.de) Buchhandlung Lehmanns, 16.10.2013 1 Über Mich René Preißel (rp@etosquare.de) Freiberuflicher Berater, Entwickler,

Mehr

Seminar - Bericht. Maven Project Management & Comprehension. Fachhochschargau Departement Technik Studiengang Informatik. Gruppe Jonas Weibel

Seminar - Bericht. Maven Project Management & Comprehension. Fachhochschargau Departement Technik Studiengang Informatik. Gruppe Jonas Weibel Seminar - Bericht Maven Project Management & Comprehension Fachhochschargau Departement Technik Studiengang Informatik Gruppe Jonas Weibel Betreuender Dozent Prof. Dr. Dominik Gruntz Windisch, im Januar

Mehr

Webtests mit Selenium, Groovy, TestNG und Maven

Webtests mit Selenium, Groovy, TestNG und Maven mit Selenium, Groovy, TestNG und Maven Im ersten Teil dieser Artikelserie [1] wurden Testkonzepte und Selenium [2] näher vorgestellt. Dieser zweite Teil stellt die Integration in ein Projekt vor und rundet

Mehr

Auswahl eines Continuous Integrationsservers

Auswahl eines Continuous Integrationsservers Auswahl eines Continuous Integrationsservers Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Gliederung Einführung Auswahlkriterien Fazit 2 Gliederung

Mehr

Den Entwicklungsprozess im Griff mit Maven, Jenkins und Git

Den Entwicklungsprozess im Griff mit Maven, Jenkins und Git Sourcetalktage 2012 Referent: Tobias Heisecke ( theisecke@googlemail.com ) - seit 1995 bei der ZAD-GmbH in Northeim ( Dienstleistungsrechenzentrum im Gesundheitswesen ) - Forderungseinzug für Krankentransport-

Mehr

Test. Hauptsache, es läuft? Entwicklung. Wartung. iks Thementag. Mehr Softwarequalität Best practices für alle Entwicklungsphasen 19.06.

Test. Hauptsache, es läuft? Entwicklung. Wartung. iks Thementag. Mehr Softwarequalität Best practices für alle Entwicklungsphasen 19.06. Hauptsache, es läuft? Entwicklung Wartung Test iks Thementag Mehr Softwarequalität Best practices für alle Entwicklungsphasen 19.06.2012 Autor: Dr. Reik Oberrath Agenda Begriffserklärung: Entwicklung,

Mehr

Konfigurationsmanagement

Konfigurationsmanagement Konfigurationsmanagement mit Maven 2 Michael Albrecht, Manfred Wolff Michael Albrecht ist Chefarchitekt bei der NEUSTA GmbH und seit 2002 mit der Entwicklung und der Architektur von Java EE Projekten beschäftigt.

Mehr

Abhängigkeiten und Git

Abhängigkeiten und Git Abhängigkeiten und Git Continuous Lifecycle 2013, 11.11.2013 René Preißel (@RenePreissel) Bjørn Stachmann (@old_stachi) Inhalt 1. Über welche Abhängigkeiten reden wir? 2. Wie versionieren? a. Ein großes

Mehr

Buildwerkzeuge für Javaprojekte. Christian Bunse Institut für Informatik 03.07.2008

Buildwerkzeuge für Javaprojekte. Christian Bunse Institut für Informatik 03.07.2008 Buildwerkzeuge für Javaprojekte Christian Bunse Institut für Informatik 03.07.2008 Inhalt Der Build Besonderheiten von Javaprojekten Ziele von Buildwerkzeugen Continuous Integration Vorstellung von Buildwerkzeugen

Mehr

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014 Programmierprojekt Anne0e Bieniusa Sommersemester 2014 Phasen der So;ware- Entwicklung Planungsphase DefiniConsphase Entwurfsphase ImplemenCerungsphase Testphase Wasserfall- Modell Einführungs- und Wartungsphase

Mehr

Build-Infrastrukturen mit marktgängigen Tools

Build-Infrastrukturen mit marktgängigen Tools Build-Infrastrukturen mit marktgängigen Tools Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Björn Feustel Steffen Schluff Version: 1.0 www.oio.de info@oio.de Gliederung Einleitung Integrierte

Mehr

Seminar. Bachelor Wirtschaftsinformatik

Seminar. Bachelor Wirtschaftsinformatik Seminar Bachelor Wirtschaftsinformatik Generalthema: Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Versionierung von Java-Anwendungen mit Git Christian Ondreka Versionsverwaltung mit

Mehr

Continuous Delivery in der Realität eines Großunternehmens

Continuous Delivery in der Realität eines Großunternehmens Continuous Delivery in der Realität eines Großunternehmens Agile World, 28. Juni 2013 Christian Weber 01 Continuous Delivery Das Versprechen Das Versprechen Sch Entspanntes Release Time To Market 3 02

Mehr

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit und ein Traumpaar für Pre-Tested Commit Orientation in Objects GmbH Weinheimer Str. 68 6809 Mannheim Steffen Schäfer Steffen Schluff Version:.0 www.oio.de info@oio.de Gliederung Pre-tested commit und Pre-tested

Mehr

Automatisierte Build-Prozesse in Java-Projekten

Automatisierte Build-Prozesse in Java-Projekten Continuous Integration Referent Olaf Kossak Freiberuflicher Informatiker Studium an der Universität Hamburg Java-Entwickler Teamleiter Qualitätsingenieur Banken, Versicherungen, Großhandel, Telekommunikation,

Mehr

Release Automation für Siebel

Release Automation für Siebel June 30 th 2015 Release Automation für Siebel Stefan Kures Agenda + Herausforderungen + Lösung mit Automic + Vorteile + Resultate 3 Property of Automic Software. All rights reserved Siebel als zentrale

Mehr

Consultant & Geschäftsführer, enpit consulting OHG E-Mail: ugb@enpit.de

Consultant & Geschäftsführer, enpit consulting OHG E-Mail: ugb@enpit.de ADF Spotlight - Entwicklungswerkzeuge & - methoden - ADF 12c mit Git, Maven & Co. - Status Quo Ulrich Gerkmann-Bartels Consultant & Geschäftsführer, enpit consulting OHG E-Mail: ugb@enpit.de +++ Bitte

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner c.leithner@celix.at

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner c.leithner@celix.at End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner c.leithner@celix.at www.celix.at September 2015 celix Solutions GmbH Spezialist für Team Collaboration und IT Prozess Management Agile

Mehr

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit und ein Traumpaar für Pre-Tested Commit Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Steffen Schäfer Steffen Schluff Version:.0 www.oio.de info@oio.de Gliederung Pre-tested commit und

Mehr

Maven Tycho. Google Guice. Mylyn für Modelle. 7. bis 11. November 2011. www.jax.de. Eclipse meets. Plus CD! The Westin Grand München Arabellapark

Maven Tycho. Google Guice. Mylyn für Modelle. 7. bis 11. November 2011. www.jax.de. Eclipse meets. Plus CD! The Westin Grand München Arabellapark M Plus CD! JE TZ ER T N! 4.11 Deutschland 9,80 Österreich 10,80, Schweiz sfr 19,20 4.2011 KE Neue Serie: The Making of an Eclipse Project eclipse magazin VO R The Westin Grand München Arabellapark Anmeldung

Mehr

Business Value-Driven Management and IT Consulting. Erfolgreiches Build- und Release-Management in großen Projekten

Business Value-Driven Management and IT Consulting. Erfolgreiches Build- und Release-Management in großen Projekten Business Value-Driven Management and IT Consulting Erfolgreiches Build- und Release-Management in großen Projekten Stefan M. Heldt Holger Koschek Holisticon AG 20. April 2007 stefan.heldt@holisticon.de,

Mehr

Continuous Integration in.net. Marcin Kawalerowicz CEO CODEFUSION Sp. z o. o.

Continuous Integration in.net. Marcin Kawalerowicz CEO CODEFUSION Sp. z o. o. Continuous Integration in.net Marcin Kawalerowicz CEO CODEFUSION Sp. z o. o. Vortragsziel Dieser Vortrag soll in die Welt der Continuous Integration einführen und aufzeigen warum der Einsatz von CI lohnenswert

Mehr

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm 5.7.2012

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm 5.7.2012 Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment Henning Blohm 5.7.2012 1 Z2 ist ein radikal neuer* Ansatz für System Life-Cycle Management in Java * jedenfalls für Java Ein Builtool?

Mehr

GitLab als alternative Entwicklungsplattform zu Github.com

GitLab als alternative Entwicklungsplattform zu Github.com Entwicklungsplattform zu Github.com Chemnitzer Linux-Tage 2015 21. März 2015 Ralf Lang Linux Consultant/Developer lang@b1-systems.de - Linux/Open Source Consulting, Training, Support & Development GitLab

Mehr

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 git & git-flow Jens Sandmann Warpzone Münster e.v. 14.12.2013 Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 Überblick 1 git Versionskontrolle Allgemein VCS mit git 2 git flow 3 git nutzen 4 Anhang

Mehr

Dezentrale Versionsverwaltung

Dezentrale Versionsverwaltung Dezentrale Versionsverwaltung mit GIT with that guy 14.08.2012 Lars Kumbier 1 Versionsverwaltung? 14.08.2012 Lars Kumbier 2 Versionsverwaltung? Speichern unterschiedlicher Entwicklungsschritte (oder Versionen)

Mehr

Erfolgreicher Ums9eg auf Git

Erfolgreicher Ums9eg auf Git CONCEPT PEOPLE IT- TALK Ein Erfahrungsbericht Erfolgreicher Ums9eg auf Git René Preißel (etosquare) Nils Hartmann (Techniker Krankenkasse) VORSTELLUNG René Preißel Freiberuflicher SoGwarearchitekt, Entwickler

Mehr

Software Configuration Management. Referat von Jens Zastrow Software Engineering Projekt WS 2001/2002

Software Configuration Management. Referat von Jens Zastrow Software Engineering Projekt WS 2001/2002 Software Configuration Management Referat von Jens Zastrow Software Engineering Projekt WS 2001/2002 Inhalt Motivation SCM-Aufgaben Item-Identifikation Identifikation Version/Release Management Change

Mehr

Continuous Integration im medizinischen Bereich

Continuous Integration im medizinischen Bereich Philipp Schröter Fachbereich für Informatik Continuous Integration im medizinischen Bereich Ein praktisches Beispiel Gliederung 1. Einleitung 2. Relevanz im medizinischen Bereich 3. Continuous Integration

Mehr

Bauen mit Tycho. Mirko Swillus Qualitype AG 18.10.2012, JUG Saxony

Bauen mit Tycho. Mirko Swillus Qualitype AG 18.10.2012, JUG Saxony Bauen mit Tycho Mirko Swillus Qualitype AG 18.10.2012, JUG Saxony Bauen mit Tycho 1. Vorstellung und Motivation 2. Bauen 3. Laufzeitcontainer: Equinox 4. Repositories 5. Testen 6. Schwierigkeiten und Lösungen

Mehr

Continuous Integration mit Hudson

Continuous Integration mit Hudson Continuous Integration mit Hudson Grundlagen und Praxiswissen für Einsteiger und Umsteiger von Simon Wiest 1. Auflage Continuous Integration mit Hudson Wiest schnell und portofrei erhältlich bei beck-shop.de

Mehr

CONTINUOUS DELIVERY. Entmystifiziert. codecentric AG

CONTINUOUS DELIVERY. Entmystifiziert. codecentric AG CONTINUOUS DELIVERY Entmystifiziert WIE SOFTWARE LIEFERN? 01.07.2014 2 WAS IST CONTINUOUS DELIVERY? Robust Wiederholbar Effektiv 01.07.2014 3 LANDSCHAFTEN Continuous Integration Public / Private Hybrid

Mehr

Stuttgarter Test-Tage 2011 Der Fluch des grünen Balkens in sehr großen Projekten

Stuttgarter Test-Tage 2011 Der Fluch des grünen Balkens in sehr großen Projekten main {GRUPPE} Seite 1 Jürgen Nicolai Geschäftsführender Gesellschafter Liebknechtstrasse 33 70178 Stuttgart Tel : 0711 2270225 Fax : 0711 2270497 Mail : j.nicolai@main-gruppe.de Web: www.health4j.de Stuttgarter

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Continuous Delivery mit OpenShift, 2nd Edition

Continuous Delivery mit OpenShift, 2nd Edition Daniel Tschan CTO Continuous Delivery mit OpenShift, 2nd Edition OpenShift Tech Lab, Bern, 27.10.2014 1 Grundlagen Kleine Geschichte «Integration Hell» und «Works on My Machine» 1991: Object Oriented Design:

Mehr

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm 25.6.2012

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm 25.6.2012 Make-loses Java für mehr Produktivität: Das z 2 -Environment Henning Blohm 25.6.2012 1 Z2 ist ein radikal neuer* Ansatz für System Life-Cycle Management in Java * jedenfalls für Java Oh je noch ein Tool?

Mehr

Builddreikampf: Ant, Maven und Gradle. Sven Bunge / Carl Düvel

Builddreikampf: Ant, Maven und Gradle. Sven Bunge / Carl Düvel Builddreikampf: Ant, Maven und Gradle Sven Bunge / Carl Düvel holisticon AG Wettkampfplan 1. Die Regeln 2. Vorstellung der Kandidaten 3. Ring frei die Disziplinen! 1. Dependency Management 2. Multiprojektsupport

Mehr

31.01.2013. Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

31.01.2013. Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle Vorlesung Programmieren Versionskontrolle Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Versionskontrollsysteme Wie organisiert man die

Mehr

Die 7 Wege zum Clean Code

Die 7 Wege zum Clean Code Die 7 Wege zum Clean Code Über mich Claudio Altamura Softwareentwickler Certified ScrumMaster Interessen Agile Softwareentwicklung Softwarearchitekturen Java ccd2013@claudioaltamura.de 2 Inhalt 1. Statische

Mehr

Open Source. Hendrik Ebbers 2015

Open Source. Hendrik Ebbers 2015 Open Source Hendrik Ebbers 2015 Open Source About me Hendrik Ebbers Lead of JUG Dortmund Java Architect @ Canoo Engineering AG JavaOne Rockstar, Java Expert Group Member Speaker, blogger & author Engineering

Mehr

Von Continuous Integration zu Continuous Deployment

Von Continuous Integration zu Continuous Deployment Von Continuous Integration zu Continuous Deployment Manuel Pichler 31. Mai 2010 Über mich Manuel Pichler Jahrgang 1978 Diplom Informatiker Softwarearchitekt Entwickler von: PHP_Depend

Mehr

Architektur iterativ auf Basis von OSGi entwickeln

Architektur iterativ auf Basis von OSGi entwickeln Architektur iterativ auf Basis von OSGi entwickeln Ein Vortrag von Sven Jeppsson (syngenio AG) und Karsten Panier (Signal Iduna Gruppe) 1 Inhalt Motivation Architektur Architektur Evolution OSGi Refactoring

Mehr

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Jan Düttmann Archimedon Software + Consulting GmbH & Co. KG Marienstraße 66 32427 Minden Stephan Kleuker Hochschule

Mehr

Software Engineering I

Software Engineering I Software I Übungsblatt 1 + 2 Claas Pinkernell Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Welche Werkzeuge? Programmiersprache Java Integrierte Entwicklungsumgebung Eclipse

Mehr

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05.

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05. IT Engineering Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014 Einleitung... worum es in diesem Vortrag geht Ziele Continuous

Mehr

Unit Testing mit JUnit. Dr. Andreas Schroeder

Unit Testing mit JUnit. Dr. Andreas Schroeder Unit Testing mit JUnit Dr. Andreas Schroeder Überblick Was dieses Video behandelt Warum Testen? Was sind Unit Tests? Der Teufelskreis des Nicht-Testens JUnit Unit Test Vorteile Test-Inspiration Wann aufhören?

Mehr

Stuttgarter Test-Tage am 21. & 22. März 2013

Stuttgarter Test-Tage am 21. & 22. März 2013 Continuous Integration & Testing meets BPM meets Reality Stuttgarter Test-Tage am 21. & 22. März 2013 Jonas Grundler, Managing Consultant, NovaTec GmbH Jonas.Grundler@novatec-gmbh.de 2002-2006: Berater

Mehr

1. Ausgangslage. 2. Bisheriger Build- und Deployment-Prozess

1. Ausgangslage. 2. Bisheriger Build- und Deployment-Prozess Modernisierung des Entwicklungsprozesses - ein Projektbericht Markus Heinisch Principal Consultant September 2013 Neue und höhere Anforderungen an eine Entwicklungsabteilung eines Finanzinstituts erfordern

Mehr

Application Server und Continuous Integration

Application Server und Continuous Integration Application Server und Continuous Integration Outline 2 Einleitung Application Server Java EE Enterprise Applikationen vs. Web Applikationen Web Application Life Cycle Servlets JavaServer Pages verschiedene

Mehr

Build My Plug-in! >> Innerhalb der Eclipse IDE werden Plugins. In wenigen Schritten zum automatisierten PDE Build. Praxis

Build My Plug-in! >> Innerhalb der Eclipse IDE werden Plugins. In wenigen Schritten zum automatisierten PDE Build. Praxis Praxis Build-Prozess von Eclipse Plug-ins In wenigen Schritten zum automatisierten PDE Build Build My Plug-in! >> NILS HARTMANN UND GERD WÜTHERICH Mit dem PDE Build stellt die Eclipse IDE ein mächtiges

Mehr

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Torsten Flatter inovex GmbH. Git.NET gibt's nicht? Torsten Flatter inovex GmbH "Git.NET" gibt's nicht? Vorstellung Torsten Flatter inovex GmbH.NET / C# seit 2004 VSS, CVS, SVN, TFS, hq, git Enterprise-Umfeld Agenda Überblick Grundlagen Einsatzbereiche

Mehr

We have declared war on error!

We have declared war on error! We have declared war on error! Christian Schiffler Contao Konferenz 2015 29. Mai 2015 1 / 26 Xtra oder - der mit m Hut. Wers n das? Christian Xtra Schiffler trägt meistens einen Hut und seltsame T-Shirts

Mehr

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git Einführung in Verteilte Versionskontrollsysteme am Beispiel von Git Diplominformatiker (BA), Git Benutzer seit 2009 Daniel Böhmer Leibniz Institut für Troposphärenforschung 8. März 2012 Verteilte Versionskontrollsysteme/Git

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,

Mehr

Versionsverwaltung mit git. Christoph Knabe FB VI 17.04.2014

Versionsverwaltung mit git. Christoph Knabe FB VI 17.04.2014 Versionsverwaltung mit git Christoph Knabe FB VI 17.04.2014 Inhalt Probleme bei Software-Entwicklung Begriffe in git Geschichte von git Installation Was ist verteilt an git? Mischen verteilter Änderungen

Mehr

Testest Du schon? Verfahren und Tools zum Testen von Software

Testest Du schon? Verfahren und Tools zum Testen von Software Testest Du schon? Verfahren und Tools zum Testen von Software Martin Kompf Dezember 2010 JAVA USER GROUP DARMSTADT Testing Software Ziel des Softwaretests ist es, Fehler aufzudecken. Nachzuweisen, dass

Mehr

Test-Karussell. Automatisierte Qualitätssicherung im Round-Trip. Test-Karussell. Folie 1 08. November 2006

Test-Karussell. Automatisierte Qualitätssicherung im Round-Trip. Test-Karussell. Folie 1 08. November 2006 Automatisierte Qualitätssicherung im Round-Trip Folie 1 Test und Automatisierung Qualitätssicherung schafft (nur) Transparenz und ist aufwändig und teuer Testen kann die Qualität nicht verbessern 40-50%

Mehr

23. Januar, Zürich-Oerlikon

23. Januar, Zürich-Oerlikon 23. Januar, Zürich-Oerlikon Effizientere agile Teams mit Git Christian Hassa, Managing Partner (@chrishassa) Daniel Sack, Development Expert (@danielthecoder) TechTalk Software AG Agenda Unser Weg zu Git

Mehr

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre. Copyright 2010, MATHEMA Software GmbH 1 Wer bin ich > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.Net > Schwerpunkte Software

Mehr

C. Schädel, C. Schmidt-Casdorff iks GmbH. Provisioning unter OSGi für Test und Betrieb

C. Schädel, C. Schmidt-Casdorff iks GmbH. Provisioning unter OSGi für Test und Betrieb C. Schädel, C. Schmidt-Casdorff iks GmbH Provisioning unter OSGi für Test und Betrieb Einleitung Überblicksvortrag Beispiele idealisiert Mischformen existieren Problemstellung des Provisioning unter OSGi

Mehr

Evaluation eines kooperativen Entwicklungswerkzeuges zur Unterstützung von Projektteams am Beispiel von IBM Rational Team Concert.

Evaluation eines kooperativen Entwicklungswerkzeuges zur Unterstützung von Projektteams am Beispiel von IBM Rational Team Concert. Evaluation eines kooperativen Entwicklungswerkzeuges zur Unterstützung von Projektteams am Beispiel von IBM Rational Team Concert. Diplomvortrag Frank Langanke Arbeitsbereich Softwaretechnik Software Engineering

Mehr

Build-Management. Der Einsatz von Make, Ant und Maven und Co. Prof. Dr. Nikolaus Wulff

Build-Management. Der Einsatz von Make, Ant und Maven und Co. Prof. Dr. Nikolaus Wulff Build-Management Der Einsatz von Make, Ant und Maven und Co. Prof. Dr. Nikolaus Wulff Integrierter Arbeitsplatz Eine IDE wie Eclipse, JBuilder oder NetBeans unterstützt die alltägliche Arbeit. Sie bietet

Mehr

Praktikum Ingenieurinformatik (PI)

Praktikum Ingenieurinformatik (PI) Praktikum Ingenieurinformatik (PI) Verteilte Versionskontrolle mit Git und Github Björn Meyer Fachgebiet Technische Informatik 1 Agenda Einleitung Motivation Versionskontrolle Ansätze Git Funktionen Arbeiten

Mehr

AGILES QUALITÄTSMANAGEMENT

AGILES QUALITÄTSMANAGEMENT AGILES QUALITÄTSMANAGEMENT Manfred Rätzmann Head of Department Quality Assurance Deutsche Post E-Post Development GmbH Manfred.Raetzmann@epost-dev.de http://www.epost.de/ Klassische Ziele des Qualitätsmanagements:

Mehr

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Dipl.-Inf (FH) Matthias Müller 09.06.2010 Regressionstests Unter einem Regressionstest

Mehr

CocoaPods Schnelleinstieg

CocoaPods Schnelleinstieg CocoaPods Schnelleinstieg Moritz Haarmann, Software for mobile devices CocoaPods ist das Tool der Wahl, wenn es darum geht, Abhängigkeiten eines Projekts zu verknüpfen. CocoaPods ist kostenlos und quelloffen

Mehr

WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN

WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN AGENDA Motivation TFS Überblick TFS Architektur & Clients Planung Entwicklung

Mehr

Kontinuierliche Integration am Beispiel Jenkins

Kontinuierliche Integration am Beispiel Jenkins Kontinuierliche Integration am Beispiel Jenkins Sujeevan Vijayakumaran Ubucon, Berlin 20. Oktober 2012 1 / 25 Inhaltsverzeichnis 1 Über mich 2 Was heißt kontinuierliche Integration? 3 Test-Schnittstellen

Mehr

Einführung in Git. Dirk Deimeke. 19. August 2013. My own IT. ddeimeke (My own IT) Einführung in Git 19. August 2013 1 / 23

Einführung in Git. Dirk Deimeke. 19. August 2013. My own IT. ddeimeke (My own IT) Einführung in Git 19. August 2013 1 / 23 Einführung in Git Dirk Deimeke My own IT 19. August 2013 ddeimeke (My own IT) Einführung in Git 19. August 2013 1 / 23 Inhalt 1 Etwas Theorie Basiswissen Git 2 Praxis Installation Erstes Repository Besonderheiten

Mehr

Continuous Delivery. Release- und Deploymentmanagement bei der Brunata Hürth

Continuous Delivery. Release- und Deploymentmanagement bei der Brunata Hürth Release- und Deploymentmanagement bei der Brunata Hürth BRUNATA-METRONA Hürth Unsere Standorte BRUNATA Wärmemesser-Ges. Schultheiss GmbH + Co. Max-Planck-Straße 2 50354 Hürth Tel. 02233 50-0 Fax 02233

Mehr

URT Eclipse All in one

URT Eclipse All in one URT Eclipse All in one Das Paket Eclipse All in one enthält Programme und Einstellungen, die zum Programmieren mit Eclipse in Zusammenarbeit mit Subversion und ANT benötigt werden. Dieses Paket dient als

Mehr

Wir schützen Ihre Investitionen. Qualitätssicherung nach Maß. IT Quality Services

Wir schützen Ihre Investitionen. Qualitätssicherung nach Maß. IT Quality Services Wir schützen Ihre Investitionen Qualitätssicherung nach Maß IT Quality Services Sicherheit, die senkt Mit den IT Quality Services schützen Sie Ihre Investitionen Ohne Qualitätssicherung Mit Qualitätssicherung

Mehr

Kontinuierliches Bauen und Testen von Software mit Jenkins. Hochschule München Benjamin Keeser, 31. Mai 2013

Kontinuierliches Bauen und Testen von Software mit Jenkins. Hochschule München Benjamin Keeser, 31. Mai 2013 Kontinuierliches Bauen und Testen von Software mit Jenkins Hochschule München Benjamin Keeser, 31. Mai 2013 Erklärung der Selbstständigkeit Hiermit versichere ich, die vorliegende Arbeit selbstständig

Mehr

Application Lifecycle Management mittels Polarion und custom Plug-Ins

Application Lifecycle Management mittels Polarion und custom Plug-Ins Application Lifecycle Management mittels Polarion und custom Plug-Ins Michael Radlingmaier 2011-09-14 Security Classification: Public Über SONY DADC AUSTRIA AG Produzent von optischen Speichermedien (CD,

Mehr

Apache Subversion (SVN)

Apache Subversion (SVN) Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 18.10.2013 Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 18.10.2013 git Datamining

Mehr

Software Construction

Software Construction Software Construction Einführung Martin Kropp / Christoph Denzler University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Inhalt Lernziele des Kurses Software

Mehr

git Änderungen verwalten mit git

git Änderungen verwalten mit git Änderungen verwalten mit git Wie arbeitet man am besten an einem Protokoll zusammen? PeP et al. Toolbox, 2014 2 Idee: Austausch über Mails PeP et al. Toolbox, 2014 3 Mails: Probleme Risiko, dass Änderungen

Mehr

Armin Neudert TMN Systemberatung GmbH. Visual Studio ALM Days 2012

Armin Neudert TMN Systemberatung GmbH. Visual Studio ALM Days 2012 Armin Neudert TMN Systemberatung GmbH Visual Studio ALM Days 2012 Armin Neudert Geschäftsführender Gesellschafter Schwerpunkte Technical Lead SQL Server Softwareprozesse / ALM Consulting/Coaching Projektleitung

Mehr

RELEASE AUF KNOPFDRUCK: MIT CONTINUOUS DELIVERY KOMMEN SIE SCHNELLER ANS ZIEL.

RELEASE AUF KNOPFDRUCK: MIT CONTINUOUS DELIVERY KOMMEN SIE SCHNELLER ANS ZIEL. RELEASE AUF KNOPFDRUCK: MIT CONTINUOUS DELIVERY KOMMEN SIE SCHNELLER ANS ZIEL. Die Erwartungen Ihrer Businesskunden an ihre IT steigen. Mehr denn je kommt es darauf an, die Software optimal am Kunden auszurichten

Mehr

Software Engineering. 13. Configuration Management. Franz-Josef Elmer, Universität Basel, HS 2012

Software Engineering. 13. Configuration Management. Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering 13. Configuration Management Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering: 13. Configuration Management 2 Übersicht Dokumentation, Installationssoftware, etc.

Mehr

Versionsverwaltung mit SVN

Versionsverwaltung mit SVN Versionsverwaltung mit SVN Jan-Philipp Kappmeier Technische Universität Berlin 11. 04. 2012 Versionsverwaltung Typische Situation in der Softwareentwicklung Mehrere Personen arbeiten an einem Projekt Arbeiten

Mehr