An interesting summary of the research Kasper has done into automated
testing tools.
Michelle
Begin forwarded message:
From: Kasper Galschiot Markus <[email protected]>
Date: April 7, 2010 7:39:53 AM GMT-04:00
To: CollectionSpace Work list <[email protected]>,
[email protected]
Subject: [Work] Automated testing -- Tools discussion
I have been browsing around in the quite extensive amount of free
web test automation tools around. Everyone seems to have their own
preferences, and there are pros and cons for each tool. Below I'll
try summarizing my observations (not experience, but what I have
read). In the very bottom, I posted my personal opinion of choice.
I'm sending this mail to the work list, because any experience,
rumors, comments, suggestions, etc. would be highly appreciated.
Also comments on the importance of: speed of tests, reality of
tests, ease of programming, etc, as well as suggestions for other
tools I should look into would be appreciated.
----
Selenium: Probably the best known tool.
Pros:
It automates/scripts real browsers, which is an advantage as you get
close to reality.
Well established and documented
GUI record tool for firefox, making it easy to write test (for all
browsers)
Support multiple programming languages (for writing the tests)
Has been praised for being the easiest to use/get into
Supports ant
Has grid functionality to distribute the tests (to a certain extend)
Cons:
Events are simulated, which is sometimes buggy (based on rather old
articles, and justins (fluid) experiences X months ago, might have
changed).
Needs actual running windows+mac machines to run against
Slow compared to emulated browser approach (can be somewhat remedied
by running tests in parallel)
Disregards JS errors (unless they affect the asserts)!!!!
Potential problem with waiting for pages to load (think this has
changed)
Canoo Webtest: Also widely known tool.
Pros:
Do not need specific OS, as browsers are emulated (uses HtmlUnit)
Record tool for writing easy tests
Well established/documented
Supports ant
Easy to integrate/setup continuous testing
Very good reports
Fast
Cons:
Does not use real browsers, but emulates them using HtmlUnit. This
means some errors might potentially be not be caught.
A bit steeper learning curve than Selenium
Javascript support not as good as in "normal" browser
Doesn't accept (too) badly formed html (Dont think this will be a
problem)
Doh.Robot: A smaller project, brought to my attention by Justin.
Pros:
Does not simulate mouse/keys, but makes actual system calls using
java's robot
As close as can be to real users (except for embedded scripts)
Cons:
Not too well documented/established
Unsure if updated or discontinued
requires code to be inserted on the page
Sahi:
Pros:
GUI record for writing tests
Cons:
Small community
Underdeveloped
Confusing Interface
Watir:
Pros:
Multi browser (& OS) support
Has a rich API
Has a ‘Simple’ class (for non-tech users)
Watij & Watin (Java & .NET)
Cons:
Have to learn Ruby (unless you choose Watij or Watin)
Every browser requires a different library
Selenium 2:
Pros:
Has both standard selenium and HtmlUnit available for testing
Circumvent browser restrictions by using whichever mechanism is most
appropriate to control the browser. For Firefox, this means that
WebDriver is implemented as an extension. For IE, WebDriver makes
use of IE's Automation controls, etc.
WebDriver can make use of facilities offered by the OS (allows to
get closer to a real user, similar to robot i guess?!)
Cons:
Alpha state
Sparse documentation, and probably somewhat buggy
Steeper learning curve due to amount of features and lack of docs
---
From what I can tell, Selenium and Canoo Webtest seems to be the
most appealing choices, despite their shortcommings. It seems that
Webtest receives less criticism than Selenium, but it is hard to
tell whether this is due to Selenium being used/compared to more
often. Generally, both people using Selenium and Webtest are
satisfied. The others; Doh Robot, Sahi and Watir all have their
advantages (except for Sahi :( ), but for various reasons didn't
appeal to me (too little documentation, steep learning curve,
lousier version of Webtest/Selenium). There is also the option of
Selenium 2, but the problem with this is that it is still in alpha,
and the documentation is rather sparse. Also, it might be kind of
buggy.
In many ways I am split between Selenium and Webtest, but I guess I
am leaning towards Selenium. There are two main reasons for this:
Using real browsers is a lot closer to reality, which I weigh high
(some of) the shortcommings of Selenium will be fixed in Selenium 2.
I take it that our tests written for Selenium will be compatible
with Selenium 2. When S2 will be at a decent stage it is easy to
make the switch.
The major problem with Selenium is the need of access to windows/mac
machines (windows is doable, using Vms, I hate mac :).
Another major problem is the speed. This can hopefully be remedied
using Selenium Grid.
As a final note, I guess I should mention that I might be a bit
biased towards Selenium, since I knew that first, have read more of
the documentation, etc.
_______________________________________________
Work mailing list
[email protected]
http://lists.collectionspace.org/mailman/listinfo/work_lists.collectionspace.org
------------------------------------------------------
Michelle D'Souza
Software Developer, Fluid Project
Adaptive Technology Resource Centre
_______________________________________________________
fluid-work mailing list - [email protected]
To unsubscribe, change settings or access archives,
see http://fluidproject.org/mailman/listinfo/fluid-work