|
|
Other tools for Acceptance Testing |
|
There are hundreds of tools out there that aim to do automated testing at a more or less high level. This is only a brief survey of what we consider to be the most interesting ones (other than our own) and how they compare to using the tools available here. It seems simplest to break the problem down into application types, which have different considerations and in some cases different tools.
Non-interactive calculatorsHere our candidate tool is TextTest alone, with no need for simulating user input. The main alternative I have come across is Fit using ColumnFixture (or FitLibrary using CalculateFixture, but these are not very different as far as I can see). Here is an example:
This is a very compact and user-friendly format for specifying lots of tests for a small calculator. The first three columns specify numeric inputs and the final column the expected output. There is a limit to how big such a table can get though before it ceases to be a nice expression format, both in terms of numbers of relevant input and output values and their size (very long strings will probably not read well in this format). For a larger “calculator”, it is better to separate each test and then TextTest seems a better candidate – it's easy to keep all the details of the data out of the way unless you really want to look at it. While it may be relatively unusual that an entire system is of this form, it is much more common that parts of it are. It can be very useful to identify them and test them separately in this way. Here is a table comparing the tools. Custom GUIsHere our candidate tool is TextTest with PyUseCase or JUseCase. Suddenly there are more alternatives, both that try to make use of the GUI and that bypass it and call into the system via an API instead. I have picked out four that I regard as especially interesting.
There is also a table comparing the features of these tools for workflow testing of GUIs. Web ApplicationsAgain there are many tools, reflecting the proliferation of this kind of application. Our own candidate is now TextTest with WebUseCase. What marks this out as unique in the field? It provides a mechanism for testing with a domain language and it allow you to record tests live, as with custom GUIs. For comparison, both Fit and Exactor have web testing mechanisms, “HTMLFixture” and “WebCommand”. Neither of these provide support for use of a business domain language, though. There is also Canoo WebTest, which has been around for longest. What all of these share, and also share with WebUseCase, is the use of a browser simulator. WebUseCase, Canoo and Fit all use HtmlUnit, while Exactor uses JWebUnit. In contrast to these four, two tools are included which have the not inconsiderable advantage of using a real browser. Watir drives Internet Explorer via the DOM, while Selenium has a testing engine written in javascript. Watir also has the advantage of being the only tool that generates a programming language (Ruby) - very useful for long-term refactoring, at least compared to the tool-defined languages in most of the others. There is also a table comparing these tools. |