Tools like Selenium, an outstanding tool for UI test automation, and Arquillian, an award-winning integration testing framework, offer a base for high-quality tests which are crucial for a web app development. However writing UI tests and covering server-side logic leaves many questions open:
* Does Selenium cover everything? Page transitions, simple JavaScript interaction and a portion of DOM. Is it really enough?
* Mocking requests for testing server-side code is pain. Is it necessary?
* Are you able to detect that your component’s visual representation changes?
* Does investigating these changes involve a disproportionate amount of effort?
* Isn’t manual test development too expensive?
34. “Even if we use favorite
programmatic approach,
we can end up with many
tests which takes days to
pass and quickly turns
out into maintanance
burden!” Java
C#
Python
Ruby
PHP
Perl
38. “Selenium is able to test
transitions between
pages.”
Page Transitions
39. “...and a portion of all the
page source code –
JavaScript handlers,
selected CSS and DOM
changes as reaction to
user interaction.”
A little bit of...
DOM / JavaScript / CSS
73. “We can automatically
snap screen-shots of the
whole pages and
compare them with
historical data – it's
proven that rendering on
one particular browser
and platform, images will
be binary same.”
Screen-shot Comparison
106. “Additionally, Android
extension can start the
emulator or connect to
real device, which is
perfect addition for
running in continuous
integration systems.”
123. Photographs and pictures used in this
presentation are authored by various authors
and released under the Creative Commons
license
http://www.flickr.com/photos/nickrussill/150410613/
http://www.flickr.com/photos/audreyjm529/1240909256/
http://www.flickr.com/photos/jo-h/6200225665/
http://www.flickr.com/photos/stevendepolo/3796415185/
http://www.flickr.com/photos/ucdaviscoe/6303100423/
http://www.flickr.com/photos/sportbusiness/3542445412/
http://watirmelon.com/2012/01/31/introducing-the-software-
testing-ice-cream-cone/