These notes on the software functionality automated test tool WinRunner from Mercury Interactive focuses on the hardest won (but easily forgotten) insights not.
Developer(s) | HP/Mercury Interactive |
---|---|
Stable release | |
Operating system | Microsoft Windows |
Type | test automation |
License | Proprietary |
Website | HP Functional Testing software web page |
HPWinRunner software was an automated functional GUI testing tool that allowed a user to record and play back user interface (UI) interactions as test scripts.
As a functional test suite, it worked with HP QuickTest Professional and supported enterprise quality assurance. It captured, verified and replayed user interactions automatically, in order to identify defects and determine whether business processes worked as designed.
The software implemented a proprietary Test Script Language (TSL) that allowed customization and parameterization of user input.
HP WinRunner was originally written by Mercury Interactive.[1] Mercury Interactive was subsequently acquired by Hewlett Packard (HP) in 2006.[2] On February 15, 2008, HP Software Division announced the end of support for HP WinRunner versions 7.5, 7.6, 8.0, 8.2, 9.2—suggesting migration to HP Functional Testing software as a replacement.[3]
Helping Guides[edit]
Open Source Frameworks for WinRunner[edit]
- SAFS (Software Automation Framework Support)
- EMOS-Framework (GUI Modeling)
See also[edit]
External links[edit]
References[edit]
- ^FYICenter.com: 'WinRunner FAQ.' Retrieved 2010-03-25.
- ^HP news release: “HP Closes Landmark Mercury Acquisition” Nov. 2006
- ^“End of Support announcement HP WinRunner 7.5, 7.6, 8.0, 8.2, 9.2 (all editions).” Retrieved 2010-03-25.
This is part of the post, “WinRunner Interview Questions and Answers series ”
HP WinRunner Automation Tool was owned by Mercury Interactive. When HP acquired Mercury Interactive, they stopped Winrunner support and suggested to use the HP Functional Testing software.
These are some important WinRunner interview questions frequently asked in Automation Testing interview. If you are unclear of any answer ask me for clarification. I will continue this WinRunner tutorial posting series on weekends as a Testing Interview preparation series for you.
What You Will Learn:
WinRunner Automation Tool Preparation
How do you analyze Test results in Winrunner tool and report the defects?
When you finish any test in WinRunner, WinRunner displays the results in a report format.
The report logs the general information about the test run.ie, date, operator mode and total run time. Also, the report details all the major events that occurred during the run, such as checkpoints, error messages, system messages, or user messages.
A mismatch can be found in the report panel by seeing the Actual result and the Expected result. If a test run fails due to a defect in the application being tested, you can report information about the defect directly from the Test Results window.
This information is sent via e-mail to the Quality Assurance Manager, who tracks the defect until it is fixed.
What is the Use of Test Director Testing Tool?
TestDirector is Mercury Interactive’s software Test Management Tool. It helps Quality Assurance personnel plan and organizes the testing process. With TestDirector you can create a database of manual and automated tests, build test cycles, run tests, and report and track defects.
You can also create reports and graphs to help review the progress of planning tests, running tests, and tracking defects before a software release.
How to Integrate Automated Scripts from TestDirector to Windrunner Scripts?
When you work in WinRunner and create any test script you have the option to save it directly to the Test Director test repository.
Or while creating a test case in the TestDirector we can specify whether the script in automated or manual.
And if it is automated script then TestDirector will build a skeleton for the script like TSL(Test Script Language) of WinRunner that can be later modified into one which could be used to test the application.
What are the Different Modes of Recording in WinRunner?
Two types of Recording in WinRunner:
- Context-Sensitive Recording records the operations you perform on your application by identifying the Graphical User Interface (GUI) objects. Windrunner identifies all the objects in your window you click like menus, windows, lists, buttons and the type of operation you perform such as enable, move, select etc.
- Analog Recording records keyboard input, mouse clicks, and the precise x- and y-coordinates traveled by the mouse pointer across the screen i.e Winrunner records exact co-ordinates traveled by mouse.
What is the Purpose of Loading WinRunner Add-Ins?
Add-Ins are used in WinRunner to load functions specific to the particular add-in to the memory. While creating a script only those functions in the add-in selected will be listed in the function generator.
And while executing the script only those functions in the loaded add-in will be executed else WinRunner will give an error message saying it does not recognize the function.
What are the reasons that WinRunner fails to identify the GUI object?
WinRunner fails to identify an object in a GUI due to various reasons:
- The object is not a standard windows object.
- If the browser used is not compatible with the WinRunner version, GUI Map Editor will not be able to learn any of the objects displayed in the browser window.
What do you mean by the Logical name of the object?
When you click an object, WinRunner assigns the object a Logical name, which is usually the object’s text label. The Logical name makes it easy for you to read the test script.
For Example,when you selected the Order No. checkbox, WinRunner recorded the following statement in WinRunner TSL:
button_set (“Order No.”, ON);
“Order No.” is the object’s logical name.
An object’s Logical name is determined by its class. In most cases, the logical name is the label that appears on an object.
If the object does not have a name then what will be the Logical name?
If the object does not have a name then the logical name could be the attached text.
What is the difference between GUI map and GUI map files?
The GUI map is actually the sum of one or more GUI map files. There are two modes for organizing GUI map files.
- Global GUI Map file: a single GUI Map file for the entire application
- GUI Map File per Test: WinRunner automatically creates a GUI Map file for each test created.
GUI Map file is a file which contains the windows and the objects learned by the WinRunner with its logical name and their physical description.
WinRunner Interview Questions With Answers
Here is another post of WinRunner Interview preparation series. You can find here frequently asked WinRunner interview questions with answers.
Most of the questions are based on Test Script Language (TSL), recording scripts in WinRunner and introduction to some important basic WinRunner most used commands.
Q #1) What is the purpose of set_window command?
Answer: Set_Window command sets the focus to the specified window. We use this command to set the focus to the required window before executing tests on a particular window.
Syntax: set_window(<logical name>, time);
The logical name is the logical name of the window and time is the time the execution has to wait till it gets the given window into focus.
For Example:
set_window (“Print”, 12);
button_press (“OK”);
The set_window statement indicates that the Print window is the active window.
The OK button is learned within the context of this window.
If you program a test manually, you need to enter the set_window statement then the active window changes. When editing a script, take care not to delete necessary set_window statements.
Q #2) Why don’t we normally load the GUI maps through startup scripts?
Answer: We do not normally load the GUI maps through startup scripts as:
- If we are using a single GUI Map file for the entire AUT then the memory used by the GUI Map may be much high.
- If there is any change in the object being learned then WinRunner will not be able to recognize the object, as it is not in the GUI Map file loaded in the memory. So we will have to learn the object again and update the GUI File and reload it.
Q #3) How do you unload the GUI map?
Answer: We can use GUI_close to unload a specific GUI Map file or else we call use GUI_close_all to command to unload all the GUI Map files loaded in the memory.
Syntax: GUI_close(<file_name>); or GUI_close_all;
You can also use GUI_unload and GUI_unload_all functions to unload loaded GUI map files.
Q #4) What is the use of GUI map and what happens when the GUI map file get loaded?
Winrunner Tutorial
Answer: When we load a GUI Map file, the information about the windows and the objects with their logical names and physical description are loaded into memory.
So when the WinRunner executes a script on a particular window, it can identify the objects using this information loaded in the memory.
Q #5) How do you copy and move objects between different GUI map files?
Answer: We can copy and move objects between different GUI Map files using the GUI Map Editor. The steps to be followed are:
- Choose Tools > GUI Map Editor to open the GUI Map Editor.
- Choose View > GUI Files.
- Click Expand in the GUI Map Editor. The dialog box expands to display two GUI map files simultaneously.
- View a different GUI map file on each side of the dialog box by clicking the file names in the GUI File lists.
- In one file, select the objects you want to copy or move. Use the Shift key and/or Control key to select multiple objects. To select all objects in a GUI Map file, choose Edit > Select All.
- Click Copy or Move.
- To restore the GUI Map Editor to its original size, click Collapse.
Q #6) How do you configure GUI map?
Answer: GUI map can be configured as:
- When WinRunner learns the description of a GUI object, it does not learn all its properties. Instead, it learns the minimum number of properties to provide a unique identification of the object.
- Many applications also contain custom GUI objects. A custom object is any object not belonging to one of the standard classes used by WinRunner. These objects are therefore assigned to the generic “object” class. When WinRunner records an operation on a custom object, it generates obj_mouse_ statements in the test script.
- If a custom object is similar to a standard object, you can map it to one of the standard classes. You can also configure the properties WinRunner uses to identify a custom object during Context Sensitive testing. The mapping and the configuration you set are valid only for the current WinRunner session. To make the mapping and the configuration permanent, you must add configuration statements to your startup test script.
Q #7) What is the purpose of a GUI spy?
Answer: Using the GUI Spy, you can view the properties of any GUI object on your desktop. You use the Spy pointer to point to an object, and the GUI Spy displays the properties and their values in the GUI Spy dialog box.
You can choose to view all the properties of an object or only the selected set of properties that WinRunner learns.
Q #8 ) What is the purpose of different record methods 1) Record 2) Pass up 3) As Object 4) Ignore.
Answer:
- Record instructs WinRunner to record all operations performed on a GUI object. This is the default record method for all classes. (The only exception is the static class (static text), for which the default is Pass Up.)
- Pass Up instructs WinRunner to record an operation performed on this class as an operation performed on the element containing the object. Usually, this element is a window, and the operation is recorded as win_mouse_click.
- As Object instructs WinRunner to record all operations performed on a GUI object as though its class was “object” class.
- Ignore instructs WinRunner to disregard all operations performed on the class.
Q #9) What are the virtual objects and how do you learn them?
Answer: You can teach WinRunner to recognize any bitmap in a window as a GUI object by defining the bitmap as a virtual object.
You can create virtual push-buttons, radio buttons, check buttons, lists, or tables, according to the bitmap’s behavior in your application. If none of these is suitable, you can map a virtual object to the general object class.
- Applications may contain bitmaps that look and behave like GUI objects. WinRunner records operations on these bitmaps using win_mouse_click statements. By defining a bitmap as a virtual object, you can instruct WinRunner to treat it like a GUI object such as a push-button, when you record and run tests.
- Using the Virtual Object wizard, you can assign a bitmap to a standard object class, define the coordinates of that object, and assign it a logical name.
Q #10) What is the use of Virtual Object Wizard and how it is used?
Answer: To define a virtual object using the Virtual Object wizard:
- Choose Tools > Virtual Object Wizard. The Virtual Object wizard opens. Click Next.
- In the Class list, select a class for the new virtual object. If rows that are displayed in the window. For a table class, select the number of visible rows and columns. Click Next.
- Click Mark Object. Use the crosshairs pointer to select the area of the virtual object. You can use the arrow keys to make precise adjustments to the area you define with the crosshairs. Press Enter or click the right mouse button to display the virtual object’s coordinates in the wizard. If the object marked is visible on the screen, you can click the Highlight button to view it. Click Next.
- Assign a logical name to the virtual object. This is the name that appears in the test script when you record on the virtual object. If the object contains text that WinRunner can read, the wizard suggests using this text for the logical name. Otherwise, WinRunner suggests virtual_object, virtual_push_button, virtual_list, etc.
- You can accept the wizard’s suggestion or type in a different name. WinRunner checks that there are no other objects in the GUI map with the same name before confirming your choice. Click Next.
Q #11) What are the modes of script recording in WinRunner?
Answer: There are 2 modes of recording in WinRunner
- Context-Sensitive recording records the operations you perform on your application by identifying Graphical User Interface (GUI) objects.
- Analog recording records keyboard input, mouse clicks, and the precise x- and y-coordinates traveled by the mouse pointer across the screen.
Q #12) What is a Checkpoint and what are different types of Checkpoints?
Answer: Checkpoints allow you to compare the current behavior of the application being tested to its behavior in an earlier version.
You can add four types of checkpoints to your test scripts:
- GUI Checkpoints verify information about GUI objects. For example, you can check that a button is enabled or see which item is selected in a list.
- Bitmap Checkpoints take a snapshot of a window or area of your application and compare this to an image captured in an earlier version.
- Text Checkpoints read the text in GUI objects and in bitmaps and enable you to verify their contents.
- Database Checkpoints check the contents and the number of rows and columns of a result set, which is based on a query you create your database.
Most Frequently Asked Winrunner Questions
Here is the list of some frequently asked WinRunner Interview Questions with Answers.
I will continue this series as I posted some WinRunner Questions and Answers.
Q #13) How you used WinRunner in your project?
Answer: Yes, I have been using WinRunner for creating automated scripts for GUI, Functional and Regression Testing of the AUT.
Q #14) Explain the WinRunner testing process?
Answer: The WinRunner testing process involves six main stages
- Create GUI Map File so that WinRunner can recognize the GUI objects in the application being tested
- Create test scripts by recording, programming, or a combination of both. While recording tests, insert checkpoints where you want to check the response of the application being tested.
- Debug Test: run tests in Debug mode to make sure they run smoothly
- Run Tests: run tests in Verify mode to test your application.
- View Results: determines the success or failure of the tests.
- Report Defects: If a test run fails due to a defect in the application being tested, you can report information about the defect directly from the Test Results window.
Winrunner Software Testing Tool Download
Q #15) What is contained in the GUI map?
Answer: WinRunner stores information it learns about a window or object in a GUI Map.
When WinRunner runs a test, it uses the GUI map to locate objects. It reads an object’s description in the GUI map and then looks for an object with the same properties in the application being tested. Each of these objects in the GUI Map file will be having a logical name and a physical description.
There are 2 types of GUI Map files:
- Global GUI Map file: a single GUI Map file for the entire application
- GUI Map File per Test: WinRunner automatically creates a GUI Map file for each test created.
Q #16) How does WinRunner recognize objects on the application?
Answer: WinRunner uses the GUI Map file to recognize objects on the application. When WinRunner runs a test, it uses the GUI map to locate objects. It reads an object’s description in the GUI map and then looks for an object with the same properties in the application being tested.
Q #17) Have you created test scripts and what is contained in the test scripts?
Answer: Yes, I have created test scripts. It contains the statement in Mercury Interactive’s Test Script Language (TSL). These statements appear as a test script in a test window.
You can then enhance your recorded test script, either by typing in additional TSL functions and programming elements or by using WinRunner’s visual programming tool, the Function Generator.
Q #18) How does WinRunner evaluate test results?
Answer: Following each test run, WinRunner displays the results in a report. The report details all the major events that occurred during the run, such as checkpoints, error messages, system messages, or user messages.
If mismatches are detected at checkpoints during the test run, you can view the expected results and the actual results from the Test Results window.
Q #19) Have you performed debugging of the scripts?
Answer: Yes, I have performed debugging of scripts. We can debug the script by executing the script in the debug mode. We can also debug script using the Step, Step Into, Step out functionalities provided by the WinRunner.
Q #20) How do you run your test scripts?
Answer: We run tests in Verify mode to test your application. Each time WinRunner encounters a checkpoint in the test script, it compares the current data of the application being tested to the expected data captured earlier.
If any mismatches are found, WinRunner captures them as actual results.
WinRunner Screening Questions
Screening questions:Interviewer can Reject the candidate if he /she is not able to answer 2 questions out of the following 4 questions:
Q #21) Where did you learn WinRunner and TestDirector?
Answer: If they say it was in a mercury class, ask if they can show you their certificate of completion. If they say no, let them know you will verify it with Mercury.
Q #22) Have you ever created a start-up script?
Answer: If they answer “yes”, ask them what was in it and how they got WR to execute the start-up script when WR is invoked.
They should answer something like this, “In the start-up script, we loaded all the GUI maps for the application, any library files we needed, and any custom GUI object mapping we have to do.
We also loaded global variables and system variables here. The startup script location is added to the WR .ini file, wrun.ini located under the windows or WinNT directory as wrun.ini”
Q #23) What is the difference between writing a function and writing a script?
Answer: They should mention some of these things:
- A function goes into a “compiled module”, a script does not.
- A function follows strict “c” syntax. For Example, you have to declare all variables created and used in the function. In a script, you do not.
Q #24) What is the difference between “set_window” and “win_activate”.?
When would you use “set_window” and when would you use “win_activate”?
Answer: win_activate has the format win_activate(window);. The win_activate function makes the specified window the active window by bringing it into focus and raising it to the top of the display. (It is the equivalent to clicking on the window banner)
Set_window has the following format: set_window(window,[time]); The set_window function directs input to the correct application window. This directs the GUI map to this window. It also sets the scope for object identification in the GUI map.
The most important difference is that set_window has a timing option. WinRunner will wait for a maximum of the number used in the function, PLUS the system set a timeout, to wait for the window to appear.
Win_activate assumes the window is already on the desktop and has no timing option.
These are some simple questions that should be very easy for a WR user who has at least 6 months of good experience to answer.