Post on 05-Nov-2019
Björn Seebeck | HEC GmbH
Test First GUI-Automatisierung
mit Jubula
Agenda
• Jubula Key-Facts
• Einbettung in Continuous Integration
• Anpassung / Erweiterung
• ALM Integration
• Zusammenfassung
Jubula Key-Facts
• Automatisiertes GUI Testing Tool
– Eclipse RCP, GEF, SWT, Swing, JavaFX
– .NET, HTML und iOS
• Historie
– 2006-2010 GUIdancer
– seit 2011 Jubula
– 2011-2013 GUIdancer != Jubula
– seit 2013 GUIdancer == Jubula
UI Testing Probleme
• Scripting
– Wird schnell kompliziert und aufwändig
– Tester != Programmierer
– Test „wandert“ in die Entwicklung
• Capture Replay
– Scripte haben schlechte Qualität
– Weiterentwicklung?
– Oberflächen müssen exisitieren!
Test mit Jubula
• Code-Free via Drag&Drop
• Fokus auf Wiederverwendbarkeit
DEMO
Anforderungen
Entwurf Programmierung Test
Oberflächen müssen existieren?
Test First mit Jubula
• Test und Entwicklung parallel
– ATDD via GUI
– Mapping Test Anwendung
– Kommunikation QS und Entwicklung
– Frühestmögliche Rückkopplung
DEMO: Test First mit Jubula
Als User möchte ich Läufer löschen können.
1. Testspezifikation
2. Fehler
3. Objektmapping
4. Testspezifikation i.O.
5. Test-Ergebnis
Einbettung im
Continuous Integration Build
Jubula im CIB - Motivation
• CI Grundsätze (Fowler) – Maintain a Single Source Repository
– Automate the Build
– Make Your Build Self-Testing – Everyone Commits To the Mainline Every Day
– Every Commit Should Build the Mainline on an
Integration Machine
– Keep the Build Fast – Test in a Clone of the Production Environment
– Make it Easy for Anyone to Get the Latest Executable
– Everyone can see what's happening – Automate Deployment
Jubula unter der Haube
ITE Integrated
Testing
Environment
https://www.youtube.com/watch?v=prNt5_LhXdo
DB testexec
AUT-Agent
AUT application
under test
Jubula
Verteilungssicht CIB
DB
testexec AUT-Agent
AUT application
under test
Jubula
Node #2
Node #1 Node #4 .. #n
Node #3
DEMO: Jubula im Jenkins
Jubula Job Konfiguration
d:/infra/jubula_8.0.00170/jubula/testexec
-project JaxLauf -version 1.1 -testjob ALL
-server localhost -port 60000
-autconfig JaxTestRCPJenkins@localhost
-datadir "%WORKSPACE%\testdata"
-resultdir "%WORKSPACE%\testresults"
-data "%WORKSPACE%\.jubula\workspace"
-language de_DE
-dbuser postgres -dbpw "123456"
-dburl jdbc:postgresql://localhost:5432/jubula
Jubula Job Konfiguration
Jubula erweitern / anpassen
Mögliche Erweiterungen
• Test Data Functions
• Test Reports
• Test Style Regeln
• Test Case Library
• Keyboard Layouts
• ALM Repositories
• Andere Datenbanken
• Monitoring Agents
• Eigene Controls, UI-Toolkits
• …
Custom Controls
• Beispiel: KTable
http://sourceforge.net/projects/ktable/
KTable Erweiterung
ITE Integrated
Testing
Environment
AUT application
under test
• Neue Test Steps in der ITE:
– selectCell
– verfiyValueInRow
– storeCellValue
– …
• Umsetzung der Steps zur Laufzeit:
– selectCell
– verfiyValueInRow
– storeCellValue
– …
Toolkit Extension
Remote Control Extension
KTable Erweiterung
ITE Integrated
Testing
Environment
AUT application
under test
Toolkit Extension
xml-Datei
Remote Control Extension
Java-Klasse(n)
DEMO: KTable Erweiterung
Erweiterung
• Anforderung:
– Tests benötigen eine gesicherte, immer
gleiche Datenbasis
– Tests mit vielen Daten effizient verifizieren
• Lösungsmöglichkeiten:
– Datenstand über UI erfassen
– Ausführung von SQL-Skripten mit execute
External Command
– Nutzung von DbUnit
DEMO: DbUnit Erweiterung
ALM Integration
ALM Integration
ALM Integration
Jubula Dashboard
Code Coverage mit Jacoco
SEU mit Jubula
Björn Seebeck
HEC GmbH
bjoern.seebeck@hec.de
Danke für Ihre
Aufmerksamkeit!