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

Preview:

Citation preview

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!

Recommended