This post is in continuation with QTP interview questions series.

Following questions will help for preparing interview as well as learning the QTP basics. Quick Test Professional: Interview Questions and answers. 1. What are the features and benefits of Quick Test Pro(QTP)? 1. Key word driven testing 2. Suitable for both client server and web based application 3. VB script as the script language 4. Better error handling mechanism 5. Excellent data driven testing features 2. How to handle the exceptions using recovery scenario manager in QTP? You can instruct QTP to recover unexpected events or errors that occurred in your testing environment during test run. Recovery scenario manager provides a wizard that guides you through the defining recovery scenario. Recovery scenario has three steps 1. Triggered Events 2. Recovery steps 3. Post Recovery Test-Run 3. What is the use of Text output value in QTP? Output values enable to view the values that the application talks during run time. When parameterized, the values change for each iteration. Thus by creating output values, we can capture the values that the application takes for each run and output them to the data table. 4. How to use the Object spy in QTP 8.0 version? There are two ways to Spy the objects in QTP 1) Thru file toolbar: In the File ToolBar click on the last toolbar button (an icon showing a person with hat). 2) Thru Object repository Dialog: In Objectrepository dialog click on the button “object spy…” In the Object spy Dialog click on the button showing hand symbol. The pointer now changes in to a hand symbol and we have to point out the object to spy the state of the object. If at all the object is not visible or window is minimized then hold the Ctrl button and activate the required window to and release the Ctrl button. 5. What is the file extension of the code file and object repository file in QTP? File extension of Per test object rep: Shared Object rep: filename.tsr Code file extension id: script.mts 6. Explain the concept of object repository and how QTP recognizes objects? Object Repository: displays a tree of all objects in the current component or in the current action or entire test( depending on the object repository mode you selected). we can view or modify the test object description of any test object in the repository or to add new objects to the repository. Quicktest learns the default property values and determines in which test object class it fits. If it is not enough it adds assistive properties, one by one to the description until it has compiled the unique description. If no assistive properties are available, then it adds a special Ordianl identifier such as objects location on the page or in the source code. 7. What are the properties you would use for identifying a browser and page when using descriptive programming? “name” would be another property apart from “title” that we can use. OR We can also use the property “micClass”. ex: Browser(”micClass:=browser”).page(”micClass:=page”)

8. What are the different scripting languages you could use when working with QTP? You can write scripts using following languages: Visual Basic (VB), XML, JavaScript, Java, HTML 9. Tell some commonly used Excel VBA functions. Common functions are: Coloring the cell, Auto fit cell, setting navigation from link in one cell to other saving 10. Explain the keyword createobject with an example. Creates and returns a reference to an Automation object syntax: CreateObject(servername.typename [, location])Arguments servername:Required. The name of the application providing the object. typename : Required. The type or class of the object to create. location : Optional. The name of the network server where the object is to be created. 11. Explain in brief about the QTP Automation Object Model. Essentially all configuration and run functionality provided via the QuickTest interface is in some way represented in the QuickTest automation object model via objects, methods, and properties. Although a one-on-one comparison cannot always be made, most dialog boxes in QuickTest have a corresponding automation object, most options in dialog boxes can be set and/or retrieved using the corresponding object property, and most menu commands and other operations have corresponding automation methods. You can use the objects, methods, and properties exposed by the QuickTest automation object model, along with standard programming elements such as loops and conditional statements to design your program. 12. How to handle dynamic objects in QTP? QTP has a unique feature called Smart Object Identification/recognition. QTP generally identifies an object by matching its test object and run time object properties. QTP may fail to recognize the dynamic objects whose properties change during run time. Hence it has an option of enabling Smart Identification, wherein it can identify the objects even if their properties changes during run time. Check out this: If QuickTest is unable to find any object that matches the recorded object description, or if it finds more than one object that fits the description, then QuickTest ignores the recorded description, and uses the Smart Identification mechanism to try to identify the object. While the Smart Identification mechanism is more complex, it is more flexible, and thus, if configured logically, a Smart Identification definition can probably help QuickTest identify an object, if it is present, even when the recorded description fails. The Smart Identification mechanism uses two types of properties: Base filter properties - The most fundamental properties of a particular test object class; those whose values cannot be changed without changing the essence of the original object. For example, if a Web link’s tag was changed from to any other value, you could no longer call it the same object. Optional filter properties - Other properties that can help identify objects of a particular class as they are unlikely to change on a regular basis, but which can be ignored if they are no longer applicable. 13. What is a Run-Time Data Table? Where can I find and view this table? In QTP, there is data table used, which is used at runtime. -In QTP, select the option View->Data table. -This is basically an excel file, which is stored in the folder of the test created, its name is Default.xls by default. 14. How does Parameterization and Data-Driving relate to each other in QTP? To data driven we have to parameterize. i.e. we have to make the constant value as parameter, so that in each interaction(cycle) it takes a value that is supplied in run-time data table. Through parameterization only we can drive a transaction (action) with different sets of data. You know running the script with the same set of data several times is not suggested, and it’s also of no use.

15. What is the difference between Call to Action and Copy Action.? Call to Action: The changes made in Call to Action, will be reflected in the original action (from where the script is called). But where as in Copy Action , the changes made in the script ,will not effect the original script(Action) 16. Explain the concept of how QTP identifies object. During recording qtp looks at the object and stores it as test object. For each test object QT learns a set of default properties called mandatory properties, and look at the rest of the objects to check whether this properties are enough to uniquely identify the object. During test run, QTP searches for the run time objects that matches with the test object it learned while recording. 17. Differentiate the two Object Repository Types of QTP. Object repository is used to store all the objects in the application being tested. Types of object repository: Per action and shared repository. In shared repository only one centralized repository for all the tests. where as in per action for each test a separate per action repository is created. 18. What the differences are and best practical application of Object Repository? Per Action: For Each Action, one Object Repository is created. Shared: One Object Repository is used by entire application 19. Explain what the difference between Shared Repository and Per Action Repository Shared Repository: Entire application uses one Object Repository , that similar to Global GUI Map file in WinRunner Per Action: For each Action, one Object Repository is created, like GUI map file per test in WinRunner 20. Have you ever written a compiled module? If yes tell me about some of the functions that you wrote. Sample answer (You can tell about modules you worked on. If your answer is Yes then You should expect more questions and should be able to explain those modules in later questions): I Used the functions for Capturing the dynamic data during runtime. Function used for Capturing Desktop, browser and pages. 21. Can you do more than just capture and playback? Sample answer (Say Yes only if you worked on): I have done Dynamically capturing the objects during runtime in which no recording, no playback and no use of repository is done AT ALL. -It was done by the windows scripting using the DOM(Document Object Model) of the windows. 22. How to do the scripting. Are there any inbuilt functions in QTP? What is the difference between them? How to handle script issues? Yes, there’s an in-built functionality called “Step Generator” in Insert->Step->Step Generator -F7, which will generate the scripts as you enter the appropriate steps. 23. What is the difference between check point and output value? An output value is a value captured during the test run and entered in the run-time but to a specified location. EX:-Location in Data Table[Global sheet / local sheet] 24. How many types of Actions are there in QTP? There are three kinds of actions: Non-reusable action - An action that can be called only in the test with which it is stored, and can be called only once. Reusable action - An action that can be called multiple times by the test with which it is stored (the local test) as well as by other tests.

External action - A reusable action stored with another test. External actions are read-only in the calling test, but you can choose to use a local, editable copy of the Data Table information for the external action. 25. I want to open a Notepad window without recording a test and I do not want to use System utility Run command as well. How do I do this? You can still make the notepad open without using the record or System utility script, just by mentioning the path of the notepad “( i.e. where the notepad.exe is stored in the system) in the “Windows Applications Tab” of the “Record and Run Settings window. Here I am reviewing HP- QTP (QuickTest Pro) tool for Automation testing. QTP is widely used test automation tool mainly for functional testing. QTP has many more advanced options and HP recommends that all existing and new users should begin with QTP instead of WinRunner. Features of QTP: • Ease of use. • Simple interface. • Presents the test case as a business workflow to the tester (simpler to understand). • Uses a real programming language (Microsoft’s VBScript) with numerous resources available. • QuickTest Pro is significantly easier for a non-technical person to adapt to and create working test cases, compared to WinRunner. • Data table integration better and easier to use than WinRunner. • Test Run Iterations/Data driving a test is easier and better implement with QuickTest. • Parameterization easier than WinRunner. • Can enhance existing QuickTest scripts without the “Application Under Test” being available; by using the ActiveScreen. • Can create and implement the Microsoft Object Model (Outlook objects, ADO objects, FileSystem objects, supports DOM, WSH, etc.). • Better object identification mechanism. • Numerous existing functions available for implementation - both from within QuickTest Pro and VBScript. • QTP supports .NET development environment • XML support • The Test Report is more robust in QuickTest compared to WinRunner. • Integrates with TestDirector and WinRunner (can kick off WinRunner scripts from QuickTest).

Understanding enigmatic TO and RO property
The TO and RO property must have confused(or might be still confusing) you at some point of time.This is my attempt to demystify the two with the inputs from various resources. Test objects are the objects in your test that represent the objects in your website or application. Runtime objects are the objects in your application during the test run. The Test object properties set is created and maintained by QuickTest. The Runtime object property set is created and maintained by the object creator (Microsoft for Internet Explorer objects, Netscape for Netscape objects, the product developer for ActiveX objects, etc.). Similarly, Test object methods are methods that QuickTest recognizes and records when they are performed on an object while you are recording a test, and that QuickTest performs when your test runs. Runtime object methods are the methods of the object in your application as defined by the object creator(the

developer!). You can access and perform runtime object methods using the Object property.

Some Useful Tips with QTP
Sharing some of the useful tips on QTP I used while working and found from sqaforums.I urge the readers to share their experiences/tips they have used while working on QTP. You can use the comments section to do the same. 1) How to add a constant number in a datatable? This is more to do with MS excel then QTP!! but useful to know because at times it becomes frustrating to the novices. Just append ' to the number Ex: if you wish to enter 1234567 in datatable then write it as '1234567 2) How can i check if a parameter exists in DataTable or not? The best way would be to use the below code: on error resume next val=DataTable("ParamName",dtGlobalSheet) if err.number<> 0 then 'Parameter does not exist Else 'Parameter exists end if 3) How can i check if a checkpoint passes or not? chk_PassFail = Browser(...).Page(...).WebEdit(...).Check (Checkpoint("Check1")) if chk_PassFail then MsgBox "Check Point passed" else MsgBox "Check Point failed" end if 4) My test fails due to checkpoint failing, Can i validate a checkpoint without my test failing due to checpoint failure? Reporter.Filter = rfDisableAll 'Disables all the reporting stuff chk_PassFail = Browser(...).Page(...).WebEdit(...).Check (Checkpoint("Check1")) Reporter.Filter = rfEnableAll 'Enable all the reporting stuff if chk_PassFail then MsgBox "Check Point passed" Else MsgBox "Check Point failed" end if 5) What is the difference between an Action and a function? Action is a thing specific to QTP while functions are a generic thing which is a feature of VB Scripting. Action can have a object repository associated with it while a function can't. A function is just lines of code with some/none

parameters and a single return value while an action can have more than one output parameters. 6) Where to use function or action? Well answer depends on the scenario. If you want to use the OR feature then you have to go for Action only. If the functionality is not about any automation script i.e. a function like getting a string between to specific characters, now this is something not specific to QTP and can be done on pure VB Script, so this should be done in a function and not an action. Code specific to QTP can also be put into an function using DP. Decision of using function/action depends on what any one would be comfortable using in a given situation. 7) When to use a Recovery Scenario and when to us on error resume next? Recovery scenarios are used when you cannot predict at what step the error can occur or when you know that error won't occur in your QTP script but could occur in the world outside QTP, again the example would be "out of paper", as this error is caused by printer device driver. "On error resume next" should be used when you know if an error is expected and dont want to raise it, you may want to have different actions depending upon the error that occurred. Use err.number & err.description to get more details about the error. 8) How to use environment variable? A simple defintion could be... it is a variable which can be used across the reusable actions and is not limited to one reusable action. There are two types of environment variables: 1. User-defined 2. Built-in We can retrieve the value of any environment variable. But we can set the value of only user-defined environment variables. To set the value of a user-defined environment variable: Environment (VariableName) = NewValue To retrieve the value of a loaded environment variable: CurrValue = Environment (VariableName) Example The following example creates a new internal user-defined variable named MyVariable with a value of 10, and then retrieves the variable value and stores it in the MyValue variable. Environment.Value("MyVariable")=10 MyValue=Environment.Value("MyVariable") 9) What are the files and subfolders of a QuickTest Professional test? The files and folders hold binary and text data that are required for the test to run successfully. The following table provides a description, the type, and comments regarding the files that make up a QuickTest Professional test.

File Name



Comments Regarding File

Test.tsp Default.xls

Test settings Data table parameters Parameterization information Action folder (See other table) Load test configuration file Load test configuration file Load test configuration file Load test configuration file Load test configuration file Load test configuration file


Do not edit

Excel Can be edited using Excel similar Binary Do not edit




Do not edit



Do not edit



Do not edit



Do not edit



Do not edit



Do not edit

Files within Action folder: File Name Script.mts Description Type Comments Regarding File Edit text preceding the @@ sign only

Action script Text Object Repository

Binary Do not edit


Active screen Folder Do not edit files

There are few more files extensions like .MTB Batch File .LCK Locked

10) How to rename a checkpoint (QTP 9.0)? Example: Window("Notepad").WinEditor("Edit").Check CheckPoint("Edit") In the above example, the user would like to change the name of the CheckPoint object from "Edit" to something more meaningful. Note: This functionality is new to QuickTest Professional 9.0.This is not available for QTP 8.2 and below. 1. Right-click on the Checkpoint step in the Keyword View or on the Checkpoint object in Expert View. 2. Select "Checkpoint Properties" from the pop-up menu. 3. In the Name field, enter the new checkpoint name. 4. Click . The name of the checkpoint object will be updated within the script. Example: Window("Notepad").WinEditor("Edit").Check CheckPoint("NewCheckPointName") Note: You must use the QuickTest Professional user interface to change the name of the checkpoint. If you manually change the name of the checkpoint in the script, QuickTest Professional will generate an error during replay. The error message will be similar to the following: "The "" CheckPoint object was not found in the Object Repository. Check the Object Repository to confirm that the object exists or to find the correct name for the object." The CheckPoint object is not a visible object within the object repository, so if you manually modify the name, you may need to recreate the checkpoint to resolve the error. 11) Does QuickTest Professional support Internet Explorer 7.0? QuickTest Professional 9.1 QuickTest Professional 9.1 supports Microsoft Internet Explorer 7.0 Beta 3. Internet Explorer version 7.0 is now certified to work and to be tested with QuickTest Professional version 9.1. QuickTest Professional 9.0 QuickTest Professional 9.0 supports Internet Explorer 7.0 Beta 2. QuickTest Professional 8.2 and below QuickTest Professional 8.2 and below do not include support for Internet Explorer 7.0. Does QuickTest Professional support Firefox? QuickTest Professional 9.1 and 9.2 QuickTest Professional 9.1 provides replay support for Mozilla Firefox 1.5 and Mozilla Firefox 2.0 Alpha 3 (Alpha-level support for Bon Echo 2.0a3). Notes: QuickTest Professional 9.1 will not record on FireFox. You can record a test on Microsoft Internet Explorer and run it on any other supported browser, such as FireFox. The .Object property for web objects is not supported in FireFox. QuickTest Professional 9.0

QuickTest Professional 9.0 provides replay support for Mozilla FireFox 1.5. Notes: QuickTest Professional 9.0 will not record on FireFox. You can record a test on Microsoft Internet Explorer and run it on any other supported browser, such as FireFox. The .Object property for web objects is not supported in FireFox. QuickTest Professional 8.2 and below QuickTest Professional 8.2 and below do not have support for Firefox.

12) Problem After Quick Test Professional is started, Windows Media will not start. It returns the error message "wmplayer.exe has generated errors and will be closed by Windows. You will need to restart the program. An error log is being created." If you start Window's Media Player first, it will continue to work normally after starting QuickTest Professional. Solution: Include the Windows Media Player's executable in the NoBBTApps section of the mic.ini file 1. Close QuickTest Professional. 2. Go to \bin\mic.ini. 3. Include wmplayer.exe in the NoBBTApps section of mic.ini file. Example: [NoBBTApps] wmplayer.exe=rek 4. Save the mic.ini file and restart QuickTest Professional. 13) What is the lservrc file in QTP? The lservrc file contains the license codes that have been installed The lservrc file contains the license codes that have been installed. Whenever a new license is created, the license code is automatically added to this file. The lservrc file is a text file, with no extension. File Location: 1) For a Concurrent (Floating) license installation: "#server installation directory#\#language#" Example: C:\Program Files\XYZ Technologies\ABC Server\English\lservrc 2) For a Seat (Stand-alone) license installation: #AQT/QTP installation directory#\bin" Example: C:\Program Files\Mercury Interactive\QuickTest Professional\Bin\lservrc 14) What to do if you are not able to run QTP from quality center? This is for especially for newbies with QTP. Check that you have selected Allow other mercury products to run tests and components from Tools--> Options--> Run Tab.

15) Does QuickTest Professional support Macintosh operating systems? No, QTP is not expected to run on this OS.

Sign up to vote on this title
UsefulNot useful