Monday, July 9, 2007

The day I lost my chastity - Written by Kamal Hassan.

"Anayaa Neruppu" by Kamal Hassan (The story of Sita and Fire)

It was the day Rama decided to test her chastity. Ravana had been long dead in the war over her. He too had an unrequited love for Sita, like me (Agni, the fire lord).

In Asokavana (where Site was held captive), the maid used to bring me alive everyday night by feeding me oil and dry twigs, to keep them warm. All the guards would fall asleep in my warmth. Sita alone would be awake. Me too.

Sometimes after all of them fell asleep, Sita would stare at me intensely. I would get all excited and flutter wildly in my shyness. On day break, the breeze would cool down my lustful ardor to burnt embers.

I was jealous of Ravana for having kidnapped her. I once hung on to the tail of Rama's messenger (Hanuman) and tried to burn Ravana and Lanka to oblivion. All I could do was to just burn down a few wax palaces.

I was the witness of Sita's chastity. On those night Ravana came to plead his love for her, I was always present. I glowed with anger when Rama's messenger brought Rama's ring and message. It was of no use, she saw the ring even more clearly, in my brightness.

Sita refused to talk to Ravana. To me too. She was true to her love of Rama. Never did she utter a word to me (Fire).

It was on the day when Rama decided to make a public spectacle of testing her chastity did she first speak to me.

"I, who never thought of anyone other than Rama, am heart broken today. Oh Agni, for days together you passionately looked at me with love. Let this chastity that I saved for my husband be yours Consume me" she said with fury.

Love is a peculiar disease. Like the love between a lizard and the rock it lives on, our love was unknown to anybody else. I used to lust for her passionately. But on the day of reckoning, my love for her dominated my lust. I knew that our union would be counter productive like my first love.

My first love was with the forest, the jungle queen. Then I was too young. My dad was very angry when I proclaimed my love for the forest. He threw me out. I went in search of my lover passionately. I embraced her with all the lust of my youthful fantasies. She was burnt to cinder, and so ended my love. I knew that the same would be the case with Sita too.

More than consummating our affair, it was my duty to save her, said my love for her. Sita came into my embrace more with frustration and anger at Rama, not with love for me. For her I was just a shoulder to cry upon. What she felt for me was just sympathy, not love. She was giving it away as one would give alms to a beggar.

"Why do you refuse to accept me, when I am willing" she enquired of me.

"My dear Sita, if love would increase on consummating, Rama's love for you should have increased manifold by now. Love has the strange habit of decreasing after being together.

If I get drenched in your love for me, I would die down to ashes, without use to anyone. You would either have to go back to Ayodhya or your parents' place. I don't think I would be able to embrace you finally, like I do others.

We two are of a kind. We are beyond rules. For your chastity to remain untarnished, and for my love to remain undiminished, we should not consummate our love.

I will let you pass through me, to your selfish Rama. As a result of this consummation that was not, I will bear a daughter in your form and name her Draupadi. Is that acceptable to you?" I asked her tenderly.

Her eyes shined with tears on hearing this. "Never have I felt a love like this, nor have I seen a man like you. It won't happen in the future too. After I walk out of your embrace, I would live on our memories alone. My chastity will go rotten in a country ruled by people like Rama. I will leave that with you, as my marriage gift to our daughter Draupadi". With those words she walked out my embrace, never looking back.

It was there I promised to myself, that I would make sure that Draupadi will not have to suffer husbands who questioned her chastity.
Kamal Hassan

Monday, April 23, 2007

Pictures now...


Anti smoking Ad


View from Symphony


These were shot at EPIP zone

Ram Temple

MG Road on a Saturday

Firedrill at MANH

It's Karthik

A message to Garcia


In all this Cuban business there is one man stands out on the horizon of my memory like Mars at perihelion. When war broke out between Spain and the United States, it was very necessary to communicate quickly with the leader of the Insurgents. Garcia was somewhere in the mountain vastness of Cuba—no one knew where. No mail nor telegraph message could reach him. The President must secure his cooperation, and quickly.
What to do!
Someone said to the President, "There’s a fellow by the name of Rowan will find Garcia for you, if anybody can."
Rowan was sent for and given a letter to be delivered to Garcia. How "the fellow by the name of Rowan" took the letter, sealed it up in an oil-skin pouch, strapped it over his heart, in four days landed by night off the coast of Cuba from an open boat, disappeared into the jungle, & in three weeks came out on the other side of the Island, having traversed a hostile country on foot, and delivered his letter to Garcia, are things I have no special desire now to tell in detail.
The point I wish to make is this: McKinley gave Rowan a letter to be delivered to Garcia; Rowan took the letter and did not ask, "Where is he at?" By the Eternal! there is a man whose form should be cast in deathless bronze and the statue placed in every college of the land. It is not book-learning young men need, nor instruction about this and that, but a stiffening of the vertebrae which will cause them to be loyal to a trust, to act promptly, concentrate their energies: do the thing- "Carry a message to Garcia!"
General Garcia is dead now, but there are other Garcias.
No man, who has endeavored to carry out an enterprise where many hands were needed, but has been well nigh appalled at times by the imbecility of the average man- the inability or unwillingness to concentrate on a thing and do it. Slip-shod assistance, foolish inattention, dowdy indifference, & half-hearted work seem the rule; and no man succeeds, unless by hook or crook, or threat, he forces or bribes other men to assist him; or mayhap, God in His goodness performs a miracle, & sends him an Angel of Light for an assistant. You, reader, put this matter to a test: You are sitting now in your office—six clerks are within call.
Summon any one and make this request: "Please look in the encyclopedia and make a brief memorandum for me concerning the life of Correggio".
Will the clerk quietly say, "Yes, sir," and go do the task?
On your life, he will not. He will look at you out of a fishy eye and ask one or more of the following questions:
Who was he?
Which encyclopedia?
Where is the encyclopedia?
Was I hired for that?
Don’t you mean Bismarck?
What’s the matter with Charlie doing it?
Is he dead?
Is there any hurry?
Shan’t I bring you the book and let you look it up yourself?
What do you want to know for?
And I will lay you ten to one that after you have answered the questions, and explained how to find the information, and why you want it, the clerk will go off and get one of the other clerks to help him try to find Garcia- and then come back and tell you there is no such man. Of course I may lose my bet, but according to the Law of Average, I will not.
Now if you are wise you will not bother to explain to your "assistant" that Correggio is indexed under the C’s, not in the K’s, but you will smile sweetly and say, "Never mind," and go look it up yourself.
And this incapacity for independent action, this moral stupidity, this infirmity of the will, this unwillingness to cheerfully catch hold and lift, are the things that put pure Socialism so far into the future. If men will not act for themselves, what will they do when the benefit of their effort is for all? A first-mate with knotted club seems necessary; and the dread of getting "the bounce" Saturday night, holds many a worker to his place.
Advertise for a stenographer, and nine out of ten who apply, can neither spell nor punctuate- and do not think it necessary to.
Can such a one write a letter to Garcia?
"You see that bookkeeper," said the foreman to me in a large factory.
"Yes, what about him?"
"Well he’s a fine accountant, but if I’d send him up town on an errand, he might accomplish the errand all right, and on the other hand, might stop at four saloons on the way, and when he got to Main Street, would forget what he had been sent for."
Can such a man be entrusted to carry a message to Garcia?
We have recently been hearing much maudlin sympathy expressed for the "downtrodden denizen of the sweat-shop" and the "homeless wanderer searching for honest employment," & with it all often go many hard words for the men in power.
Nothing is said about the employer who grows old before his time in a vain attempt to get frowsy ne’er-do-wells to do intelligent work; and his long patient striving with "help" that does nothing but loaf when his back is turned. In every store and factory there is a constant weeding-out process going on. The employer is constantly sending away "help" that have shown their incapacity to further the interests of the business, and others are being taken on. No matter how good times are, this sorting continues, only if times are hard and work is scarce, the sorting is done finer- but out and forever out, the incompetent and unworthy go.
It is the survival of the fittest. Self-interest prompts every employer to keep the best- those who can carry a message to Garcia.
I know one man of really brilliant parts who has not the ability to manage a business of his own, and yet who is absolutely worthless to any one else, because he carries with him constantly the insane suspicion that his employer is oppressing, or intending to oppress him. He cannot give orders; and he will not receive them. Should a message be given him to take to Garcia, his answer would probably be, "Take it yourself."
Tonight this man walks the streets looking for work, the wind whistling through his threadbare coat. No one who knows him dare employ him, for he is a regular fire-brand of discontent. He is impervious to reason, and the only thing that can impress him is the toe of a thick-soled No. 9 boot.
Of course I know that one so morally deformed is no less to be pitied than a physical cripple; but in our pitying, let us drop a tear, too, for the men who are striving to carry on a great enterprise, whose working hours are not limited by the whistle, and whose hair is fast turning white through the struggle to hold in line dowdy indifference, slip-shod imbecility, and the heartless ingratitude, which, but for their enterprise, would be both hungry & homeless.
Have I put the matter too strongly? Possibly I have; but when all the world has gone a-slumming I wish to speak a word of sympathy for the man who succeeds- the man who, against great odds has directed the efforts of others, and having succeeded, finds there’s nothing in it: nothing but bare board and clothes.
I have carried a dinner pail & worked for day’s wages, and I have also been an employer of labor, and I know there is something to be said on both sides. There is no excellence, per se,
in poverty; rags are no recommendation; & all employers are not rapacious and high-handed, any more than all poor men are virtuous.
My heart goes out to the man who does his work when the "boss" is away, as well as when he is at home. And the man who, when given a letter for Garcia, quietly take the missive, without asking any idiotic questions, and with no lurking intention of chucking it into the nearest sewer, or of doing aught else but deliver it, never gets "laid off," nor has to go on a strike for higher wages. Civilization is one long anxious search for just such individuals. Anything such a man asks shall be granted; his kind is so rare that no employer can afford to let him go. He is wanted in every city, town and village—in every office, shop, store and factory. The world cries out for such: he is needed, & needed badly—the man who can carry a message to Garcia.

THE END...
By Elbert Hubbard

Testing with Selenium - Web Apps

I love Selenium! Selenium enables you to easily test web applications that contain rich, client-side, interactive content. For example, you can use Selenium when testing an AJAX application such as an application written with Microsoft Atlas.

Selenium enables you to record a browser session. For example, you could record the series of actions required to add a product to a shopping cart or register at a website.

You can use Selenium to record each significant client-side action that a user performs in a browser such as clicking buttons and links and entering text into input fields. After you record a test, you can run the test with any browser. For example, you can execute the same test with Internet Explorer, Firefox, and Opera to check that your application is cross-browser compatible.

When you record each step in a test, you can include assertions that the browser has a certain property. For example, you can include an assertion that a particular string of text is displayed by the browser or an assertion that the browser is displaying a particular title in its title bar. The ability to create assertions provides you with the ability to create tests.

Selenium is a good tool to use when building a variety of different types of automated tests. For example, you can use Selenium to create regression tests. Whenever you modify your application, you can run a suite of Selenium tests to verify that your modifications have not broken code that previously functioned.

Downloading Selenium

Selenium is an open-source project (released under the Apache license) created by the developers at ThoughtWorks. You can download Selenium from the OpenQA website at http://www.OpenQA.com/Selenium.

There are three different Selenium downloads:

  • Selenium IDE — Enables you to record a browser session. The Selenium IDE is a Firefox extension so it only works with Firefox. However, tests that you create with the Selenium IDE can be run on other browsers including Internet Explorer and Opera.
  • Selenium Core — Enables you to run Selenium tests. You can use the Selenium Core library to execute a suite of tests from a browser.
  • Selenium RC — Enables you to remotely control a browser. Includes a C# wrapper for Selenium so that you can remotely control a browser from a C# application. Selenium RC is especially useful when used with unit testing tools such as nUnit.

Recording a Browser Test

The easiest way to understand how Selenium works is to download the Selenium IDE. You’ll need to install Firefox before you can use the Selenium IDE since the Selenium IDE is implemented as a Firefox extension.

After you install the Selenium IDE, you are ready to start recording tests. Launch Firefox and navigate to your favorite website (for example, Superexpert.com). Open the Firefox Tools menu. You should see a menu item labeled Selenium IDE. Select this menu item to open the Selenium IDE (see Figure 1). After you open the Selenium IDE, your browser session is recorded automatically.

Figure 1



Navigate around the website. Fill out a form or two. If you take a look at the Selenium IDE after performing an action, you’ll notice that your action has been recorded in an HTML table.

You can also record assertions at any time. For example, you might want to record an assertion that a page has a certain title or that the page contains certain text. To create an assertion, right-click in Firefox and pick a command. For example, you can select the assertTitle command to assert that a particular title is being displayed in the browser window (see Figure 2).





Figure 2


After you are done recording a test, you can click the Record button (the big red circle) to turn off recording.

Now that you have created a test, you can run the test. You can run the test directly from the Selenium IDE within Firefox by selecting among the Run, Walk, and Step radio buttons. When you run a test, the test is executed from start to finish without pause. When you walk a test, the test is executed from start to finish with a pause between each step. Finally, when you step through a test, you must click the Step button to advance to each new step in the test.

As each command in the test executes, the cell that contains the command turns either red or green. If an assertion fails, then the cell turns red. Otherwise, if the step succeeds, the cell turns green.

By default, the Selenium IDE records tests in an HTML table. As an alternative, you can record the steps of a test as a series of C# commands. Select the menu option Options, Format, C#. If you record a C# test, then you can run the test using Selenium RC.

Using Selenium Test Runner

The Selenium IDE only works with Firefox. If you want to automatically record a test, then you must do it with Firefox. However, you can run a test using any modern web browser.

If you want to run a test outside of the Selenium IDE, then you need to install Selenium Core. After downloading Selenium Core and extracting the files, copy the Core subfolder into your Inetpub\wwwroot folder. The Core folder includes the TestRunner.html page. Rename the Core folder to Selenium.

After you have added the Selenium folder to your wwwroot folder, you can request the TestRunner.html page from any Web browser. Open Internet Explorer and enter the following page request in the address bar:

http://localhost/Selenium/TestRunner.html

The Selenium TestRunner page enables you to execute any suite of Selenium tests. You select a suite of tests to run with the left-hand column.

A test suite is simply a list of Selenium tests. You create a test suite by creating an HTML page with a list of links to individual tests. For example, the following page is a test suite that contains four tests.

 
 

The Selenium Core download includes a Tests folder. You can copy this folder into your Inetpub\wwwroot folder. When you open TestRunner.html, select either TestSuite.html or ShortTestSuite.html as the Test Suite. After you select a test suite, you can run the tests by clicking the All button in the right-hand side of the page (see Figure 3).




Figure 3


TestRunner.html can only run tests against web applications on the local server. You won’t get it to work against a remote website such as Google.com. TestRunner.html is blocked from working with remote sites because of cross-domain scripting security restrictions.

If you need to execute tests against a remote website, then you have three options. First, you can run the test within Selenium IDE. Since Selenium IDE is implemented as a Firefox extension, Selenium IDE is not subject to the same security restrictions as a normal web page. The disadvantage of Selenium IDE is that it only works with Firefox and not with other browsers such as Internet Explorer.

Second, you can run the test against a remote website by using the HTML Application (HTA) version of TestRunner. The TestRunner.hta page is located in the same folder as the TestRunner.html page. HTML Applications, like Firefox extensions, are not subject to the same security restrictions as a normal web page. The disadvantage of using the HTA version of TestRunner is that it only works with Internet Explorer and not other browsers such as Firefox or Opera.

The final, and best, option for executing tests against a remote website is to use Selenium RC. Selenium RC can be used to control any modern browser. It also works fine with remote domains. Selenium RC is a separate download from the Selenium website.

Using nSelenium

I’ve include an application named nSelenium in the Projects section of this website. I wrote nSelenium as an ASP.NET front-end to the Selenium TestRunner. The application makes it easier to manage and run Selenium tests (see Figure 4).



Figure 4


To use the nSelenium application, you must create two folders in your Inetpub\wwwroot folder: a Selenium folder and a nSelenium folder. The Selenium folder should be the Core folder from the Selenium Core download. The nSelenium should contain the nSelenium application itself.

You can add new tests to nSelenium through a form interface (see Figure 5). Record the test with Selenium IDE and then past the test into nSelenium. Internally, the nSelenium application stores the tests in a Microsoft SQL Express database.


Figure 5


After you add one or more tests to nSelenium, you can run the tests one at a time or you can run all of the tests at the same time. Either click the Run link that appears next to each test or click the Run All Tests link that appears at the bottom of the page.

When you run the tests, the test results are automatically stored in the database. You can see all of the past results by clicking the Results link that appears next to each test

All about WinRunner

1 Question: Have you used WinRunner in your project?
Answer: Yes, I have been WinRunner for creating automates scripts for GUI, functional and
regression testing of the AUT.
Question: Explain WinRunner testing process?
Answer: WinRunner testing process involves six main stages:
I. Create GUI Map File so that WinRunner can recognize the GUI objects in the application being
tested
ii. 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.
iii. Debug Test: run tests in Debug mode to make sure they run smoothly
IV. Run Tests: run tests in Verify mode to test your application.
v. View Results: determines the success or failure of the tests.
vi. 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.
Question: 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.
I. Global GUI Map file: a single GUI Map file for the entire application
ii. GUI Map File per Test: WinRunner automatically creates a GUI Map file for each test
created.
Question: 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.
Question: 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 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 Win Runner’s visual programming tool, the Function
Generator.
Question: How does WinRunner evaluates 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.
Question: 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.
Question: 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
2
the expected data captured earlier. If any mismatches are found, WinRunner captures them as
actual results.
Question: How do you analyze results and report the defects?
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. 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.
Question: What is the use of Test Director Software?
Answer: Test Director is Mercury Interactive software test management tool. It helps quality
assurance personnel plan and organize the testing process. With Test Director 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.
Question: How you integrated your automated scripts from Test Director
Answer : When you work with WinRunner, you can choose to save your tests directly to your
Test Director database or while creating a test case in the Test Director we can specify
whether the script in automated or manual. And if it is automated script then Test Director will
build a skeleton for the script that can be later modified into one which could be used to test
the AUT.
Question: What are the different modes of recording?
Answer: There are two type of recording in WinRunner.
I. Context Sensitive recording records the operations you perform on your application by
identifying Graphical User Interface (GUI) objects.
ii. Analog recording records keyboard input, mouse clicks, and the precise x- and y-coordinates
traveled by the mouse pointer across the screen.
Question: What is the purpose of loading WinRunner Add-Ins?
Answer: Add-Ins is used in WinRunner to load functions specific to the particular add-in to the
memory. While creating a script only those functions in the adding 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
Question: What are the reasons that WinRunner fails to identify an object on the GUI?
Answer: WinRunner fails to identify an object in a GUI due to various reasons.
I. The object is not a standard windows object.
ii. 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.
Question: What do you mean by the logical name of the object?
Answer: An object’s logical name is determined by its class. In most cases, the logical name is
the label that appears on an object.
Question: If the object does not have a name then what will be the logical name?
Answer: If the object does not have a name then the logical name could be the attached text.
Question: What is the different between GUI map and GUI map files?
Answer: The GUI map is actually the sum of one or more GUI map files. There are two modes
3
for organizing GUI map files.
I. Global GUI Map file: a single GUI Map file for the entire application
ii. 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.
Question: How do you view the contents of the GUI map?
Answer: GUI Map editor displays the content of a GUI Map. We can invoke GUI Map Editor from
the Tools Menu in WinRunner. The GUI Map Editor displays the various GUI Map files created
and the windows and objects learned in to them with their logical name and physical
description.
Question: When you create GUI map do you record all the objects of specific objects?
Answer: If we are learning a window then WinRunner automatically learns all the objects in the
window else we will we identifying those object, which are to be learned in a window, since
we will be working with only those objects while creating scripts.
Question: 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 (, 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.
Question: How do you load GUI map?
Answer: We can load a GUI Map by using the Gilead command.
Syntax: Gilead ();
Question: What is the disadvantage of loading the GUI maps through start up scripts?
Answer : 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.
Question: 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 command to unload all the GUI Map files loaded in the memory.
Syntax: GUI_close (); or GUI_close_all;
Question: What actually happens when you load GUI map?
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.
Question: What is the purpose of the temp GUI map file?
Answer: While recording a script, WinRunner learns objects and windows by itself. This is
actually stored into the temporary GUI Map file. We can specify whether we have to load this
temporary GUI Map file should be loaded each time in the General Options.
Question: What is the extension of guy map file?
Answer: The extension for a GUI Map file is “.guy”
4
Question: How do you find an object in a GUI map?
Answer: The GUI Map Editor is been provided with a Find and Show Buttons.
I. To find a particular object in the GUI Map file in the application, select the object and click
the Show window. This blinks the selected object.
ii. To find a particular object in a GUI Map file click the Find button, which gives the option to
select the object? When the object is selected, if the object has been learned to the GUI Map
file it will be focused in the GUI Map file.
Question: What different actions are performed by find and show button?
Answer: To find a particular object in the GUI Map file in the application, select the object and
click the Show window. This blinks the selected object.
To find a particular object in a GUI Map file click the Find button, which gives the option to
select the object? When the object is selected, if the object has been learned to the GUI Map
file it will be focused in the GUI Map file.
Question: How do you identify which files are loaded in the GUI map?
Answer: The GUI Map Editor has a drop down “GUI File” displaying all the GUI Map files loaded
into the memory.
Question: How do you modify the logical name or the physical description of the objects in GUI
map?
Answer: You can modify the logical name or the physical description of an object in a GUI map
file using the GUI Map Editor
Question: When do you feel you need to modify the logical name? Answer: Changing the logical
name of an object is useful when the assigned logical name is not sufficiently descriptive or is
too long
Question: When it is appropriate to change physical description?
Answer: Changing the physical description is necessary when the property value of an object
changes
Question: How WinRunner handles varying window labels?
Answer: We can handle varying window labels using regular expressions. WinRunner uses two
“hidden” properties in order to use regular expression in an object’s physical description.
These properties are regexp_label and regexp_MSW_class.
I. The regexp_label property is used for windows only. It operates “behind the scenes” to insert
a regular expression into a window’s label description. ii. The regexp_MSW_class property
inserts a regular expression into an object’s MSW_class. It is obligatory for all types of windows
and for the object class object
Question: What is the purpose of regexp_label property and regexp_MSW_class property?
Answer: The regexp_label property is used for windows only. It operates “behind the scenes”
to insert a regular expression into a window’s label description.
The regexp_MSW_class property inserts a regular expression into an object’s MSW_class. It is
obligatory for all types of windows and for the object class object.
Question: How do you suppress a regular expression?
Answer: We can suppress the regular expression of a window by replacing the regexp_label
property with label property.
Question: 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:
I. Choose Tools > GUI Map Editor to open the GUI Map Editor.
5
ii. Choose View > GUI Files.
iii. Click Expand in the GUI Map Editor. The dialog box expands to display two GUI map files
simultaneously.
iv. View a different GUI map file on each side of the dialog box by clicking the file names in the
GUI File lists.
v. 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.
vi. Click Copy or Move.
vii. To restore the GUI Map Editor to its original size, click Collapse.
Question: How do you select multiple objects during merging the files?
Answer: 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.
Question: How do you clear a GUI map files?
Answer: We can clear a GUI Map file using the “Clear All” option in the GUI Map Editor.
Question: How do you filter the objects in the GUI map?
Answer: GUI Map Editor has a Filter option. This provides for filtering with 3 different types of
options.
I. Logical name displays only objects with the specified logical name.
ii. Physical description displays only objects matching the specified physical description. Use
any substring belonging to the physical description.
iii. Class displays only objects of the specified class, such as all the push buttons
Question: How do you configure GUI map?
Answer: 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.
Question: What is the purpose of GUI map configuration?
Answer: GUI Map configuration is used to map a custom object to a standard object
Question: How do you make the configuration and mappings permanent?
Answer: 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
Question: What is the purpose of 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
Question: What is the purpose of obligatory and optional properties of the objects? Answer: For
each class, WinRunner learns a set of default properties. Each default property is classified
6
“obligatory” or “optional”.
I. An obligatory property is always learned (if it exists).
ii. An optional property is used only if the obligatory properties do not provide unique
identification of an object. These optional properties are stored in a list. WinRunner selects
the minimum number of properties from this list that are necessary to identify the object. It
begins with the first property in the list, and continues, if necessary, to add properties to the
description until it obtains unique identification for the object.
Question: When the optional properties are learned?
Answer: An optional property is used only if the obligatory properties do not provide unique
identification of an object.
Question: What is the purpose of location indicator and index indicator in GUI map
configuration?
Answer: In cases where the obligatory and optional properties do not uniquely identify an
object, WinRunner uses a selector to differentiate between them. Two types of selectors are
available:
I. A location selector uses the spatial position of objects.
1. The location selector uses the spatial order of objects within the window, from the top left
to the bottom right corners, to differentiate among objects with the same description.
ii. An index selector uses a unique number to identify the object in a window.
1. The index selector uses numbers assigned at the time of creation of objects to identify the
object in a window. Use this selector if the location of objects with the same description may
change within a window
Question: How do you handle custom objects?
Answer: A custom object is any GUI object not belonging to one of the standard classes used by
WinRunner. WinRunner learns such objects under the generic “object” class. WinRunner
records operations on custom objects using obj_mouse_ statements.
b. 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
Question: What is the name of custom class in WinRunner and what methods it applies on the
custom objects?
Answer: WinRunner learns custom class objects under the generic “object” class. WinRunner
records operations on custom objects using obi_ statements.
Question: In a situation when obligatory and optional both the properties cannot uniquely
identify an object what method WinRunner applies?
Answer: In cases where the obligatory and optional properties do not uniquely identify an
object, WinRunner uses a selector to differentiate between them. Two types of selectors are
available:
I. A location selector uses the spatial position of objects.
ii. An index selector uses a unique number to identify the object in a window.
Question: 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.)
b. 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.
c. As Object instructs WinRunner to record all operations performed on a GUI object as though
7
its class were “object” class.
d. Ignore instructs WinRunner to disregard all operations performed on the class.
Question: How do you find out which is the start up file in WinRunner?
Answer: The test script name in the Startup Test box in the Environment tab in the General
Options dialog box is the start up file in WinRunner.
Question: What are the virtual objects and how do you learn them?
Answer: 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.
b. 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.
To define a virtual object using the Virtual Object wizard:
I. Choose Tools > Virtual Object Wizard. The Virtual Object wizard opens. Click Next.
ii. 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.
Iii. 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.
iv. 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.
v. 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.
Question: How you created you test scripts 1) by recording or 2) programming?
Answer: Programming. I have done complete programming only, absolutely no recording.
Question: What are the two modes of recording?
Answer: There are 2 modes of recording in WinRunner
I. Context Sensitive recording records the operations you perform on your application by
identifying Graphical User Interface (GUI) objects.
ii. Analog recording records keyboard input, mouse clicks, and the precise x- and y-coordinates
traveled by the mouse pointer across the screen.
Question: 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:
I. 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.
ii. Bitmap checkpoints take a “snapshot” of a window or area of your application and compare
this to an image captured in an earlier version.
iii. Text checkpoints read text in GUI objects and in bitmaps and enable you to verify their
contents.
iv. Database checkpoints check the contents and the number of rows and columns of a result
set, which is based on a query you create on your database
8
Question: What are data driven tests?
Answer: When you test your application, you may want to check how it performs the same
operations with multiple sets of data
Question: What are the synchronization points?
Answer: Synchronization points enable you to solve anticipated timing problems between the
test and your application. For example, if you create a test that opens a database application,
you can add a synchronization point that causes the test to wait until the database records are
loaded on the screen.
b. For analog testing, you can also use a synchronization point to ensure that WinRunner
repositions a window at a specific location. When you run a test, the mouse cursor travels
along exact coordinates. Repositioning the window enables the mouse pointer to make contact
with the correct elements in the window.
Question: What is parameter zing?
Answer: In order for WinRunner to use data to drive the test, you must link the data to the test
script which it drives. This is called parameter zing your test. The data is stored in a data table
Question: How do you maintain the document information of the test scripts?
Answer: Before creating a test, you can document information about the test in the General
and Description tabs of the Test Properties dialog box. You can enter the name of the test
author, the type of functionality tested, a detailed description of the test, and a reference to
the relevant functional specifications document.
Question: What do you verify with the GUI checkpoint for single property and what command it
generates, explain syntax?
Answer: You can check a single property of a GUI object. For example, you can check whether
a button is enabled or disabled or whether an item in a list is selected. To create a GUI
checkpoint for a property value, use the Check Property dialog box to add one of the following
functions to the test script:
I. button_check_info
ii. Scroll_check_info
iii. edit_check_info
iv. static_check_info
v. list_check_info
vi. win_check_info
vii. obj_check_info
Syntax: button_check_info (button, property, property_value );
edit_check_info ( edit, property, property_value );
Question: What do you verify with the GUI checkpoint for object/window and what command it
generates, explain syntax?
Answer: You can create a GUI checkpoint to check a single object in the application being
tested. You can either check the object with its default properties or you can specify which
properties to check.
b. Creating a GUI Checkpoint using the Default Checks
I. You can create a GUI checkpoint that performs a default check on the property
recommended by WinRunner. For example, if you create a GUI checkpoint that checks a push
button, the default check verifies that the push button is enabled.
ii. To create a GUI checkpoint using default checks:
1. Choose Create > GUI Checkpoint > For Object/Window, or click the GUI Checkpoint for
Object/Window button on the User toolbar. If you are recording in Analog mode, press the
CHECK GUI FOR OBJECT/WINDOW soft key in order to avoid extraneous mouse movements.
Note that you can press the CHECK GUI FOR OBJECT/WINDOW soft key in Context Sensitive
mode as well. The WinRunner window is minimized, the mouse pointer becomes a pointing
9
hand, and a help window opens on the screen.
2. Click an object.
3. WinRunner captures the current value of the property of the GUI object being checked and
stores it in the test’s expected results folder. The WinRunner window is restored and a GUI
checkpoint is inserted in the test script as an obj_check_gui statement
Syntax: win_check_gui ( window, checklist, expected_results_file, time );
c. Creating a GUI Checkpoint by Specifying which Properties to Check
d. You can specify which properties to check for an object. For example, if you create a
checkpoint that checks a push button, you can choose to verify that it is in focus, instead of
enabled. e. To create a GUI checkpoint by specifying which properties to check:
i. Choose Create > GUI Checkpoint > For Object/Window, or click the GUI Checkpoint for
Object/Window button on the User toolbar. If you are recording in Analog mode, press the
CHECK GUI FOR OBJECT/WINDOW soft key in order to avoid extraneous mouse movements.
Note that you can press the CHECK GUI FOR OBJECT/WINDOW soft key in Context Sensitive
mode as well. The WinRunner window is minimized, the mouse pointer becomes a pointing
hand, and a help window opens on the screen.
ii. Double-click the object or window. The Check GUI dialog box opens.
iii. Click an object name in the Objects pane. The Properties pane lists all the properties for
the selected object.
iv. Select the properties you want to check.
1. To edit the expected value of a property, first select it. Next, either click the Edit Expected
Value button, or double-click the value in the Expected Value column to edit it.
2. To add a check in which you specify arguments, first select the property for which you want
to specify arguments. Next, either click the Specify Arguments button, or double-click in the
Arguments column. Note that if an ellipsis (three dots) appears in the Arguments column, then
you must specify arguments for a check on this property. (You do not need to specify
arguments if a default argument are specified.) When checking standard objects, you only
specify arguments for certain properties of edit and static text objects. You also specify
arguments for checks on certain properties of nonstandard objects.
3. To change the viewing options for the properties of an object, use the Show Properties
buttons.
4. Click OK to close the Check GUI dialog box. WinRunner captures the GUI information and
stores it in the test’s expected results folder. The WinRunner window is restored and a GUI
checkpoint is inserted in the test script as an obj_check_gui or a win_check_gui statement.
Syntax: win_check_gui (window, checklist, expected_results_file, time);
obj_check_gui (object, checklist, expected results file, time)
Question: What do you verify with the GUI checkpoint for multiple objects and what command
it generates, explain syntax?
Answer: To create a GUI checkpoint for two or more objects:
i. Choose Create > GUI Checkpoint > For Multiple Objects or click the GUI Checkpoint for
Multiple Objects button on the User toolbar. If you are recording in Analog mode, press the
CHECK GUI FOR MULTIPLE OBJECTS soft key in order to avoid extraneous mouse movements.
The Create GUI Checkpoint dialog box opens.
ii. Click the Add button. The mouse pointer becomes a pointing hand and a help window opens.
iii. To add an object, click it once. If you click a window title bar or menu bar, a help window
prompts you to check all the objects in the window.
iv. The pointing hand remains active. You can continue to choose objects by repeating step 3
above for each object you want to check.
v. Click the right mouse button to stop the selection process and to restore the mouse pointer
to its original shape. The Create GUI Checkpoint dialog box reopens.
vi. The Objects pane contains the name of the window and objects included in the GUI
checkpoint. To specify which objects to check, click an object name in the Objects pane. The
Properties pane lists all the properties of the object. The default properties are selected.
1. To edit the expected value of a property, first select it. Next, either click the Edit Expected
10
Value button, or double-click the value in the Expected Value column to edit it.
2. To add a check in which you specify arguments, first select the property for which you want
to specify arguments. Next, either click the Specify Arguments button, or double-click in the
Arguments column. Note that if an ellipsis appears in the Arguments column, then you must
specify arguments for a check on this property. (You do not need to specify arguments if a
default argument are specified.) When checking standard objects, you only specify arguments
for certain properties of edit and static text objects. You also specify arguments for checks on
certain properties of nonstandard objects.
3. To change the viewing options for the properties of an object, use the Show Properties
buttons.
vii. To save the checklist and close the Create GUI Checkpoint dialog box, click OK. WinRunner
captures the current property values of the selected GUI objects and stores it in the expected
results folder. A win_check_gui statement is inserted in the test script.
Syntax: win_check_gui (window, checklist, expected_results_file, time);
obj_check_gui (object, checklist, expected results file, time);
Question: What information is contained in the checklist file and in which file expected results
are stored?
Answer: The checklist file contains information about the objects and the properties of the
object we are verifying.
b. The guy*.chi file contains the expected results which is stored in the exp folder
Question: What do you verify with the bitmap check point for object/window and what
command it generates, explain syntax?
Answer: You can check an object, a window, or an area of a screen in your application as a
bitmap. While creating a test, you indicate what you want to check. WinRunner captures the
specified bitmap, stores it in the expected results folder (exp) of the test, and inserts a
checkpoint in the test script. When you run the test, WinRunner compares the bitmap currently
displayed in the application being tested with the expected bitmap stored earlier. In the event
of a mismatch, WinRunner captures the current actual bitmap and generates a difference
bitmap. By comparing the three bitmaps (expected, actual, and difference), you can identify
the nature of the discrepancy.
b. When working in Context Sensitive mode, you can capture a bitmap of a window, object, or
of a specified area of a screen. WinRunner inserts a checkpoint in the test script in the form of
either a win_check_bitmap or obj_check_bitmap statement.
c. Note that when you record a test in Analog mode, you should press the CHECK BITMAP OF
WINDOW softkey or the CHECK BITMAP OF SCREEN AREA softkey to create a bitmap checkpoint.
This prevents WinRunner from recording extraneous mouse movements. If you are programming
a test, you can also use the Analog function check_window to check a bitmap.
d. To capture a window or object as a bitmap:
i. Choose Create > Bitmap Checkpoint > For Object/Window or click the Bitmap Checkpoint for
Object/Window button on the User toolbar. Alternatively, if you are recording in Analog mode,
press the CHECK BITMAP OF OBJECT/WINDOW softkey. The WinRunner window is minimized,
the mouse pointer becomes a pointing hand, and a help window opens.
ii. Point to the object or window and click it. WinRunner captures the bitmap and generates a
win_check_bitmap or obj_check_bitmap statement in the script. The TSL statement generated
for a window bitmap has the following syntax:
win_check_bitmap (object, bitmap, time);
iii. For an object bitmap, the syntax is:
obj_check_bitmap (object, bitmap, time);
IV. For example, when you click the title bar of the main window of the
Flight Reservation application, the resulting statement might be:
win_check_bitmap ("Flight Reservation", "Img2", 1);
v. However, if you click the Date of Flight box in the same window, the statement might be:
11
obj_check_bitmap ("Date of Flight:", "Img1", 1);
Syntax: obj_check_bitmap (object, bitmap, time [, x, y, width, height]);
Question: What do you verify with the bitmap checkpoint for screen area and what command it
generates, explain syntax?
Answer: You can define any rectangular area of the screen and capture it as a bitmap for
comparison. The area can be any size: it can be part of a single window, or it can intersect
several windows. The rectangle is identified by the coordinates of its upper left and lower right
corners, relative to the upper left corner of the window in which the area is located. If the
area intersects several windows or is part of a window with no title (for example, a popup
window), its coordinates are relative to the entire screen (the root window).
b. To capture an area of the screen as a bitmap:
i. Choose Create > Bitmap Checkpoint > For Screen Area or click the Bitmap Checkpoint for
Screen Area button. Alternatively, if you are recording in Analog mode, press the CHECK
BITMAP OF SCREEN AREA softkey. The WinRunner window is minimized, the mouse pointer
becomes a crosshairs pointer, and a help window opens.
ii. Mark the area to be captured: press the left mouse button and drag the mouse pointer until
a rectangle encloses the area; then release the mouse button.
iii. Press the right mouse button to complete the operation. WinRunner captures the area and
generates a win_check_bitmap statement in your script.
iv. The win_check_bitmap statement for an area of the screen has the following syntax:
win_check_bitmap (window, bitmap, time, x, y, width, height);
Question: What do you verify with the database checkpoint default and what command it
generates, explain syntax?
Answer: By adding runtime database record checkpoints you can compare the information in
your application during a test run with the corresponding record in your database. By adding
standard database checkpoints to your test scripts, you can check the contents of databases in
different versions of your application.
b. When you create database checkpoints, you define a query on your database, and your
database checkpoint checks the values contained in the result set. The result set is set of
values retrieved from the results of the query.
c. You can create runtime database record checkpoints in order to compare the values
displayed in your application during the test run with the corresponding values in the database.
If the comparison does not meet the success criteria you
d. specify for the checkpoint, the checkpoint fails. You can define a successful runtime
database record checkpoint as one where one or more matching records were found, exactly
one matching record was found, or where no matching records are found.
e. You can create standard database checkpoints to compare the current values of the
properties of the result set during the test run to the expected values captured during
recording or otherwise set before the test run. If the expected results and the current results
do not match, the database checkpoint fails. Standard database checkpoints are useful when
the expected results can be established before the test run.
Syntax: dabchick(, );
f. You can add a runtime database record checkpoint to your test in order to compare
information that appears in your application during a test run with the current value(s) in the
corresponding record(s) in your database. You add runtime database record checkpoints by
running the Runtime Record Checkpoint wizard. When you are finished, the wizard inserts the
appropriate db_record_check statement into your script.
Syntax:
db_record_check (ChecklistFileName, SuccessConditions, RecordNumber);
ChecklistFileName A file created by WinRunner and saved in the test's checklist folder. The file
contains information about the data to be captured during the test run and its corresponding
field in the database. The file is created based on the information entered in the Runtime
Record Verification wizard.
12
Success Conditions Contains one of the following values:
1. DVR_ONE_OR_MORE_MATCH - The checkpoint passes if one or more matching database
records are found.
2. DVR_ONE_MATCH - The checkpoint passes if exactly one matching database record is found.
3. DVR_NO_MATCH - The checkpoint passes if no matching database records are found.
Record Number An out parameter returning the number of records in the database
Question: How do you handle dynamically changing area of the window in the bitmap
checkpoints?
Answer: The difference between bitmaps option in the Run Tab of the general options defines
the minimum number of pixels that constitute a bitmap mismatch
Question: What do you verify with the database check point custom and what command it
generates, explain syntax?
Answer: When you create a custom check on a database, you create a standard database
checkpoint in which you can specify which properties to check on a result set.
b. You can create a custom check on a database in order to:
i. check the contents of part or the entire result set
ii. Edit the expected results of the contents of the result set
iii. Count the rows in the result set
IV. Count the columns in the result set
c. You can create a custom check on a database using ODBC, Microsoft Query or Data Junction
Question: What do you verify with the sync point for object/window property and what
command it generates, explain syntax?
Answer: Synchronization compensates for inconsistencies in the performance of your
application during a test run. By inserting a synchronization point in your test script, you can
instruct WinRunner to suspend the test run and wait for a cue before continuing the test.
b. You can a synchronization point that instructs WinRunner to wait for a specified object or
window to appear. For example, you can tell WinRunner to wait for a window to open before
performing an operation within that window, or you may want WinRunner to wait for an object
to appear in order to perform an operation on that object.
c. You use the obj_exists function to create an object synchronization point, and you use the
win_exists function to create a window synchronization point. These functions have the
following syntax:
Syntax:
obj_exists (object [, time]);
win_exists (window [, time]);
Question: What do you verify with the sync point for object/window bitmap and what
command it generates, explain syntax?
Answer: You can create a bitmap synchronization point that waits for the bitmap of an object
or a window to appear in the application being tested.
b. During a test run, WinRunner suspends test execution until the specified bitmap is redrawn,
and then compares the current bitmap with the expected one captured earlier. If the bitmaps
match, then WinRunner continues the test.
Syntax:
obj_wait_bitmap (object, image, time);
win_wait_bitmap (window, image, time);
Question: What do you verify with the sync point for screen area and what command it
generates, explain syntax?
Answer: For screen area verification we actually capture the screen area into a bitmap and
verify the application screen area with the bitmap file during execution
Syntax: obj_wait_bitmap (object, image, time, x, y, width, height);
13
Question: How do you edit checklist file and when do you need to edit the checklist file?
Answer: WinRunner has an edit checklist file option under the create menu. Select the “Edit
GUI Checklist” to modify GUI checklist file and “Edit Database Checklist” to edit database
checklist file. This brings up a dialog box that gives you option to select the checklist file to
modify. There is also an option to select the scope of the checklist file, whether it is Test
specific or a shared one. Select the checklist file; click OK which opens up the window to edit
the properties of the objects.
Question: How do you edit the expected value of an object?
Answer: We can modify the expected value of the object by executing the script in the Update
mode. We can also manually edit the guy*.chi file which contains the expected values which
come under the exp folder to change the values.
Question: How do you modify the expected results of a GUI checkpoint?
Answer: We can modify the expected results of a GUI checkpoint be running the script
containing the checkpoint in the update mode.
Question: How do you handle ActiveX and Visual basic objects?
Answer: WinRunner provides with add-ins for ActiveX and Visual basic objects. When loading
WinRunner, select that add-ins and this add-ins provide with a set of functions to work on
ActiveX and VB objects.
Question: How do you create ODBC query?
Answer: We can create ODBC query using the database checkpoint wizard. It provides with
option to create an SQL file that uses an ODBC DSN to connect to the database. The SQL File
will contain the connection string and the SQL statement.
Question: How do you record a data driven test?
Answer: We can create a data-driven testing using data from a flat file, data table or a
database.
i. Using Flat File: we actually store the data to be used in a required format in the file. We
access the file using the File manipulation commands, read data from the file and assign the
variables with data.
ii. Data Table: It is an excel file. We can store test data in these files and manipulate them. We
use the ‘dot_*’ functions to manipulate data in the data table.
iii. Database: we store test data in the database and access these data using ‘db_*’ functions
Question: How do you convert a database file to a text file?
Answer: You can use Data Junction to create a conversion file which converts a database to a
target text file
Question: How do you parameterize database check points?
Answer: When you create a standard database checkpoint using ODBC (Microsoft Query), you
can add parameters to an SQL statement to parameterize the checkpoint. This is useful if you
want to create a database checkpoint with a query in which the SQL statement defining your
query changes
Question: How do you create parameterize SQL commands?
Answer: A parameterized query is a query in which at least one of the fields of the WHERE
clause is parameterized, i.e., the value of the field is specified by a question mark symbol (?).
For example, the following SQL statement is based on a query on the database in the sample
Flight Reservation application:
i. SELECT Flights. Departure, Flights.Flight_Number,
Flights.Day_Of_Week FROM Flights Flights WHERE
14
(Flights.Departure=?) AND (Flights.Day_Of_Week=?)
SELECT defines the columns to include in the query.
FROM specifies the path of the database.
WHERE (optional) specifies the conditions, or filters to use in the query.
Departure is the parameter that represents the departure point of a flight.
Day_Of_Week is the parameter that represents the day of the week of a flight.
b. When creating a database checkpoint, you insert a db_check statement into your test script.
When you parameterize the SQL statement in your checkpoint, the db_check function has a
fourth, optional, argument: the parameter_array argument. A statement similar to the
following is inserted into your test script:
db_check("list1.cdl", "dbvf1", NO_LIMIT, dbvf1_params);
The parameter_array argument will contain the values to substitute for the parameters in the
parameterized checkpoint.
Question:Explain the following commands:
Answer : db_connect
i. to connect to a database
db_connect(, );
b. db_execute_query
i. to execute a query
db_execute_query ( session_name, SQL, record_number );
record_number is the out value.
c. db_get_field_value
i. returns the value of a single field in the specified row_index and column in the session_name
database session.
db_get_field_value ( session_name, row_index, column );
d. db_get_headers
i. returns the number of column headers in a query and the content of the column headers,
concatenated and delimited by tabs.
db_get_headers ( session_name, header_count, header_content );
e. db_get_row
i. returns the content of the row, concatenated and delimited by tabs.
db_get_row ( session_name, row_index, row_content );
f. db_write_records
i. writes the record set into a text file delimited by tabs.
db_write_records ( session_name, output_file [ , headers [ , record_limit ] ] );
g. db_get_last_error
i. returns the last error message of the last ODBC or Data Junction operation in the
session_name database session.
db_get_last_error ( session_name, error );
h. db_disconnect
i. disconnects from the database and ends the database session.
db_disconnect ( session_name );
i. db_dj_convert
i. runs the djs_file Data Junction export file. When you run this file, the Data Junction Engine
converts data from one spoke (source) to another (target). The optional parameters enable you
to override the settings in the Data Junction export file.
db_dj_convert ( djs_file [ , output_file [ , headers [ , record_limit ] ] ] );
Question:What check points you will use to read and check text on the GUI and explain its
syntax?
Answer : You can use text checkpoints in your test scripts to read and check text in GUI objects
and in areas of the screen. While creating a test you point to an object or a window containing
text. WinRunner reads the text and writes a TSL statement to the test script. You may then
add simple programming elements to your test scripts to verify the contents of the text.
15
b. You can use a text checkpoint to:
i. Read text from a GUI object or window in your application, using obj_get_text and
win_get_text
ii. Search for text in an object or window, using win_find_text and obj_find_text
iii. Move the mouse pointer to text in an object or window, using obj_move_locator_text and
win_move_locator_text
iv. Click on text in an object or window, using obj_click_on_text and win_click_on_text
Question:Explain Get Text checkpoint from object/window with syntax?
Answer : We use obj_get_text (, ) function to get the text from an
object
b. We use win_get_text (window, out_text [, x1, y1, x2, y2]) function to get the text from a
window.
Question:Explain Get Text checkpoint from screen area with syntax?
Answer : We use win_get_text (window, out_text [, x1, y1, x2, y2]) function to get the text
from a window.
Question:Explain Get Text checkpoint from selection (web only) with syntax?
Answer : Returns a text string from an object.
web_obj_get_text (object, table_row, table_column, out_text [, text_before, text_after,
index]);
i. object The logical name of the object.
ii. table_row If the object is a table, it specifies the location of the row within a table. The
string is preceded by the # character.
iii. table_column If the object is a table, it specifies the location of the column within a table.
The string is preceded by the # character.
iv. out_text The output variable that stores the text string.
v. text_before Defines the start of the search area for a particular text string.
vi. text_after Defines the end of the search area for a particular text string.
vii. index The occurrence number to locate. (The default parameter number is numbered 1)
Question:Explain Get Text checkpoint web text checkpoint with syntax?
Answer : We use web_obj_text_exists function for web text checkpoints.
web_obj_text_exists ( object, table_row, table_column, text_to_find [, text_before,
text_after] );
object The logical name of the object to search.
b. table_row If the object is a table, it specifies the location of the row within a table. The
string is preceded by the character #.
c. table_column If the object is a table, it specifies the location of the column within a table.
The string is preceded by the character #.
d. text_to_find The string that is searched for.
e. text_before Defines the start of the search area for a particular text string.
f. text_after Defines the end of the search area for a particular text string.
Question:Which TSL functions you will use for
Answer : Searching text on the window
i. find_text ( string, out_coord_array, search_area [, string_def ] );
string The string that is searched for. The string must be complete, contain no spaces, and it
must be preceded and followed by a space outside the quotation marks. To specify a literal,
case-sensitive string, enclose the string in quotation marks. Alternatively, you can specify the
name of a string variable. In this case, the string variable can include a regular expression.
out_coord_array The name of the array that stores the screen
coordinates of the text (see explanation below).
search_area The area to search, specified as coordinates x1,y1,x2,y2. These define any two
16
diagonal corners of a rectangle. The interpreter searches for the text in the area defined by
the rectangle. string_def Defines the type of search to perform. If no value is specified, (0 or
FALSE, the default), the search is for a single complete word only. When 1, or TRUE, is
specified, the search is not restricted to a single, complete word.
b. getting the location of the text string
i. win_find_text ( window, string, result_array [, search_area [, string_def ] ] );
window The logical name of the window to search.
string The text to locate. To specify a literal, case sensitive string, enclose the string in
quotation marks. Alternatively, you can specify the name of a string variable. The value of the
string variable can include a regular expression. The regular expression should not include an
exclamation mark (!), however, which is treated as a literal character. For more information
regarding Regular Expressions, refer to the "Using
Regular Expressions" chapter in your User's Guide.
result_array The name of the output variable that stores the location of the string as a fourelement
array.
search_area The region of the object to search, relative to the window. This area is defined as
a pair of coordinates, with x1,y1,x2,y2 specifying any two diagonally opposite corners of the
rectangular search region. If this parameter is not defined, then the entire window is
considered the search area.
string_def Defines how the text search is performed. If no string_def is specified, (0 or FALSE,
the default parameter), the interpreter searches for a complete word only. If 1, or TRUE, is
specified, the search is not restricted to a single, complete word.
c. Moving the pointer to that text string
i. win_move_locator_text (window, string [ ,search_area [ ,string_def ] ] );
window The logical name of the window.
string The text to locate. To specify a literal, case sensitive string, enclose the string in
quotation marks. Alternatively, you can specify the name of a string variable. The value of the
string variable can include a regular expression (the regular expression need not begin with an
exclamation mark).
search_area The region of the object to search, relative to the window. This area is defined as
a pair of coordinates, with x1, y1, x2, y2 specifying any two diagonally opposite corners of the
rectangular search region. If this parameter is not defined, then the entire window specified is
considered the search area.
string_def Defines how the text search is performed. If no string_def is specified, (0 or FALSE,
the default parameter), the interpreter searches for a complete word only. If 1, or TRUE, is
specified, the search is not restricted to a single, complete word.
d. Comparing the text
i. compare_text (str1, str2 [, chars1, chars2]);
str1, str2 The two strings to be compared.
chars1 One or more characters in the first string.
chars2 One or more characters in the second string. These characters are substituted for those
in chars1.
Question:What are the steps of creating a data driven test?
Answer : The steps involved in data driven testing are:
i. Creating a test
ii. Converting to a data-driven test and preparing a database
iii. Running the test
iv. Analyzing the test results.
Question:Record a data driven test script using data driver wizard?
Answer : You can use the DataDriver Wizard to convert your entire script or a part of your
script into a data-driven test. For example, your test script may include recorded operations,
checkpoints, and other statements that do not need to be repeated for multiple sets of dat
17
Question:What are the three modes of running the scripts?
Answer : WinRunner provides three modes in which to run tests—Verify, Debug, and Update.
You use each mode during a different phase of the testing process.
i. Verify
1. Use the Verify mode to check your application.
ii. Debug
1. Use the Debug mode to help you identify bugs in a test script.
iii. Update
1. Use the Update mode to update the expected results of a test or to create a new expected
results folder.
Question:Explain the following TSL functions:
Answer : Ddt_open
i. Creates or opens a datatable file so that WinRunner can access it.
Syntax: ddt_open ( data_table_name, mode );
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters. This row is labeled row 0. mode The
mode for opening the data table: DDT_MODE_READ (read-only) or DDT_MODE_READWRITE (read
or write).
b. Ddt_save
i. Saves the information into a data file.
Syntax: dt_save (data_table_name);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table.
c. Ddt_close
i. Closes a data table file
Syntax: ddt_close ( data_table_name );
data_table_name The name of the data table. The data table is a Microsoft Excel file or a
tabbed text file. The first row in the file contains the names of the parameters.
d. Ddt_export
i. Exports the information of one data table file into a different data table file.
Syntax: ddt_export (data_table_namename1, data_table_namename2);
data_table_namename1 The source data table filename.
data_table_namename2 The destination data table filename.
e. Ddt_show
i. Shows or hides the table editor of a specified data table.
Syntax: ddt_show (data_table_name [, show_flag]);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table.
show_flag The value indicating whether the editor should be shown (default=1) or hidden (0).
f. Ddt_get_row_count
i. Retrieves the no. of rows in a data tables
Syntax: ddt_get_row_count (data_table_name, out_rows_count);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters.
out_rows_count The output variable that stores the total number of rows in the data table.
g. ddt_next_row
i. Changes the active row in a database to the next row
Syntax: ddt_next_row (data_table_name);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters.
h. ddt_set_row
18
i. Sets the active row in a data table.
Syntax: ddt_set_row (data_table_name, row);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters. This row is labeled row 0. row The
new active row in the data table.
i. ddt_set_val
i. Sets a value in the current row of the data table
Syntax: ddt_set_val (data_table_name, parameter, value);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters. This row is labeled row 0.
parameter The name of the column into which the value will be inserted.
value The value to be written into the table.
j. ddt_set_val_by_row
i. Sets a value in a specified row of the data table.
Syntax: ddt_set_val_by_row (data_table_name, row, parameter, value);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters. This row is labeled row 0.
row The row number in the table. It can be any existing row or the current row number plus 1,
which will add a new row to the data table.
parameter The name of the column into which the value will be inserted.
value The value to be written into the table.
k. ddt_get_current_row
i. Retrieves the active row of a data table. Syntax: ddt_get_current_row ( data_table_name,
out_row );
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters. This row is labeled row 0.
out_row The output variable that stores the active row in the data table.
l. ddt_is_parameter
i. Returns whether a parameter in a datatable is valid
Syntax: ddt_is_parameter (data_table_name, parameter);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters.
parameter The parameter name to check in the data table.
m. ddt_get_parameters
i. Returns a list of all parameters in a data table.
Syntax: ddt_get_parameters ( table, params_list, params_num );
table The pathname of the data table.
params_list This out parameter returns the list of all parameters in the data table, separated
by tabs.
params_num This out parameter returns the number of parameters in params_list.
n. ddt_val
i. Returns the value of a parameter in the active roe in a data table.
Syntax: ddt_val (data_table_name, parameter);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters. parameter The name of the
parameter in the data table.
o. ddt_val_by_row
i. Returns the value of a parameter in the specified row in a data table.
Syntax: ddt_val_by_row ( data_table_name, row_number, parameter );
19
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters. This row is labeled row 0.
row_number The number of the row in the data table.
parameter The name of the parameter in the data table.
p. ddt_report_row
i. Reports the active row in a data table to the test results
Syntax: ddt_report_row (data_table_name);
data_table_name The name of the data table. The name may be the table variable name, the
Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The
first row in the file contains the names of the parameters. This row is labeled row 0.
q. ddt_update_from_db
i. imports data from a database into a data table. It is inserted into your test script when you
select the Import data from a database option in the DataDriver Wizard. When you run your
test, this function updates the data table with data from the database.
Question:How do you handle unexpected events and errors?
Answer : WinRunner uses exception handling to detect an unexpected event when it occurs and
act to recover the test run. WinRunner enables you to handle the following types of
exceptions: Pop-up exceptions: Instruct WinRunner to detect and handle the appearance of a
specific window.
TSL exceptions: Instruct WinRunner to detect and handle TSL functions that return a specific
error code.
Object exceptions: Instruct WinRunner to detect and handle a change in a property for a
specific GUI object.
Web exceptions: When the WebTest add-in is loaded, you can instruct WinRunner to handle
unexpected events and errors that occur in your Web site during a test run.
Question:How do you handle pop-up exceptions?
Answer : A pop-up exception Handler handles the pop-up messages that come up during the
execution of the script in the AUT. TO handle this type of exception we make WinRunner learn
the window and also specify a handler to the exception. It could be
i. Default actions: WinRunner clicks the OK or Cancel button in the pop-up window, or presses
Enter on the keyboard. To select a default handler, click the appropriate button in the dialog
box.
Define Exception Handling
Define Exception
Define Handler
Function
Activate Exception Handling
ii. User-defined handler: If you prefer, specify the name of your own handler. Click User
Defined Function Name and type in a name in the User Defined Function Name box.
Question:How do you handle TSL exceptions?
Answer : A TSL exception enables you to detect and respond to a specific error code returned
during test execution.
b. Suppose you are running a batch test on an unstable version of your application. If your
application crashes, you want WinRunner to recover test execution. A TSL exception can
instruct WinRunner to recover test execution by exiting the current test, restarting the
application, and continuing with the next test in the batch.
c. The handler function is responsible for recovering test execution. When WinRunner detects a
specific error code, it calls the handler function. You implement this function to respond to the
unexpected error in the way that meets your specific testing needs.
d. Once you have defined the exception, WinRunner activates handling and adds the exception
20
to the list of default TSL exceptions in the Exceptions dialog box. Default TSL exceptions are
defined by the XR_EXCP_TSL configuration parameter in the wrun.ini configuration file.
Question:How do you handle object exceptions?
Answer : During testing, unexpected changes can occur to GUI objects in the application you
are testing. These changes are often subtle but they can disrupt the test run and distort
results.
b. You could use exception handling to detect a change in property of the GUI object during
the test run, and to recover test execution by calling a handler function and continue with the
test execution
Question:How do you comment your script?
Answer : We comment a script or line of script by inserting a ‘#’ at the beginning of the line.
Question:What is a compile module?
Answer : A compiled module is a script containing a library of user-defined functions that you
want to call frequently from other tests. When you load a compiled module, its functions are
automatically compiled and remain in memory. You can call them directly from within any
test.
b. Compiled modules can improve the organization and performance of your tests. Since you
debug compiled modules before using them, your tests will require less error-checking. In
addition, calling a function that is already compiled is significantly faster than interpreting a
function in a test script.
Question:What is the difference between script and compile module?
Answer : Test script contains the executable file in WinRunner while Compiled Module is used
to store reusable functions. Complied modules are not executable.
b. WinRunner performs a pre-compilation automatically when it saves a module assigned a
property value of “Compiled Module”.
c. By default, modules containing TSL code have a property value of "main". Main modules are
called for execution from within other modules. Main modules are dynamically compiled into
machine code only when WinRunner recognizes a "call" statement. Example of a call for the
"app_init" script:
call cso_init();
call( "C:\MyAppFolder\" & "app_init" );
d. Compiled modules are loaded into memory to be referenced from TSL code in any module.
Example of a load statement:
reload (“C:\MyAppFolder\" & "flt_lib");
or
load ("C:\MyAppFolder\" & "flt_lib");
Question:Write and explain various loop command?
Answer : A for loop instructs WinRunner to execute one or more statements a specified number
of times. It has the following syntax:
for ( [ expression1 ]; [ expression2 ]; [ expression3 ] )
statement
i. First, expression1 is executed. Next, expression2 is evaluated. If expression2 is true,
statement is executed and expression3 is executed. The cycle is repeated as long as
expression2 remains true. If expression2 is false, the for statement terminates and execution
passes to the first statement immediately following.
ii. For example, the for loop below selects the file UI_TEST from the File Name list
iii. in the Open window. It selects this file five times and then stops. set_window ("Open")
for (i=0; i<5; i++)
list_select_item("File_Name:_1","UI_TEST"); #Item Number2
b. A while loop executes a block of statements for as long as a specified condition is true.
21
It has the following syntax:
while ( expression )
statement ;
i. While expression is true, the statement is executed. The loop ends when the expression is
false. For example, the while statement below performs the same function as the for loop
above.
set_window ("Open");
i=0;
while (i<5){
i++;
list_select_item ("File Name:_1", "UI_TEST"); # Item Number 2
}
c. A do/while loop executes a block of statements for as long as a specified condition is true.
Unlike the for loop and while loop, a do/while loop tests the conditions at the end of the loop,
not at the beginning. A do/while loop has the following syntax:
do
statement
while (expression);
i. The statement is executed and then the expression is evaluated. If the expression is true,
then the cycle is repeated. If the expression is false, the cycle is not repeated.
ii. For example, the do/while statement below opens and closes the Order dialog box of Flight
Reservation five times.
set_window ("Flight Reservation");
i=0;
do
{
menu_select_item ("File;Open Order...");
set_window ("Open Order");
button_press ("Cancel");
i++;
}
while (i<5);
Question:Write and explain decision making command?
Answer : You can incorporate decision-making into your test scripts using if/else or switch
statements.
i. An if/else statement executes a statement if a condition is true; otherwise, it executes
another statement. It has the following syntax:
if ( expression )
statement1;
[ else statement2; ]
expression is evaluated. If expression is true, statement1 is executed. If expression1 is false,
statement2 is executed.
b. A switch statement enables WinRunner to make a decision based on an expression that can
have more than two values. It has the following syntax:
switch (expression )
{
case case_1: statements
case case_2: statements
case case_n: statements
default: statement(s)
}
The switch statement consecutively evaluates each case expression until one is found that
equals the initial expression. If no case is equal to the expression, then the default statements
are executed. The default statements are optional.
22
Question:Write and explain switch command? Answer : A switch statement enables WinRunner
to make a decision based on an expression that can have more than two values.
It has the following syntax:
switch (expression )
{
case case_1: statements
case case_2: statements
case case_n: statements
default: statement(s)
}
b. The switch statement consecutively evaluates each case expression until one is found that
equals the initial expression. If no case is equal to the expression, then the default statements
are executed. The default statements are optional.
Question:How do you write messages to the report?
Answer : To write message to a report we use the report_msg statement
Syntax: report_msg (message);
Question:What is a command to invoke application?
Answer : Invoke_application is the function used to invoke an application.
Syntax: invoke_application(file, command_option, working_dir, SHOW);
Question:What is the purpose of tl_step command?
Answer : Used to determine whether sections of a test pass or fail.
Syntax: tl_step(step_name, status, description);
Question:Which TSL function you will use to compare two files?
Answer : We can compare 2 files in WinRunner using the file_compare function.
Syntax: file_compare (file1, file2 [, save file]);
Question:What is the use of function generator?
Answer : The Function Generator provides a quick, error-free way to program scripts.
You can:
i. Add Context Sensitive functions that perform operations on a GUI object or get information
from the application being tested.
ii. Add Standard and Analog functions that perform non-Context Sensitive tasks such as
synchronizing test execution or sending userdefined messages to a report.
iii. Add Customization functions that enable you to modify WinRunner to suit your testing
environment.
Question:What is the use of putting call and call_close statements in the test script?
Answer : You can use two types of call statements to invoke one test from another:
i. A call statement invokes a test from within another test.
ii. A call_close statement invokes a test from within a script and closes the test when the test
is completed.
iii. The call statement has the following syntax:
1. call test_name ( [ parameter1, parameter2, ...parametern ] );
iv. The call_close statement has the following syntax:
1. call_close test_name ( [ parameter1, parameter2, ... parametern ] );
v. The test_name is the name of the test to invoke. The parameters are the parameters
defined for the called test.
vi. The parameters are optional. However, when one test calls another, the call statement
should designate a value for each parameter defined for the called test. If no parameters are
defined for the called test, the call statement must contain an empty set of parentheses.
23
Question:What is the use of treturn and texit statements in the test script?
Answer : The treturn and texit statements are used to stop execution of called tests.
i. The treturn statement stops the current test and returns control to the calling test.
ii. The texit statement stops test execution entirely, unless tests are being called from a batch
test. In this case, control is returned to the main batch test.
b. Both functions provide a return value for the called test. If treturn or texit is not used, or if
no value is specified, then the return value of the call statement is 0. treturn
c. The treturn statement terminates execution of the called test and returns control to the
calling test.
The syntax is:
treturn [( expression )];
d. The optional expression is the value returned to the call statement used to invoke the test.
texit
e. When tests are run interactively, the texit statement discontinues test execution. However,
when tests are called from a batch test, texit ends execution of the current test only; control
is then returned to the calling batch test.
The syntax is:
texit [( expression )]
Question:Where do you set up the search path for a called test.
Answer : The search path determines the directories that WinRunner will search for a called
test.
b. To set the search path, choose Settings > General Options. The General Options dialog box
opens. Click the Folders tab and choose a search path in the Search Path for Called Tests box.
WinRunner searches the directories in the order in which they are listed in the box. Note that
the search paths you define remain active in future testing sessions.
Question:How you create user-defined functions and explain the syntax?
Answer : A user-defined function has the following structure:
[class] function name ([mode] parameter...)
{
declarations;
statements;
}
b. The class of a function can be either static or public. A static function is available only to
the test or module within which the function was defined.
c.
d. Parameters need not be explicitly declared. They can be of mode in, out, or inout. For all
non-array parameters, the default mode is in. For array parameters, the default is inout. The
significance of each of these parameter types is as follows:
in: A parameter that is assigned a value from outside the function.
out: A parameter that is assigned a value from inside the function.
inout: A parameter that can be assigned a value from outside or inside the function
Question:What does static and public class of a function means?
Answer : The class of a function can be either static or public.
b. A static function is available only to the test or module within which the function was
defined.
c. Once you execute a public function, it is available to all tests, for as long as the test
containing the function remains open. This is convenient when you want the function to be
accessible from called tests. However, if you want to create a function that will be available to
many tests, you should place it in a compiled module. The functions in a compiled module are
24
available for the duration of the testing session.
d. If no class is explicitly declared, the function is assigned the default class, public.
Question:What does in, out and input parameters means?
Answer : in: A parameter that is assigned a value from outside the function.
b. out: A parameter that is assigned a value from inside the function.
c. inout: A parameter that can be assigned a value from outside or inside the function.
Question:What is the purpose of return statement?
Answer : This statement passes control back to the calling function or test. It also returns the
value of the evaluated expression to the calling function or test. If no expression is assigned to
the return statement, an empty string is returned.
Syntax: return [( expression )];
Question:What does auto, static, public and extern variables means?
Answer : auto: An auto variable can be declared only within a function and is local to that
function. It exists only for as long as the function is running. A new copy of the variable is
created each time the function is called.
b. static: A static variable is local to the function, test, or compiled module in which it is
declared. The variable retains its value until the test is terminated by an Abort command. This
variable is initialized each time the definition of the function is executed.
c. public: A public variable can be declared only within a test or module, and is available for
all functions, tests, and compiled modules.
d. extern: An extern declaration indicates a reference to a public variable declared outside of
the current test or module.
Question:How do you declare constants? Answer : The const specifier indicates that the
declared value cannot be modified. The class of a constant may be either public or static. If no
class is explicitly declared, the constant is assigned the default class public. Once a constant is
defined, it remains in existence until you exit WinRunner.
b. The syntax of this declaration is:
[class] const name [= expression];
Question:How do you declare arrays?
Answer : The following syntax is used to define the class and the initial expression of an array.
Array size need not be defined in TSL.
b. class array_name [ ] [=init_expression]
c. The array class may be any of the classes used for variable declarations (auto, static, public,
extern).
Question:How do you load and unload a compile module?
Answer : In order to access the functions in a compiled module you need to load the module.
You can load it from within any test script using the load command; all tests will then be able
to access the function until you quit WinRunner or unload the compiled module.
b. You can load a module either as a system module or as a user module. A system module is
generally a closed module that is “invisible” to the tester. It is not displayed when it is loaded,
cannot be stepped into, and is not stopped by a pause command. A system module is not
unloaded when you execute an unload statement with no parameters (global unload).
load (module_name [,1|0] [,1|0] );
The module_name is the name of an existing compiled module. Two additional, optional
parameters indicate the type of module. The first parameter indicates whether the function
module is a system module or a user module: 1 indicates a system module; 0 indicates a user
module. (Default = 0)
The second optional parameter indicates whether a user module will remain open in the
WinRunner window or will close automatically after it is loaded: 1
25
indicates that the module will close automatically; 0 indicates that the module will remain
open. (Default = 0)
c. The unload function removes a loaded module or selected functions from memory.
d. It has the following syntax:
unload ( [ module_name | test_name [ , "function_name" ] ] );
Question:Why you use reload function?
Answer : If you make changes in a module, you should reload it. The reload function removes a
loaded module from memory and reloads it (combining the functions of unload and load).
The syntax of the reload function is:
reload ( module_name [ ,1|0 ] [ ,1|0 ] );
The module_name is the name of an existing compiled module.
Two additional optional parameters indicate the type of module. The first parameter indicates
whether the module is a system module or a user module: 1 indicates a system module; 0
indicates a user module. (Default = 0)
The second optional parameter indicates whether a user module will remain open in the
WinRunner window or will close automatically after it is loaded. 1 indicates that the module
will close automatically. 0 indicates that the module will remain open. (Default = 0)
Question:Write and explain compile module?
Posted by venu on 2005-03-30 08:37:57
compile module is a library of user defined functions i.e. user can define his functions and
store them in compile module and use these functions inscripting.
Posted by NMr on 2005-04-02 00:42:45
compile module conatain user defined function but it not excutable.once the compiled module
call all function are loded to memory you can user with out any intraption
Posted by JKodadhala on 2005-04-05 14:55:28
A Compiled Module is a script containing a library of user-defined funtions that yuo want to call
from other scripts or test runs.
When you load a compiled module , its functionas are automatically compiled and remain in
memory.
test run can call those functions directly from with in test.
Important note is that this script should be saved as compiled module.
Other benefits by using Compiled module.
1)You can declare public variables and these variables can be used any where in test where this
compiled module
has been called.
2)Create variables which has values of
A)lengthy file name paths (network drive file path or local drive file path)
B)Database connection strings
C)Browser URLs
use these variables in test scripts where ever you want.
the main advantage using this method is when file somehow replaced different location in
system , you donot need to
change the file path in each script.
3)you can declare winrunner default message or custom error messages.
example
public const E_NOT_OPEN = -20011;
26
public const E_INVALID_INPUT = -20005;
4)Create public Arrays so that these arrays can be called any script.
Posted by Laxmikant on 2005-07-13 06:46:34
Its a nice Article
I got more info abt compiled module
Question:How do you call a function from external libraries (dll).
Posted by Phani Kumar on 2005-07-25 02:26:29
if u want call dll file through Winrunner, u should use api controls. it is a special functions
Question:What is the purpose of load_dll?
Posted by ravi on 2005-04-28 06:56:07
Load_dll will help us to load dll into memory and call functions inside the dll
Question:How do you load and unload external libraries?
Posted by Mamatha on 2005-05-09 03:07:19
load_dll(path name);
unload_dll(path name);
Question:How do you declare external functions in TSL?
Posted by shreethik on 2005-06-14 14:41:18
External functions are declared using the "extern" declaration that references an external
function.
The syntax is:
extern (parameter1,parameter2....).
type--> refers to the return type of the function.
Question:How do you call windows APIs, explain with an example?
Posted by shreethik on 2005-06-14 14:43:49
Windows API functions can be called using the function
load("win32api");
Posted by NAGARAJU.K.H on 2005-08-26 07:58:22
LOAD THE DLL WHICH CONTAINS THE FUNCTIONS WHICH U WANT TO USE (EX : USER32.DLL)
DECLARE THE FUNCTION IN UR SCRIPT WITH "EXTERN" KEYWORD.
USE IT WHERE EVER IT IS REQUIRED.
Question:Write TSL functions for the following interactive modes:
i. Creating a dialog box with any message you specify, and an edit field.
ii. Create dialog box with list of items and message.
iii. Create dialog box with edit field, check box, and execute button, and a cancel button.
iv. Creating a browse dialog box from which user selects a file.
v. Create a dialog box with two edit fields, one for login and another for password input.
27
Posted by R.J on 2005-04-28 02:28:50
Answers:
1. Dialog box with any message, and edit field
create_input_dialog ( message );
message - Any expression.
This expression will appear in the dialog box as a single line.
Return Values - This function returns a string. If no string is found or if the Cancel button is
pressed within the dialog box, then the function returns NULL.
2. Dialog box with list of items and message
create_list_dialog ( title, message, item_list );
title - The expression that appears in the banner of the dialog
box.
message - The message for the user.
item_list - The items that make up the list, separated by commas.
Return Values - This function returns a string. If no string is found or if the Cancel button is
pressed within the dialog box, then this function returns NULL.
3. Dialog box with edit filed, check box, excute button,cancel button - basically a custom
dialog box
create_custom_dialog ( function_name, title, button_name, edit_name1 [ , edit_name2,
check_name1 [ , check_name2 ] ] );
function_name - The name of the function that is executed when you press the "execute"
button.
title - An expression that appears in the window banner of the
dialog box.
button_name - The label that will appear on the "execute" button. You press this button to
execute the contained function.
edit_name The labels of the edit box(es) of the dialog box. Multiple edit box labels are
separated by commas, and all the labels together are considered a single string. If the dialog
box
has no edit boxes, this parameter must be an empty string
(empty quotation marks).
check_name - Contains the labels of the check boxes in the dialog box. Multiple check box
labels are separated by commas, and all the labels together are considered a single string. If
the
dialog box has no check boxes, this parameter must be an
empty string (empty quotation marks).
Return Values - This function returns a string representing the return value of the function
executed when the Execute button is clicked and an empty string is returned when the Cancel
button is clicked.
4. Browse dialog box from which user selects a file.
create_browse_file_dialog ( filter1 [ ; filter2; filter3; ...filtern ] );
filter - Sets one or more filters for the files to display in the browse dialog box. You must use
wildcards to display all files (*.*) or only selected files (*.exe or *.txt, etc.), even if an exact
match exists. Multiple files are separated by semicolons and all the filters together are
considered a single string.
Return Values - This function returns a string representing the label of the selected file.
5. Dialog box with 2 edit fields, one for login, another for password
Use Custom dialog box as in 3.
Question:What is the purpose of step, step into, step out, step to cursor commands for
debugging your script?
28
Posted by shreethik on 2005-06-14 14:48:25
The purpose of the commands are :
STEP--> Runs a single lline of the TSL script.
STEP INTO--> Calls and displays another test/user-defined function.
STEP OUT-->Used in conjunction to STEP INTO and completes the execution of the called
test/user defined function.
STEP TO CURSOR-->Runs a selected section of the script
Question:How do you update your expected results?
Run the script in update mode.
Question:How do you run your script with multiple sets of expected results?
Posted by Phani Kumar on 2005-07-25 02:33:08
this is only one answer
i.e. through DDT
Question:How do you view and evaluate test results for various check points?
Once the script is executed which has multiple checkpoints, the test results window shows a
detailed information of whether the chekpoint passed or failed.As we know, checkpoints
compare the expected results with the actual results, we can evaluate the result.
Question:How do you view the results of file comparison?
Answer :
Answered by Mamatha on 2005-05-09 02:48:43: file_compare(file_1,file_2[,save_file]);
Question:What is the purpose of Wdiff utility?
Used for comparing text files
Posted by Raghu on 2005-04-11 08:38:43
WDiff v1.49 utility that displays differences between text files in directories (folders) or zip
archives.
Question:What are batch tests and how do you create and run batch tests ?
A batch test is a script that contains call statements to other tests.A batch test is created by
selecting the "Run in batch mode" from the run tab in the Tools-->General Options.
A batch test runs as a regular test.
The only difference being that all messages like pause,wait...etc are suppressed ina batch test
so that the tset runs without interruption.
Winrunner opens and excutes easc called test.
Question:How do you store and view batch test results?
To store Batch test result
When you run a regular, interactive test, results are stored in a subfolder under the test. The
same is true when a test is called by a batch test. WinRunner saves the results for each called
test separately in a subfolder under the test. A
subfolder is also created for the batch test that contains the overall results of the batch test
run.
29
To view Batch test result
When a batch test run is completed, you can view information about the events that occurred
during the run in the Test Results window. If one of the called tests fails, then the batch test is
marked as failed.
The test log section of the Test Results window lists all the events that occurredduring the
batch test run.
Each time a test is called, a call_test entry is listed in
the log. To view the results of the called test, double-click its call_test entry.
Question:How do you execute your tests from windows run command?
Question:Explain different command line options?
Question:What TSL function you will use to pause your script?
Posted by Raghu on 2005-04-11 08:35:08
Sleepif you know the exact time for hang
You can set the hang time globaly also
Posted by Rani on 2005-04-19 05:07:44
wait(time) ----- wait until the given time
Question:What is the purpose of setting a break point?
we can use breakpoints to help debug our test scripts. A breakpoint stops a test run at a
specified line in the test script, or in a specified function. You may want to stop a test run
using a breakpoint in order to:
1.monitor the entries in the Watch List
2.begin stepping through a test script using the Step commands
Question:What is a watch list?
Watch list enables to monitor the values of variables, expressions and arrays while we debug a
test script.
Question:During debugging how do you monitor the value of the variables?
Posted by shreethik on 2005-06-14 15:04:53
During debugging, the values of variables are monitored using a watch list
Question:why choose winrunner , being it is costly tool ?
Posted by lovely on 2005-07-29 07:12:37
see again it depends on the choice of the end user. If the user feels that the AUT is extensive
and could really benefit from using WR and if there are plenty of Versions/Data Driven
Test/Regression cycles etc and it could be done with minimal user interaction through WR
,they can go for it..
Question:What is the command in winrunner to get dos prompt?
The dos_system function executes a DOS system command from within a WinRunner test script.
dos_system ( expression );
Example
dos_system("echo dos_system demo > c:demo.tmp"); - writes a line to the file .
30
Question:How do you test a web application without opening the webbrowser?
Question:What are the stages in winrunner?
Question:What is the use of Framework?
Question:What are the contents of Framework?
Question:Why should we create Framework?
Question:Which Type of GUI file is Preferable?
Posted by zakir on 2005-09-02 03:15:15
if you are new to winrunner then GUI map file per test is preferable and for advanced users
Global GUI map file is preferred
Question:How an Argument is passed in WinRunner
Question:How to make comments in GUI Map File?
Question:Difference Between set_window and win_activate Answer : set_window: specifies the
window to receive subsequent input and (optionally)
specifies the amount of time to wait for the specified window.
win_activate: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
(equivalent to clicking on the window banner). All subsequent input is submitted
to this window.
This is the explanation provided by Mercury.
But the main difference is that set_window is a native winrunner function and
win_activate is WIN32 API .
Posted by Raja on 2005-08-19 11:01:35
Set _window is used to set a particular window, where if we want to work with the window
that window has to be changed from reset state to set state.
Win_active is used like a window is already opened to activate the windowwhich is on the
status bar for example.
Posted by Sam on 2005-08-19 11:03:00
read both the functions in user manual & u'll get the diff.....
Lets suppose 2 windows are already open.
win_active only makes the current window active (Note the word ALREADY).
However, if i open anopther window or perform some action in my current window due to
which the window name changes, i'll use set_window to make
sure that the next operations is performed only after the window if fully opened. So we have
got time parameter for synchronization in set_window whereas win_active does not have a
time parameter.Also set_window("XYZ", 60) issues a command to WR & tells GUI map file that
the next object that is coming up is in XYZ window.
So if you don't set your window first, WR won't b able to recognize the object.
Question:How cache memory is released in winrunner?
Question:How you will write Test case in Winrunner?
31
Question:How to connect to Oracle DB using winrunner
Question:What do you mean by "Function Decomposition" in winrunner?
Question:What do you mean by "Regular Expressions" ? In Real time, where we will use this?
Give me some real time examples in which place we can go for RegularExpressions?
Question:A screen with 10 records is displayed, On Clicking of each and every column, it should
sort all the records in order? How we can believe that after clicking a column that its sorting in
a correct way? How we can automate this?
QA testing:
Question:QA Testing : What are the key elements for creating test plan?
The key elements for a test plan are:
1.Entrance Criteria:The requirement documents based on which the paln is developed.The
BRD,FRD
2.Test environment
3.Test data
Posted by sumita on 2005-06-28 05:02:25
what do you mean by service pack?
when do you go for automation?
what is compatibility testing
what is quite/dead phase in testing?
Posted by Manish on 2005-07-13 01:22:44
QA & QC
What is the difference between Quality Assurance and Quality Control???
Posted by rohit kaushik on 2005-07-14 07:02:17
quality assurance is a process oriented activity while quality control is a product oriented
activity.
Posted by SatishTKakade@yahoo.com on 2005-07-28 04:48:54
Answers of the Questions Posted by Sumita on 2005-06-28 05:02:25
Question 1: What do you mean by service pack?
Answer: Service packs are the means by which product updates are distributed. Service packs
may
contain updates for system reliability, program compatibility, security, and more.
Question 2: When do you go for automation?
Answer: When we need to perform Regression Tesing, Data Driven Test at that time we go for
automation.
Question 3: What is compatibility testing?
Answer: Compatibility Testing ensures that a product works in any specified operating
environment
- any combination of platform, database, application server, browser and other software.
Compatibility Testing is all about simulating the user environment during the testing phase.
32
Question 4: What is quite/dead phase in testing?
Answer: No Answer
Posted by Velayutham Ramesh on 2005-08-19 02:54:06
Key elements are
1.Test Strategy
2.Test Objectives & Scopes
3.Test Requirements
4.Expected Result
5.Risk assesment & Priority
6.Test Cases
7.Staffing & Responsibilities
8.Test Deliverables
9. Missalaneous Test Plan Components
10.Test Environment (Software& Hardware)
Question:How do you plan test automation?
Posted by Preetha on 2005-05-27 16:43:17
1. Prepare the automation Test plan
2. Identify the scenario
3. Record the scenario
4. Enhance the scripts by inserting check points and Conditional Loops
5. Incorporated Error Hnadler
6. Debug the script
7. Fix the issue
8. Rerun the script and report the result.
Posted by anita v on 2005-07-13 00:23:38
This is answer to Test strategy. The testing strategy should define the objectives of all test
stages and the techniques that apply. The testing strategy also forms the basis for the creation
of a standardised documentation set, and facilitates communication of the test process and its
implications outside of the test discipline. Any test support tools introduced should be aligned
with, and in support of, the test strategy. Whereas the test plan is the requirements definition
and design specifications facilitate in the identification of major test items and these may
necessitate the test strategy to be updated. A detailed test plan and schedule is prepared with
key test responsibilities being indicated
Posted by suresh s on 2005-08-03 02:45:58
Test Plan is a document it is created by the test lead or the test manager which contains whole
testing activity that we are going to perform on the application.
Companies will fallow their own way while dsigning of these documents.
Generally test plan is created for every phases in the testing phases that means for Unit testing
Unit testplan , for intigration Intigaration test plan, ... system test plan....
Question:Can test automation improve test effectiveness? Answer :
Answer posted by RS on 2005-05-19 17:42:09: Yes, Automating a test makes the test
process:
1.Fast
2.Reliable
3. Repeatable
4.Programmable
5.Reusable
6.Comprehensive
33
Question:What is data - driven automation?
Posted by Phanikumar on 2005-05-10 03:12:42
Testing the functionality with more test cases becomes laborious as the functionality grows.
For multiple sets of data (test cases), you can execute the test once in which you can figure
out for which data it has failed and for which data, the test has passed. This feature is
available in the WinRunner with the data driven test where the data can be taken from an
excel sheet or notepad.
Posted by Ipan on 2005-05-10 04:59:17
If u want 2 check ur application,when same operations with Multiple Sets of data use data
driven table
Posted by sharada on 2005-07-12 17:15:19
An application has to be tested with multiple sets of data.The automation test script written
for one input can be used for number of inputs using DDTin WINRUNNERThe test script has to
be converted into DDT by creating a corresponding data table with the sets od data you want
to test.
In DDt we have functions to open and to close the table.They are
DDT_OPEN(); And DDT_CLOSE();
A table can be openned in READ or READ WRITE mode..
We want to test multiple sets of data so we use TSL function
for loop.
We can retrive the data from a particular row by using the ROW_COUNT();
function.
We have to "parameterize" the data
Question:What are the main attributes of test automation?
1. If you have to run a set of tests repeatedly, automation is a huge win for you 2. It gives
you the ability to run automation against code that frequently changes to catch regressions in a
timely manner 3.It gives you the ability to run automation in mainstream scenarios to catch
regressions in a timely manner (see What is a Nighlty) 4. Aids in testing a large test matrix
(different languages on different OS platforms). 5. Automated tests can be run at the same
time on different machines, whereas the manual tests would have to be run sequentially.
Posted by bsl on 2005-04-01 08:23:36
Repeatability, Programmability, Reliability are the imp attributes
Posted by srinu on 2005-06-01 02:56:50
for test automation, impact and criticality are the main attributes
Question:Does automation replace manual testing?
Posted by Shashidhar.Mahavadi on 2005-06-13 06:04:36
No, manual testing cannot be replaced with the Automation. Automation can be done at an
extent of maximum to 90-99% not 100 percent, since the tool itself will have certain limitations
about the memory management, resources, platform on which the product need to be tested
34
Posted by sharada on 2005-07-12 17:20:16
NO,Automation cannot replace Manual,because we write the script to test the functionality
positively,(We can write the scripts for negative testing also but it is hectic task).When we talk
about real environment we do negative testing manually.
Posted by Diabolical on 2005-07-19 10:37:32
How can you do UAT with automated tool. So its definetly a limitation.
Posted by subbarao on 2005-07-31 13:23:02
no, we canot replace automation in place of manual. because if we beleve application is stable
then only we automate testing for regression.
Posted by Shailendra on 2005-08-02 00:59:02
There can be some functionality which cannot be tested in an automated tool so we may have
to do it manually. therefore manual testing can never be repleaced.
Question:How will you choose a tool for test automation?
choosing a tool depends upon the domain of the application, depends upon the features of the
tools, types of testings to be conducted, clients budget and cost of the tool ,trained resources,
Posted by suman on 2005-06-04 08:08:27
choosing of a tool deends on many things ...
1. Application to be tested
2. Test environment
3. Scope and limitation of the tool.
4. Feature of the tool.
5. Cost of the tool.
6. Whether the tool is compatible with your application which means tool should be able to
interact with your appliaction
7. Ease of use
Posted by kalyani Naidu on 2005-07-07 07:58:20
Can you let me know which tools are use for which domain and for which type of testing in
detail.
Question:How you will evaluate the tool for test automation?
Posted by Preetha on 2005-05-27 16:52:21
We need to concentrate on the features of the tools and how this could be benficial for our
project.
The additional new features and the enhancements of the features will also help
Question:What are main benefits of test automation?
1) Time--> If we use automation time will be saved
2) We can run the scripts in the night where as if we take manual testing we cannot do this
3)Effectiveness of the application will be improved
Posted by Preetha on 2005-05-27 18:39:43
We can rerun the script across multiple platforms simultaneously
Posted by ASOKAN on 2005-06-06 03:49:02
FAST ,RELIABLE,COMPREHENSIVE,REUSABLE
Question:What could go wrong with test automation?
35
Posted by Arunkumar Y.A on 2005-04-04 06:05:40
It can be of runtime errors generated where program fails to respond. Incorrect syntax used,
incorrect data feeded, load, support...etc. these can be a reason to be wrong in test
automation.
Posted by Preetha on 2005-05-27 18:41:07
1. The choice of automation tool for certain technologies
2. Wrong set of test automated
Question:How you will describe testing activities?
Posted by Preetha on 2005-05-27 18:43:13
Testing activities start from the elaboration phase. The various testing activities are preparing
the test plan, Preparing test cases, Execute the test case, Log teh bug, validate the bug & take
appropriate action for the bug, Automate the test cases, View and report the test results etc
Question:What testing activities you may want to automate?
Posted by bsr on 2005-04-01 03:27:35
Tests which are executed repeatedly must be automated to acquire time savings and also for
better accuracy.
Posted by Preetha on 2005-05-27 18:44:43
1. Automate all the high priority test cases which needs to be exceuted as a part of regression
testing for each build cycle.
Question:Describe common problems of test automation.
Posted by Preetha on 2005-05-27 18:47:02
The commom problems are:
1. Maintenance of the old script when there is a feature change or enhancement
2. The use of the script when we migrate the application from old version to new version
3. The change in technology of the application will affect the old scripts
Question:What types of scripting techniques for test automation do you know?
Posted by ashra on 2005-03-22 03:44:26
5 types of scripting techniques: Linear Structured Shared Data Driven Key Driven
Question:What are principles of good testing scripts for automation?
Posted by Preetha on 2005-05-27 18:49:23
1. Proper code guiding standards
2. Std format for defining functions, exception handler etc
3. Comments for functions
4. Proper errorhandling mechanisms
5. The apprpriate synchronisation techniques
Question:What tools are available for support of testing during software development life
cycle?
Posted by bsr on 2005-04-01 03:34:18
Several Testing tools like WinRunner are available in the market. Similarly for bug reporting
and bugtracking tools like bugzilla are available.
Posted by Poonam on 2005-08-04 07:01:19
Testing tools for regressiona and load/stress testing for regression testing like, QTP, load
runner, rational robot, winrunner, silk, testcomplete, Astra are availalbe in the market.
-For defect tracking BugZilla, Test Runner are availalbe
36
-For testing process maintenance, rational robot and Microsoft application test center are
available
Question:Can the activities of test case design be automated?
Posted by Poonam on 2005-08-04 07:04:16
Yes, it can be automated by using the scripting fundamantals , like if the test cases are in the
Excel sheet then whenever any steps in the test case is filed then can write a code to fill the
proper columns and rows in the excel sheet.
Test Case can be written runtime.
Though, don't need to view the test result and write the test case manually.
Posted by Rajesh on 2005-08-04 11:24:13
As I know it, test case design is about formulating the steps to be carried out to verify
something about the application under test. And this cannot be automated.
IHowever, I agree that the process of putting the test results into the excel sheet can be
automated. The test script can be enhanced to feed in required result into the result column of
the excel sheet.
Question:What are the limitations of automating software testing?
Posted by bsr on 2005-04-01 03:43:19
You can achieve repeatability, but u need to develop a number of scripts which is a complex
task. People are needed to develop scripts. If the software undergoes frequent changes u have
to reprogram your scripts.
If your application is a big one then only auomation is justified.
Posted by swanand on 2005-05-03 05:40:09
Hard-to-create environments like “out of memory”, “invalid input/reply”, and “corrupt
registry entries” make applications behave poorly and existing automated tools can’t force
these condition - they simply test your application in “normal” environment and ignore the
boundary conditions where many defects live. These tools are typically expensive and good for
only one kind of testing: reliability, functionality, load/stress, etc. Further, when you test your
application with conventional automated tools, there is a drain on the entire system because
they are limited to testing the application _as part of_ an existing/overall system.
Posted by ASOKAN on 2005-06-06 03:59:56
Hard-to-create environments like “out of memory”, “invalid input/reply”, and “corrupt
registry entries” make applications behave poorly and existing automated tools can’t force
these condition - they simply test your application in “normal” environment and ignore the
boundary conditions where many defects live. These tools are typically expensive and good for
only one kind of testing: reliability, functionality, load/stress, etc. Many of them require that
you have access to the source code or work in “clean” environments. Further, when you test
your application with conventional automated tools, there is a drain on the entire system
because they are limited to testing the application _as part of_ an existing/overall system.
the problem of "cannot reproduce" is still prevalent with most automated test tools
Question:What skills needed to be a good test automator?
Posted by Deepak on 2005-03-31 00:29:58
The main skills are 1.Good Logic for programming.
2. Analatical sklls.
3.Pessimestic in Nature.
Posted by bsr on 2005-04-01 03:30:08
Good knowledge of the testing tool he is using. Good programming skill.Good understanding of
the functionalities for which he is going to develop the script. Good interpretation skills of the
test results.
Posted by Jheel on 2005-05-06 10:30:35
37
Out of Box thinking, Critical in nature, Ability to think from the end users view point.
Posted by Hafeez on 2005-06-13 17:06:42
Breaking attitude...
Posted by Ram on 2005-08-06 02:24:37
Should have a good skill of Impact analysis
Question:How to find that tools work well with your existing system?
Posted by Preetha on 2005-05-27 18:53:03
1. Discuss with the support officials
2. Download the trial version of the tool and evaluate
3. Get suggestions from peopel who are working on the tool
Posted by shashidhar mahavadi on 2005-06-13 07:04:34
The above answer looks fine,
we can also check the system for back word and forward compatibility, i mean to say if there
exits a previous version then the tool can be checked with that so that we can confirm with the
changes with the present, also same verification can be done with the forth comming changes
too..
Question:Describe some problem that you had with automating testing tool.
Posted by Preetha on 2005-05-27 18:55:00
1. The inabality of winrunner to identify the third party control like infragistics controls
2. The change of the location of the table object will cause object not found error.
3. The inability of the winrunner to execute the script against multiple languages
Question:What are the main attributes of test automation?
Good attributes of test automation are Ease of use, simple interface, less resource utilization,
less time consuming, reliability, cost effective, Good programming tool....etc.
Posted by Shashidhar Mahavadi on 2005-06-13 07:11:37
1.Maintainability
2.Reliability
3.Performance
4.Optimization
are the main attributes of Test automation
Question:What testing activities you may want to automate in a project?
Like regression testing of the application, generating the scripts where there are no any
changes in GUI and as well functionality of the application. Then enromous data feeding in to
the application,..etc. so we can automate these sorts of activities in a project.
Posted by zulfi on 2005-08-03 01:37:01
Testing tools can be used for :
Sanity tests(which is repeated on every build),
stress/Load tests(U simulate a large no of users,which is manually impossibele) &
Regression tests(which are done after every code change)
Question:How to find that tools work well with your existing system?
Posted by bsr on 2005-04-01 08:29:57
To find this, select the suite of tests which are most important for your application. First run
them with automated tool. Next subject the same tests to careful manual testing. If the results
are coinciding you can say your testing tool has been performing its job well.
38
Question:How will you test the field that generates auto numbers of AUT when we click the
button 'NEW" in the application?
Posted by Ajay on 2005-07-21 02:11:32
We can create a textfile in a certain location, and update the auto generated value each time
we run the test and compare the currently generated value with the previous one will be one
solution.
Question:How will you evaluate the fields in the application under test using automation tool?
Posted by Balaji on 2005-07-03 06:32:57
In WinRunner it can be tested using TSL
Posted by Ranjith Nair on 2005-08-25 05:24:26
We can use Verification points(rational Robot) to validate the fields .Ex.Using
objectdata,objectdata properties VP we can validate fields.
Question:Can we perform the test of single application at the same time using different tools
on the same machine?
No. The Testing Tools will be in the ambiguity to determine which browser is opened by which
tool.
Question:Diffenece between Web aplication Testing and Client Server Testing. State the
different types for Web apllication Testing and Client Server Testing types?
Posted by chandra sekhar on 2005-07-24 02:07:55
which winrunner 7.2 versioncompatiable with internet explorer, firefox,n.n
Question:What is 'configuration management'?
Posted by krishna mohan on 2005-07-31 07:30:51
It is the systematic approach to be foolowed if any changes are to be done in project
requirements like srs, HLD,LLDs. As it is difficult to reach out to each employee and tell the
changes that are done in the project requirements, this is useful.
It is like to maintaining a centralized database.
Eg: CVS server.
Question:How to test the Web applications?
Posted by krishna mohan p on 2005-07-31 07:33:21
The basic differnce in webtesting is here we have to test for URL's coverage and links coverage.
Using WinRunner we can conduct webtesting. But we have to make sure that Webtest option is
selected in "Add in Manager". Using WR we cannot test XML objects. This can be tested uisng
QTP
Question:what are the problems encountered during the testing the application compatibility
on different browsers and on different operating systems
Font issues,alignment issues
Question: how exactly the testing the application compatibility on different browsers and on
different operating systems is done
Question: How testing is proceeded when SRS or any other document is not given
39
If SRS is not there we can perform exploratory testing. In Exploratory testing the basic module
is executed and depending on its results, the next plan is executed
Question: How do we test for severe memory leakages?
Posted by Anna on 2005-08-22 16:15:30
by load testing
Posted by facial on 2005-08-23 07:47:20
by using Endurance Testing.
Endurance Testing means checking for memory leaks or other problems that may occur with
prolonged execution.
Posted by Ramjet Nair on 2005-08-25 06:00:20
we are using performance testing (Microsoft ACT) to check the memory leakage. We will add
the performance counter->
performance object-->process
Performance counters are 1) Pool non-pages bytes
2) Pool paged bytes
if there is a large difference between this counters that means the memory leakage is high.
Question: what is the difference between quality assurance and testing?
Posted by Reddy on 2005-08-16 18:46:24
Testing is basically quality control. It's a subset of quality assurance. Quality assurance is a
policy that makes sure the organization delivers its services to its clients with reaccepted
standards.

My earlier blogspot: http://puck-karthy.blogspot.com/