Many projects have the requirement to produce various tests
of the final code. In Java, tools like JUnit are commonly
used to unit test individual modules. With add-ons, such as
HttpUnit, one can write tests against web sites (which integrate
several modules together, including JSPs and other dynamically-generated
While this type of testing is important, there is another
form of testing that is necessary: client/user-driven integration
The Amakihi codebase was developed with the following concepts
- Drive application integration tests from a set of XML
"scripts" which are easier for non-technical people
to edit and read.
- Reduce the amount of programming that developers have
to do to implement the automation of those test scripts.
- Consider the ways in which those scripts can be used
for regression and performance testing.
- Exploit the strengths of existing testing tools (such
- Recognize that a working application has several "interfaces"
-- the browser, an e-mail client, a web services layer,
etc. Each of these interfaces can be interacted with to
ensure correct functionality