1. ACCEPTANCE testing of web ui
using webdriver, thucydides and groovy
story
volodymyr tsukur // follow me : twitter.com/flushdia or email to flushdia@gmail.com
2. team &
tech lead @
partner @
vladimir tsukur
10+ years dev experience
12. COMPLEXITIES
REQUIREMENTS NOT ALWAYS DETAILED *
NOT ENOUGH FOCUS ON AUTOMATION
FROM THE BEGINNING OF THE PROJECT
TESTERS NOT fluent in automation,
NEED ASSISTANCE
13. AS A
RESULT ...
LONG MANUAL WRONG STUFF
TESTING CYCLES DELIVERED *
MISSED BUGS APPS TEAMS
SLOWED DOWN
17. STEPS 2 & 3: distill and develop
QA
automated
Acceptance tests
DEV
Acceptance FEATURE
criteria IMPLEMENTATION
(driven by unit and
integration tests)
27. WHY ?
«... Selenium is a suite of tools
to automate web browsers
across many platforms ...»
28. WHY ?
«... tool that letâs you use
WebDriver-based tests to
write more flexible and more
reusable WebDriver-based
tests, and also to generate
documentation about your
acceptance tests ...»
29. WHY testng ?
WHY not ?
* more flexible listener
ecosystem *
* project-specific testng
extensions already
available
37. example
USER story
As an asset list user
I want to rename asset
so that the name of the asset
corresponds to its content
38. acceptance criteria
* i can do in-place editing of the
single asset
* I can enter edit mode using
keyboard shortcuts
* i can submit new name
and see the change right away
* i can abort RENAMING while in
edit mode and see that the name
stays intact
80. ideally tests are not aware of
implementation details,
e.g. JS APIs present on the page
... but use of these APIs may
significantly simplify
development of ui tests
94. js proxies in page objects
page objects may be bound to JS
proxy by interface
js proxy serves as javascript
logic adapter
95. js proxies in page objects
bound automatically
by method return type 1:1 mapping between
page object and
js proxy
96. js proxies good part
map by interface, abstract class
or through fully dynamic proxy
link external js source
supports field access and call
chaining