Rules for Automation
Rule #1 of automation: "If you can not logically describe what you are testing, you can't automate it.
"If you are testing specific items, then you may be able to do it. (e.g. Click on a specific button, check for the title of the box, fill in the box, check to make sure that the grayed out button becomes available). But for the UI test to be able to figure out that the background is not grayed out, or the text is too far to the right, or that BOLD letter in the back shouldn't be, that becomes too painful. There are NO AI software that can look at a screen and artificially figure out if it makes SENSE. Every aspect of the screen has to be described all the way down to the pixels.
Rule 2: COST
Most organizations give up on automation because they don't realize that certain things are cheap to automate while others are expensive and end up trying to automate things which are painful.For example..."Global Change" in UI, where a single variable name changes multiple strings all over the place. Most UI test script will break left and right. Maintainig the scripts, as well as fighting with development from rapid changes will eventually get automation kicked out.
Rule 3: Everyone needs to run it.
Having a test tool that only testers can use will eventually be a losing game. The only way to promote automation is to have EVERYONE use it. Therefore, tools like Silk, Mercury will never be able to compete with tools written using things like Java (junit), and perl. More the tools are used, more people will invest. More people invest, the better tool gets, and more people will use it.
Rule 4: Test software is a software in themselves.
Have a mercury or Silk rep come over to your office and have them demo against your software on the fly. I will give you 25% chance that their version will crash or not work exactly as advertized. Working for various companies, I've seen these companies bring in their "Canned" demo that worked flawlessly. Then after asking them to demo on the real product (web), their software had tons of problems, including crashes. IMHO:It is better the stay with products that have very simple interface. So, who tests their software?
Rule 5: Guns don't kill people, people kill people
If you have a noob automation personnel write a code, you will get a piece of junk. I can state in fact that most of those who have asked these questions have greater then 90% chance of failing. Success of automation really depends on people. Right people will know what to automate, and how it should be automated.