I want to make few points quickly in favor of that.

1) No support for programming languages like Java, .Net so that it allows it to be used as an acceptance testing tool.
2) VBSCript doesn’t help in every-one’s participation in the automation process, which is a key in agile projects.
3) No IDE support : QTP’s IDE is no way near Ideal hence makes maintainable a tough battle.
4) NO support for standard IDE like eclipse .
5) Multi browser support is limited.
6) Cant execute scripts on Linux and Mac platforms.
7) No continuous integration support, makes it rally tough to be used as an acceptance testing tool.

8)Test execution is slower compared to other tools, hence makes feedback cycle slower as well.

9) And last but not the least , Bloody expensive ;)

P.S : I am not anti QTP and love QTP as a tool, but QTP is not fit for agile process ..until HP realises that and comes up with solution to rectify the problems mentioned above…..oops that means HP may end up building (Acquiring) a new tool altogether.

Disclaimer : Opinions in this post are my personal opinions and does not intend to pursue any commercial interest. If you think otherwise please ignore the post.

I am happy to receive  any feedback and comment on this post.



, ,

Objects are the most difficult things to manage in any automation tool/framework.

Though QTP gives a good way of managing objects via Object Repository manager, Still a few tidy things could make your scripts more robust and effective, from OR’s perspective.

1) Browser Objects :

If Title is same for all the pages in the browser, through out the application, only one browser objects should be used to have less overheads. By saying ‘One Browser’ object, I mean that all the browser objects in all the repositories should have the same name. This would help us more in writing and maintaining scripts, as you need not worry about n different names for the browsers at different places.

User ‘Title’ property as single identifier, this would help in managing conflicts well.

Get rid of the prperties (Remove from the description properties ) like

1) ‘openurl, as this makes the object dependent on the URL and even a slightest of the change in URL would make the script break.

2) ‘version’ , ‘application version’: This will make the scripts independent of Browser type and Versions.


2) Page Objects




- Don’t use URL property in the object description properties, wherever possible

- If all the pages in the application have same title use the ‘title’ property to identify the page in all the object repository. Make sure you keep the name same for the all the pages.

This would reduce the overhead of using different object name in the scripts and maintenance would be very easy.

People may disagree here, as keeping the name same for all the pages, does not help in terms of documentation or rather helping in identify which page are we referring to from different places?

My Answer is : In a good framework, people work on multiple well defined functions, so function reference is good enough to tell me who is doing what?

Also, it is a good practice to have small manageable repository (.tsr, .bdb) file in QTP for good performance and easy maintenance.

So, one can have a repository for each script (Functionality), which makes it obvious that even if I am using a single name for all the pages, it becomes quiet evident by looking at repository that which Repositor is pointing to which particular page/pages.

Another reason is, keeping a single name for browser and page would mean a single heirarchy, irrespective of number of Object Repositories.

So, even if ten repositories are shared in a script/Test, you don’t have to worry about thousand different heirarchies.

However, the next question is, when you see all your objects from different OR’s under one heirrachy, isn’t it confusing, in terms of identifying the object?

Answer is YES it can be confusing, if objects are not named properly.

E.g? Button1 should be rather named as Button1_loginpage, this would help me compensating for not using different pages at the same time taking benefits of using single heirarchy.



How Does a Single Heirarchy helps in scripting?

Automation Frameworks

Software automation framework is the most debated subject in the SQA world.


What is Software Automation?

Software automation is a way of emulating user actions using some means, to test a system. Automation can be achieved using a tool, a scripting language or any simple batch. The purpose of doing automation is to save time and money on the things which would cost more, if not automated.

So, First lesson to learn. Deciding what to automate and then whether its worth to automate or not?

What to automate?
- Needs to be tested very regularly.
- Important business functionality.
- Actions – Assertions (Should have some action and action should result in something, which can be verified)
- Can be measured.
- Not too complex.


Finding a worth

- Cost vs benefit. – Is it worth automating this bit, if it takes n number of days automating and may require n hours of maintenance?
- Business Value of the functionality to be automated.

- Fragility : How fragile the area has been, or might be.