SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
PL/SQL Unit Tests mit SQL Developer 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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: 
Trivadis Services übernimmt den korrespondierenden Betrieb 
Ihrer IT Systeme. 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
B E T R I E B 
3
Mit über 600 IT- und Fachexperten bei Ihnen vor Ort 
2014 © Trivadis 
4 
12 Trivadis Niederlassungen mit 
über 600 Mitarbeitenden 
200 Service Level Agreements 
Mehr als 4'000 Trainingsteilnehmer 
Forschungs- und Entwicklungs-budget: 
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 
Stand 12/2013 
Hamburg 
Düsseldorf 
Frankfurt 
Freiburg 
München 
Wien 
Basel 
Bern Zürich 
Lausanne 
4 
Stuttgart 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
4 
Brugg
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
5
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
7
Unit Test Repository erstellen 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
11
Repository Objekte 
Objektkategorien im Repository 
2014 © Trivadis 
 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 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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) 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
13
Repository Objekte 
Objektkategorien im Repository 
2014 © Trivadis 
 Suites 
 Gruppe von Unit Tests 
 Kann Suites enthalten 
 Tests 
 Unit Tests 
- Test Implementierungen 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
14
Unit Tests erstellen und ausführen 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
17
Unit Test erstellen Schritt 2 Startup 
Startup Prozesse 
 Testkonstellation für 
Objekte und Daten 
aufbauen 
2014 © Trivadis 
 Prozesse 
 Table or Row Copy 
 User PL/SQL Code 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
19
Unit Test erstellen Schritt 3 Parameter 
Dynamic Value Query 
select ? as RETURNS$, ? as P_EMP_ID from ? where ? 
2014 © Trivadis 
 Syntax 
 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 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
20
Unit Test erstellen Schritt 4 Validierungen 
2014 © Trivadis 
Validierungen 
 Testergebnisse prüfen 
 Prozesse 
 Boolean Function 
 Compare Query Results 
 Compare Tables 
 Query returning no rows 
 Query returning rows 
 User PL/SQL Code 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
21
Unit Test erstellen Schritt 5 Teardown 
Teardown Prozesse 
 Testkonstellation für 
Objekte und Daten 
aufräumen 
2014 © Trivadis 
 Prozesse 
 Table Drop 
 Table or Row Restore 
 User PL/SQL Code 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
22
Unit Test erstellen Schritt 6 Summary 
2014 © Trivadis 
Summary 
 Zusammenfassung der 
Definitionen und 
Eingaben 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
24
Unit Test ausführen 
Unit Test ausführen mit F9 
 Synchrone Ausführung 
 Anzeige der Ergebnisse 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
25
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
30
Empfehlungen Unit Test Library 
 Modularisierung der Komponenten 
 Wiederverwendung möglich 
 Objekte aus der Library kopieren oder vererben 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
31
Empfehlungen Command-Line Interface 
 Automatisierte Ausführung der Tests mit Command-Line Interface 
 Auswertung der Testergebnisse durch Abfragen der Ergebnis-Tabellen 
im Repository 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
33
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
Automatisierung 
von Unit Tests 
34
Software Entwicklungsprozesse 
Moderne Software Entwicklung 
 Continuous Integration 
 Continuous Delivery 
 Automatisierte Tests sind zentraler Bestandteil 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 Unit Test oder Test Suite 
id | name Interne ID oder Name 
repo SQL Developer Verbindung für Unit Test Repository 
db SQL Developer Verbindung für Entwicklungsschema 
return ID für Testergebnisse 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
36
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
Export und Import 
37
2014 © Trivadis 
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 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
38
Export Command-Line Interface 
Export von Repository Objekten mit dem Command-Line Interface 
sdcli64 unittest -export 
-test | suite | validation | startup | 
Parameter 
object Repository Objekt: Test, Suite, Validation Prozess, 
2014 © Trivadis 
teardown | query 
-id id | -name name 
-repo connection name 
-file file name 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
39 
Startup Prozess, Teardown Prozess, Dynamic Value Query 
id | name Interne ID oder Name 
repo SQL Developer Verbindung für Unit Test Repository 
file Pfad/Name der Export Datei
2014 © Trivadis 
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 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 SQL Developer Verbindung für Unit Test Repository 
file Pfad/Name der Import Datei 
overwrite | skip Konfliktlösung 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
41
Verwendungsmöglichkeiten 
Export und Import Verwendungsmöglichkeiten 
 Transfer in ein anderes Repository 
2014 © Trivadis 
 Backup 
 Export Dateien in Versionskontrolle übernehmen 
 Automatisierung 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
42
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
Fazit 
43
Gesamteindruck 
 Der Gesamteindruck ist durchweg positiv 
 Gute, integrierte Umgebung für die Entwicklung von Code und Tests 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
44
2014 © Trivadis 
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 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
46
Weitere Informationen... 
Oracle Technology Network 
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
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 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014
Trivadis an der DOAG 
Ebene 3 - gleich neben der Rolltreppe 
Wir freuen uns auf Ihren Besuch. 
Denn mit Trivadis gewinnen Sie immer. 
2014 © Trivadis 
PL/SQL Unit Tests mit SQL Developer 
15.09.2014 
49

Contenu connexe

Tendances

DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay Dresden
 
Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Jan Dittberner
 
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!gedoplan
 
Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11Stephan Hochdörfer
 
Advanced Refactoring Patterns
Advanced Refactoring PatternsAdvanced Refactoring Patterns
Advanced Refactoring PatternsHendrik Lösch
 
Advanced Refactoring Patterns - Dev Day 2018
Advanced Refactoring Patterns - Dev Day 2018Advanced Refactoring Patterns - Dev Day 2018
Advanced Refactoring Patterns - Dev Day 2018Hendrik Lösch
 
Funktionstests in SAP
Funktionstests in SAPFunktionstests in SAP
Funktionstests in SAPCadaxo GmbH
 
Agiles Testing
Agiles TestingAgiles Testing
Agiles TestingNEOMO GmbH
 
Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration ...
Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration ...Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration ...
Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration ...Trivadis
 
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...Trivadis
 
JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container
JUnit-Testing einer JEE-Anwendung in einem embedded EJB-ContainerJUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container
JUnit-Testing einer JEE-Anwendung in einem embedded EJB-ContainerJewgenij Moldawski
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascriptjoergreichert
 

Tendances (13)

Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
 
Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!
 
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!
 
Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11Testing untestable code - PHPUGFFM 01/11
Testing untestable code - PHPUGFFM 01/11
 
Advanced Refactoring Patterns
Advanced Refactoring PatternsAdvanced Refactoring Patterns
Advanced Refactoring Patterns
 
Advanced Refactoring Patterns - Dev Day 2018
Advanced Refactoring Patterns - Dev Day 2018Advanced Refactoring Patterns - Dev Day 2018
Advanced Refactoring Patterns - Dev Day 2018
 
Funktionstests in SAP
Funktionstests in SAPFunktionstests in SAP
Funktionstests in SAP
 
Agiles Testing
Agiles TestingAgiles Testing
Agiles Testing
 
Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration ...
Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration ...Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration ...
Trivadis TechEvent 2016 A few thoughts on the subject Continuous integration ...
 
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
Trivadis TechEvent 2016 Ablösung einer Tivoli Monitoring Umgebung mit OpenSou...
 
JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container
JUnit-Testing einer JEE-Anwendung in einem embedded EJB-ContainerJUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container
JUnit-Testing einer JEE-Anwendung in einem embedded EJB-Container
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascript
 

En vedette

Oracle Unit Testing with utPLSQL
Oracle Unit Testing with utPLSQLOracle Unit Testing with utPLSQL
Oracle Unit Testing with utPLSQLBrendan Furey
 
Toolwahl zu automatisierten Akzeptanztests
Toolwahl zu automatisierten AkzeptanztestsToolwahl zu automatisierten Akzeptanztests
Toolwahl zu automatisierten AkzeptanztestsMarkus Gärtner
 
eazyBI Overview - Embedding Mondrian in other applications
eazyBI Overview - Embedding Mondrian in other applicationseazyBI Overview - Embedding Mondrian in other applications
eazyBI Overview - Embedding Mondrian in other applicationsRaimonds Simanovskis
 
Improve Mondrian MDX usability with user defined functions
Improve Mondrian MDX usability with user defined functionsImprove Mondrian MDX usability with user defined functions
Improve Mondrian MDX usability with user defined functionsRaimonds Simanovskis
 
PL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL DeveloperPL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL DeveloperJeff Smith
 

En vedette (11)

PL/SQL Unit Testing Can Be Fun!
PL/SQL Unit Testing Can Be Fun!PL/SQL Unit Testing Can Be Fun!
PL/SQL Unit Testing Can Be Fun!
 
Oracle Unit Testing with utPLSQL
Oracle Unit Testing with utPLSQLOracle Unit Testing with utPLSQL
Oracle Unit Testing with utPLSQL
 
PL/SQL Unit Testing Can Be Fun
PL/SQL Unit Testing Can Be FunPL/SQL Unit Testing Can Be Fun
PL/SQL Unit Testing Can Be Fun
 
Toolwahl zu automatisierten Akzeptanztests
Toolwahl zu automatisierten AkzeptanztestsToolwahl zu automatisierten Akzeptanztests
Toolwahl zu automatisierten Akzeptanztests
 
Oracle adapters for Ruby ORMs
Oracle adapters for Ruby ORMsOracle adapters for Ruby ORMs
Oracle adapters for Ruby ORMs
 
PL/SQL unit testing with Ruby
PL/SQL unit testing with RubyPL/SQL unit testing with Ruby
PL/SQL unit testing with Ruby
 
eazyBI Overview - Embedding Mondrian in other applications
eazyBI Overview - Embedding Mondrian in other applicationseazyBI Overview - Embedding Mondrian in other applications
eazyBI Overview - Embedding Mondrian in other applications
 
Maybe some mock_true
Maybe some mock_trueMaybe some mock_true
Maybe some mock_true
 
Improve Mondrian MDX usability with user defined functions
Improve Mondrian MDX usability with user defined functionsImprove Mondrian MDX usability with user defined functions
Improve Mondrian MDX usability with user defined functions
 
PL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL DeveloperPL/SQL All the Things in Oracle SQL Developer
PL/SQL All the Things in Oracle SQL Developer
 
Use Cases
Use CasesUse Cases
Use Cases
 

Similaire à PL SQL Unit Tests mit SQL Developer

Perry pakull datenbank entwickler auf dem prüfstand präsentation
Perry pakull datenbank entwickler auf dem prüfstand präsentationPerry pakull datenbank entwickler auf dem prüfstand präsentation
Perry pakull datenbank entwickler auf dem prüfstand präsentationTrivadis
 
Performanceaspekte im Oracle DWH
Performanceaspekte im Oracle DWHPerformanceaspekte im Oracle DWH
Performanceaspekte im Oracle DWHTrivadis
 
Middleware Basics für den DBA
Middleware Basics für den DBAMiddleware Basics für den DBA
Middleware Basics für den DBATrivadis
 
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Peter Kirchner
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...Marc Müller
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Torsten Kleiber
 
2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit ArquillianMatthias Reining
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultTrivadis
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...enpit GmbH & Co. KG
 
Ich will agil testen! was muss ich können iqnite 2014 - verison 2.0
Ich will agil testen! was muss ich können   iqnite 2014 - verison 2.0Ich will agil testen! was muss ich können   iqnite 2014 - verison 2.0
Ich will agil testen! was muss ich können iqnite 2014 - verison 2.0Michael Fischlein
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Christian Kunzmann
 
Dv 20 sdlc_oss_automation
Dv 20 sdlc_oss_automationDv 20 sdlc_oss_automation
Dv 20 sdlc_oss_automationTorsten Glunde
 
Legacy Code refaktorisieren
Legacy Code refaktorisierenLegacy Code refaktorisieren
Legacy Code refaktorisierenHendrik Lösch
 
Secure Technical Implementation Guide for databases by Martin Obst
Secure Technical Implementation Guide for databases by Martin ObstSecure Technical Implementation Guide for databases by Martin Obst
Secure Technical Implementation Guide for databases by Martin ObstCarsten Muetzlitz
 
Implementierbare Sicherheitsregeln im Enterprise Manager
Implementierbare Sicherheitsregeln im Enterprise ManagerImplementierbare Sicherheitsregeln im Enterprise Manager
Implementierbare Sicherheitsregeln im Enterprise ManagerMartin Obst
 
Wie kommt der Hint in das SQL, ohne die anwendung zu ändern?
Wie kommt der Hint in das SQL, ohne die anwendung zu ändern?Wie kommt der Hint in das SQL, ohne die anwendung zu ändern?
Wie kommt der Hint in das SQL, ohne die anwendung zu ändern?Trivadis
 

Similaire à PL SQL Unit Tests mit SQL Developer (20)

Perry pakull datenbank entwickler auf dem prüfstand präsentation
Perry pakull datenbank entwickler auf dem prüfstand präsentationPerry pakull datenbank entwickler auf dem prüfstand präsentation
Perry pakull datenbank entwickler auf dem prüfstand präsentation
 
Performanceaspekte im Oracle DWH
Performanceaspekte im Oracle DWHPerformanceaspekte im Oracle DWH
Performanceaspekte im Oracle DWH
 
Middleware Basics für den DBA
Middleware Basics für den DBAMiddleware Basics für den DBA
Middleware Basics für den DBA
 
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
 
2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data Vault
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
 
Ich will agil testen! was muss ich können iqnite 2014 - verison 2.0
Ich will agil testen! was muss ich können   iqnite 2014 - verison 2.0Ich will agil testen! was muss ich können   iqnite 2014 - verison 2.0
Ich will agil testen! was muss ich können iqnite 2014 - verison 2.0
 
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...Best Practices für Last- und Performancetests von Enterprise Applikationen au...
Best Practices für Last- und Performancetests von Enterprise Applikationen au...
 
Dv 20 sdlc_oss_automation
Dv 20 sdlc_oss_automationDv 20 sdlc_oss_automation
Dv 20 sdlc_oss_automation
 
Android Testing
Android Testing Android Testing
Android Testing
 
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetproTest-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
 
Legacy Code refaktorisieren
Legacy Code refaktorisierenLegacy Code refaktorisieren
Legacy Code refaktorisieren
 
Secure Technical Implementation Guide for databases by Martin Obst
Secure Technical Implementation Guide for databases by Martin ObstSecure Technical Implementation Guide for databases by Martin Obst
Secure Technical Implementation Guide for databases by Martin Obst
 
Implementierbare Sicherheitsregeln im Enterprise Manager
Implementierbare Sicherheitsregeln im Enterprise ManagerImplementierbare Sicherheitsregeln im Enterprise Manager
Implementierbare Sicherheitsregeln im Enterprise Manager
 
Wie kommt der Hint in das SQL, ohne die anwendung zu ändern?
Wie kommt der Hint in das SQL, ohne die anwendung zu ändern?Wie kommt der Hint in das SQL, ohne die anwendung zu ändern?
Wie kommt der Hint in das SQL, ohne die anwendung zu ändern?
 
Deployments Best Practices
Deployments Best PracticesDeployments Best Practices
Deployments Best Practices
 

Plus de Trivadis

Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Trivadis
 
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Trivadis
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Trivadis
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Trivadis
 
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Trivadis
 
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Trivadis
 
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Trivadis
 
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Trivadis
 
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Trivadis
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Trivadis
 
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...Trivadis
 
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...Trivadis
 
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTrivadis
 
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...Trivadis
 
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...Trivadis
 
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...Trivadis
 
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...Trivadis
 
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...Trivadis
 
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...Trivadis
 
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTrivadis
 

Plus de Trivadis (20)

Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
 
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
 
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
 
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
 
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
 
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
 
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
 
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
 
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
 
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
 
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
 
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
 
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
 
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
 
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
 
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
 
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
 

PL SQL Unit Tests mit SQL Developer

  • 1. PL/SQL Unit Tests mit SQL Developer 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 1
  • 2. @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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 2
  • 3. 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: Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme. 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 B E T R I E B 3
  • 4. Mit über 600 IT- und Fachexperten bei Ihnen vor Ort 2014 © Trivadis 4 12 Trivadis Niederlassungen mit über 600 Mitarbeitenden 200 Service Level Agreements Mehr als 4'000 Trainingsteilnehmer Forschungs- und Entwicklungs-budget: 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 Stand 12/2013 Hamburg Düsseldorf Frankfurt Freiburg München Wien Basel Bern Zürich Lausanne 4 Stuttgart PL/SQL Unit Tests mit SQL Developer 15.09.2014 4 Brugg
  • 5. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 5
  • 6. 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 Einleitung 6
  • 7. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 7
  • 8. Unit Test Repository erstellen 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 8
  • 9. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 9
  • 10. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 10
  • 11. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 11
  • 12. Repository Objekte Objektkategorien im Repository 2014 © Trivadis 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 PL/SQL Unit Tests mit SQL Developer 15.09.2014 12
  • 13. 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) 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 13
  • 14. Repository Objekte Objektkategorien im Repository 2014 © Trivadis Suites Gruppe von Unit Tests Kann Suites enthalten Tests Unit Tests - Test Implementierungen PL/SQL Unit Tests mit SQL Developer 15.09.2014 14
  • 15. Unit Tests erstellen und ausführen 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 15
  • 16. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 16
  • 17. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 17
  • 18. Unit Test erstellen Schritt 2 Startup Startup Prozesse Testkonstellation für Objekte und Daten aufbauen 2014 © Trivadis Prozesse Table or Row Copy User PL/SQL Code PL/SQL Unit Tests mit SQL Developer 15.09.2014 18
  • 19. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 19
  • 20. Unit Test erstellen Schritt 3 Parameter Dynamic Value Query select ? as RETURNS$, ? as P_EMP_ID from ? where ? 2014 © Trivadis Syntax 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 PL/SQL Unit Tests mit SQL Developer 15.09.2014 20
  • 21. Unit Test erstellen Schritt 4 Validierungen 2014 © Trivadis Validierungen Testergebnisse prüfen Prozesse Boolean Function Compare Query Results Compare Tables Query returning no rows Query returning rows User PL/SQL Code PL/SQL Unit Tests mit SQL Developer 15.09.2014 21
  • 22. Unit Test erstellen Schritt 5 Teardown Teardown Prozesse Testkonstellation für Objekte und Daten aufräumen 2014 © Trivadis Prozesse Table Drop Table or Row Restore User PL/SQL Code PL/SQL Unit Tests mit SQL Developer 15.09.2014 22
  • 23. Unit Test erstellen Schritt 6 Summary 2014 © Trivadis Summary Zusammenfassung der Definitionen und Eingaben PL/SQL Unit Tests mit SQL Developer 15.09.2014 23
  • 24. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 24
  • 25. Unit Test ausführen Unit Test ausführen mit F9 Synchrone Ausführung Anzeige der Ergebnisse 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 25
  • 26. 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 Best Practice 26
  • 27. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 27
  • 28. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 28
  • 29. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 29
  • 30. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 30
  • 31. Empfehlungen Unit Test Library Modularisierung der Komponenten Wiederverwendung möglich Objekte aus der Library kopieren oder vererben 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 31
  • 32. Empfehlungen Command-Line Interface Automatisierte Ausführung der Tests mit Command-Line Interface Auswertung der Testergebnisse durch Abfragen der Ergebnis-Tabellen im Repository 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 32
  • 33. Empfehlungen Repository Installation Unit Test Repository in eigenes Datenbankschema installieren Ein Repository pro Datenbank ist ausreichend Bei Bedarf können auch mehrere installiert werden 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 33
  • 34. 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 Automatisierung von Unit Tests 34
  • 35. Software Entwicklungsprozesse Moderne Software Entwicklung Continuous Integration Continuous Delivery Automatisierte Tests sind zentraler Bestandteil 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 35
  • 36. 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 Unit Test oder Test Suite id | name Interne ID oder Name repo SQL Developer Verbindung für Unit Test Repository db SQL Developer Verbindung für Entwicklungsschema return ID für Testergebnisse 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 36
  • 37. 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 Export und Import 37
  • 38. 2014 © Trivadis 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 PL/SQL Unit Tests mit SQL Developer 15.09.2014 38
  • 39. Export Command-Line Interface Export von Repository Objekten mit dem Command-Line Interface sdcli64 unittest -export -test | suite | validation | startup | Parameter object Repository Objekt: Test, Suite, Validation Prozess, 2014 © Trivadis teardown | query -id id | -name name -repo connection name -file file name PL/SQL Unit Tests mit SQL Developer 15.09.2014 39 Startup Prozess, Teardown Prozess, Dynamic Value Query id | name Interne ID oder Name repo SQL Developer Verbindung für Unit Test Repository file Pfad/Name der Export Datei
  • 40. 2014 © Trivadis 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 PL/SQL Unit Tests mit SQL Developer 15.09.2014 40
  • 41. 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 SQL Developer Verbindung für Unit Test Repository file Pfad/Name der Import Datei overwrite | skip Konfliktlösung 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 41
  • 42. Verwendungsmöglichkeiten Export und Import Verwendungsmöglichkeiten Transfer in ein anderes Repository 2014 © Trivadis Backup Export Dateien in Versionskontrolle übernehmen Automatisierung PL/SQL Unit Tests mit SQL Developer 15.09.2014 42
  • 43. 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 Fazit 43
  • 44. Gesamteindruck Der Gesamteindruck ist durchweg positiv Gute, integrierte Umgebung für die Entwicklung von Code und Tests 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 44
  • 45. 2014 © Trivadis 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 PL/SQL Unit Tests mit SQL Developer 15.09.2014 45
  • 46. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 46
  • 47. Weitere Informationen... Oracle Technology Network http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 47
  • 48. 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 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014
  • 49. Trivadis an der DOAG Ebene 3 - gleich neben der Rolltreppe Wir freuen uns auf Ihren Besuch. Denn mit Trivadis gewinnen Sie immer. 2014 © Trivadis PL/SQL Unit Tests mit SQL Developer 15.09.2014 49