Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda •...

35
Björn Seebeck | HEC GmbH Test First GUI-Automatisierung mit Jubula

Transcript of Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda •...

Page 1: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Björn Seebeck | HEC GmbH

Test First GUI-Automatisierung

mit Jubula

Page 2: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Agenda

• Jubula Key-Facts

• Einbettung in Continuous Integration

• Anpassung / Erweiterung

• ALM Integration

• Zusammenfassung

Page 3: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

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

Page 4: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

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!

Page 5: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Test mit Jubula

• Code-Free via Drag&Drop

• Fokus auf Wiederverwendbarkeit

DEMO

Page 6: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Anforderungen

Entwurf Programmierung Test

Oberflächen müssen existieren?

Page 7: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Test First mit Jubula

• Test und Entwicklung parallel

– ATDD via GUI

– Mapping Test Anwendung

– Kommunikation QS und Entwicklung

– Frühestmögliche Rückkopplung

Page 8: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

DEMO: Test First mit Jubula

Als User möchte ich Läufer löschen können.

Page 9: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

1. Testspezifikation

Page 10: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

2. Fehler

Page 11: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

3. Objektmapping

Page 12: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

4. Testspezifikation i.O.

Page 13: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

5. Test-Ergebnis

Page 14: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Einbettung im

Continuous Integration Build

Page 15: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

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

Page 16: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

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

Page 17: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Verteilungssicht CIB

DB

testexec AUT-Agent

AUT application

under test

Jubula

Node #2

Node #1 Node #4 .. #n

Node #3

Page 18: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

DEMO: Jubula im Jenkins

Page 19: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Jubula Job Konfiguration

Page 20: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

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

Page 21: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Jubula erweitern / anpassen

Page 22: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

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

• …

Page 23: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Custom Controls

• Beispiel: KTable

http://sourceforge.net/projects/ktable/

Page 24: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

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

Page 25: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

KTable Erweiterung

ITE Integrated

Testing

Environment

AUT application

under test

Toolkit Extension

xml-Datei

Remote Control Extension

Java-Klasse(n)

Page 26: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

DEMO: KTable Erweiterung

Page 27: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / 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

Page 28: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

DEMO: DbUnit Erweiterung

Page 29: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

ALM Integration

Page 30: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

ALM Integration

Page 31: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

ALM Integration

Page 32: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Jubula Dashboard

Page 33: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Code Coverage mit Jacoco

Page 34: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

SEU mit Jubula

Page 35: Test First GUI-Automatisierung mit Jubula · Test First GUI-Automatisierung mit Jubula . Agenda • Jubula Key-Facts • Einbettung in Continuous Integration • Anpassung / Erweiterung

Björn Seebeck

HEC GmbH

[email protected]

Danke für Ihre

Aufmerksamkeit!