I think the difference is in the philosopy of make of tools While Its easy to say WR doesnt support This wheras QTP Supports that or vice versa Lets add a Simple Keyword there.. "The Tool Has inbuilt support"
Coz i am yet to see Why WR cannot do anything that's possible with QTP all is the matter of knowing Windows API,Its implementation and if you also know the MSAA (Microsoft Accessbility Framework) then even with WR you can achive same things that QTP can do.
However here are the keyhighlighters
WR : The Script is Proprietory called TSL
QTP :The Script is VBS
WR : Complete Procedural Code
QTP : Procedural Code but ability to define Classes with no INHERITANCE that's basic of VBS
WR : No Direct support for XML but can be implemented using MSXML API
QTP : Some elemetantary XML Chekpoints can be added to the script.
WR : Very Good Support for Win32 API
QTP : Win32 API support as supported by vbs
WR : Features good when u have a flavor for C
QTP : Feature good when u have a falvor for VBScript
WR: Learning curve is big
QTP : Learning curve is shorter
WR : External Libraries needs to be referenced through codes like "LoadLibrary"
QTP: Relies on Latebinding throug vbs e.g. CreateObject
Both are equally ok in file Handling
WR : Inbuilt File handling Routine
QTP relies on FIleSystem Object
WR : Well Defined Datatypes
QTP : Everything is a Variant even object is variant
WR : Images can be compared only with Check Points
QTP : though has Image aCheckpoints we can still compare bitmaps pixel by pixel through ReadFile
One Thing To say Both The tools lack design time object browsers like one we have in Visual Studios.
Probably that's the reason IMHO that people are moving away from these so called powerful tools to more .Net Framewrok based tools like Ranorex, TestPartner where u have more design time control and do not have to rely on the inbuilt libraries only.
People I ma taking about controls Like Exceed Grids, Component One Controls, Flex, Ajax, Oracle Forms.
Do understand that Tools can never Cope up with the pace of development of technology. so What is good?
Keep Following tools versions after versions or move to tools that are build on the technology that was used for development?
Point is left to you!!!!
But to Stress again
Did you know that Microsoft is pushing the new Accessbility Objects to Limits.
Did you Know that With .net Framework 33.0 onwards Microsoft has started providing UIAutomation name space?
Did you know that people have started using VSTS and VS 2008 to automate already? be it web based or Desktop application.
This is the era of tools called "BackGUI" where you hold your objects from Backend and take action on front end. I know its not true GUI testing but whats the objective? TO TEST and TO TEST THE FUNCTIONALITY BackGUI Approach is finding more defects.