Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration and PLSQL in the...
-
Upload
trivadis -
Category
Technology
-
view
57 -
download
0
Transcript of Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration and PLSQL in the...
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH
If Jenkins OracletA few thoughts on the subject "Continuous integration (CI) andPL/SQL in the Back-End development" or "if Jenkins Oraclet“Martin RitschelSenior Consultant
Agenda
“if Jenkins Oraclet“2 09.09.2016
1. Continuous Integration (CI)
2. Unit-Testing
3. CI mit Jenkins
4. Unit-Tests mit Jenkins
5. Fazit
"if Jenkins Oraclet“3 09.09.2016
Continuous Integration
Continuous Integration
"if Jenkins Oraclet“4 09.09.2016
Continuous Integration hat das Ziel, die Qualität der Software über permanenteIntegration ihrer einzelnen Bestandteile zu steigern. Statt die Software nur in sehrgroßen Zeitabständen kurz vor der Auslieferung zu erstellen, wird sie in kleinen Zyklenimmer wieder erstellt und getestet.
Integrations-Probleme werden laufend entdeckt und behoben (gefixt)
Frühe Warnungen bei nicht zusammenpassenden Bestandteilen
Unit-Tests dienen zur schnelleren Erkennung und Beseitigung von Fehlern
Die sofortige Reaktion des Systems auf das Einchecken eines fehlerhaften oder unvollständigen Codes
Continuous Integration
"if Jenkins Oraclet“5 09.09.2016
Warum sollte man überhaupt Continuous Integration nutzen?
„Immediate Feedback“
Diese Methode ermöglicht, dem Team und dabei insbesondere dem Entwickler,schnellstmöglich („Immediate“) Feedback über die Qualität seiner Software nach einerÄnderung zu geben. Dazu ist es notwendig, die Änderungen jedes Einzelnen auch sorasch wie möglich mit dem Gesamtstand zu integrieren und integriert zu testen.
Continuous Integration
"if Jenkins Oraclet“6 09.09.2016
Developer
Version Control System z.B. SubVersion
ci Server z.B. Jenkins
Build Service
check out
Developer
Developer
Start: § build§ unit-tests§ deployment
• team leads• testers• managment• etc…
notify
check in
"if Jenkins Oraclet“7 09.09.2016
Unit-Testing
Unit-Testing
"if Jenkins Oraclet“8 09.09.2016
PL/SQL Unit-TestingCan Be Fun!?
With a little help from
Unit-Testing
"if Jenkins Oraclet“9 09.09.2016
Generelle Frage: Wozu Unit Tests?
Konsequent stabile Software entwickeln
Instabilitäten während Refactoring erkennen
Nicht dokumentierte Seiteneffekte finden
Frühzeitig Fehler finden
Besseres Design
Unit-Testing
"if Jenkins Oraclet“10 09.09.2016
Übersicht der Frameworks zum Unit-Testing von PL/SQL Programmen.
Name Licence Teststyle
utPLSQL GPL StoredProceduresQuestcodetester proprietary declarativePL/Unit proprietary PL/SQLpackagesPLUTO– PL/SQLUnitTestingforOracle ArtisticLicense/GPL PL/SQLclassesruby-plsql-spec free RubyDSLDBFit GPL functionalspecifikationDBUnit LesserGPL Java/XMLSQLDeveloper proprietary Wizards,SQL
Unit-Testing
"if Jenkins Oraclet“11 09.09.2016
Übersicht der Frameworks zum Unit-Testing von PL/SQL Programmen.
Name Licence Teststyle
utPLSQL GPL StoredProceduresQuestcodetester proprietary declarativePL/Unit proprietary PL/SQLpackagesPLUTO– PL/SQLUnitTestingforOracle ArtisticLicense/GPL PL/SQLclassesruby-plsql-spec free RubyDSLDBFit GPL functionalspecifikationDBUnit LesserGPL Java/XMLSQLDeveloper proprietary Wizards,SQL
Unit-Testing
"if Jenkins Oraclet“12 09.09.2016
Warum Unit-Tests mit dem SQL-Developer?
Framework integriert im SQL-Developer
Proprietäres Datenbank Repository
Eigenes Datenbank Schema
Wizards zum Erstellen der Tests
Nutzung von Libraries
Starten der Unit-Tests über die Konsole
Import/Export Funktionalität
Unit-Testing
"if Jenkins Oraclet“13 09.09.2016
sdcli64 Commandline Tool
Start der Unit-Test mittels Commandline
Unit-Testing
"if Jenkins Oraclet“14 09.09.2016
"if Jenkins Oraclet“15 09.09.2016
CI mit Jenkins
CI mit Jenkins
"if Jenkins Oraclet“16 09.09.2016
Jenkins ist ein erweiterbares, webbasiertes Software-System für die kontinuierlichen Integration von Komponenten zu einem Anwendungsprogramm.
Freier und offener CI-Server
Läuft in beliebigen Java Servlet-Containern
Wird mit Servlet-Middleware Winstone ausgeliefert
Multi-Plattform / Multi-Technologie
– Java, PHP, Groovy, Ruby, …
Vernetzte CI-Server um Tests zu parallelisieren
Vielseitige Integrationsmöglichkeiten
CI mit Jenkins
"if Jenkins Oraclet“17 09.09.2016
Jenkins ist ein erweiterbares, webbasiertes Software-System zur kontinuierlichen Integration von Komponenten zu einem Anwendungsprogramm.
Durch Plugins beliebig erweiterbar
REST-basierte Programmierschnittstelle
Unterstützung verschiedener Build-Tools
– Apache Ant, Maven oder Gradle ...
Anbindung an Versionsverwaltungssysteme wie CVS, TFS oder Subversion
CI mit Jenkins
"if Jenkins Oraclet“18 09.09.2016
Historie
Artefakte
TestergebnisseTrends
"if Jenkins Oraclet“19 09.09.2016
Unit-Tests mit Jenkins
Unit-Tests mit Jenkins
"if Jenkins Oraclet“20 09.09.2016
Änderung im RepositoryManuelles AuslösenZeitlich gesteuerter Build
Auslöser Check Out Build Post-BuildAktionen
Unit-Test mit Jenkins
"if Jenkins Oraclet“21 09.09.2016
Inhalte aus SVN / TFS /… ziehen
Auslöser Check Out Build Post-BuildAktionen
Unit-Test mit Jenkins
"if Jenkins Oraclet“22 09.09.2016
Unit-Test startenShellscript starten…
Auslöser Check Out Build Post-BuildAktionen
Unit-Test mit Jenkins
"if Jenkins Oraclet“23 09.09.2016
Auslöser Check Out Build Post-BuildAktionen
E-Mail(s) versendenJUnit Testergebnisse anzeigen…
Unit-Test mit Jenkins
"if Jenkins Oraclet“24 09.09.2016
"if Jenkins Oraclet“25 09.09.2016
Fazit
Fazit
"if Jenkins Oraclet“26 09.09.2016
Welche Vorteile ergeben sich aus dem Vorgehen?
Höhere Transparenz und Sichtbarkeit
Automatisches Ausführen der Unit-Tests
Höhere Akzeptanz der Unit-Tests
Fazit
"if Jenkins Oraclet“27 09.09.2016
Welche Vorteile ergeben sich aus dem Vorgehen?
Sehr frühzeitiges entdecken der Fehler
Integrations-Probleme werden nicht erst kurz vor einem Meilenstein gefunden
Dokumentation
Leichteres Refactoring
Höhere Qualität der Software
Fazit
"if Jenkins Oraclet“28 09.09.2016
Welche Nachteil ergeben sich aus de Vorgehen?
Ein weiteres System das gepflegt werden muss
In der Anfangsphase ein höherer Aufwand
Zusätzliche Methoden für Unit-Tests
Mehraufwand zur Sensibilisierung warum Unit-Tests notwendig sind
"if Jenkins Oraclet“29 09.09.2016
https://jaxenter.de/continuous-delivery-jenkins-21451JenkinsJenkins WikipediaDocker Images inkl Oracle 12c und Jenkins
Martin RitschelSenior Consultant
Tel. +49 162 273 39 [email protected]
09.09.2016 "if Jenkins Oraclet“30
Session Feedback – now
TechEvent September 201631 09.09.2016
Please use the Trivadis Events Mobile App to give session feedback
Use "My schedule" if you registered for this session
Otherwise use "Agenda" and the search function
If the mobile App does not work (or if you have a Windows Phone) use your Mobile Browser
– URL: http://trivadis.quickmobileplatform.eu/
– Username: <your_loginname> (like svv)
– Password: sent by mail...