[ QUOTE ]
T-Plan Robot is an image-based testing tool. It is open source but the costs for maintenance will be high.
[/ QUOTE ]
I'd like to object to that. The maintenance may but doesn't necessarily have to be higher than with an object oriented tool.
A simple example. Your test script locates a button and clicks on it. An object oriented tool (OOT) locates the button in the component hierarchy, for example based on the label (text). An image based testing tool (IBT) locates the button in a visual way through image comparison, for example looking for its icon.
Consider the following changes:
<ul type="square">[*]The button is removed from the GUI. Both OOT and IBT fail and their scripts have to be updated. [*]The button is moved in the GUI, for example to another container or control group. OOT may fail if it relies on the particular container hierarchy. IBT will fail only if the button is not visible.[*]The button changes text. OOT fails because it relies on it. IBT has no problem.[*]The button changes icon. OOT has no problem. IBT fails because it relies on it.[/list]
As you can see, the cases when you need to maintain the script are fairly similar in count.
IBT is indeed more vulnerable but as its approach is simple, it's usually very easy to go ahead and fix the script. If your fail function is smart and saves a screen shot of the situation, you may reuse it to update the object template without having to start the tool at all or even reproducing the failure (which may require lengthy test script run until the particular break point).
When OOT fails, you usually have to go review the code and restore the object hierarchy. It's often more complicated and requires a lot of experience and knowledge of application internals, especially if you test all the application types listed above at once.
It's after all just about how smart you write the test scripts, with IBT being significantly simpler and less prone to give you a hard time. The forums here are full of questions like "Why the XYZ doesn't recognize this component?". It just doesn't happen with IBT.