SQL Developer Unit Tests

Ähnliche Dokumente
PL/SQL Unit Tests mit SQL Developer

PL/SQL Unit Tests mit SQL Developer

Daniela Reiner. Stuttgart,

Oracle Virtual Private Database

Transformations. Die API des Oracle Datamodeler. Dr. Gudrun Pabst. Trivadis GmbH Lehrer-Wirth-Straße München.

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Oracle Data Integrator Ein Überblick

Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab?

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

Trivadis-Gadgets im Dienste ihrer Qualität: FAAT und PL/SQL Cop

Die Nutzung von Webservices in der Oracle Datenbank. 11 März 2010

<Insert Picture Here> MySQL Workbench für Einsteiger

SQLcl Quo vadis SQL*Plus? Das neue SQL*Plus in der Praxis. Gunther Pippèrr GPI Consult München

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

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Modernisierung von Forms durch neues Look&Feel

Zeitlich abhängig von OWB?

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

Ein Reporting Service mit APEX und BI Publisher

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

Upgrade auf APEX 5. 9 Datenbanken, 400 Workspaces, über 1000 Anwendungen ein Erfahrungsbericht Carola

ODM. Bernd Weiler Nürnberg

Microsoft SQL Server 2005 für Administratoren

Installation Forms/Reports 11g auf Windows 64bit

FEHLERTOLERANTE LADEPROZESSE IN ORACLE

TOra - Toolkit for Oracle

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

Erweiterte Interaktion mit Trees und Charts in APEX

Regionaltreffen Rhein Main 26. März 2007

Oracle 10g Einführung

SAP HANA Multitenant Database Container

Dokumentation zur Anlage eines JDBC Senders

Christine Hansen, Fabrizio Fresco, Patrick Malcherek

Ein APEX für alle und alle für APEX! Niels de Bruijn, Fachbereichsleiter APEX , DOAG DB Konferenz

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

SQL (Structured Query Language) Schemata Datentypen

Team Developer 7.0. Teil 2. MD Roadshow 2016

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching


Folien php/mysql Kurs der Informatikdienste

GESTERN OWB, HEUTE ODI

Oracle Flashback. in der Praxis Dr. Frank Haney 1

PostgreSQL unter Debian Linux

BI Publisher Berichtswesen einfach und sicher. Alexander Klauss Centric IT Solutions GmbH

Oracle DWH Konferenz Neuss

O-BIEE Einführung mit Beispielen aus der Praxis

Automatisierte Datenmigration mit dynamischen SQL

Roland Tilgner. Solution Architects & Team Coaching DEVELOPMENT. ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten

Oracle Enterprise Manager 12c Database Express (EM Express)

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators

Kurzanleitung für den MyDrive Client

Implementierungsvarianten. mit Oracle Application Express

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius

ETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

THEMA: SAS DATA INTEGRATION STUDIO FÜR MEHR TRANSPARENZ IM DATENMANAGEMENT EVA-MARIA KEGELMANN

Inhaltsverzeichnis. Vorwort Teil I Einführung. 1 Einleitung Der Microsoft SQL Server... 19

SQL Developer als DBA-Tool Christian Gohmann

Migration von OWB - ODI zu schwierig, zu kompliziert, zu teuer

Typo 3 installieren. Schritt 1: Download von Typo3

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

Oracle Real Application Security (RAS) in APEX5

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Five Finger Death Punch. Oliver Lemm Competence Center Leiter APEX

Strukturierte Objekttypen

MaxDB Einführung in die Installation und Nutzung von MaxDB (Version )

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

Moderne Anwendungen und relationale Datenbanken? Natürlich!

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

MySQL 101 Wie man einen MySQL-Server am besten absichert

Dipl. Wirtsch.-Ing. Lars Geldner Nürnberg,

Datenbanken und Oracle, Teil 2

XML in der Oracle Datenbank "relational and beyond"

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

<Insert Picture Here> APEX? Aber sicher! Tipps und Tricks für eine sichere APEX-Umgebung. Carsten Czarski, ORACLE Deutschland B.V. Co.

Information-Design-Tool

Entwicklungsumgebung für die Laborübung

XML in der Oracle Datenbank

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Oracle Data Integrator

Application Express (APEX) Carsten Czarski Business Unit Database. ORACLE Deutschland B.V. & Co KG

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

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

AGENDA 1. Unit Test Repository erstellen 2. Unit Tests erstellen und ausführen 3. Empfehlungen 4. Automatisierung von Unit Tests 5. Fazit 3

Unit Test Repository erstellen 4

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 5

Installation 3 Schritte für die Installation des Repositories Datenbankbenutzer UNIT_TEST_REPOS für Repository anlegen Verbindung mit DBA Berechtigungen erforderlich 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 6

Repository Berechtigungen Berechtigungen über Datenbankrollen Rolle UT_REPO_USER Rolle für User - Unit Tests erstellen - Unit Tests ausführen - Unit Test Komponenten erstellen Rolle UT_REPO_ADMINISTRATOR Rolle für Administratoren - Betrieb Repository - Verwaltung Repository - Repository Berechtigungen vergeben 7

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 8

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) 9

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

Unit Tests erstellen und ausführen 11

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 12

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 13

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

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 15

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 16

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 17

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 18

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

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 20

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

Empfehlungen 22

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 23

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 Name einer Test Implementierung sinnvoll an den Inhalt anpassen 24

Automatisierung von Unit Tests 25

Ausführung von Unit Tests 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 26

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 27

Export Command-Line Interface Export von Repository Objekten mit dem Command-Line Interface sdcli64 unittest -exp -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 28

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 29

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 30

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

Fazit 32

Gesamteindruck Der Gesamteindruck ist durchweg positiv Gute, integrierte Umgebung für die Entwicklung von Code und Tests Vorteile Schlüssige Implementierung Einfache/intuitive Funktionen Erstellung eines Tests Ergänzung durch Vorlagen Startup + Teardown Prozesse Command-Line Interface Hilfreich für Automatisierung Ausführung, Export/Import Nachteile Umständliche Lookup-Funktionalität für Implementierungen Kategorie nur über Einstellungen Validierung benutzerdefinierter Datentypen Zugriff nur über VARCHAR2 Suche im Navigationsfenster Fehlende Übersicht 33

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

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