PLEASE NOTE: THESE WORDS ARE MY ONLY MY OPINION. SPARE ME THE EXERCISE OF DELETING YOUR COMMENTS AND LAUGHING AT YOU IF YOU FLAME ME OVER THEM, TROLLISH ONE!
***BEGIN EDIT***
There is a gentleman who has commented on this particular post who, it seems to me, wants to argue semantics. Upon checking his blog, I have determined that he has a particular axe to grind with regards to "automated testing" (a term, it would appear, he considers an oxymoron). As I am not particularly interested in a philosophical argument, I have chosen not to explicitly respond to his post. Out of respect for his opinion, I have of course left his comments in place so a reader may form their own opinion. I do, of course, appreciate his time for the post; I just don't feel like arguing over what I feel are nit-picking points. I am certain he would not agree, and since that is case, I feel like we should agree to disagree and have done.
I will answer one of his questions, though: I am indeed male...or I was last time I had my DNA analyzed. The results are available on request. :-)
***END EDIT***
I've been asked to test out TestComplete for our organization. We are a Hp tool (Quality Center/QTP) shop, but we've been unhappy with QTP lately. QTP is a good tool, but it needs a serious overhaul (IMO) in order to remain competitive. It's sort of like Windows back at the Win 95 stage; it is so ubiquitous that it can limp around and still have good market share.
As an aside, QTP basically does web testing well, but it is not so good (again, IMO) at handing non-web apps. It also requires a plug-in (read as: costs more) for each type of app you want to test. You want to test Delphi? Buy the plug-in. ActiveX? Buy the plug-in, etc. It also wants you do special builds to make some of the plug-ins work (Delphi, for example). If you are testing interfaces with a third-party app (as we are) getting the special build is out of the question so QTP isn't an ideal solution. Honestly, it's pretty darn expensive, too. I don't know how much we pay (ok, I do, but I can't say what it is), but it's a LOT for what we get. Support alone each year is in the tens of thousands and this is for only a couple of licenses. I can honestly go on and on about the weaknesses of QTP because I've used it a lot. It does have many strengths (ease of use for new users being a major one), of course and I don't mind working with it. Heck, I guess I better not given it's the tool I've used most.
But this post isn't really about QTP. I only mention some of the sticking points I have with QTP so I can contrast them against TC.
TestComplete, right out the box tests just about any darn thing you want. Period. I threw it at Delphi and it works great. It loves .Net and Java apps (Ah, reflection, what a wonderful thing!). The Web testing is a *little* less simple than QTP, but that's workable. It also works well with embedded ActiveX in webpages, something that QTP always hiccups on.
TC supports many languages rather than just VBScript (ala QTP). You like DelphiScript? Knock yerself out. It handles it great. C# Script? Get to it! All good. Obviously, the choice of language is sort of minor as most of them operate more or less the same (with different syntax), but it's cool that it works with them all. Obviously, your language of choice is independent of the language the AUT is written in (except in some odd cases, but I haven't tried this yet).
TC uses two modes forĀ test object recognition: standard and "open". Standard is good for black box testing, where you simply interact with the interface. Open is nifty, because it lets you interact with the objects and data behind the interface. You can insert test conditions, check object status, intercept function calls (I think), all kinds of stuff.
TC will interface with MSBuild, Team System, run nUnit/jUnit scripts, and even do your nails. It comes with a HTTP load testing tool built-in (unlike QTP which has no such thing...you are stuck using LoadRunner, as separate purchase). I've not tried the load testing tool yet, but for the price, how bad can it be?
My only criticism of TC at this point is this: if you are new to automation, this is NOT the tool to learn on. I've said many times that if you want to do good, workable automated testing, you are best served with a dev background. TC makes the dev background almost a necessity. Much like Rational Functional Tester (IBM's premier functional testing tool...it ROCKS, btw), a dev background is a requirement not just something that would be nice.
I believe we are going to purchase this tool in the near future to use with our new product (it's a .Net 3rd party tool we are going to customize) and I am sure I'll have more to say as I use it. My thought is that it's even possible I'll pine away after my dear old QTP.....
Maybe I'll never have to see the infamous QTP "General Error" (The QTP equivalent of saying "I am broke and I won't/can't tell you why) ever again....
Now, time to get TC to do my nails.....