PL/SQL Unit Tests mit SQL Developer



Ähnliche Dokumente
SQL Developer Unit Tests

PL/SQL Unit Tests mit SQL Developer

Beratung Messbar / Transparent / Reproduzierbar

CI mit Forms im Weblogic Umfeld: CI mit Forms geht das

teamsync Kurzanleitung

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

f Link Datenbank installieren und einrichten

GITS Steckbriefe Tutorial

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Bkvadmin2000 Peter Kirischitz

Umleiten von Eigenen Dateien per GPO

Guideline. Facebook Posting. mit advertzoom Version 2.3

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Zeitlich abhängig von OWB?

Oracle DWH Konferenz Neuss

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Warenwirtschaft Handbuch - Administration

Neuinstallation Einzelplatzversion

Anleitung zum Prüfen von WebDAV

BILDARCH LAN. 1 Einleitung. 2 Installation Übersicht. Server

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Installation der Demoversion vom M-Doc AutoSigner

Gruppenrichtlinien und Softwareverteilung

Implementierungsvarianten. mit Oracle Application Express

Installations-Hilfe. blue office Version 3.5

Sage Treuhandaustausch onesage Version 2.2

Panagon Capture 3.0 Dokumentation

Synchronisations- Assistent

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

Stammdatenanlage über den Einrichtungsassistenten

Vor der Installation lesen Sie bitte sorgfältig die folgende Installationsanleitung.

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Schnelleinstieg BENUTZER

Gezielt über Folien hinweg springen

Microsoft Office Einleitung

Datenbanken für Online Untersuchungen

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

ecaros2 - Accountmanager

Step by Step Softwareverteilung unter Novell. von Christian Bartl

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

Lehrer: Einschreibemethoden

Last-Bibliothek. Inhaltsverzeichnis

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

IBM License Information document

Sophia Business Leitfaden zur Administration

Schuljahreswechsel im Schul-Webportal

ADDISON Aktenlösung Automatischer Rewe-Import. Technische Beschreibung

3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode?

Moodle-Kurzübersicht Kurse Sichern und Zurücksetzen

WARY Notariat Urkundenrolle V2013

PKV- Projektanlage Assistent

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Anleitung für die Einrichtung weiterer Endgeräte in 4SELLERS SalesControl

Installationsleitfaden kabelsafe backup professional unter MS Windows

Anleitung zu htp Mail Business htp WebMail Teamfunktionen

Erstellen und Bearbeiten von Inhalten (Assets)

Oracle APEX Installer

Information-Design-Tool

Optimale Integration leicht gemacht.

Datenbanken auf Sybase SQL-Anywhere

EINSTELLUNGEN WÄHLEN. von Harald Jakobs und Yannic Hoffmann Stand: September 2015

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Anleitung zur Verwendung der VVW-Word-Vorlagen

SEND-IT Bedienungsanleitung

Elexis-BlueEvidence-Connector

AutoCAD Dienstprogramm zur Lizenzübertragung

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Tutorial Microsoft Office 2003 verteilen

Microsoft SQL Server 2005 für Administratoren

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Überblick über APEX Carolin Hagemann

Handbuch B4000+ Preset Manager

a.sign Client Lotus Notes Konfiguration

Einrichtung Schritte:

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Einrichten von Benutzergruppen und Benutzern

Kontenaktualisierung in Lexware buchhalter

Online-Dateienablage und Datenaustauschdienst Box.net Stand: September 2011

OP-LOG

Abschluss Version 1.0

ERASMUS+ im Schulbereich (COMENIUS) Mobility Tool. Berichterstattung über KA1 Mobilitätsprojekte. Stand: 23. Oktober 2014

Kurzeinführung Excel2App. Version 1.0.0

KURZANLEITUNG CLOUD OBJECT STORAGE

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

s aus -Programm sichern Wählen Sie auf der "Startseite" die Option " s archivieren" und dann die entsprechende Anwendung aus.

Anleitung zum Importieren, Durchführen und Auswerten von Umfragen in Blackboard

Inhaltsverzeichnis Dokumentverwaltung Organisation von Dokumenten Ordner erstellen Dokumente im Dateisystem behandeln...

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Anleitung zum Prüfen von WebDAV

Arbeitsabläufe FinanzProfiT Version 4.25

Level9 l Mein Papierloses Büro Hilfe

Online - Zusammenarbeit bei Google

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Regionaltreffen Rhein Main 26. März 2007

Mit ApEx 3.1 eine Website mit integriertem CMS entwickeln. Enrico Mischorr merlin.zwo InfoDesign GmbH & Co. KG

Transkript:

Perry Pakull Principal Consultant Trivadis AG BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 1

@PerryPakull Principal Consultant Trivadis AG in Zürich (CH) perry.pakull@trivadis.com Oracle Application Development SQL und PL/SQL Forms und Reports APEX BI Publisher Architektur, System Design, Datenmodellierung Modernisierung Forms und Reports 2

Unser Unternehmen Trivadis ist führend bei der IT-Beratung, der Systemintegration, dem Solution-Engineering und der Erbringung von IT-Services mit Fokussierung auf und Technologien im D-A-CH-Raum. Unsere Leistungen erbringen wir aus den strategischen Geschäftsfeldern: B E T R I E B Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme. 3

Mit über 600 IT- und Fachexperten bei Ihnen vor Ort Hamburg 12 Trivadis Niederlassungen mit über 600 Mitarbeitenden 200 Service Level Agreements Düsseldorf Frankfurt Stuttgart Freiburg München Basel Brugg Bern Zürich Lausanne Wien Mehr als 4'000 Trainingsteilnehmer Forschungs- und Entwicklungsbudget: CHF 5.0 Mio. / EUR 4.0 Mio. Finanziell unabhängig und nachhaltig profitabel Erfahrung aus mehr als 1'900 Projekten pro Jahr bei über 800 Kunden 4 4 4 Stand 12/2013

AGENDA 1. Einleitung 2. Unit Test Repository erstellen 3. Unit Tests erstellen und ausführen 4. Best Practice 5. Automatisierung von Unit Tests 6. Exportieren und Importieren von Unit Tests 7. Fazit 5

Einleitung 6

Unit Tests Unit Tests sind ein aufwendiger aber auch notwendiger Bestandteil eines Software Entwicklungsprozesses Vorhandene Frameworks im Oracle Datenbankumfeld sind gering SQL Developer bietet eine Vielzahl von Assistenten und Funktionen für den Entwickler, die den Einstieg in Unit Tests für PL/SQL Programme erleichtern Vortrag beschreibt die technischen Möglichkeiten des SQL Developers für die Erstellung, Verwaltung und Automatisierung von Unit Tests 7

Unit Test Repository erstellen 8

Unit Test Repository SQL Developer benötigt ein Repository für Unit Test Funktionen Repository in einer Oracle Datenbank Repository besteht aus Tabellen, Views und anderen Datenbankobjekten Eigenes Schema für das Repository Installation über SQL Developer Benutzeroberfläche 9

Installation 3 Schritte für die Installation des Repositories Datenbankbenutzer UNIT_TEST_REPOS für Repository anlegen Verbindung mit DBA Berechtigungen erforderlich Rechts-Klick "Other Users", Kontextmenü "Create User" System Privileg CREATE SESSION Verbindung für Datenbankbenutzer UNIT_TEST_REPOS erstellen Auswahl "Tools, Unit Test, Manage Users" Neue Verbindung unit_test_repos Berechtigungen werden vergeben Repository erstellen Menüpunkt "Tools, Unit Test, Select Current Repository" Verbindung unit_test_repos verwenden Repository Objekte werden angelegt 10

Repository Berechtigungen Berechtigungen über Datenbankrollen Rolle UT_REPO_USER User Unit Tests erstellen Unit Tests ausführen Rolle UT_REPO_ADMINISTRATOR Administratoren Betrieb Repository Verwaltung Repository Repository Berechtigungen vergeben 11

Repository Objekte Objektkategorien im Repository Library Wiederverwendbare Unit Test Komponenten Dynamic Value Queries Startups Teardowns Validations Lookups Daten für Eingabeparameter Kategorisiert nach Datentypen Eine Test Implementierung pro Wert bei Neuanlage Unit Test 12

Repository Objekte Objektkategorien im Repository Reports für Auswertungen der Testergebnisse All Suite Runs All Test Implementation Runs All Test Runs Suite Runs Code Coverage Suite Test Implementation Runs Suite Test Runs Test Implementation Runs Test Runs Code Coverage User Test Runs (test runs grouped by user) 13

Repository Objekte Objektkategorien im Repository Suites Gruppe von Unit Tests Kann Suites enthalten Tests Unit Tests - Test Implementierungen 14

Unit Tests erstellen und ausführen 15

Unit Test erstellen Einstieg in die Erstellung Rechts-Klick auf eine Prozedur, Funktion oder Methode eines Packages im Navigator Rechts-Klick auf den Knoten Tests im Navigationsfenster für Unit Tests 16

Unit Test erstellen Schritt 1 Test Name Test Name definieren Name wird vom Datenbankobjekt übernommen Eine Dummy Implementierung Option Lookup Values für mehr Implementierungen 17

Unit Test erstellen Schritt 2 Startup Startup Prozesse Testkonstellation für Objekte und Daten aufbauen Prozesse Table or Row Copy User PL/SQL Code 18

Unit Test erstellen Schritt 3 Parameter Parameterwerte eingeben IN Parameter OUT Parameter als Testergebnis Return-Werte für Funktionen als Testergebnis Dynamic Value Query Erwartetes Ergebnis 19

Unit Test erstellen Schritt 3 Parameter Dynamic Value Query Syntax select? as RETURNS$,? as P_EMP_ID from? where? Alias für die Zuordnung der Werte zu den Parametern Implementierung wird entsprechend der Anzahl der Datensätze ausgeführt Komponente in der Unit Test Library 20

Unit Test erstellen Schritt 4 Validierungen Validierungen Testergebnisse prüfen Prozesse Boolean Function Compare Query Results Compare Tables Query returning no rows Query returning rows User PL/SQL Code 21

Unit Test erstellen Schritt 5 Teardown Teardown Prozesse Testkonstellation für Objekte und Daten aufräumen Prozesse Table Drop Table or Row Restore User PL/SQL Code 22

Unit Test erstellen Schritt 6 Summary Summary Zusammenfassung der Definitionen und Eingaben 23

Unit Test Editor Unit Test bearbeiten Klick auf den Namen im Navigator Vollständige Übersicht Alle Komponenten änderbar Weitere Funktionen im Kontextmenü über Rechts-Klick Löschen, Umbenennen, Kopieren, Implementierung ergänzen, Ausführen, Testergebnisse löschen, Synchronisation, Export 24

Unit Test ausführen Unit Test ausführen mit F9 Synchrone Ausführung Anzeige der Ergebnisse 25

Best Practice 26

Empfehlungen Strategie Lektüre der SQL Developer Hilfe für den Einstieg und das Verständnis Vollständiges Tutorial Oracle Empfehlungen für die Verwendung der Objekte und Funktionen Strategie für die Vorgehensweise, Granularität der Tests definieren Ein Unit Test adressiert die kleinste testbare Einheit einer Software - Einzelne Prozeduren und Funktionen - Prozeduren und Funktionen in einem Package oder Object Type Body Strategie für neue Applikationen - Parallel zur Entwicklung des Codes erfolgt Entwicklung der Unit Tests Strategie für bestehende Applikationen - Zunächst Einteilung der PL/SQL Objekte in funktionale Gruppen - Gruppen als Suites abbilden - Schrittweise einzelne Unit Tests den Suites zuordnen 27

Empfehlungen Namenskonventionen Name für einen Unit Test ist auf 120 Zeichen begrenzt Name muss eindeutig sein Eine sinnvolle Benennung ist daher wichtig Name des Datenbankobjektes übernehmen Einfache Zuordnung der Tests zu den Datenbankobjekten Nummerierung durch eine sinnvolle Erweiterung im Namen anpassen Mehr als ein Test pro Datenbankobjekt oder unterschiedliche Versionen Name des Schemas oder der Datenbank oder der Umgebung ergänzen Datenbankobjekte mit gleichem Namen aus unterschiedlichen Schemas oder Datenbanken 28

Empfehlungen Test Implementierungen Benennung sinnvoll an den Inhalt der Test Implementierung anpassen Vorgeschlagene Nummerierung der Implementierungen ist nicht aussagekräftig Jeder Test sollte eine Implementierung mit den Standard-Eingabewerten enthalten Weitere Implementierungen mit NULL-Werten, Minimum- und Maximum- Werten 29

Empfehlungen Gruppierung Verwendung von Test Suites für eine Gruppierung der Tests Unit Tests zu einem Package in einer Suite mit dem Package Namen gruppieren Suites hierarchisch ordnen Master-Suite für die Ausführung aller Tests 30

Empfehlungen Unit Test Library Modularisierung der Komponenten Wiederverwendung möglich Objekte aus der Library kopieren oder vererben 31

Empfehlungen Command-Line Interface Automatisierte Ausführung der Tests mit Command-Line Interface Auswertung der Testergebnisse durch Abfragen der Ergebnis-Tabellen im Repository 32

Empfehlungen Repository Installation Unit Test Repository in eigenes Datenbankschema installieren Ein Repository pro Datenbank ist ausreichend Bei Bedarf können auch mehrere installiert werden 33

Automatisierung von Unit Tests 34

Software Entwicklungsprozesse Moderne Software Entwicklung Continuous Integration Continuous Delivery Automatisierte Tests sind zentraler Bestandteil 35

SQL Developer Command-Line Interface Ausführung von Unit Tests mit dem Command-Line Interface sdcli64 unittest -run -test -suite -id <id> -name <name> -repo <connection name> -db <connection name> {-return <return id>} {-log <0,1,2,3>} Parameter test suite id name repo db return Unit Test oder Test Suite Interne ID oder Name SQL Developer Verbindung für Unit Test Repository SQL Developer Verbindung für Entwicklungsschema ID für Testergebnisse 36

Export und Import 37

Export Export der Unit Test Objekte über SQL Developer Benutzeroberfläche Rechts-Klick auf Unit Test, Suite, Dynamic Value Query, Startup, Teardown, Validation Kontextmenü "Export to File" Mehrere Objekte markieren Export in eine Datei Dateiformat XML Export enthält die markierten Objekte und alle abhängigen Objekte Export Suite enthält alle zugeordneten Unit Tests Abhängige Objekte aus Repository Library 38

Export Command-Line Interface Export von Repository Objekten mit dem Command-Line Interface sdcli64 unittest -export -test suite validation startup teardown query -id <id> -name <name> -repo <connection name> -file <file name> Parameter object id name repo file Repository Objekt: Test, Suite, Validation Prozess, Startup Prozess, Teardown Prozess, Dynamic Value Query Interne ID oder Name SQL Developer Verbindung für Unit Test Repository Pfad/Name der Export Datei 39

Import Import der Unit Test Objekte über SQL Developer Benutzeroberfläche Auswahl "Tools, Unit Test, Import from File" Alle Objekte werden neu angelegt Konfliktlösungsoptionen, wenn Objekte mit dem gleichen Namen bereits vorhanden sind Überschreiben Auslassen 40

Import Command-Line Interface Import von Repository Objekten mit dem Command-Line Interface sdcli64 unittest -imp -repo <connection name> -file <file name> [-overwrite -skip] Parameter repo file overwrite skip SQL Developer Verbindung für Unit Test Repository Pfad/Name der Import Datei Konfliktlösung 41

Verwendungsmöglichkeiten Export und Import Verwendungsmöglichkeiten Transfer in ein anderes Repository Backup Export Dateien in Versionskontrolle übernehmen Automatisierung 42

Fazit 43

Gesamteindruck Der Gesamteindruck ist durchweg positiv Gute, integrierte Umgebung für die Entwicklung von Code und Tests 44

Vorteile Schlüssige und vernünftige Implementierung Einfache und intuitive Funktionen Erstellung eines Tests Ergänzung der Funktionen durch sinnvolle Vorlagen, keine Einschränkungen Startup Prozesse, Teardown Prozesse Command-Line Interface hilfreich für Automatisierung Ausführung, Export/Import 45

Nachteile Lookup-Funktionalität bei der Erstellung der Test Implementierungen ist umständlich Gewünschte Kategorie kann nicht aus einer Liste gewählt, sondern nur umständlich in den Einstellungen vorgegeben werden Validierungsprozesse können nicht auf benutzerdefinierte Datentypen zugreifen Der Zugriff auf die Werte ist zwar möglich, aber nur über den Datentyp VARCHAR2 Das Repository Navigationsfenster bietet keine Möglichkeit nach Tests oder anderen Objekten zu suchen Bei vielen Objekten geht die Übersicht schnell verloren 46

Weitere Informationen... Oracle Technology Network http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html 47

Fragen und Antworten... Perry Pakull Principal Consultant Telefon +41 79 264 88 37 perry.pakull@trivadis.com BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN

Trivadisan der DOAG Ebene 3 -gleich neben der Rolltreppe Wir freuen uns auf Ihren Besuch. Denn mit Trivadisgewinnen Sie immer. 49