Александр Ильин, oracle, - Технология автоматизации...

53
1

Upload: webcrunch

Post on 22-Nov-2014

1.066 views

Category:

Documents


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

1

Page 2: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

<Insert Picture Here>

UI test automation techniques by an example of JavaFX UI.

Alexandre (Shura) IlineJava quality architect

Page 3: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

The following is intended to outline our general product direction. It is intended for information purposes, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions.

The development, release, and timing of any features or functionality described for Oracle's products remains at the sole discretion of Oracle.

Page 4: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

4

The presented technology tested on

JavaFX Authoring Tool

Page 5: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

5

<Insert Picture Here>

Agenda

• UI libraries features

(from testing perspective)• UI Sample• Jemmy tool• Writing tests• Reduce test cost support• Remote testing

Page 6: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

<Insert Picture Here>

UI features

Page 7: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

7

UI libraries features Looking from test side

• Hierarchy• Controls• Transformations• Images• Animation• Event queue

Page 8: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

8

Control hierarchy

http://java.sun.com/javafx/1.3/docs/api/

Stage

Scene

ParentControl

Node

Page 9: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

9

Controls

Button

ToggleButton

RadioButton

CheckBox

Slider

ScrollBar

TextBox

ListView

ComboBox

Custom controls

http://java.sun.com/javafx/1.3/docs/api/

Page 10: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

10

Transformations

http://java.sun.com/javafx/1.3/docs/api/

Affine

Rotate

Scale

Shear

Translate

Page 11: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

11

Images

Page 12: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

12

Animation

http://java.sun.com/javafx/1.3/docs/api/

Timeline

Interpolator

KeyFrame

PathTransition

RotateTransition

ScaleTransition

TranslateTransition

Page 13: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

13

User

UI

Otherthreads

Event queue

Page 14: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

14

Tested UI

A Bézier curve is a parametric curve frequently used in computer graphics and related fields.

Page 15: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

<Insert Picture Here>

Jemmy tool

Page 16: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

16

Find Do Ver i fyPass Pass

Pass

Fai l Fai l Fai l

Fai lure analys is

Find next control

To per form operat ion

Ver i fy that expected

State reached

Perform necessary

act ions

UI test workflow

Page 17: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

17

JemmyCore

JemmySGJemmy v2

AWT & Swing

JemmyRemote

JemmyFXRemoteJemmyFXJemmySWT

JRMCJavaFX Authoring

Tool JavaFX

LCDUINetBeans

JDK

Jemmy and extensions

Jemmy v3

JemmyAWT

Page 18: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

18

Hierarchy Criteria

Text

Scroller

Selectable

Mouse

Keyboard

Interfaces

Lookup

Properties

Images

Factory

Comparator

Interfaces API

JemmyCore

AWTRobot

AWT Robot

Text

Scroller

Selectable

Custom

Coords

Thumb ScrollerPro

per

ties

AP

IIm

ages

AP

I

Inp

ut A

PI

Lo

oku

p A

PI

Page 19: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

19

Scenes,nodes

Hierarchy Criteria

AWT Robot

Text

AWT Robot

Scroller

Selectable

Mouse

KeyboardC

usto

m

Interfaces

Lookup

Co

ord

s

Text

ID

Properties

Images

AWTRobot

Factory

Comparator

FX R

obot

Thumb Scroller

Interfaces API

JemmyFX

FXRobot

Pro

per

ties

AP

IIm

ages

AP

I

Inp

ut A

PI

Op

erators A

PI

Lo

oku

p A

PI

Page 20: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

<Insert Picture Here>

Let's test

Page 21: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

21

One line test

Page 22: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

22

• Type• Property

– text– value– ID– tooltip

• Image• Coordinated• Index (last resort)

• Any criteria which could be written in java code

Lookup principles

Test should be able to find control by ...

Page 23: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

23

Lookup code

Page 24: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

24

More lookup code

Page 25: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

25

Control interfaces

Control type Properties

Node Mouse, Keyboard

Control Focusable

ToggleButton Selectable

Text SelectionText

ScrollBar, Slider Scroll

ListView Scroll, Parent<? extends Object>

Scene, Group Parent<Node>

Page 26: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

26

Control interfaces usage code

Page 27: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

27

JemmyFX Browser

Page 28: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

28

UI test

• Customize ...– Curve attributes– View attributes

• Verify image• Generate code• Verify code• Start animation• Verify animation

Page 29: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

29

Test

Page 30: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

30

Waitings

Every UI action takes time

• Wait for everything– Window appearance– Label change– Image appearance– Property change– File update

• Configurable timeouts

• Exceptions

Page 31: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

31

Waiting code

Page 32: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

32

User

UI

Otherthreads

Event queue

Page 33: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

33

UI

Otherthreads

Event queue with a test

Test

Actions

Verifications

Lookup

Page 34: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

34

Pull data through queue

Page 35: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

35

Properties

Control type Properties

Node ID bounds

Control get$tooltip get$cursor

ToggleButton get$pressed

Text text get$strikethrough get$underline

Slider, ScrollBar vertical minimum maximum value

CheckBox state is.tri.state

TextInputControl selection.anchor position text get$columns get$editable

Page 36: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

36

Properties code

Page 37: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

37

Images

- =

Expected Actual Diff

Page 38: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

38

Images code

Page 39: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

39

Animation code

Page 40: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

40

Verifying generated code

Page 41: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

41

TD + *TS NR

TM * NR NC*EA =

NC*

TM – time needed to run the tests manually

TD – time needed for automated test development

TS – time needed for automated test support

NR – number of test runs

NC – number of tested configurations

Test automation effectiveness

Page 42: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

42

What about record&replay?

• Pretty low TD

– Pretty much the same as TM

… but ...

• High TS

– Generates unmaintainable code– No test code encapsulation

Page 43: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

43

Ideal test

• Lives forever• Written in terms of domain model• All the UI logic is hidden within a library

Page 44: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

<Insert Picture Here>

Remote testing

Page 45: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

45

Hierarchy Criteria

Text

Scroller

Selectable

Mouse

Keyboard

Interfaces

Lookup

By

pro

perties

Properties

Images

Factory

Comparator

JemmyRemote

Desktop Device

Properties

Socket

Hierarchy

Page 46: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

46

JemmyRemote

• Benefits– Low load on tested UI– Ability to run on low-end devices

• Limitations– Two-part code– Lookup is only through properties– Slow

Page 47: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

47

AWTRobot

AW

T R

ob

ot

Hierarchy Criteria

Text

Scroller

Selectable

Mouse

Keyboard

Interfaces

Lookup

By

pro

perties

Properties

Images

Factory

Comparator

JemmyFXRemote

Desktop Device

Properties

SocketFXRobot

Scenes,nodes

Page 48: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

48

JemmyFXRemote sample

Page 49: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

49

http://jemmy.dev.java.net

References

[email protected]

[email protected]

https://jemmy.dev.java.net/AutomationEffectiveness.html

https://jemmy.dev.java.net/RecordingVSCoding.html

[email protected]

Page 50: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

<Insert Picture Here>

UI test automation techniques by an example of JavaFX UI.

Alexandre (Shura) IlineJava quality architect

Page 51: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

51

Backup slides

Page 52: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

52

Operators API

<Control type name>Operator.find(SceneOperator, <lookup data>)

Page 53: Александр Ильин, Oracle, - Технология автоматизации тестирования пользовательского интерфейса на примере

53

JemmyFXScript