Qtp Daniel Tarun Lalwani lists the 101 qtp deficiencies:
Http://knowledgeinbox.com/articles/qtp/general/101-limitationsenhancement-for-qtp/
It covers object spy, IDE, Object Library and management, script writing, AOM, recovery scenarios, test report, checkpoint
Some of them have long been a pain point for qtp fans. For example, you cannot open multiple scripts for editing at the same time.
Object spy enhancements
1. object spy to have an option to export all the objects in hierarchy with their properties and methods to a XLS/XML file. and also to have an option to reload this offline. this feature wocould help for others to analyze a object recognition remotely
2. Object spy to have the ability to run without qtp. Currently object spy can only be loaded through qtp
3. Object spy to have an option to disable the auto spy. currently hovering on any object displays it properties without the need to click the object. This at time gives poor performance while spying objects
4. Currently object spy button gets disabled when the script is run, one has to launch Object repository and then launch object spy from there. The object spy shocould enable directly when the script is run
5. Object spy automation capability, so other tools can leverage the same and automate the or creation based on custom rules
6. Object spy to have capability to spy on dynamically created objects. E. g.-The search suggestion box on Google
7. Object spy to have facility to compare two different objects and show the differences
8. Object spy to support xpaths for identifying objects
IDE Enhancement
9. Ability to open multiple scripts at one time
10. Project Explorer with capability to create folder and organize resource inside them (library files, ORS, recovery scenarios) in them
11. Improved intelliisense for objects created through dotnetfactory
12. intelliisense for VBScript classes
13. Function folding and code folding in the IDE
14. Transition from design mode to run mode causes too flickers in the ide ui. This needs to be smooth
15. Ability to view code for test flow in expert view. This is currently only possible through keyword View
16. design time non-syntax error check for issues like duplicate variable declaration etc
17. intelliisense of current associated libraries in all libraries. currently if lib1 and lib2 are associated with a test. the lib1 will only show intelliisense for lib1 and not for lib2. the test will show intelliisense for both lib1 and lib2. this creates difficulty when lib2 functions need to be called in lib1
18. custom intelliisense for parameters. e. g. if a framework creates GetObject method and that takes in keyword which is loaded from a external Excel/XML file then to be able to provide intelliisense with those keyword
19. Script workflow digoal, something similar to keyword view but not at statement level but at function and action in flows
20. Ability to search called actions in current script and go to the same. Current UI is very unfriendly in case too when actions are called in the script
21. Ability to specify default run results directory and avoid the dialog for run results location for every run. This gets very annoying when debugging the script
22. input parameters tab in run dialog shocould remember the history of values used last time. currently if test/component parameters are used and for debugging the same parameters value are updated before start the run, these values are lost next time run is initiated. this causes a lot of value update every time the script needs to be run for debugging
23. Ability to pause recording, currently when recording starts it can only be stopped. Having a feature to pause recording wocould help a lot
Object repository enhancements
24. Ability to create and load or's from qtp script itself
25. Ability to load shared ors dynamically to all the actions. Currently repositoriescollection. Add Methods adds the SOR to the current action only and not other actions
26. Changes made through settoproperty in one action does not get propagated to next action
27. Ability to enumerate all child objects present in the OR for a specified object
28. Ability to specify nickname for objects. This wocould help get a complete object hierarchy through just the nick name
29. Ability to directly record objects into the sor
Object repository manager enhancements
30. Ability to load and save directly to or in XML format
31. ability for multiple users to access the shared or at the same time for updating
32. Export/Import of checkpoints from one sor to another
33. Merging of SOR's to an existing sor. Currently when two sor are merged, the merged sor needs to be saved as a different file
34. ability to update code when conflict resolution renames object during sor merge. in case object A and B are merged and name a is chosen over B, all scripts using name B needs to be updated manually
Scripting enhancements
35. More options for other scripting languages ages I. e. JScript, VB. NET, C #. Net etc...
36. support for start and finish events in action and test. e. g. -test_init, test_terminate, action_init, action_terminate. currently this can be achieved through use of class but it wocould be easier for people to use if the functionality is built-in
37. ability to execute specified VBScript even before the test execution starts. this script wocould run outside qtp and wocould help make changes to qtp settings that cannot be done during Run-Time. this wocould help in overcoming limitations like libraries cannot be associated at run-time
38. Ability to execute specified VBScript even after the test execution starts. This script wocould run outside qtp and wocould help perform post Execution Code. This wocould be helpful in scenarios like sending email with the report
39. Ability to create error handler functions which are automatically called when an error occurs
40. Performance Improvement when using descriptive programming when compared to object repository usage
41. Ability to debug libraries loaded during Run-Time Using execute, executeglobal and executefile
42. Ability to unload a library at run-time
43. ability to register generic functions for any object type. currently registeruserfunc can only be used to register the method for a single object type. so if a new set method is created then multiple registeruserfunc statements need to be written. qtp shocould provided some way to use a pattern or something to apply the same method to multiple Object Types
44. Ability to unlock a locked system from within the code
45. Ability to prevent screen locking during the execution
46. Ability to debug error which occurs during terminations of script. Currently any errors that occur during the termination of the script cannot be debugged and launches
47. Ability to enumerate current action parameters
48. Ability to enumerate current test parameters
49. Ability to enumerate Current Environment Parameters
50. Ability to export environment variables to XML in code
51. Ability to save data directly to design time data table
52. Ability to load Excel 2007 files into data table
53. Ability to encrypt the script code
54. Ability to password protect the scripts
55. Ability to save the list of libraries open and the libraries to automatically open when opening the script
56. Ability to save the breakpoints and bookmarks with the script
57. Ability to move a script from write mode to read-only mode. Currently enable editing button only enables read-only to write mode transition in tests/components/libraries and not vice-versa
58. Ability to execute in thread. Even one thread wocould do
59. Ability to call Windows API which require structures
60. Ability to load/unload add-ins at run-time
61. Add-In SDK documentation to create new add-ins
62. Ability to use a external Excel file directly as a datatable and have access to all the Excel objects as well
63. Ability to pause/break a script. Similar to debug. Assert method in VB
64. Ability to reconnect to QC automatically when the connect times out to the server
65. Built-in support for Web 2.0 and Ajax
66. Ability to call one test from another test
67. Auto include of sor and associated libraries when calling a External Action present in some other script
68. Ability to clear session cookies of a browser without closing the browser
69. Ability to get the stack trace in the Code in case of an error
70. Improvement in error messages in case of general error messages
71. Ability to get the current function name from inside the Function
72. Ability to get the time taken by a transaction when using services. endtransaction
73. Ability to do OCR on images (CAPTCHA) and convert them to text
Qtp AOM enhancements
74. Ability to open business process script in qtp
75. Ability to open/close library file in Ui using AOM
76. Ability to create a library file through AOM and add code to the same
77. Ability to create, open and modify a BPT application area through AOM
78. Ability to set/delete breakpoints in IDE using AOM
79. Ability to change any option at run-time and having the change impacted instantly
80. Ability to convert a BPT component to a normal test using AOM and through UI as well
Recovery scenarios enhancements
81. recovery scenarios (RS) to run in a separate thread. Currently recovery scenarios run in the same thread as qtp. This causes reses scenarios to be useless in case a modal dialog blocks qtp
82. option to stop chaining in recovery scenarios. currently If RS1 and rs2 both match the trigger criteria then both of the scenarios are executed. there is no way to specify that rs2 shocould not be executed if RS1 is executed
83. Currently there is no way to enumerate recovery scenarios present in a file
84. recovery scenarios don't work when they are associated at run-time
85. Ability to test the RS trigger from the UI. This wocould help debug in debugging the issues when recovery scenario does not get fired
Test reporting enhancements
86. Ability to create reports in different format. Excel, Word, HTML etc...
87. Reporting of errors or failure in different categories and priority. E. g.-reporting a error with severity, priority and category (application, script, validation, checkpoint)
88. Exact location of the error in the script. This shocould include the line of code, error number, error statement
89. Direct ability to send report to a specified list of email addresses when the test end
90. currently the reports can only be viewed through qtp reporter viewer and cannot be viewed on machines without this tool. report shoshould be made completely Web compatible so that I can be viewed in any browser in the same way it is displayed in report Viewer
91. Ability to view status of current action. Currently reporter. runstatus only provides the status of whole test and not for current action
92. Ability to enumerate the current status from within a test I. e. Actions executed with details, checkpoints executed with details, recovery scenarios executed with details
93. hosting web server to capture and display Script status in batch
94. Ability to report to a existing result File
95. Ability to override the action name in reports
96. Ability to specify the time zone to be used in reports
97. Ability to specify the results path during the run
Checkpoint enhancements
98. Ability to alter properties of all checkpoints during Run-Time. E. g. Expected bitmap of a bitmap checkpoint, expected values of a table/DB checkpoint etc
99. Ability to create checkpoints at run-time
100. Ability to load checkpoints from a external file at run-time
101. Ability to enumerate all checkpoints present in current script