SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
1
Qualitätssicherung für APEX
Anwendungen.
2
über mich
Fachbereichsleiter APEX
Architekt, Projektleiter und Entwickler
3
Wir platzieren uns unter die Top 20 IT-Dienstleister in Deutschland!
> 800 Mitarbeitende
Weltweit 14 Standorte
> 150 Kunden
> 10 Industrien
Dortmund
4
1.
3.
5.
2.
4.
Agenda
Grundlagen
Features
Technische Details
Live Demo
Ausblick
5
Ansatz
Prüfung von
Standards
Entwicklungsrichtlinien
Daten
Funktionalität
in der Oracle Datenbank
mittels SQL Abfragen.
6
Qualitätssicherung im Datenbankumfeld
DDL
PL/SQL
APEX
DML
• Entwicklungsrichtlinien
• Objekteigenschaften
• Entwicklungsrichtlinien
• Funktionstests
• Entwicklungsrichtlinien
• Metadaten
• Stammdaten
• Bewegungsdaten
7
QUASTO - https://github.com/mt-ag/quasto
8
Logger - https://github.com/OraOpenSource/Logger
9
utPLSQL - https://github.com/utPLSQL/utPLSQL
10
Oracle Application Express - APEX
https://www.oracle.com/tools/downloads/apex-downloads/
11
3
1 2
QUASTO „Architektur“ Möglichkeiten zum Einsatz von Quasto
Datenbank
Schema A
Anwendung QUASTO
1. Ansatz
Quasto & Testschema
zusammen
Datenbank
Schema
A
Anwendung
A
QS
Schema
QUASTO
Schema
B
Anwendung
B
2. Ansatz
zentrales Quasto Schema
Remote aufgerufen
3. Ansatz
zentrales Quasto Schema
testet andere Schema
Datenbank
Schema
A
Anwendung
A
QS
Schema
QUASTO
Schema
B
Anwendung
B
12
QUASTO
• Schema „QUASTO“ erstellen
• SYS - SQL>grant create procedure, public synonym, sequence, table,
trigger, type, view, job, session to quasto;
• QUASTO – SQL>@install [1/0] [1/0] [1/0] [1/0]
Parameter
• 1. Parameter => utPLSQL Unterstützung
• 2. Parameter => APEX Unterstützung
• 3. Parameter => Jenkins Unterstützung
• 4. Parameter => Logger Unterstützung
Installation
• Version 23.2
• komplett neue Installation möglich
• upgrade von 1.0 oder 1.1 möglich
Quasto
• Nutzung von Logger
• Nutzung von utPLSQL
• Nutzung von APEX
Optional
13
utPLSQL
• SYS – SQL>@create_utPLSQL_owner.sql ut3 <pw> users
• SYS - SQL>grant create session, procedure, type, table, sequence,
view, public synonym, synonym, trigger, any context to ut3;
• SYS – SQL>grant alter session to ut3;
• UT3 – SQL>@install ut3
• UT3 – SQL>@install_ddl_trigger ut3
Berechtigungen für Quasto
• UT3 – SQL>@create_user_grants ut3 quasto
• UT3 – SQL>@create_user_synonym ut3 quasto
Installation
• Version 3.1.13+
utPLSQL
• utPLSQL-cli
• utPLSQL SQL Developer extension
• utPLSQL PL/SQL Developer extension
Optional
14
Logger Installation
• SYS - SQL>@create_user
• SYS - SQL>grant connect, create view, create job, create table, create
sequence, create trigger, create procedure, create any context to
logger;
• LOGGER – SQL>@logger_install
Berechtigungen für QUASTO auf Logger
• SYS – SQL> grant create synonym to quasto;
• QUASTO - SQL>@scripts/create_logger_synonyms logger
Installation
• Version 3.1.1+
• Logger ist optional
• Integration in QUASTO möglich
Logger
• anstatt Logger auch Custom Logging
möglich
Optional
15
APEX Installation
• SYS - SQL>@apexins APEX APEX TEMP /i/
Berechtigungen für QUASTO auf APEX
• Workspace für QUASTO über internal auf vorhandenem Schema
erstellen
• SYS – SQL>grant APEX_ADMINISTRATOR_ROLE to quasto;
Installation
• Version 23.1+ (für die APP, ansonsten
jede APEX Version)
APEX
Optional
16
QUASTO Releases
1.0
•15.09.2022
1.1
•21.04.2023
23.2
•16.11.2023
17
Quasto 1.1
1. Regeln im JSON Format
2. Logger support
3. Objekte ausschließen „Blacklisting“
4. Abhängigkeiten von Regeln definieren „Predecessor“
18
Quasto 23.2
1. APEX Anwendung für Testergebnisse
2. Schema ausschließen ergänzt „Blacklisting“ erweitert
3. Objekte mittels Grants werden automatisch ausgeschlossen „automatic Blacklisting“
4. Ergebnistabelle für Tests
5. Verbesserte utPLSQL Generierung
6. Weitere Details bei Testobjekten
7. Scheduler Support
8. Versionsbezeichnung an Oracle Format angepasst
19
Live-Demo
20
Regeldefinition
21
Regelexport & Import
sqlplus <user>/<pw>@<db> @export_rules_to_file.sql "<project>" ""
=> git_quastosrcscriptsexport_rules_to_file.sql
Export
• mittels SQLPlus
Export
• mittels SQLcl
• JavaScript in SQLcl wird genutzt
• Java 8 / 11 supportet. Für Java 15+ muss
spezielles JDK für JavaScript Engine in
SQLcl installiert werden
Import Import
sql <user>/<pw>@<db> @import.sql
script import_file_to_rules.js "<json rule file>" 1
=> git_quastosrcscriptsimport_file_to_rules.js
22
Regeln im JSON Format
23
utPLSQL Generierung
declare
pi_scheme_names varchar2_tab_t := new varchar2_tab_t('DEMO');
begin
qa_unit_tests_pkg.p_create_unit_test_packages(
pi_option => qa_constant_pkg.gc_utplsql_single_package,
pi_scheme_names => pi_scheme_names,
pi_delete_test_packages => ‘Y’
);
end;
gc_utplsql_single_package constant number := 1;
gc_utplsql_single_package_per_rule constant number := 2;
ohne Parameter Package für jedes Schema
N / Y => default N
qa_ut_demo_mt_ag_pkg
24
utPLSQL Tests ausführen
declare
l_return clob;
begin
l_return := qa_unit_tests_pkg.f_run_unit_tests(
pi_client_name => ‘MT AG’,
pi_scheme_name => ‘DEMO‘);
end;
Projektname
Schema was getestet wird
Unit Test konformes XML wird erzeugt
25
utPLSQL Result – Unit Test konformes XML
26
utPLSQL Ergebnisse in der APP
27
Ausblick
• Einfachere Pflege
• Verbesserte
Ausführung
• Bessere Ausgabe
• Validierung der
Regeln
Regeln
• Region Plugin
• Usability
APEX Integration
• Pipelinebeispiel für
Jenkins
CI / CD Integration
• Verbesserte
Dokumentation
Dokumentation
28
Haben wir Ihr Interesse geweckt?
MT GmbH
Balcke-Dürr-Allee 9
40882 Ratingen
www.mt-itsolutions.com
Oliver Lemm
Fachbereichsleiter APEX
tel: +49 2102 30 961-164
mail: oliver.lemm@mt-itsolutions.com
https://www.linkedin.com/in/oliverlemm
@OliverLemm

Weitere ähnliche Inhalte

Ähnlich wie Qualitätssicherung für APEX Anwendungen.pdf

Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
Virttoo org
 
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
SHI Search | Analytics | Big Data
 

Ähnlich wie Qualitätssicherung für APEX Anwendungen.pdf (20)

Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
Arquillian
ArquillianArquillian
Arquillian
 
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
Apache Solr vs. Elasticsearch - And The Winner Is...! Ein Vergleich der Shoot...
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
 
Adxis Produkt Beschreibung
Adxis Produkt BeschreibungAdxis Produkt Beschreibung
Adxis Produkt Beschreibung
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
MT AG: Sesam oeffne Dich
MT AG: Sesam oeffne DichMT AG: Sesam oeffne Dich
MT AG: Sesam oeffne Dich
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)
 
Enterprise APEX
Enterprise APEXEnterprise APEX
Enterprise APEX
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
 
AWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DBAWR und ASH lizenzfrei für alle Editionen der Oracle-DB
AWR und ASH lizenzfrei für alle Editionen der Oracle-DB
 
Apex on the Rocks - Hochverfügbarkeit
Apex on the Rocks - HochverfügbarkeitApex on the Rocks - Hochverfügbarkeit
Apex on the Rocks - Hochverfügbarkeit
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
 
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
AOUG 2019 Oracle Centrally Managed Users 18c / 19cAOUG 2019 Oracle Centrally Managed Users 18c / 19c
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
 
Oracle AVDF in der Praxis
Oracle AVDF in der PraxisOracle AVDF in der Praxis
Oracle AVDF in der Praxis
 
REST mit APEX 18.1
REST mit APEX 18.1REST mit APEX 18.1
REST mit APEX 18.1
 

Mehr von Oliver Lemm

Mehr von Oliver Lemm (20)

APEX Page Items in detail
APEX Page Items in detailAPEX Page Items in detail
APEX Page Items in detail
 
confirm & alert
confirm & alertconfirm & alert
confirm & alert
 
APEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurierenAPEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurieren
 
APEX Migration
APEX MigrationAPEX Migration
APEX Migration
 
Jenkins Pipelines Advanced
Jenkins Pipelines AdvancedJenkins Pipelines Advanced
Jenkins Pipelines Advanced
 
From Dev to Ops
From Dev to OpsFrom Dev to Ops
From Dev to Ops
 
Das Universal Theme in APEX 19
Das Universal Theme in APEX 19Das Universal Theme in APEX 19
Das Universal Theme in APEX 19
 
Jenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleJenkins Pipeline meets Oracle
Jenkins Pipeline meets Oracle
 
Schritt für Schritt ins Grid
Schritt für Schritt ins GridSchritt für Schritt ins Grid
Schritt für Schritt ins Grid
 
Migration ins Universal Theme 1.1
Migration ins Universal Theme 1.1Migration ins Universal Theme 1.1
Migration ins Universal Theme 1.1
 
Mastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentMastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union Investment
 
Mastering Universal Theme with corporate design from union investment
Mastering Universal Theme with corporate design from union investmentMastering Universal Theme with corporate design from union investment
Mastering Universal Theme with corporate design from union investment
 
Jetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEXJetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEX
 
Wieder verschätzt?
Wieder verschätzt?Wieder verschätzt?
Wieder verschätzt?
 
Komplexe Daten mit Oracle Jet einfach aufbereitet
Komplexe Daten mit Oracle Jet einfach aufbereitetKomplexe Daten mit Oracle Jet einfach aufbereitet
Komplexe Daten mit Oracle Jet einfach aufbereitet
 
Mastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentMastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union Investment
 
Echtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoEchtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & Co
 
How to use source control with apex?
How to use source control with apex?How to use source control with apex?
How to use source control with apex?
 
The APEX QA Plugin
The APEX QA PluginThe APEX QA Plugin
The APEX QA Plugin
 
Der Schnitt
Der SchnittDer Schnitt
Der Schnitt
 

Qualitätssicherung für APEX Anwendungen.pdf

  • 2. 2 über mich Fachbereichsleiter APEX Architekt, Projektleiter und Entwickler
  • 3. 3 Wir platzieren uns unter die Top 20 IT-Dienstleister in Deutschland! > 800 Mitarbeitende Weltweit 14 Standorte > 150 Kunden > 10 Industrien Dortmund
  • 6. 6 Qualitätssicherung im Datenbankumfeld DDL PL/SQL APEX DML • Entwicklungsrichtlinien • Objekteigenschaften • Entwicklungsrichtlinien • Funktionstests • Entwicklungsrichtlinien • Metadaten • Stammdaten • Bewegungsdaten
  • 10. 10 Oracle Application Express - APEX https://www.oracle.com/tools/downloads/apex-downloads/
  • 11. 11 3 1 2 QUASTO „Architektur“ Möglichkeiten zum Einsatz von Quasto Datenbank Schema A Anwendung QUASTO 1. Ansatz Quasto & Testschema zusammen Datenbank Schema A Anwendung A QS Schema QUASTO Schema B Anwendung B 2. Ansatz zentrales Quasto Schema Remote aufgerufen 3. Ansatz zentrales Quasto Schema testet andere Schema Datenbank Schema A Anwendung A QS Schema QUASTO Schema B Anwendung B
  • 12. 12 QUASTO • Schema „QUASTO“ erstellen • SYS - SQL>grant create procedure, public synonym, sequence, table, trigger, type, view, job, session to quasto; • QUASTO – SQL>@install [1/0] [1/0] [1/0] [1/0] Parameter • 1. Parameter => utPLSQL Unterstützung • 2. Parameter => APEX Unterstützung • 3. Parameter => Jenkins Unterstützung • 4. Parameter => Logger Unterstützung Installation • Version 23.2 • komplett neue Installation möglich • upgrade von 1.0 oder 1.1 möglich Quasto • Nutzung von Logger • Nutzung von utPLSQL • Nutzung von APEX Optional
  • 13. 13 utPLSQL • SYS – SQL>@create_utPLSQL_owner.sql ut3 <pw> users • SYS - SQL>grant create session, procedure, type, table, sequence, view, public synonym, synonym, trigger, any context to ut3; • SYS – SQL>grant alter session to ut3; • UT3 – SQL>@install ut3 • UT3 – SQL>@install_ddl_trigger ut3 Berechtigungen für Quasto • UT3 – SQL>@create_user_grants ut3 quasto • UT3 – SQL>@create_user_synonym ut3 quasto Installation • Version 3.1.13+ utPLSQL • utPLSQL-cli • utPLSQL SQL Developer extension • utPLSQL PL/SQL Developer extension Optional
  • 14. 14 Logger Installation • SYS - SQL>@create_user • SYS - SQL>grant connect, create view, create job, create table, create sequence, create trigger, create procedure, create any context to logger; • LOGGER – SQL>@logger_install Berechtigungen für QUASTO auf Logger • SYS – SQL> grant create synonym to quasto; • QUASTO - SQL>@scripts/create_logger_synonyms logger Installation • Version 3.1.1+ • Logger ist optional • Integration in QUASTO möglich Logger • anstatt Logger auch Custom Logging möglich Optional
  • 15. 15 APEX Installation • SYS - SQL>@apexins APEX APEX TEMP /i/ Berechtigungen für QUASTO auf APEX • Workspace für QUASTO über internal auf vorhandenem Schema erstellen • SYS – SQL>grant APEX_ADMINISTRATOR_ROLE to quasto; Installation • Version 23.1+ (für die APP, ansonsten jede APEX Version) APEX Optional
  • 17. 17 Quasto 1.1 1. Regeln im JSON Format 2. Logger support 3. Objekte ausschließen „Blacklisting“ 4. Abhängigkeiten von Regeln definieren „Predecessor“
  • 18. 18 Quasto 23.2 1. APEX Anwendung für Testergebnisse 2. Schema ausschließen ergänzt „Blacklisting“ erweitert 3. Objekte mittels Grants werden automatisch ausgeschlossen „automatic Blacklisting“ 4. Ergebnistabelle für Tests 5. Verbesserte utPLSQL Generierung 6. Weitere Details bei Testobjekten 7. Scheduler Support 8. Versionsbezeichnung an Oracle Format angepasst
  • 21. 21 Regelexport & Import sqlplus <user>/<pw>@<db> @export_rules_to_file.sql "<project>" "" => git_quastosrcscriptsexport_rules_to_file.sql Export • mittels SQLPlus Export • mittels SQLcl • JavaScript in SQLcl wird genutzt • Java 8 / 11 supportet. Für Java 15+ muss spezielles JDK für JavaScript Engine in SQLcl installiert werden Import Import sql <user>/<pw>@<db> @import.sql script import_file_to_rules.js "<json rule file>" 1 => git_quastosrcscriptsimport_file_to_rules.js
  • 23. 23 utPLSQL Generierung declare pi_scheme_names varchar2_tab_t := new varchar2_tab_t('DEMO'); begin qa_unit_tests_pkg.p_create_unit_test_packages( pi_option => qa_constant_pkg.gc_utplsql_single_package, pi_scheme_names => pi_scheme_names, pi_delete_test_packages => ‘Y’ ); end; gc_utplsql_single_package constant number := 1; gc_utplsql_single_package_per_rule constant number := 2; ohne Parameter Package für jedes Schema N / Y => default N qa_ut_demo_mt_ag_pkg
  • 24. 24 utPLSQL Tests ausführen declare l_return clob; begin l_return := qa_unit_tests_pkg.f_run_unit_tests( pi_client_name => ‘MT AG’, pi_scheme_name => ‘DEMO‘); end; Projektname Schema was getestet wird Unit Test konformes XML wird erzeugt
  • 25. 25 utPLSQL Result – Unit Test konformes XML
  • 27. 27 Ausblick • Einfachere Pflege • Verbesserte Ausführung • Bessere Ausgabe • Validierung der Regeln Regeln • Region Plugin • Usability APEX Integration • Pipelinebeispiel für Jenkins CI / CD Integration • Verbesserte Dokumentation Dokumentation
  • 28. 28 Haben wir Ihr Interesse geweckt? MT GmbH Balcke-Dürr-Allee 9 40882 Ratingen www.mt-itsolutions.com Oliver Lemm Fachbereichsleiter APEX tel: +49 2102 30 961-164 mail: oliver.lemm@mt-itsolutions.com https://www.linkedin.com/in/oliverlemm @OliverLemm