Saturday, May 2, 2009

In this post, I will explain some best practices need to be followed when doing test automation using QTP (HP Quick Test professional). If you are new to QTP, you can come to this post once after reading my previous posts.

Start your automation work only when AUT (Application Under Test) is stable. i-e You should have completed initial round of manual testing before starting QTP automation task.

Use reusable actions wherever possible.

Don’t copy and paste checkpoints when you wish to check same thing in more than one places. Instead, create separate checkpoints. Because manipulating checkpoints in QTP is not feasible or it will be difficult.

Open browser/application after opening QTP.

Your vbscript functions should not have any hard coded object names, the name of the objects should be passed as function argument.

Before adding any object to Object Repository, set up appropriate object identification properties (in Tools->ObjectIdentification) if you feel that default identification properties are not suitable for you application. If you do it after adding some objects to the Object Repository then you may face issues related to having multiple Test objects in Object Repository for a single actual Object.

Open QTP using Automation object model. You can do it just by writing (even you are having 'generate script' option in the QTP IDE itself) simple .vbs file, and then open QTP just by double clicking this .vbs file. It is very very essential if you are developing your scripts in one machine/environment and planning to run/execute it in another environment. By using Automation Object model we are making sure that all the IDE settings (e.g Object identification properties) that are changed in development environment are propagated to the execution environment also

Always use Reference/Relative path when calling any external reusable action instead of using absolute/full path, Otherwise the script will fail when placing it in different path.

Remember to take backup of Object Repositories before merging object repositories.

Put proper inline comments and also put summary comments (description, input & output parameters,dependency, author) at beginning of the Test. In the comments remember to mention about execution/data flow.

Rename the Objects in Object Repository to have proper meaning for them. Because the default name given by adding the objects by recording or manually may not be good/meaningful.

Give attention to synchronization (i-e use of sync,waitproperty, exist). And also use regular expression wherever required. Otherwise consistency of script execution will be affected.

Use recovery scenario to handle any unexpected behaviour (e.g showing pop-up windows sometimes) of the application.