cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alfred Nathaniel <a.nathan...@bluewin.ch>
Subject [RT] Who may follow a retired Anteater?
Date Tue, 08 Mar 2005 23:11:59 GMT
Extensive automated functional testing is the best way to keep up
software quality.  There is general consensus on that, and everybody is
doing it - right?

The industry standard for testing Java classes is JUnit.  When it comes
to testing web request/response conversations, the choice is less
obvious.  There are various tools which vary in maturity, usability, and
feature set.

In Cocoon there is currently a small suite of Anteater tests.  Anteater
was introduced to Cocoon by Ovidiu Predescu who was both co-author of
Anteater and the driving force in the early days of Cocoon flow.

Meanwhile Ovidiu has moved on to other priorities.  While Cocoon flow
was enthusiastically carried on by others, for Anteater it was a fatal
blow.  Since Sep 2003 the Anteater project is officially retired [1],
and up to now no one came forward to take the project to new shores.

Although Anteater is in a usable state, its todo list [2] is far from
being empty.  It is time to think about alternatives, in order not to
tie a strategic effort such as automated testing to a dead product.

[1] http://sourceforge.net/forum/forum.php?forum_id=311245
[2] http://aft.sourceforge.net/todo.html


PRODUCT SURVEY

All Anteater and alike do is to allow sending an HTTP request and
checking the response for the expected result.  Differences then may
show up in
a) the effort for writing a new test from scratch,
b) the language used for writing the tests,
c) the coverage of HTTP nitty-gritties,
d) the possible test conditions in the result checking,
e) the flexibility to base a second request on the response of the frist

Here I do a short survey of existing Open Source tools.  All information
is taken only from browsing around the project websites.  Don't nail me
if I misunderstood something or if the doc is not in sync with the code.


ANTEATER - http://aft.sourceforge.net

Anteater with its tight Ant integration allowing to formulate requests
and checks as Ant tasks makes it easy to write new tests.  HTTP coverage
is not complete, however.  For example, https, cookies, and file upload
is not supported.

Response checking is fairly complete.  Web conversations are possible
but limited by simple property assignments from response checking.


LATKA - http://jakarta.apache.org/commons/latka/

Latka is very similar to Anteater, both in the functionality and in the
fact that the community is dead.  So it is not really an alternative.


HTTPUNIT - http://www.httpunit.org

HttpUnit is a package of Java classes to write web conversations as
JUnit tests.  Therefore tests have to be written in Java but the package
provides convenient methods to do so.

HttpUnit is still alive (last release Oct 2004) although not very active
ATM.  But it is basically a one-man show and it uses the MIT license.


HTMLUNIT - http://htmlunit.sourceforge.net/

HtmlUnit is similar to HttpUnit but concentrates more on dealing with
HTML documents.  Handling the HTTP nitty-gritty is left to
commons-httpclient.

The community is small but seems healthy.  Last release was in Jan 2005.


CANOO WEBTEST - http://webtest.canoo.com/

Canoo WebTest is similar to Anteater by wrapping all request/response
actions into Ant tasks.  WebTest, however, has a slimmer code base since
it uses HtmlUnit as underlying implementation (after recently replacing
HttpUnit!).

Canoo WebTest is an Open Source project backed by a Swiss IT company. 
The community is larger than just company employees and seems to be
healthy and active.  The license terms are home-made but sound like
old-style BSD including the advertising statement.


CONCLUSION

Anteater is dead, and we should get away from it before it starts
smelling.  Canoo WebTest seems to be an attractive alternative for
preserving the Anteater paradigm of tight Ant integration.

Does anybody have practical experience with Canoo WebTest which speaks
for/against this product?  Or any other product?  Or is nobody testing?

Looking forward to your feedback,
Alfred.


Mime
View raw message