Friday, September 03, 2010

More QTP Steps

* Open Associate Resources dialog by clicking Resources -> Associate Repositories
* Add your repository in the dialog
* Select the Available Actions and move it to the Associated Actions
* Click Ok


B. EXPORTING A TEST TO A ZIP FILE
Why: This is useful to make it easy to email a QTP test
When: Done after the test is complete
* Save all updates to your test
* Select File -> Export Test to Zip File
* Choose a location to save the zip file and click Ok


C. IMPORTING A TEST FROM A ZIP FILE
Why: This is the format in which you receive tests via email
* Select File -> Import Test from Zip File
* Choose a location to import the zip file to and click ok


D. ADD A SYNCHRONIZATION POINT (FORMAT 1)
Why: Used whenever there is a need to slow down QTP execution
* Put cursor in the right location
* Type wait x (where x is the amount of time to wait in seconds)


D. ADD A SYNCHRONIZATION POINT (FORMAT 2)
Why: Used whenever there is a need to slow down QTP execution
* Put cursor in the right location
* Have the test object on the screen
* Click on record
* Select Insert -> Synchronization Point...
* Confirm the object selection and click Ok
* Make appropriate choices on the checkpoint dialog
* Click Ok
* Immediately stop recording


F. INSERT A CHECKPOINT
Why: This verifies that the actual result in the AUT matches an expected result
When: Used when you have an item in the expected resulted column
* Put cursor in the right location
* Have the test object on the screen
* Click on record
* Select Insert -> Checkpoint -> The type of checkpoint you want
* Confirm the object selection and click Ok
* Make appropriate choices on the checkpoint dialog
* Click Ok
* Immediately stop recording

G. INSERT AN OUTPUT VALUE
Why: This retrieves a value from the AUT and stores it in the data table
When: Used whenever you are checking a non constant value in the AUT
* Put cursor in the right location
* Have the test object on the screen
* Click on record
* Select Insert -> Output Value -> The type of output value you want
* Confirm the object selection and click Ok
* Make appropriate choices on the output value dialog
* Click Modify and select an appropriate name for the datatable column
* Click Ok
* Immediately stop recording

Sunday, August 22, 2010

VBScript Assignment 4

DUE: 8/24
This is a comprehensive exercise covering everything we have done in the VBSCript portion of the class.


DECLARATION
-----------
Declare a variable or constants and assign appropriate values for the following:

a. The title of the window
b. Your name
c. Tomorrow's date
d. Whether it will snow tomorrow
e. The number of TV channels you recieve


NUMERIC
-------
1. Accept a number, print it in reverse

E.g. If you accept 274, print
The reverse of 274 is 472


2. Accept two numbers and print:
a. All the even numbers between them
b. All the odd numbers between them
c. All the prime numbers between them

3. Accept two numbers and sum all the numbers between them:

E.g. If you accept 2 and 5 print:
Input values: 2 and 5
Sum (excluding boundaries): 7
Sum (including boundaries): 14


DATE
----
1. Accept a date in mm/dd/yyyy format and
a. Display a message whether the date is valid or not
b. Display the date in parts as:
Month: January
Day: 14
Year: 2008

2. Accept a date and print whether the date is in the past, present or future.


3. Accept a date and print:
a. Day Before: mm/dd/yy
b. Day After: mm/dd/yy


4. Print yesterday's date


STRINGS
------
1. Accept a word as input and display all the vowels in it.

E.g. if the word is PROFESSIONAL, display:
A : 1
E : 1
I : 1
O : 2
U : 0

2. Accept FirstName, MiddleName and lastName from a user and write code to display this as:
a. LastName, FirstName MiddleInitial.
b. LastName, FirstName
c. FirstInitial. LastName


FUNCTIONS
---------

1. Write a function that takes a String formatted as currency and returns the value as a number.
E.g.
If you pass the value $1,234,567.70 it returns 1234567.70
If you pass the value 34,567.70 it returns 34567.70


2. Write a function named IsPrime that accepts a number and returns True if the number is prime and False if the number is not.

Labels:

Tuesday, August 10, 2010

Assignemnt 3

1. DECLARATION
--------------
a. Declare variables or constants for the following items
b. Assign appropriate values to the declared variables


Declare a variable or constants and assign appropriate values using functions:

a. Today's Date
b. Whether it will be cloudy tomorrow
c. The price of a book
d. The name of first month of the year
e. Yesterdays date
f. The name of the user logged into your computer
- This will require research

2. Write VBScript code to print the following in a single message box.
 
*
**
***
**
*
 
[Note: Do not hardcode the values.]
[Hint: You will need a nested loop]
 
3. Write a VBScript function that will accept a number and return true if the number is a prime number. False, if the number is not:
 
Function IsPrime(Byval numInput)
  'Your code goes here
 
End Function
 
 
4. Write a VBScript function that when given a filename, it will return the file size.
 
if the file does not exist, it should return -1.
 
[Hint: You will need to use the FileSystemObject to answer this]
 
 
5. Write a VBScript function that accepts the following input:
 
123 Fordham Road, Fremont GA 09321
 
and prints out the following (in 1 message box)
 
Number: 123
Street: Fordham
City:   Fremont
State:  GA
Zip:    09321
 
6. Write a VBScript function that returns the date in MM/DD/YYYY format.
Note that when the day is August 3, 2010, it should display 08/03/2010 and NOT 8/3/2010

Labels:

Thursday, August 05, 2010

VBScript Assignment 2

This assignment is due on Tuesday (8/10/10)

1. Ask a user for a number an display half the number.
E.g If the user enters 3, display
Half of 3 is 1.5

2. Write a loop to print all the numbers between 1 and 5

3. Write a loop to print all the numbers between 10 and 30 that are cleanly divisible by 2 or 3.

Saturday, July 31, 2010

VBScript Assignment

This assignment is due on Tuesday (8/3/2010)

1. DECLARATION
--------------
a. Declare variables or constants for the following items
b. Assign appropriate values to the declared variables


Declare a variable or constants and assign appropriate values for the following:

a. Today's Date
b. The name of a file
c. The number of people in Columbus
d. The number of days in a week
e. The number of days in a year
f. Whether it will be cloudy tomorrow
g. The price of a book
h. The first month of the year
i. Yesterdays date
j. Whether a test passed or failed.


2. Compete the following
'Complete the following script to convert
'an input time in minutes into hours and minutes

Option Explicit

Dim numInput, numHour, numMinute
Dim strMessage

numInput = InputBox("Enter time in minutes")
numInput = CInt(numInput)

'ToDo
'Convert the time to hours and minutes
'Assign the result to strMessage as the following
' 150 minutes equals 2hr(s) and 30min(s)

Msgbox strMessage


3. Write a short VBScript program that accepts a number from a user in Celsius and converts it to Fahrenheit.

The formula for Celsius to Fahrenheit conversion is:
a. Multiply the Celsius temperature by 9
b. Divide the answer by 5
c. Now add 32

Labels:

Friday, July 23, 2010

NEW QC URL!!!

QC URL: http://184.57.10.117:9494/qcbin
Expense Calculator Tests: http://www.genixcorp.com/testing/expcalc/expcalctests.pdf

Sunday, May 23, 2010

Exp Calc Quiz

Due: 5/25

Please find attached a copy of the assignment. Attempt as many as you can.
PDF 
DOC

Tuesday, April 27, 2010

Assignment

1.
'Complete the following code to display whether a number is
'a. Less than 0
'b. Between 0 and 10
'c. Between 11 and 100
'd. Greater than 100
'
'Display the result as the following example where 20 is the input
' 20 is between 11 and 100

Dim numInput
numInput = InputBox("Please enter a number")


2.
'Write VBScript code to display the following in 1 message box
'
'Day: 12
'Month: February
'Year: 2010

3.
'Write VBScript code to display the size of your C drive

Labels: ,

Tuesday, August 19, 2008

Expense Calculator Tests

This contains links some expense calculator tests

* Some solutions to QTP Tests for Expense Calculator can be found at the link below:
http://genixcorp.com/testing/expcalc/ExpTests.zip

Sunday, August 17, 2008

Flight Reservation Tests

Click on the links below for material useful for testing the Flight Reservation application.

Object repository

Database Schema


Additional Useful details:

Username: any name

Password: mercury



Below are the test cases for the Flight Reservation application.

1. The tests can be found at
[DOC] http://www.genixcorp.com/testing/tests/tests.doc
[PDF] http://www.genixcorp.com/testing/tests/tests.pdf

2. Here is an additional test
TEST 1: Insert New Order


You can create your object repository or use the one at

The Object Repository can be downloaded from
http://www.genixcorp.com/testing/tests/FlightReservation.tsr


A few of the solutions are provided so you can look at a version of wrking solutions for some of these tests:

[Verify Launch] http://www.genixcorp.com/testing/tests/Verify%20Launch.zip
[Verify Legal] http://www.genixcorp.com/testing/tests/Verify%20Legal.zip
[Book Flight] http://www.genixcorp.com/testing/tests/Book%20Flight.zip


Please remember that these are zip files and you will need to unzip them in order to use the test properly. If your object repository is not in c:\My Tests folder, you will need to point the test to the location of your object repository so that it can run properly.

You can find some more tests and information at the links below:

Wednesday, July 23, 2008

Assignment 1

Due: 7/25/08

a. Declare variables for the following items
b. Assign appropriate values to the declared variables

[Note: You can use SCITE a VBScript editor as your IDE> The application is free and can be downloaded here: http://users.hfx.eastlink.ca/~gisdev/scite-1.75-setup-1.exe]

1. The title of the last book you read
2. Your name
3. Tomorrow's date
4. Whether it will be sunny tomorrow
5. The number of TV channels you receive
6. The number of people on the planet
7. The cost of a gallon of gas

Labels:

Monday, May 12, 2008

QTP Tests

The zip file below contains some tests we worked on in class. The following items are included:

Test: Check Dimensions
Test: Delete Record
Object Repository
Function Library
Recovery Scenario File

[ZIP]

Labels:

Sunday, April 20, 2008

READINGS

[required] Overview of Testing - An indepth overview of the process of software testing.
PDF

[optional] Expense Calculator Requirements - The requirements for the Expense Calculator application.
PDF DOC


Thursday, March 13, 2008

VBScript Assignment 4

DUE: 8/24
This is a comprehensive exercise covering everything we have done in the VBSCript portion of the class.


DECLARATION
-----------
Declare a variable or constants and assign appropriate values for the following:

a. The title of the window
b. Your name
c. Tomorrow's date
d. Whether it will snow tomorrow
e. The number of TV channels you recieve


NUMERIC
-------
1. Accept a number, print it in reverse

E.g. If you accept 274, print
The reverse of 274 is 472


2. Accept two numbers and print:
a. All the even numbers between them
b. All the odd numbers between them
c. All the prime numbers between them

3. Accept two numbers and sum all the numbers between them:

E.g. If you accept 2 and 5 print:
Input values: 2 and 5
Sum (excluding boundaries): 7
Sum (including boundaries): 14


DATE
----
1. Accept a date in mm/dd/yyyy format and
a. Display a message whether the date is valid or not
b. Display the date in parts as:
Month: January
Day: 14
Year: 2008

2. Accept a date and print whether the date is in the past, present or future.


3. Accept a date and print:
a. Day Before: mm/dd/yy
b. Day After: mm/dd/yy


4. Print yesterday's date


STRINGS
------
1. Accept a word as input and display all the vowels in it.

E.g. if the word is PROFESSIONAL, display:
A : 1
E : 1
I : 1
O : 2
U : 0

2. Accept FirstName, MiddleName and lastName from a user and write code to display this as:
a. LastName, FirstName MiddleInitial.
b. LastName, FirstName
c. FirstInitial. LastName


FUNCTIONS
---------

1. Write a function that takes a String formatted as currency and returns the value as a number.
E.g.
If you pass the value $1,234,567.70 it returns 1234567.70
If you pass the value 34,567.70 it returns 34567.70


2. Write a function named IsPrime that accepts a number and returns True if the number is prime and False if the number is not.

Thursday, February 28, 2008

Table of Contents

The contents within this blog will be described within this tablef contents to make it easier to access material.

VBScript Examples: Loops

The following example loops though an input vlue and prints a triangle based on the number entered

rows = InputBox("enter rows")
x = 1
map = ""
While x <= Cint(rows)
y = 1
While y <= x
map = map & "*"
y = y + 1
Wend
map = map & vbcrlf
x = x + 1
Wend
Msgbox map

Friday, August 03, 2007

Flash demos

These are flash based demos for specific materials covered in the class:


Starting a test

Running a test

Creating a DSN

Test: Delete Record

Test: Delete Record from DB

Labels:

Saturday, July 28, 2007

QTP Tests

I have included in this post, links to QTP tests we have written in class.

Add Record 2

Verify Launch

Labels:

Wednesday, June 20, 2007

Demos

Please click below for a rather excellent WinRunner flash based demo.

WINRUNNER DEMO

Labels:

Sunday, May 13, 2007

Presentations

Introduction to Testing - A general introduction to the concepts of Quality Assurance.
PPT PDF

Test Director - A Test Director, a test management tool that is available as a plugin for Mercury's Quality Center product.
PPT PDF

QTP - An introduction to Mercury QuickTest Professional test automation tool.
PPT PDF

LoadRunner - An introduction to LoadRunner Performance testing tool.
PPT PDF

VBScript - Description of the VBScript language which is the scripting language used by QTP.
PPT | PDF

Friday, May 11, 2007

Examples of Requirements Specification

Here are some examples of requirements documents. You will find the varied styles in use for the creation of these documents.

Hisorical Extracts

Prot LIMS

DNA

Saturday, April 28, 2007

IMPORTANT DOCUMENTS

The site has been re-shuffled, and I hope, simplified. Several small articles have been combined to create a more logical flow.


PROJECTS
Flight Reservation Project: Creating a project in Mercury Test Director to test the Flight Reservation Application.
PDF DOC

Expense Calculator Tests: A series of design steps that can be automated to test the Expense Calculator application
PDF DOC


EXPENSE CALCULATOR
REQUIREMENTS: The requirements for the Expense Calculator application.
PDF DOC
SCREEN SPECIFICATION: The screen specification document for the Expense Calculator application. This is a part of the requirements.
PDF DOC
SCHEMA: The database design schema for the Expense Calculator application
PDF
APPLICATION: The Expense Calculator application which is tested in this class is available at the link below.
ZIP
OBJECT REPOSITORY: Object Repository for the Expense Calculator application
TSR
GUI MAP: GUI Map for the Expense Calculator application
GUI


CLASS MATERIAL
The class material is available from the following link.
ZIP


QTP OBJECT REPOSITORIES
Object Repository for the Flight Reservation application
TSR
Object Repository for the Expense Calculator application
TSR

TESTS
An account management test for the expense calculator application
ZIP

Verifies the date entered by the Today's Date Button is the current system date
ZIP

Labels: , ,

Sunday, April 22, 2007

Testing Resources

I had always planned to include a list of links relevant to QA here. I've finally found the time to include them. I suggest creating these as bookmarks as you will find them very useful.

Questions
http://genixpress.com/answers
http://geekinterview.com
http://allinterview.com


Reference
http://wikipedia.org
http://google.com

Blogs
http://prosoftqa.blogspot.com
http://cerosh.blogster.com

Articles
http://genixpress.com/gp/preview/wiss-preview.pdf
http://www.odo.lv/index.php?list=winrunner/home_en
http://wilsonmar.com


Tutorials
http://www.w3schools.com


Software Downloads & Demos
http://mercury.com
http://adobe.com - You will need Acrobat Reader to view some of the documents on this site.

Screencasts & Webinars
http://www.mercury.com/us/company/events/webinars/archive.html#quality-center

Monday, February 12, 2007

Exercises: Scripting

STRING MANIPULATION
===================
1. Write code that accepts a string as input and does the following
* Display the size of the string
* Display the string in reverse

2. Print the following string on 2 lines using one Msgbox function: "Hello" "World"
This should be printed as:

Hello
World

but done using 1 Msgbox function

3. Write code that takes the value 2000111.4 and displays it as $2,000,111.40

4. Write code that takes the value $1,234,567.70 and displays it as $1234567.70

5. Write code that accepts a number and displays whether the number is a prime number or not

6. Create a script that prompts a user for a word and then the script does the following:

a. Displays the string entered
b. Print out the length of the string
c. Print out the string in reverse



DATE MANIPULATION
=================
1. Write code that accepts a date in MM/DD/YY format and then prints the date in Mon, DD, YYYY format.
e.g. 03/01/04 and display Mar, 01 2004

2. Write code that displays the time in HH:MM AM format e.g. 02:35 PM

3. Create a script that will print out the day value e.g. Sunday/Monday

3. Write code that displays the time in long format e.g. Two thirty-five PM.



FILE I/O
========
1. Create a script that will accept an input and write it into a file named mydata.txt

2. Create a script that will accept a file name and print "Exists" if the file exists and "Doesn't Exist" if it doesn't.






MORE EXERCISES
==============
1. Create a simple loop that will print "Hello" 5 times




2. Write code that prints out all the even numbers between 2 and 8 and displays them at a single time using the following format:

2 - 4 - 6 - 8!

Labels: ,

Friday, February 02, 2007

Exercises: VBScript

EXERCISES
=========

1. Write the item below as a comment using the 2 forms of comments that are available in VBScript

This is a comment



2. Fix the following line of code of code using any of the 2 comment keywords. When you are done, the code should run properly and print 'Hello World' 2 time

Declaring variables
Dim strMessage
Dim numLoop
strMessage = "Hello World" Assigning a value to my variable

For numLoop = 0 To 1 Step 1
Printing a message
Msgbox strMessage This will display the message
Next

The end of the code


3. We used the InputBox function to ask the user for input. Complete the following script so that when I run it, it will ask me for a number and then it will double the number and display it to me.

Option Explicit
Dim numValue
numValue = InputBox("Please enter a number")



4. Create a script that accepts any numerical input and then displays a message if the number is a prime number or not.
[Note: A prime number is a number that is a non-negative and that is only divisible by one and itself]

Labels: ,

Thursday, February 01, 2007

Exercises: TSL

1. Modify the following code using comment and inserting missing symbols so that it would run properly

------ code start
Declaring a variable
static numCount This variable will hold the number of times I execut the test
// Assigning a value to this variable
numCount = 3;
/* Print the variable */
print("Value of numCount:" + numCount);

------ code ends


2) Indicate which of the following are incorrect And what (if anything is wrong)

int intNumberofDays

static numBankBalance
numBankBalance = "Hello";

public numLoopCounter
numLoopCounter = 14

Static strData;

static if = 0;

public +2;
+2 = "Hello";

Static list+names;
list+names = "John, James, Victor";

static a;
static b = "Hello";
a = b + "2";


3. Complete the following if statement to display "More than 10" if the input value is more than 10.

static numInput;
numInput = 7;

# Please create the appropriate if statement


4. Create an if statement to display "5 or more" if the input value is 5 or greater and "Less than 5" if it is not

static numInput;
numInput = 7;

# Please create the appropriate if statement


5) Create an if statement structure to display
* "Even" if a number is even
* "Odd" if the number is odd
* "Zero" if the number is 0
* "Negative" if the number is less than zero.

Please note that all these are mutually exclusive i.e. a number can either be even, odd, zero or negative.


6. Fix the errors in the following TSL code to make it function properly

Declare a variable
static numData
numData = 7; This is an assignment statement
//Print the value
print("numData");


7. Write TSL code that prints out all the even number between 1 and 10 in the following form

1, 3, 5, 7, 9
Note: PLease use only 1 pause statement.

Labels: ,

Thursday, January 11, 2007

Best Practices in QTP

1. Use comments liberally. It is helpful in every section to identify what is being done and how you intend to do it. This makes it much easier for people to understand what the test intends to do.

2. Fname, Lname, Country, Gender are not good names for datatable columns. See http://prosoftqa.blogspot.com/2006/04/logical-names-updated-410.html for an article about naming.

3. FN, LN etc are not good variable names. Absolutely avoid the use of such variable names as i, j, k. The reasons for this should be obvious.

4. It is always a good idea to define your variables at the top of your test and specify what type of data you intend to store into them.
E.g.

Dim strCountry 'Stores the name of the country

5. The Msgbox function should absolutely never be in a test. An automated test is designed to run with unattended execution. Using this function pauses the test and waits for user interaction. If you want to preserve log messages during your test, try the Reporter.ReportEvent method.


6. Never use the Inputbox function in a test. Your data should always be either
a. Hard-coded - Simple but not flexible
b. Parameterized - Best option since your datatable is editable through any spreadsheet tool.


7. Always indent your code. The interpreter does not care if you don't indent but humans do. Don't forget that during the lifetime of your code, someone else may be charged with updating it. Without proper indentation, it is difficult to figure out what the code below is doing:


If blnTest=True Then
strMessage="Passed"
If numCount=2"
strMessage = strMessage & " again."
End If
Else
strName="Failed"
End If


The following is easier to read:


If blnTest=True Then
strMessage="Passed"
If numCount=2"
strMessage = strMessage & " again."
End If
Else
strName="Failed"
End If

Labels: ,

Saturday, December 23, 2006

Object Recognition in QTP

The problem of object recognition is a tricky one. Imagine receiving computer help over the phone when the caller tells you what to do to your machine by describing the objects they want you to interact with. For instance, if they want you to open the control panel (on a Windows XP machine), the steps involved might sound like
1. Click the button on your task bar, that has the word 'Start'
2. Click on the Control Panel list item in the displayed menu

In this instance, you are provided with enough description to uniquely identify an object you need to interact with. If you have two buttons, with the word start on it in your taskbar, then an additional piece of description must be provided such as

1. Click the leftmost button on your task bar, that has the word 'Start'

in order to still uniquely identify the object. This is what QTP does, it simply records a description of each object you interact with in your application into a file. The way it records the description is by noting enough properties of an object in order to uniquely identify such an object. Additionally, in order to find this object much easier in the future, it provides a logical name for the object. The logical name is simply an alias. This way, instead of saying

1. Click the leftmost button on your task bar, that has the word 'Start'

I can use a logical name such as btnStart.

There are three tools used by QTP for this operation and these include Object Spy, Object Identification and Object Repository. We will discuss these objects at length in later chapters. For now, it is more important to understand the concept that in order to teach QTP how to interact with your application, QTP must record descriptions of the objects you interact with and map these description to a logical name.

Labels:

Tuesday, December 05, 2006

Flight Reservation Application Files

Click on the links below for material useful for testing the Flight Reservation application.

Object repository

Database Schema


Additional Useful details:

Username: any name

Password: mercury

Database Location: C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight32.mdb



TEST 1: Insert New Order

Wednesday, August 09, 2006

Active X controls: A closer look

Active X controls are a programming technology that allow developers create objects within a programming language that can now be used in a different programming language. The ActiveX object created is often referred to as a component, because it often has to included inside another application to be used.

I'll use an example to illustrate this.
Let's say I'm writing an application in Visual Basic, and the application needs to accept input from users. One of the fields that a user has to enter is a field that they can store their social security number in. Ideally, such a field should only accept input in the following form

###-##-####
where # stands for a number

The problem here is I need to write code to prevent someone from being able to enter:

hel-12-3456

as their social security number. Lets say I know how to write such code in C++ but not in Visual Basic, what I will need to do is go into C++ and create an object that will only accept valid social security numbers. Next, I will return to Visual Basic and embed this object in my application.

The process of doing this is known as OLE (object linking and embedding) and the resulting object that I created is called an ActiveX control or ActiveX component.

To test an ActiveX component, you must warn QTP (and WinRunner) that the application you are testing contains objects that may have been created in a different language. In the case of this example, in addition to inclduing the Visual Basic add-in, we must also include the ActiveX add-in so that the testing tool will know how to interact with our ActiveX object (i.e. the object used to input social security numbers).


For further reading, see:

http://en.wikipedia.org/wiki/ActiveX
http://en.wikipedia.org/wiki/ActiveX_control

Friday, June 30, 2006

More about Object Repository Files [ADVANCED]

To be able to mimic what was done by a user, QTP learns the object the user interacts with by recording enough properties of the object to be able to uniquely identify the object. This, as you know, in QTP is the object repository. The object repository is simply a file that has to be stored on the system. QTP uses two file types for doing this. A TSR file and and MTR file.

TSR file
This is the file type QTP uses to store an object repository when you choose 'Shared' mode in Test->Settings->Resources. The TSR file must then be referenced by any test that wants to use the objects within that repository.
What we do is learn all the objects within an application and store it inside a single file, therefore anytime you want to test that object, you simply have to load the correct TSR file.

How to create a TSR file
There are two forms for doing this.
1. Create a new test, open the Object Repository by clicking Tools->Object Repository. From the tools use 'Add New Object' to add the objects you want. Then click 'Export' and choose a filename.tsr to save the object repository as.
2. Create a new test, open the Resources tab at Test->Settings->Resources. Type in the name of the tsr file you want to create. It will prompt you that you are creating a new file, say yes. Open the Object Repository by clicking Tools->Object Repository. From the tools use 'Add New Object' to add the objects you want. Then click 'Save'.
Note: In 1, you export, in 2, you save

MTR file
A second, but much lesser used for is the 'Per Action' object repository. In this form, you do not worry at all about your object repository. Sounds too good to be true, and it is. The problem with this form is that if anything changes in the application, you have to go back and re-record ALL the actions that use the changed object. This form is almost only used when testing a mature application, i.e. one in which you know (with great certainty) that the GUI objects will not change.