Monday, December 15, 2008

Learn Software Testing

As a Fresher you can not get a job in IT industries. Please Spend some mints………….
One more IMPARTANT thing that do not go for Back Door Enter. It does not work. Do not kill your eyes by your self.

Its all in the mind. You raise your thoughts, confidence will automatically shape up. And then you end up doing the impossible. Thoughts should be programmed continuously, coz they form the basis of all the emotions, all the actions.

Real success is finding your lifework in the work that you love. Success usually comes to those who are too busy to be looking for it. Henry David Success consists of going from failure to failure without loss of enthusiasm-Winston Churchill

Hi, dear friends this Chakri working as software test engineer in MNC. If you are really serious about your Software Testing Career take my help. For any information do not hesitate to call me or mail me this is my email id: ready4qtp@gmail.com and Number 919000500042.

QTP

Here iteration means repeat the processes, with same values

or different values,when You take the datadriven test with

different values... the test process repeats that much of

time.


or

Iteration is nothing but one or more times Run the testscript
that is called iteration
in qtp we can see the test result is Testresult window

QTP Tutorials 1 - Familiarizing with recording process

We will test with the mercury sample application FLIGHT.

QTP script consists of things like actions, functions etc. In QTP 9 we can place 120 actions in a script, this is a limit.

We will begin with a simple test like the "hello world" program with which we start learning any programming language.

1) First of all click on Record toolbar button ( or Automation menu --> Record or press F3). when we click on Record, "Record and Run Settings" window opens up. Go to "Windows Applications" tab and choose first option "Record and run test on any open windows based application." and click on ok.

2) Open Flight application (Start -->All programs -->QuickTest Professional --> Sample Applications --> Flight)

3) Type Agent name as "Kumar" (You can enter any, but must be 4 characters or more) and enter password as "mercury".

4) In the flight reservation window that opens up:

a) In the Flight Schedule area, in Date of Flight enter tomorrow's date in mm/dd/yyyy format.( I used tabs to move to next fields)
b)In Fly From enter Denver
c)In Fly To enter London
d) Click on Flights button which is on the right hand side of "Fly To".
Let the default option be selected in the Flights Table.
e) Click ok
f)In the name field enter your name. It will fill rest of the required information by itself.
g) Click on insert order and after the order is inserted
h) Click on File --> exit.

5) Now you have recorded your first script. You can click on the expert view tab to see the script which QTP has recorded for you automatically.

6) Click on run from Automation Menu (or press F5) to open up run dialog box.

7) Go to the "Results Location" tab, and below "write run results to", in "new run results folder" radio button- let it be the default option --C:\Program Files\Mercury Interactive\QuickTest
Professional\Tests\Test1\Res1(you can also change it)

--> click on ok.

This will run you earlier recorded test and show you the results.
But we have to go a long way. This is just the beginning.

Tutorials 2 - Using Data Table

In our next example we will use data table:
There are two types of data tables Design time and Run time:
Design time data table is what you see in the main QTP window and run time data table you can see only in the test results window. Design time data table is always created before running the test while run time data table is generated after execution of the test.

1) Open new test (Ctrl+N)

2) We will click on record toolbar button ( or Automation menu --> record or press F3). when we click on record, "Record and Run Settings" window opens up. Go to "Windows Applications" tab and choose first option "Record and run test on any open windows based application." and click on ok.

3) Open Flight application (Start-->All programs-->QuickTest Professional->Sample Applications-->Flight)

4) Type Agent name as "Kumar" (you can enter any, but must be 4 characters or more) and enter password as "mercury".

5) In the flight reservation window that opens up:

6) Click on File-->exit.

7) In the keyword view you will see four headings- Item, Operation, Value, Documentation. Under Value click on Kumar and on the right hand side of Kumar you will see a small icon, just click on that (or press ctrl + F11), The "Value Configuration Options" dialog box opens. In that dialog box click on parameter radio button and select Data Table from there. In Name field enter any variable name (I entered 'username'). Let all other be the default options in this dialog box and click on ok.

--> QTP will add username column in the data table (bottom, left hand side) with 'Kumar' as the first value.
9) Now enter more values in the username column, manually. I entered 'Sachin' and 'Sunil' in 2nd and 3rd column respectively.

10) Save the test. (File-->Save).

11) Now run the test. (follow same steps as we did earlier).

12) If the test ran successfully, in the Results summary window on the left hand side you will see three iterations (because we added 3 variables in the 3 rows of a data table). Expand 1st iteration, it will show action summary for that iteration, expand the action summary, it will show Login, Expand the login. Click on the first option under it "Agent Name: SetText". On the right hand side it will show 1st variable name under details.

13) Similarly you can look for 2nd and 3rd.

QTP Tutorials 3 - Accessing Data Table values through Script

What if we want to write a short script that accesses values from the data Table.

1) Make sure that QTP (with a new blank test) and a blank notepad is open.

2) In the Data Table below write a, b, c in the first column A.

3) Click on Record. When we click on Record, "Record and Run Settings" window opens up. Go to "Windows Applications" tab and choose first option "Record and run test on any open windows based application." and click on ok.

4) Just highlight the notepad and write 'a' on it.

5) Click on Stop so as to stop recording.

6) In the expert view your script will look like this:
Window("Notepad").WinEditor("Edit").SetCaretPos 0,0
Window("Notepad").WinEditor("Edit").Type "a"

7) We have to make it look like this:
rc = DataTable.Value("A", dtGlobalSheet)
msgbox rc
Window("Notepad").WinEditor("Edit").SetCaretPos 0,0
Window("Notepad").WinEditor("Edit").Type rc

--> Save the Test.

9) Run the Test again with a blank Notepad open. It will enter all the three values from Data Table into the Notepad

QTP Tutorials 4 - Standard Checkpoint

Checkpoints cannot be added manually, they are inserted using QTP's interface. Results of the checkpoint can be viewed in the Test Results Window.
Checkpoint information is stored in the Local Object Repository. It is in the Resource.mtr file which is in the action folder (if you created checkpoint in action1 then it will be action 1 folder under the folder in which you are saving the test/script, if you created checkpoint in action 2 then it will be action 2 folder and so on) .
In the expert view, on any blank line type Checkpoint and put "(". As soon as you put the starting bracket it will show all the checkpoints you have used in the test.
Now we will start with checkpoints. I will try to show easy to understand example of each and every checkpoint.
Lets start with simple example of standard checkpoint which checks a variety of objects such as buttons, radio buttons, combo boxes etc. Standard checkpoints are supported for all add-in environments
Open a blank test.
Make sure that Flight application is open.
(Now only QTP with blank test and Flight application should be open).
Click on Record. When we click on Record, "Record and Run Settings" window opens up. Go to "Windows Applications" tab and choose first option "Record and run test on any open Windows based application." and click ok.
Go to Insert (menu)->Checkpoint->Standard Checkpoint (or press F12).The mouse pointer will become hand and QTP will be minimized.
Click on the "Flights..." button which is on the Right Hand Side of the "Fly To" combo box in the Flight application.
It will open "Object Selection - Checkpoint Properties" window (with WinButton:FLIGHT highlighted). Click ok.
It will open checkpoint properties window. (only one property will be checked in it i.e. 'enabled' with a value of False.)
Click ok. Click on Stop in order to stop the Recording.
Save the test.
This is a small test in which we have used standard checkpoint and captured the disabled button on the Flight application. Now we can run the test in two ways to see how it fails and passes the results of the checkpoint.
To see a pass test result:
Make sure that this test and Flight application is open.
Click on run.
It will Run the test and show you the result as pass.
To see a Fail test result:

Make sure that this test and Flight application is open.

In the Flight application enter the Date of Flight, Fly From and Fly To fields and nothing else. (The reason for doing this is that it will enable the 'Flight...' button)

Click on run in order to run the test.

It will Run the test and show you the result as Fail. This is because QTP was looking for a disabled 'Flight...' button for which it recorded the information at the record time, but now since the button was enabled at run time, so it failed.
This will help you in understanding the standard checkpoint in QTP more deeply.

QTP Tutorials 5 - Page Checkpoint

Page checkpoint:It is for web applications only.Common things to check with this are load time, broken links etc.
Open a blank test.

Make sure thathttp://www.google.co.in/ is open.(Now only QTP with blank test and www.google.co.in should be open.)

Click on Record. When we click on Record, "Record and Run Settings" window opens up. Go to "Web" tab and choose first option "Record and run test on any open browser." and click ok.

Go to Insert (menu)->Checkpoint->Standard Checkpoint (or press F12).

The mouse pointer will become hand and QTP will be minimized.

Click anywhere on the white space on the Google.co.in page.

It will Open "Object Selection - Checkpoint Properties" window. Click on 'Page : Google' option which has a page icon on left of it with right corner of the page slightly folded.

Click ok.

A 'Page Checkpoint Properties' window opens up. Let all the options be default. Click ok.

Click on Stop in order to stop the Recording.

In the Expert view it will add just one line:

Browser("Google").Page("Google").Check CheckPoint("Google")

We will explore this line later on.

I ran this test by opening www.google.co.in in offline mode (not on internet). It recorded the following properties:

Property Name Property Value
load time "0"
number of images "2"
number of links "20"

Here it shows the load time as 0 because I did not open Google at the time of running the test, it was already open.

When you run it, in the results window, on left hand side, it will show (when every option is expanded):
Test Checkpoint-page Summary (where Checkpoint-page is the name with which I saved the test

Run-Time Data Table
Checkpoint-page Iteration 1 (Row 1)
Action1 Summary
Google (This will be the browser)
Google (This will be the Page)
Checkpoint "Google"
[/b]

QTP Tutorials 6 - Database Checkpoint

Now we will try out Database checkpoint: using Oracle 9i

First of all you have to connect oracle 9i to QTP 9.(before doing any recording)

For this go to Insert -> Checkpoint -> Database Checkpoint.

A Database Query Wizard opens.

Select ' Specify SQL statement manually' from the Query definition area. Click Next.

Here click on 'Create' button which is on the right of "Connection String:" It will open 'Select Data Source' window. Click on 'Machine Data Source' Tab

Click on New Button.

'Create New Data Source' window opens.

Select 'User Data Source' from Select a type of data source. Click Next.

It will show all the data source drives it could find.

Select Oracle (on my machine it was 'Oracle in OraHome9'). Click Next. Click Finish.

It will open 'Oracle ODBC Driver Configuration' window.

Enter 'Data Source name' ( I entered "oracle")

Enter 'description' (I entered "SQL")

Select 'TNS Service Name' ( I selected 'DB02', my oracle database name) from combo box.

Enter userid (I used SCOTT).

Click 'Test Connection' Button.It will ask for a Password. Enter your password for Oracle.

If successful it will show 'Testing Connection' window with 'Connection Successful' written on it.

This completes our task of Connecting QTP with Oracle.

Now we will record a test.

Open a blank test.

Click on Record. When we click on Record, "Record and Run Settings" window opens up. Go to "Windows Applications" tab and choose first option "Record and run test on any open Windows based application." and click on ok.

Go to Insert (menu)->Checkpoint->Database Checkpoint

A 'Database Query Wizard' opens.

Select ' Specify SQL statement manually' from the Query definition area. Click Next. Click Create.

Go to 'Machine Data Source' Tab

Select Oracle from data source name. Click Ok. It will open 'Oracle ODBC Driver Connect'

Enter password. Click ok

It will come to Database Query Wizard window with 'Connection String' field filled with: "DSN=oracle;UID=SCOTT;PWD=TIGER;DBQ=DB02;DBA
=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;
LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;
MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;"

In the SQL Statement area type "select * from emp;". Click Finish.

It will open 'Database Checkpoint Properties' window with the result of the query. Click Ok.

Click Stop in order to stop the Recording.

In the Expert View, it just adds one line "DbTable("DbTable").Check CheckPoint "DbTable")"
This is the simplest database checkpoint example.

Lets run it.

Click on Run. ( we don't need to open any other window or application to run this as our Oracle is running at the back end as a service - default way in which it was installed- nothing special.)

When it is passed it will show following in the Result window:

Test Checkpoint-database Summary (where Checkpoint-database is the name with which I saved the test)
Run-Time Data Table

Checkpoint-database Iteration 1 (Row 1)
Action1 Summary

DbTable
Checkpoint "DbTable"

( when you click on this, in details it will show checked 112 cells (in your case number of cells may differ).

It means if you go to the oracle and add or delete any row and run this test again it will fail.)

Just try to think how QTP is comparing the expected results with the actual one, with the count of cells.

QTP Tutorials 7 - Bitmap Checkpoint

Now we will look at the bitmap checkpoint which is different from the image checkpoint.

Make sure that QTP and the Flight application are open.

STYLE A

1. Open a blank test.

2. Click on Record. When we click on Record, "Record and Run Settings" window
opens up. Go to "Windows Applications" tab and choose first option "Record and
run test on any open windows based application." and click Ok.
3. Go to Insert (menu)->Checkpoint->Bitmap Checkpoint
4. Click on the "Fly To" combo box.
5. "Object Selection- Bitmap Checkpoint Properties" window opens up. It will have "WinComboBox:Fly To" highlighted. Click ok
6. It will open "Bitmap Checkpoint Properties" window.
7. Change the "Checkpoint timeout" at the bottom of the window to 0 seconds, so that we will have no wait time while running the test.
8. Click ok.
9. Click stop to stop recording the test.

STYLE B

Above, after 3rd point, instead of clicking on the "Fly To" combo box, click somewhere in the empty space above the "Fly From" Combo box but below the line, i.e. in the "Flight Schedule" area.

"Object Selection- Bitmap Checkpoint Properties" window opens up. It will have "WinObject:Flight Schedule" highlighted. Click ok

It will open "Bitmap Checkpoint Properties" winodow. This time it will have "Flight schedule" area instead of just the "Fly To" combo box.

Now click on the "Select Area..." button. Mouse pointer will change so that you can select any area by dragging. Just select "Fly From" combo box by dragging.

Change the "Checkpoint timeout" at the bottom of the window to 0 seconds. so that we will have no wait time while running the test.

Click ok.

Click stop to stop recording the test.

Now you can run the test it will pass. To see how it stores the results, just fail the test. If you have recorded in the style A then just select any value in the "Fly To" combo box and then run the test. In the result window on the left hand side when you click on Checkpoint "Fly To:", it will show you the expected bitmap and actual bitmap on the right hand side. (note: it will show that only in case of Failed result)

QTP Tutorials 8 - Image Checkpoint

We will look at the Image checkpoint.

Open a blank test.

On your system under My Documents, there will be a folder named My Pictures, under this you will will find a folder- Sample Pictures( containing 4 pictures - Blue Hills, Sunset, Winter, Water lilies)

We will run this test with one of the image there- Sunset.

Go to My Documents->My Pictures-> Sample Pictures and right click on image
named 'Sunset' and open it with internet explorer.

Now only a new blank test and internet explorer with this image should be open.

Click on Record. When we click on Record, "Record and Run Settings" window opens up. Go to "Web" tab and choose first option "Record and run test on any open
browser." and click on Ok.

Go to Insert (menu)->Checkpoint->Standard Checkpoint(or press F12).The mouse pointer will become hand and QTP will be minimized.

Click on the image which is opened in the explorer.

It will open 'Object Selection Checkpoint Properties' window with Image: Sunset highlighted. Click Ok.

It will Open 'Image Checkpoint Properties' Window. In this window just uncheck all the property values like href, html tag etc and only check last property which is src.

Rest every thing will be default. Click OK.

Click stop to stop recording the test.

In the expert view it will just add one line
Browser("file:///C:/Documents%20and%20S").Page("file:///C:/Documents%20and%20S").Image("Sunset").Check CheckPoint("Sunset")

If you run it with that image open in internet explorer it will pass. This test is not intelligent enough. It is just checking that the image in the explorer is in the same location in which it was when the test was recorded and its name is Sunset. If you change the name of some other picture in that folder to Sunset and run the test with that it will also pass.

In this way you can test for some or all the properties of the image which it showed in the 'Image Checkpoint Properties' Window.[/b]

QTP Tutorials 9 - Text Checkpoint

Now we will look at the Text Checkpoint:

1. Open a blank test and a web page in offline mode like this below:


2. Click on Record. When we click on Record, "Record and Run Settings" window opens up. Go to "Web" tab and choose first option "Record and run test on any open browser." and click on ok.

3. Go to Insert (menu)->Checkpoint->Text Checkpoint.
The mouse pointer will become hand and QTP will be minimized.
Click on the first paragraph (which starts with-The page you are looking..) of that web page.

4. "Text Checkpoint Properties" window opens up. It will show the text to be checked in "Checkpoint Summary" area in red color and also show in blue color the text which is displayed before and after the selected text.

5. Click on Configure -here you can change your selected text, change before and after text and so on, but for now just click ok. At the bottom of the "Text Checkpoint Properties" window change 'Checkpoint timeout' to 0 seconds. Again Click ok to come out of "Text Checkpoint Properties" window.

6. Click on stop in order to stop recording.

Run the test and when it is passed just go to the results window and on the left hand side just expand every option and click on last option Checkpoint "Cannot find server". On the right hand side it will show you the details. Try to understand those.

QTP Tutorials 10 - Table Checkpoint

In this tutorial we will look at a table Checkpoint just to get familiar with it.

Open a blank test and also open a website "http://www.softwaretestingadvice.com/index.php" in offline mode.

This website has a table at the bottom of the page.

Click on Record. When we click on Record, "Record and Run Settings" window opens
up. Go to "Web" tab and choose first option "Record and run test on any open
browser." and click on ok.

Go to Insert (menu)->Checkpoint->Standard Checkpoint (or press F12).

The mouse pointer will become hand and QTP will be minimized.

Click somewhere inside the table.

"Object Selection - Checkpoint properties" window opens.


Select "WebTable: softwaretestingadvice" which has a table icon on its left, where "softwaretestingadvice" is the name of the table.

Click ok.

'Table Checkpoint properties' window opens. It will show all the rows and columns of the selected table. This time we will not do any extra setting. Just change the Checkpoint timeout at the bottom of this window to 0 seconds and click ok .

Click stop in order to stop recording.

Run the test and analyze the results in the result window, mainly the checkpoint results to see how QTP verifies the result. We will manipulate test results in later tutorials.

QTP Tutorials 11 - Checkpoint Return Value

We will use the Standard Checkpoint which we did in tutorial 4.

Open that test that contains the standard Checkpoint.
In the expert view of the test you will see only one line i.e.

Window("Flight Reservation").WinButton("FLIGHT").Check CheckPoint("FLIGHT")

Now we will make some changes in this one line so that it can return some value.

NOTE: Checkpoint always returns a value, it depends on us whether we capture it or not.

Lets now capture it.
Declare a variable and catch the return value in that variable:

Dim return
return = Window("Flight Reservation").WinButton("FLIGHT").Check CheckPoint("FLIGHT")
msgbox (return)


One thing more we need to do here is that we have to enclose Checkpoint ("FLIGHT") in brackets. So the final version looks like this:

Dim return
return = Window("Flight Reservation").WinButton("FLIGHT").Check (CheckPoint("FLIGHT"))
msgbox (return)

Now run the test and see the msgbox appearing with the return value.

QTP Tutorials 12 - Reusable Actions

In this tutorial we will see how to use more than one action in a test and how to call one action from another with in the same test.

Open a blank test. By default it will have Action1 in it (make sure you are in
the keyboard view).

Make sure that Action1 is selected/highlighted and click on the Expert View tab.

In the Expert View type:
msgbox ("my action 1")

Again when you go to keyword View and expand Action1 it will show you function call under it.

In that keyword View itself go to Insert (Menu) ->Call to New Action. 'Insert Call to New Action' Dialog box opens with Action2 as a default name of a new action. By default it will be added at the end of the test as this radio button is selected in the location area.

Click ok.

It will add Action2 to your test.

Make sure that Action2 is selected and click on the Expert View tab.

In the Expert View type:
msgbox ("my action 2")

Similarly insert a third Action.

After third action is added, select Action1(keyword view), right click on it and choose 'Action Properties'.

In the Action properties window that opens, check the 'Reusable action' checkbox at the bottom.

Click ok.

Now again highlight Action3 right click on it and choose 'Insert Call to Existing action'.

'Select action' dialog box appears. In this dialog box in the 'action' dropdown box it will have Action1 by default since we made only that action as reusable.
Just click ok.

In the keyword View where you can see all the three actions, make sure against Action3 it shows "Call to Action1 action" under Documentation.

Run the test. Three message boxes appear in succession showing 'my action 1',
'my action 2', and again 'my action 1'.

QTP Tutorials 13 - Importing Database Table

For this tutorial make sure you completed the Database checkpoint tutorial successfully. Because the connection we made in that tutorial with the oracle will be used here.

It is very simple to import data from database into Data Table.

Right-click somewhere inside the data table.

Go to Sheet->Import->From Database...
"Database Query Wizard" opens.

Click on the radio button "Specify SQL statement manually".

(make sure that "Maximum number of rows" checkbox is NOT checked)

Click Next

Click Create button.

"Select Data Source" window opens

Click "Machine Data Source" Tab

Select Oracle from there and click ok.

Enter password for oracle in the "Oracle ODBC Driver Connect window"

After entering password when you click on ok, it open "Database Query Wizard" window with 'Connection string' automatically filled with info like DSN, UID etc.

Enter SQL statement "select * from emp;" in SQL statement Box.

Click Finish and lo the data is there in the data table.

QTP Tutorials 14 - Script to create file

QTP Tutorials 14 - Script to create file

Now lets do some kind of processing with file system e.g. working with text, excel, word etc files from within the QTP.

For this tutorial you need to know VBScript FSO (File System Object).

The main purpose of the FSO is to access the file system of the computer.

File System Object model is:
DRIVE-----
|
FOLDER-----
|
FILE-----
|
TEXTSTREAM

or some people make it like this:

DRIVE-----
|
DRIVES----
|
FOLDER----
|
FOLDERS----
|
FILE----
|
FILES-----
|
TEXTSTREAM


These above objects have methods and properties. With these above objects you can obtain and work with the information about drives, folders, files etc like creating a new file, opening a file, writing into a file and much more.

Here we will see a very simple example how to create a text file from within QTP.
Dim fso, new_file
Set fso = createobject("scripting.filesystemobject") // an instance of filesystemobject is being created here. After an instance (fso) is created then we can use the methods (like createtextfile, CreateFolder etc) with that objects instance.
Set new_file = fso.createtextfile("c:\testfile.txt", True) //createtextfile is a
method to create a file and after creating a file it returns a TextStream object
that can be used to read from or write to the file.
new_file.writeline("hello world!")
new_file.close

Just write the above text in the expert view of a new blank test and run it. A new text file (testfile.txt) will be created with "hello world!" written in it.

Try to change the extention of testfile.txt to testfile.doc and see what happens.