Entwicklung von qualitativ hochwertigen APEX Anwendungen. Sven Böttcher Consultant, Apps Associates GmbH

Ähnliche Dokumente
APEX und Workflows: Spaghetticode oder Integration. Sven Böttcher. Consultant, Apps Associates GmbH

Oracle Business Intelligence (OBIEE) 12c Ein erster Einblick in die neue Reporting-Engine von Oracle

ORACLE Application Express (APEX) und Workflows. Copyright Apps Associates LLC. 1

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Die Erkenntnis von gestern muss heute mit einem neuen TEAM - Ihr Partner für IT 2

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

Empfehlungen für erfolgreiche ADF-Projekte. Volker Linz Oracle Deutschland B.V. & Co. KG

PL/SQL Unit Tests mit SQL Developer

Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. Starten von Oracle Forms

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

Christian Raab. Persönliche Daten

Die ideale PHP-Entwicklungsumgebung für IBM i Programmierer

Continuous Delivery in der Realität eines Großunternehmens

Ein Blick unter die Motorhaube von Oracle APEX. Patrick Wolf, Sphinx IT Consulting DOAG Konferenz Nürnberg,

Oracle BI Publisher Webservice API in Action

CARSTEN EMRATH. Abschluss Diplom (FH) Fach Angewandte Informatik. Sun Certified Programmer for the Java 2 Platform, Standard Edition 1.

MSDN Webcast: Team Foundation Server Mehr als nur eine Versionsverwaltung! Visual Studio Team System (Teil 1 von 10) Veröffentlicht: 20.

Continuous Delivery mit OpenShift

APEX: from past to present

New Features Oracle Forms 11g Nichts Neu für Forms?

Das Interceptor Muster

Build-Pipeline mit Jenkins

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

Auswahl eines Continuous Integrationsservers

Testest Du schon? Verfahren und Tools zum Testen von Software

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Oracle APEX 3.2. Peter Raganitsch. Einführung und neue Features

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Spock und Geb (WebDriver) Wie können freie Werkzeuge zum strukturierten Testen von Web-Applicationen eingesetzt werden?

APEX 5.0 als wertvolle Ergänzung einer SharePoint-Umgebung. Alexej Schneider DOAG 2015

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

Übung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build:

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG

Implementierungsvarianten. mit Oracle Application Express

APEX 5.0 DOAG Mai 2014

CamelCaseCon 2011 Vortrag von Stefan Glase am Statische Code-Analyse für Groovy & Grails mit CodeNarc

Moderne Datenbankentwicklung mit Hilfe von SQL Server Data Tools

Infrastruktur entwickeln mit Chef

Dirk Reinemann Working Student Sales Consulting

Fabian Schmengler Pragmatisches Unit Testing. Meet Magento DE 2015

Automatisierte Akzeptanztests für ios-apps. Sven Günther it-agile GmbH

Armin Neudert TMN Systemberatung GmbH. Visual Studio ALM Days 2012

Aktuelle Kurstermine

Continuous Database Integration mit Flyway

GitLab als alternative Entwicklungsplattform zu Github.com

Groovy on Grails. Informatik-Seminar WS06/07. Alexander Treptow. Groovy on Grails Alexander Treptow (minf2622) 1

Möglichkeiten von Cloud Computing für Entwicklung und Test. Michael Eichenberger SBB Informatik Developer Day 10. Dezember 2013

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012

Sind Cloud Apps der nächste Hype?

Agile BI in der Praxis

Technologien für zeitgemässe Web- Projekte , Guido Steenkamp

Iterativ. Inkrementell

Wir implementieren Lösungen. + DevOps-in-the-Box. Rainer Heinold VP Technology and Services

Uwe Baumann artiso Solutions

Regionaltreffen Rhein Main 26. März 2007

Moderne Web-Anwendungen mit Vaadin

Moderne Web- Anwendungen mit

Entwicklungswerkzeuge & - methoden

Praktische Anwendungsentwicklung mit Oracle Forms

Small Solutions bei der Deutschen Bahn Eine Erfolgsstory. DB Systel GmbH André Monson, Matthias Nöll Small Solutions

Christian Meder inovex. Sauberes Grün QS für Android

Testautomatisierung. Märchen, Möglichkeiten und praktischer Nutzen. Richard Seidl 21. Januar 2013 TU Dresden. Medizin- und Informationstechnik AG

SQLdetective - Ein günstiges Tool unter die Lupe genommen

Web-Anwendungsentwicklung mit dem Delivery Server

Ruby on Rails. Thomas Baustert Ralf Wirdemann Alternative zur Web-Entwicklung mit Java?

Continuous Delivery mit OpenShift, 2nd Edition

Thomas Freitag achelos GmbH SmartCard-Workshop achelos GmbH

Max-Ernst Strasse 29, Meerbusch. Diplom Informatiker FH, Fachhochschule Dortmund. Softwareentwicklung / Projektmanagement

Weblog. Projektdokumentation. Java NDK Fallstudie. Identifikation: ID Status: in Arbeit Version: 00.11

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -

Android Testautomatisierung mit dem Framework Robotium

Giftige Akzeptanztests?

Salesforce.com Entwicklerhandbuch

Agile BI in der Praxis

DOAG Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V.

Anforderungsgetriebene Webentwicklung mit Grails:

Bitte bedienen Sie sich!

DOAG Regional-Konferenz München 09/2007. APEX Neuerungen in 2.2/3.0

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit

Echolot Qualitätssicherung mit Sonar

Wolfgang Kraus Kaufland Informationssysteme Vortrag bei der Fachgruppe IT-Projektmanagement, Stuttgart, Freitag den 7.März 2008

Lokale Installation von DotNetNuke 4 ohne IIS

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE - APPS IOZ AG 1

<Insert Picture Here> Schnelle Anwendungen mit Oracle Application Express

Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen

Android-Testautomatisierung mit Robotium

Automatisches Exploratives Testen von Webanwendungen

Ein ganz normaler Tag. Eclipse und Ich

NABUCCO Test Automation Automatisiertes Testen ohne Programmieren

NEUES AUS DER ENTWICKLUNG. April 2015

Hilfe, ich verstehe meine APEX Seite nicht mehr! DOAG Development Konferenz, Düsseldorf

Testgetriebene Web-Entwicklung mit Ruby on Rails

Architecture Blueprints

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner

Code Quality. Steigerung der Codequalität mit Visual Studio & TFS

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

Scriptbasierte Testautomatisierung. für Web-Anwendungen

Transkript:

Entwicklung von qualitativ hochwertigen APEX Anwendungen Sven Böttcher Consultant, Apps Associates GmbH

Apps Associates Apps Associates gegründet 2002 in Boston (HQ) seit 2003 GDC in Hyderabad seit 2006 in Dortmund 650+ Mitarbeiter auf drei Kontinenten Acht Standorte 41 Mio. USD Umsatz in 2014 Copyright 2016. Apps Associates 2

Oracle Platinum Partner Sechs zertifizierte Oracle Spezialisierungen Amazon Web Services Advanced Consulting Certified CMMI Level 3 Certification SSAE16 Compliance Flexibles & Kosteneffizientes Global Delivery Model Mitglied der Scope Alliance Performance. Wachstum. Qualität. Copyright 2016. Apps Associates 3

Agenda Continous Integration Jenkins als CI Server Jenkins mit Maven als Build Tool Jenkins mit RSpec als Test Tool Selenium (Webdriver) als Test Tool Copyright 2016. Apps Associates 4

Qualität von Software Qualitätsmodell nach ISO/IEC 9126 Quelle: SO/IEC FDIS 9126-1 Copyright 2016. Apps Associates 5

Maßnahmen zur Qualitätssicherung Vorgehensmodelle Dokumentation Refactoring Code Reviews Entwicklungsstandards Best Practices Softwaretests Testgetriebene Entwicklung Continous Integration Copyright 2016. Apps Associates 6

APEX Best Practices Berichte: Auf APEX Seiten vs. in Views implementieren JavaScript: Auf APEX Seiten vs. als statische Komponente Tabular Forms: Assistenten vs. manuell implementieren mit APEX Items Zugriffssteuerung: Bedingung von Elementen vs. Autorisierungsschema AJAX: Dynamic Actions vs. manuell implementieren (apex.server.process) PLSQL: Auf APEX Seiten vs. in Packages/Funktionen/Prozeduren Copyright 2016. Apps Associates 7

Continous Integration Verfahren zur Steigerung der Softwarequalität Kontinuierliches zusammenfügen und bauen der Software Kontinuierliche Ausführung von Softwaretests Unterstützung durch CI Server (Hudson, Jenkins, Bamboo, ) Automatisiertes bauen und testen Ausgelöst durch Änderungen im Versionskontrollsystem Überblick über den Status des Softwareprojektes I.A. lassen sich weitere Operationen zur Qualitätssteigerung integrieren Copyright 2016. Apps Associates 8

Continous Integration Build Werkzeug 3. Build 4. Build Ergebnisse CI Server 2. Update VCS Test Werkzeug 6. Test Ergebnisse 5. Tests 7. Ergebnisse veröffentlichen 1. Commit Copyright 2016. Apps Associates 9

APEX/PLSQL Entwicklung im Team Oracle Datenbank APEX Copyright 2016. Apps Associates 10

APEX und Continous Integration CI Server CI Umgebung Copyright 2016. Apps Associates 11

APEX und Continous Integration Beispiel Architektur CI Server CI Server: Jenkins Versionskontrollsystem: SVN Build-Werkzeug: Maven ojdbc Treiber plsql-maven-plugin bauen von Datenbankobjekten exec-maven-plugin bauen der APEX Anwendung mit sqlplus Test-Werkzeug für Unit Tests: ruby-plsql-spec Test-Werkzeug für APEX Tests: Selenium Webdriver SVN mit dem SQL Developer DDL und PLSQL muss in Dateien gespeichert werden Export von APEX Anwendungen/Seiten Copyright 2016. Apps Associates 12

APEX/PLSQL Build mit Maven Jenkins Copyright 2016. Apps Associates 13

APEX/PLSQL Build mit Maven Copyright 2016. Apps Associates 14

APEX/PLSQL Build mit Maven Copyright 2016. Apps Associates 15

APEX/PLSQL Build mit Maven Problem: Werden bereits existierende Datenbankobjekte jedes mal beim Build erzeugt, kommt es zu einem Fehler 2 Lösungen: Alle Datenbankobjekte vor dem Erstellen löschen problematisch beim Deployment z.b. auf Produktivumgebungen Besser: execute emmediate mit Exception Block verwenden Copyright 2016. Apps Associates 16

APEX/PLSQL Build mit Maven Kommt es beim kompilieren von DDLs zu einem Fehler, ist dies in Jenkins ersichtlich Copyright 2016. Apps Associates 17

APEX/PLSQL Build mit Maven Problem: Für Funktionen/Prozeduren/Packages gilt das nicht Package wird mit Warnung kompiliert und Jenkins erkennt das Build als erfolgreich Beispiel: Package benutzerverwaltung ist fehlerhaft Copyright 2016. Apps Associates 18

APEX/PLSQL Build mit Maven Problem: Für Funktionen/Prozeduren/Packages gilt das nicht Package wird mit Warnung kompiliert und Jenkins erkennt das Build als erfolgreich Copyright 2016. Apps Associates 19

APEX/PLSQL Build mit Maven exec-maven-plugin Kompilieren von Funktionen/Prozeduren/Prozeduren und bauen der APEX Anwendung mit sqlplus Copyright 2016. Apps Associates 20

APEX/PLSQL Build mit Maven exec-maven-plugin Fehlermeldung durch raise_application_error im sql Skript Copyright 2016. Apps Associates 21

APEX/PLSQL Build mit Maven Fehlerhaftes Build in Jenkins Copyright 2016. Apps Associates 22

APEX/PLSQL Build mit Maven Bauen der APEX Anwendung Workspace ID der CI Datenbank! Copyright 2016. Apps Associates 23

Softwaretests Black-Box-Tests Spezifikationsgetrieben Das innere der Software ist nicht bekannt Werden i.a. durch den Kunden spezifiziert (äquivalenzklassenbasiert, grenzwertbasiert, ) Entspricht die Software der Spezifikation? White-Box-Tests Strukturgetrieben Das innere der Software ist der Testgegenstand Werden i.a. durch den Entwickler spezifiziert (Anweisungsüberdeckung, kontrollflussorientierte Verfahren, ) Enthält die Software Fehler? Copyright 2016. Apps Associates 24

PL/SQL Unit Tests mit ruby-plsql-spec (ruby-plsql+rspec) Jenkins Copyright 2016. Apps Associates 25

PL/SQL Unit Tests mit ruby-plsql-spec (ruby-plsql+rspec) RSpec Behavior Driven Development (BDD) / Test Framework für Ruby Strukturierung der Tests: Describe: Beschreibt eine Funktionalität bzw ein Verhalten Context: Fasst Verhaltensbeschreibungen, die unter einem bestimmten Kontext bzw. Zustand gelten sollen, zusammen Strukturierung von Describe Blöcken It: Beschreibt ein bestimmtes Verhalten bzw. einen konkreten Testfall Expectations: expect(actual).to eq(expected) expect(actual).to be [> < >= <=] expected expect(actual).to be true expect(actual).to be nil expect(actual).not_to nil ruby-plsql Ruby API für SQL/PLSQL Copyright 2016. Apps Associates 26

PL/SQL Unit Tests mit ruby-plsql-spec (ruby-plsql+rspec) Unit Test mit ruby-plsql-spec Copyright 2016. Apps Associates 27

PL/SQL Unit Tests mit ruby-plsql-spec (ruby-plsql+rspec) Code Coverage Copyright 2016. Apps Associates 28

APEX Tests mit dem Selenium Webdriver Jenkins Copyright 2016. Apps Associates 29

APEX Tests mit dem Selenium Webdriver Selenium: Testumgebung für Webanwendungen (Firefox Plugin) Selenium Webdriver API für Selenium Ruby binding for Selenium Verwendung von Selenium in Ruby/RSpec Tests können in RSpec formuliert werden! Mit ruby-plsql kann gegen die Datenbank getestet werden Copyright 2016. Apps Associates 30

APEX Tests mit dem Selenium Webdriver Selenium Webdriver mit Ruby Firefox Driver erstellen: @driver = Selenium::WebDriver.for(:firefox) URL öffnen: @driver.navigate.to(@url) Wert in Formularfeld schreiben: @driver.find_element(:id, ID ).send_keys( Wert ) Auf einen Button klicken: @driver.find_element(:id, ID").click Copyright 2016. Apps Associates 31

APEX Tests mit dem Selenium Webdriver Copyright 2016. Apps Associates 32

APEX Tests mit dem Selenium Webdriver Copyright 2016. Apps Associates 33

APEX Best Practices Probleme Entwicklung im Team Architektur für Teamentwicklung Installation JENKINS, plsql-jenkins-plugin,sql-ruby/sql-ruby-spec Konfiguration Maven build Prozess (pom) für plsql Konfiguration JENKINS für plsql build Prozess Konfiguration sql-ruby-spec für Unit test Kann mit sql-ruby-spec Session info gesetzt werden? Wie sollten DDL aussehen / Exception Blöcke um doppelte Objekte zu vermeiden: WHEN OTHERS THEN IF SQLCODE = -955 THEN NULL; ELSE RAISE; END IF;) SQL Developer und svn Build von PLSQL mit maven exec plugin bei Fehlerhaften Compileprozessen kann der build Prozess als fehlerhaft markiert werden CI von APEX Applikationen Fehler, wenn z.b. Funktionen umbenannt werden? Copyright 2016. Apps Associates 34

Fazit Continous Integration ist mit APEX möglich Die Art und Weise der Entwicklung ändert sich Das Schreiben von Tests kann sehr zeitaufwändig sein Es wird mehr Infrastruktur benötigt Aber: Die Qualität der Software hinsichtlich der Korrektheit kann stark verbessert werden Das Deployment auf UAT-/Produktiv- und anderen System kann anschließend sehr einfach von statten gehen oder sogar automatisch erfolgen (Continous Deployment) Copyright 2016. Apps Associates 35

Vielen Dank