Saturday, 5 February 2011

QTP @ GetTOProperties / GetTOProperty / SetTOProperty Demo

Leave a Comment


QTP @ GetTOProperties / GetTOProperty / SetTOProperty Demo


SystemUtil.Run "http://newtours.demoaut.com/"
wait(2)

'*******************************************
' Demo for the GetTOProperties()
'********************************************
'Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName")
Set MyEditProps=Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").GetTOProperties()
For i= 0 to MyEditProps.count-1
       strPropertyName=MyEditProps(i).Name
       strPropertyValue=MyEditProps(i).Value
       MsgBox "strPropertyName" &vbTab& strPropertyName &vbTab& "strPropertyValue"&vbTab& strPropertyValue
Next

'*******************************************
' Demo for the GetTOProperty()
'********************************************
MsgBox "Current Text of username:" &vbTab& (Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").GetTOProperty("text"))

Msgbox " Now I am assinging a new text value to the text property of the username"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").SetTOProperty "text","QuickTestQTP"
MsgBox "After Changing >> Current Text of username:" &vbTab& (Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").GetTOProperty("text"))

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "GAReddy"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "PWD"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 16,5
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Link("Home").Click
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2").Link("SIGN-OFF").Click

'*******************************************
' Demo for the GetTOProperties()
'********************************************
Set MyLinkProps=Browser("Welcome: Mercury Tours").Page("Sign-on: Mercury Tours").Link("Home").GetTOProperties()
For i= 0 to MyLinkProps.count-1
       strPropertyName=MyLinkProps(i).Name
       strPropertyValue=MyLinkProps(i).Value
       MsgBox "strPropertyName" &vbTab& strPropertyName &vbTab& "strPropertyValue"&vbTab& strPropertyValue
Next

Browser("Welcome: Mercury Tours").Page("Sign-on: Mercury Tours").Link("Home").Click


Read More...

QTP @ Recording Modes

Leave a Comment

QTP @ Recording Modes

Recording Modes
Recording Usage
Description
Normal Recording
Default Recording
 It’s the default recording mode
 Records AUT – Objects and Operations made on them
Context Recording
Objects could be like:
Browser(“”), Page(“”), WinEdit(“”), WinButton(“”)
Operations could be:
Set, Click, Activate, Type
Analog Recording
Coordinate based Recording
It enables you to record the exact mouse and keyboard operations you perform in relation to the screen (Co-ordinates).
Records exact mouse and key board movements.
Records every move of the mouse
Used while recording movements that cannot be recorded at object level
Screen: Desktop.RunAnalog "Track1”
Window Based Recording
It enables you to record the exact mouse and keyboard operations you perform in relation to the application window.
Window : Window("Microsoft Internet Explorer").RunAnalog "Track2”
Low Level Recording
Window
Records on any object whether or not QTP identifies those objects
Records all run-time objects as Window or WinObject
WinObject
Use while
If Objects are not recognized by QTP
If Exact object co-ordinates are important in test

Read More...

QTP @ Objects Classifications

Leave a Comment
QTP @ Objects Classifications

Object:
·         An Object is the one which exists.
·         Objects are identified by their logical names and physical descriptions.
·         With respect to any Web Applications, Objects are like Browser, Page, Frame, Table, Image, Text, WebButton, WebEdit, WebList and so on.

Test Object
·         Test Objects are those objects which are identified, captured and stored in the QTP's Object Repository (OR) by means of their logical names and physical descriptions
·         Logical names and Physical descriptions are meaning by objects names and their properties)
·         And these Test Objects are either manually added to QTP's Object Repository or they are indentified, captured and stored during recording time.
·         These Test Objects properties are retrieved and manipulated by GetTOProperties / GetTOProperrty / SetTOProperty methods
·         GetTOProperties / GetTOProperrty / SetTOProperty methods deal with QTP’s Object Repository > Objects properties / descriptions

Runtime Objects
·         Runtime Objects are those objects which resemble the Test Objects but then they may or may not change their properties during execution time ( RunTime)
·         QTP, during execution time / RunTime, uses the Test Objects properties (which are stored in QTP’s Object Repository) to identify them and to perform the methods / operations on them.
·         Objects descriptions / Properties are like : Class, Name, Text, Type, Value and so on.
·         Methods / Operations are like: Click, Activate, Set, SetSecure,
·         These RunTime Objects properties are retrieved by GetROProperty method
·         GetROProperty method deals with the AUT > Objects at the RunTime only.


Test Objects & their properties
·         Test Object  and their properties are identified , captured and stored in QTP's Object Repository at Recording time
·         QTP stores Object as Test Object, determining the class it fits.
·         For each test object class, QTP learns a list of mandatory properties.
·         Checks if the description learnt is enough to uniquely identify the object.
·         If it is not, QuickTest adds assistive properties, one by one, to the description until it has a unique description.
·         If, in case, these properties are not sufficient to indentify an object, then QTP  takes the additional Index or Coordinate properties to identify the objects
·         And, by incase, if QTP fails by all the way using above mechanism to identify the objects then the last trial is through the QTP’s sixth sense, called as Smart Identification.


Run Time Objects & their properties
·         Searches for a run-time object that exactly matches the description of the test object
·         It expects to find a perfect match for both the mandatory and any assistive properties of test object
·         Uses Smart Identification mechanism to identify an object, if the recorded description is not sufficient or not accurate.

Read More...

Wednesday, 19 January 2011

QTP - Files Comparison

Leave a Comment
'************************************************************************
' QTP - Compare Files
'************************************************************************
path="C:"
file1="MyFile1.txt"
file2="MyFile2.txt"
Call CompareFiles(path, file1, file2)

Public Function CompareFiles(path, file1, file2)
Const ForReading = 1, ForWriting = 2, BinaryCompare = 1
Dim fso, MyFile1, MyFile2, comp, ln1, ln2
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile1 = fso.OpenTextFile(path & "\\" & file1, ForReading)
Set MyFile2 = fso.OpenTextFile(path & "\\" & file2, ForReading)
set DiffFile=fso.createtextfile("c:\diif.txt")
i=0
While MyFile1.AtEndOfStream <> True
ln1 = MyFile1.ReadLine
i=i+1
Wend
j=0
While MyFile2.AtEndOfStream <> True
ln2 = MyFile2.ReadLine
j=j+1
Wend
If i<>j Then
     Reporter.ReportEvent 1, "Line Count ", "Line Count is not equal."
 else
 Reporter.ReportEvent 0, "Line Count ", "Line Count is equal."
End If
MyFile1.Close
MyFile2.Close
Set MyFile1 = fso.OpenTextFile(path & "\\" & file1, ForReading)
Set MyFile2 = fso.OpenTextFile(path & "\\" & file2, ForReading)

Do While ((MyFile1.AtEndOfStream <> True) and (MyFile2.AtEndOfStream <> True))
l1=MyFile1.Line
l2=MyFile2.Line
ln1 = MyFile1.ReadLine
ln2 = MyFile2.ReadLine

comp = strcomp( cstr(ln1),cstr( ln2), BinaryCompare)
If (comp <> 0) then
 DiffFile.writeline l1&cstr(ln1)&"    "&cstr(ln2)
End if
Loop

MyFile1.Close
MyFile2.Close
DiffFile.close

End Function

'************************************************************************
Read More...

QTP - Microsoft Office - Word

Leave a Comment
 QTP - Working with Word
'****************************************************
'Create a New Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
'**************************************************** 

'****************************************************
'Create and Save a Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Caption = "QuickTestQTP by GAReddy"
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.Font.Name = "Arial"
objSelection.Font.Size = "18"
objSelection.TypeText "GAReddy @ QTP - Demonstrating Word Creation and Saving"
objSelection.TypeParagraph()
objSelection.Font.Size = "14"
objSelection.TypeText "" & Date()
objSelection.TypeParagraph()
objSelection.TypeParagraph()
 objSelection.Font.Size = "10"
    objSelection.Font.Bold = True
    objSelection.TypeText "This is a sample text "
 objSelection.Font.Bold = True
    objSelection.TypeText "Http://QuickTestQTP.blogpsot.com"
    objSelection.Font.Bold = False
    objSelection.TypeText "Hey, this is GAReddy @ QuickTestQTP"
    objSelection.TypeParagraph()
    objSelection.Font.Bold = True
    objSelection.TypeText "Welcome to QuickTestQTP @ Http://QuickTestQTP.blogpsot.com "
    objSelection.Font.Bold = False
    objSelection.TypeText "GARreddy@QuickTestQTP"
    objSelection.TypeParagraph()
objDoc.SaveAs("C:\MyDoc.doc")
objWord.Quit
Set objWord=Nothing

'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objRange = objDoc.Range()
objDoc.Tables.Add objRange,1,3
Set objTable = objDoc.Tables(1)
objTable.Range.Font.Size = 10
objTable.Range.Style = "Table Contemporary"
x=2
objTable.Cell(x, 1).Range.Text = "Service Name"
objTable.Cell(x, 2).Range.text = "Display Name"
objTable.Cell(x, 3).Range.text = "State"
strComputer = "."
Set objWMIService = _
    GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objItem in colItems
    If x > 1 Then
        objTable.Rows.Add()
    End If
    objTable.Cell(x, 1).Range.Text = objItem.Name
    objTable.Cell(x, 2).Range.text = objItem.DisplayName
    objTable.Cell(x, 3).Range.text = objItem.State
    x = x + 1
Next
objDoc.SaveAs("C:\ProcessList2.doc")
objWord.Quit
Set objWord=Nothing
 '************************************************************************************
 Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objRange = objDoc.Range()
objDoc.Tables.Add objRange,1,4,1 ' 4 is no of columns on a table and 1 is the table visbile mode or else 0
Set objTable = objDoc.Tables(1)
x=1
strComputer = "."
Set objWMIService = _
    GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objItem in colItems
    If x > 1 Then
        objTable.Rows.Add()
    End If
    objTable.Cell(x, 1).Range.Font.Bold = True
    objTable.Cell(x, 1).Range.Text = objItem.Name
    objTable.Cell(x, 2).Range.text = objItem.DisplayName
    objTable.Cell(x, 3).Range.text = objItem.State
    x = x + 1
Next

objDoc.SaveAs("C:\ProcessList1.doc")
objWord.Quit
Set objWord=Nothing

'========
'****************************************************
'Display Service Information in a Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.TypeText "Services Report"
objSelection.TypeParagraph()
objSelection.TypeText "" & Now
objSelection.TypeParagraph()
objSelection.TypeParagraph()
strComputer = "."
Set objWMIService = _
    GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objItem in colItems
    objSelection.TypeText objItem.DisplayName & " -- " & objItem.State
    objSelection.TypeParagraph()
Next
objDoc.SaveAs("C:\ProcessList.doc")
objWord.Quit
Set objWord=Nothing
'****************************************************

'****************************************************
' Adding Formatted Text to  Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.Font.Name = "Arial"
objSelection.Font.Size = "18"
objSelection.TypeText "GAReddy @ QuickTest QTP"
objSelection.TypeText "Http://QuickTestQTP.blogpsot.com"
objSelection.TypeParagraph()
objSelection.Font.Size = "14"
objSelection.TypeText "" & Date()
objSelection.TypeParagraph()
objSelection.Font.Name = "Caliber"
objSelection.Font.Size = "28"
objSelection.TypeText " QuickTest QTP > Let's learn adding formated text to Word doc"
objSelection.TypeText "Http://QuickTestQTP.blogpsot.com"
objSelection.TypeParagraph()
objSelection.Font.Size = "14"
objSelection.TypeText "" & Date()
objSelection.TypeParagraph()

'****************************************************

'****************************************************
' Adding Formatted Table to  Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objRange = objDoc.Range()
objDoc.Tables.Add objRange,1,3
Set objTable = objDoc.Tables(1)
x=1
strComputer = "."
Set objWMIService = _
    GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objItem in colItems
    If x > 1 Then
        objTable.Rows.Add()
    End If
    objTable.Cell(x, 1).Range.Font.Bold = True
    objTable.Cell(x, 1).Range.Text = objItem.Name
    objTable.Cell(x, 2).Range.text = objItem.DisplayName
    objTable.Cell(x, 3).Range.text = objItem.State
    x = x + 1
Next
'****************************************************

Read More...

Wednesday, 12 January 2011

ISTQB Foundation Level Exam Papers

Leave a Comment
Read More...

ISTQB Foundation Level Exam Sample Paper - III

Leave a Comment
ISTQB Foundation level exam Sample paper - III

1.Software testing activities should start
a. as soon as the code is written
b. during the design  stage
c. when the requirements have been formally documented
d. as soon as possible in the development life cycle

2.Faults found by users are due to:
a. Poor quality software
b. Poor software and poor testing
c. bad luck
d. insufficient time for testing

3.What is the main reason for testing software before releasing it?
a. to show that system will work after release
b. to decide when the software is of sufficient quality to release
c. to find as many bugs as possible before release
d. to give information for a risk based decision about release

4. which of the following statements is not true
a. performance testing can be done during unit testing as well as during the testing of whole system
b. The acceptance test does not necessarily include a regression test
c. Verification  activities should not involve testers (reviews, inspections etc)
d. Test environments should be as similar to production environments as possible

5. When reporting faults found to developers, testers should be:
a. as polite, constructive and helpful as possible
b. firm about insisting that a bug is not a “feature” if it should be fixed
c. diplomatic, sensitive to the way they may react to criticism
d. All of the above

6.In which order should tests be run?
a. the most important tests first
b. the most difficult tests first(to allow maximum time for fixing)
c. the easiest tests first(to give initial confidence)
d. the order they are thought of

7. The later in the development life cycle a fault is discovered, the more expensive it is to fix. why?
a. the documentation is poor, so it takes longer to find out what the software is doing.
b. wages are rising
c. the  fault has been built into more documentation,code,tests, etc
d. none of the above

8. Which is not true-The black box tester
a. should be able to understand a functional specification or requirements document
b. should be able to understand the source code.
c. is highly motivated to find faults
d. is creative to find the system’s weaknesses

9. A test design technique is
a. a process for selecting test cases
b. a process for determining expected outputs
c. a way to measure the quality of software
d. a way to measure in a test plan what has to be done

10. Testware(test cases, test dataset)
a. needs configuration management just like requirements, design and code
b. should be newly constructed for each new version of the software
c. is needed only until the software is released into production or use
d. does not need to be documented and commented, as it does not form part of the released
software system

11. An incident logging system
a only records defects
b is of limited value
c is a valuable source of project information during testing if it contains all incidents
d. should be used only by the test team.

12. Increasing the quality of the software, by better development methods, will affect the time needed for testing (the test phases) by:
a. reducing test time
b. no change
c. increasing test time
d. can’t say

13. Coverage measurement
a. is nothing to do with testing
b. is a partial measure of test thoroughness
c. branch coverage should be mandatory for all software
d. can only be applied at unit or module testing, not at system testing

14. When should you stop testing?
a. when time for testing has run out.
b. when all planned tests have been run
c. when the test completion criteria have been met
d. when no faults have been found by the tests run

15. Which of the following is true?
a. Component testing should be black box, system testing should be white box.
b. if u find a lot of bugs in testing, you should not be very confident about the quality of software
c. the fewer bugs you find,the better your testing was
d. the more tests you run, the more bugs you will find.

16. What is the important criterion in deciding what testing technique to use?
a.  how well you know a particular technique
b. the objective of the test
c. how appropriate the technique is for testing the application
d. whether there is a tool to support the technique

17. If the pseudo code below were a programming language ,how many tests are required to achieve 100% statement coverage?
1.If x=3 then
2.     Display_messageX;
3.       If y=2 then
4.          Display_messageY;
5.       Else
6.          Display_messageZ;
7.Else
8.     Display_messageZ;
a. 1
b. 2
c. 3
d. 4

18. Using the same code example as question 17,how many  tests are required to achieve 100% branch/decision coverage?
a. 1
b. 2
c. 3
d. 4

19 Which of the following is NOT a type of non-functional test?
a. State-Transition
b. Usability
c. Performance
d. Security

20. Which of the following  tools would you use to detect a memory leak?
a. State analysis
b. Coverage analysis
c. Dynamic analysis
d. Memory analysis

21. Which  of the following is NOT a standard related to testing?
a.  IEEE829
b.  IEEE610
c.  BS7925-1
d.  BS7925-2

22.which of the following is the component test standard?
a. IEEE 829
b. IEEE 610
c. BS7925-1
d. BS7925-2

23 which of the following statements are true?
a. Faults in program specifications are the most expensive to fix.
b. Faults in code are the most expensive to fix.
c. Faults in requirements are the most expensive to fix
d. Faults in designs are the most expensive to fix.

24. Which of the following is not the integration strategy?
a. Design based
b. Big-bang
c. Bottom-up
d. Top-down

25. Which of the following is a black box design technique?
a. statement testing
b. equivalence partitioning
c. error- guessing
d. usability testing

26. A program with high cyclometic complexity  is almost likely to be:
a. Large
b. Small
c. Difficult to write
d. Difficult to test

27. Which of the following is a static test?
a. code inspection
b. coverage analysis
c. usability assessment
d. installation test

28. Which of the following is the odd one out?
a. white box
b. glass box
c. structural
d. functional

29. A program validates a numeric field as follows:
values less than 10 are rejected, values between 10 and 21 are accepted, values greater than or equal to 22 are rejected
which of the following input values cover all of the equivalence partitions?
a. 10,11,21
b.   3,20,21
c.   3,10,22
d. 10,21,22

30. Using  the same specifications as question 29, which of the following covers the MOST boundary values?
a. 9,10,11,22
b. 9,10,21,22
c. 10,11,21,22
d. 10,11,20,21


Answers of all above Questions:
Question Answer
1.   d
2.   b
3.   d
4.   c
5.   d
6.   a
7.   c
8.   b
9.   a
10.  a
11.  c
12.  a
13.  b
14.  c
15.  b
16.  b
17.  c
18.  c
19.  a
20.  c
21.  b
22.  d
23.  c
24.  a
25.  b
26.  d
27.  a
28.  d
29.  c
30.  b

Read More...

Saturday, 5 February 2011

QTP @ GetTOProperties / GetTOProperty / SetTOProperty Demo



QTP @ GetTOProperties / GetTOProperty / SetTOProperty Demo


SystemUtil.Run "http://newtours.demoaut.com/"
wait(2)

'*******************************************
' Demo for the GetTOProperties()
'********************************************
'Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName")
Set MyEditProps=Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").GetTOProperties()
For i= 0 to MyEditProps.count-1
       strPropertyName=MyEditProps(i).Name
       strPropertyValue=MyEditProps(i).Value
       MsgBox "strPropertyName" &vbTab& strPropertyName &vbTab& "strPropertyValue"&vbTab& strPropertyValue
Next

'*******************************************
' Demo for the GetTOProperty()
'********************************************
MsgBox "Current Text of username:" &vbTab& (Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").GetTOProperty("text"))

Msgbox " Now I am assinging a new text value to the text property of the username"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").SetTOProperty "text","QuickTestQTP"
MsgBox "After Changing >> Current Text of username:" &vbTab& (Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").GetTOProperty("text"))

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "GAReddy"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "PWD"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 16,5
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Link("Home").Click
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2").Link("SIGN-OFF").Click

'*******************************************
' Demo for the GetTOProperties()
'********************************************
Set MyLinkProps=Browser("Welcome: Mercury Tours").Page("Sign-on: Mercury Tours").Link("Home").GetTOProperties()
For i= 0 to MyLinkProps.count-1
       strPropertyName=MyLinkProps(i).Name
       strPropertyValue=MyLinkProps(i).Value
       MsgBox "strPropertyName" &vbTab& strPropertyName &vbTab& "strPropertyValue"&vbTab& strPropertyValue
Next

Browser("Welcome: Mercury Tours").Page("Sign-on: Mercury Tours").Link("Home").Click


QTP @ Recording Modes


QTP @ Recording Modes

Recording Modes
Recording Usage
Description
Normal Recording
Default Recording
 It’s the default recording mode
 Records AUT – Objects and Operations made on them
Context Recording
Objects could be like:
Browser(“”), Page(“”), WinEdit(“”), WinButton(“”)
Operations could be:
Set, Click, Activate, Type
Analog Recording
Coordinate based Recording
It enables you to record the exact mouse and keyboard operations you perform in relation to the screen (Co-ordinates).
Records exact mouse and key board movements.
Records every move of the mouse
Used while recording movements that cannot be recorded at object level
Screen: Desktop.RunAnalog "Track1”
Window Based Recording
It enables you to record the exact mouse and keyboard operations you perform in relation to the application window.
Window : Window("Microsoft Internet Explorer").RunAnalog "Track2”
Low Level Recording
Window
Records on any object whether or not QTP identifies those objects
Records all run-time objects as Window or WinObject
WinObject
Use while
If Objects are not recognized by QTP
If Exact object co-ordinates are important in test

QTP @ Objects Classifications

QTP @ Objects Classifications

Object:
·         An Object is the one which exists.
·         Objects are identified by their logical names and physical descriptions.
·         With respect to any Web Applications, Objects are like Browser, Page, Frame, Table, Image, Text, WebButton, WebEdit, WebList and so on.

Test Object
·         Test Objects are those objects which are identified, captured and stored in the QTP's Object Repository (OR) by means of their logical names and physical descriptions
·         Logical names and Physical descriptions are meaning by objects names and their properties)
·         And these Test Objects are either manually added to QTP's Object Repository or they are indentified, captured and stored during recording time.
·         These Test Objects properties are retrieved and manipulated by GetTOProperties / GetTOProperrty / SetTOProperty methods
·         GetTOProperties / GetTOProperrty / SetTOProperty methods deal with QTP’s Object Repository > Objects properties / descriptions

Runtime Objects
·         Runtime Objects are those objects which resemble the Test Objects but then they may or may not change their properties during execution time ( RunTime)
·         QTP, during execution time / RunTime, uses the Test Objects properties (which are stored in QTP’s Object Repository) to identify them and to perform the methods / operations on them.
·         Objects descriptions / Properties are like : Class, Name, Text, Type, Value and so on.
·         Methods / Operations are like: Click, Activate, Set, SetSecure,
·         These RunTime Objects properties are retrieved by GetROProperty method
·         GetROProperty method deals with the AUT > Objects at the RunTime only.


Test Objects & their properties
·         Test Object  and their properties are identified , captured and stored in QTP's Object Repository at Recording time
·         QTP stores Object as Test Object, determining the class it fits.
·         For each test object class, QTP learns a list of mandatory properties.
·         Checks if the description learnt is enough to uniquely identify the object.
·         If it is not, QuickTest adds assistive properties, one by one, to the description until it has a unique description.
·         If, in case, these properties are not sufficient to indentify an object, then QTP  takes the additional Index or Coordinate properties to identify the objects
·         And, by incase, if QTP fails by all the way using above mechanism to identify the objects then the last trial is through the QTP’s sixth sense, called as Smart Identification.


Run Time Objects & their properties
·         Searches for a run-time object that exactly matches the description of the test object
·         It expects to find a perfect match for both the mandatory and any assistive properties of test object
·         Uses Smart Identification mechanism to identify an object, if the recorded description is not sufficient or not accurate.

Wednesday, 19 January 2011

QTP - Files Comparison

'************************************************************************
' QTP - Compare Files
'************************************************************************
path="C:"
file1="MyFile1.txt"
file2="MyFile2.txt"
Call CompareFiles(path, file1, file2)

Public Function CompareFiles(path, file1, file2)
Const ForReading = 1, ForWriting = 2, BinaryCompare = 1
Dim fso, MyFile1, MyFile2, comp, ln1, ln2
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile1 = fso.OpenTextFile(path & "\\" & file1, ForReading)
Set MyFile2 = fso.OpenTextFile(path & "\\" & file2, ForReading)
set DiffFile=fso.createtextfile("c:\diif.txt")
i=0
While MyFile1.AtEndOfStream <> True
ln1 = MyFile1.ReadLine
i=i+1
Wend
j=0
While MyFile2.AtEndOfStream <> True
ln2 = MyFile2.ReadLine
j=j+1
Wend
If i<>j Then
     Reporter.ReportEvent 1, "Line Count ", "Line Count is not equal."
 else
 Reporter.ReportEvent 0, "Line Count ", "Line Count is equal."
End If
MyFile1.Close
MyFile2.Close
Set MyFile1 = fso.OpenTextFile(path & "\\" & file1, ForReading)
Set MyFile2 = fso.OpenTextFile(path & "\\" & file2, ForReading)

Do While ((MyFile1.AtEndOfStream <> True) and (MyFile2.AtEndOfStream <> True))
l1=MyFile1.Line
l2=MyFile2.Line
ln1 = MyFile1.ReadLine
ln2 = MyFile2.ReadLine

comp = strcomp( cstr(ln1),cstr( ln2), BinaryCompare)
If (comp <> 0) then
 DiffFile.writeline l1&cstr(ln1)&"    "&cstr(ln2)
End if
Loop

MyFile1.Close
MyFile2.Close
DiffFile.close

End Function

'************************************************************************

QTP - Microsoft Office - Word

 QTP - Working with Word
'****************************************************
'Create a New Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
'**************************************************** 

'****************************************************
'Create and Save a Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Caption = "QuickTestQTP by GAReddy"
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.Font.Name = "Arial"
objSelection.Font.Size = "18"
objSelection.TypeText "GAReddy @ QTP - Demonstrating Word Creation and Saving"
objSelection.TypeParagraph()
objSelection.Font.Size = "14"
objSelection.TypeText "" & Date()
objSelection.TypeParagraph()
objSelection.TypeParagraph()
 objSelection.Font.Size = "10"
    objSelection.Font.Bold = True
    objSelection.TypeText "This is a sample text "
 objSelection.Font.Bold = True
    objSelection.TypeText "Http://QuickTestQTP.blogpsot.com"
    objSelection.Font.Bold = False
    objSelection.TypeText "Hey, this is GAReddy @ QuickTestQTP"
    objSelection.TypeParagraph()
    objSelection.Font.Bold = True
    objSelection.TypeText "Welcome to QuickTestQTP @ Http://QuickTestQTP.blogpsot.com "
    objSelection.Font.Bold = False
    objSelection.TypeText "GARreddy@QuickTestQTP"
    objSelection.TypeParagraph()
objDoc.SaveAs("C:\MyDoc.doc")
objWord.Quit
Set objWord=Nothing

'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objRange = objDoc.Range()
objDoc.Tables.Add objRange,1,3
Set objTable = objDoc.Tables(1)
objTable.Range.Font.Size = 10
objTable.Range.Style = "Table Contemporary"
x=2
objTable.Cell(x, 1).Range.Text = "Service Name"
objTable.Cell(x, 2).Range.text = "Display Name"
objTable.Cell(x, 3).Range.text = "State"
strComputer = "."
Set objWMIService = _
    GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objItem in colItems
    If x > 1 Then
        objTable.Rows.Add()
    End If
    objTable.Cell(x, 1).Range.Text = objItem.Name
    objTable.Cell(x, 2).Range.text = objItem.DisplayName
    objTable.Cell(x, 3).Range.text = objItem.State
    x = x + 1
Next
objDoc.SaveAs("C:\ProcessList2.doc")
objWord.Quit
Set objWord=Nothing
 '************************************************************************************
 Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objRange = objDoc.Range()
objDoc.Tables.Add objRange,1,4,1 ' 4 is no of columns on a table and 1 is the table visbile mode or else 0
Set objTable = objDoc.Tables(1)
x=1
strComputer = "."
Set objWMIService = _
    GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objItem in colItems
    If x > 1 Then
        objTable.Rows.Add()
    End If
    objTable.Cell(x, 1).Range.Font.Bold = True
    objTable.Cell(x, 1).Range.Text = objItem.Name
    objTable.Cell(x, 2).Range.text = objItem.DisplayName
    objTable.Cell(x, 3).Range.text = objItem.State
    x = x + 1
Next

objDoc.SaveAs("C:\ProcessList1.doc")
objWord.Quit
Set objWord=Nothing

'========
'****************************************************
'Display Service Information in a Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.TypeText "Services Report"
objSelection.TypeParagraph()
objSelection.TypeText "" & Now
objSelection.TypeParagraph()
objSelection.TypeParagraph()
strComputer = "."
Set objWMIService = _
    GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objItem in colItems
    objSelection.TypeText objItem.DisplayName & " -- " & objItem.State
    objSelection.TypeParagraph()
Next
objDoc.SaveAs("C:\ProcessList.doc")
objWord.Quit
Set objWord=Nothing
'****************************************************

'****************************************************
' Adding Formatted Text to  Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.Font.Name = "Arial"
objSelection.Font.Size = "18"
objSelection.TypeText "GAReddy @ QuickTest QTP"
objSelection.TypeText "Http://QuickTestQTP.blogpsot.com"
objSelection.TypeParagraph()
objSelection.Font.Size = "14"
objSelection.TypeText "" & Date()
objSelection.TypeParagraph()
objSelection.Font.Name = "Caliber"
objSelection.Font.Size = "28"
objSelection.TypeText " QuickTest QTP > Let's learn adding formated text to Word doc"
objSelection.TypeText "Http://QuickTestQTP.blogpsot.com"
objSelection.TypeParagraph()
objSelection.Font.Size = "14"
objSelection.TypeText "" & Date()
objSelection.TypeParagraph()

'****************************************************

'****************************************************
' Adding Formatted Table to  Word Document
'****************************************************
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objRange = objDoc.Range()
objDoc.Tables.Add objRange,1,3
Set objTable = objDoc.Tables(1)
x=1
strComputer = "."
Set objWMIService = _
    GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objItem in colItems
    If x > 1 Then
        objTable.Rows.Add()
    End If
    objTable.Cell(x, 1).Range.Font.Bold = True
    objTable.Cell(x, 1).Range.Text = objItem.Name
    objTable.Cell(x, 2).Range.text = objItem.DisplayName
    objTable.Cell(x, 3).Range.text = objItem.State
    x = x + 1
Next
'****************************************************

Wednesday, 12 January 2011

ISTQB Foundation Level Exam Papers

ISTQB

ISTQB Foundation Level Exam Papers



ISTQB Foundation Level Exam Sample Paper - III

ISTQB Foundation level exam Sample paper - III

1.Software testing activities should start
a. as soon as the code is written
b. during the design  stage
c. when the requirements have been formally documented
d. as soon as possible in the development life cycle

2.Faults found by users are due to:
a. Poor quality software
b. Poor software and poor testing
c. bad luck
d. insufficient time for testing

3.What is the main reason for testing software before releasing it?
a. to show that system will work after release
b. to decide when the software is of sufficient quality to release
c. to find as many bugs as possible before release
d. to give information for a risk based decision about release

4. which of the following statements is not true
a. performance testing can be done during unit testing as well as during the testing of whole system
b. The acceptance test does not necessarily include a regression test
c. Verification  activities should not involve testers (reviews, inspections etc)
d. Test environments should be as similar to production environments as possible

5. When reporting faults found to developers, testers should be:
a. as polite, constructive and helpful as possible
b. firm about insisting that a bug is not a “feature” if it should be fixed
c. diplomatic, sensitive to the way they may react to criticism
d. All of the above

6.In which order should tests be run?
a. the most important tests first
b. the most difficult tests first(to allow maximum time for fixing)
c. the easiest tests first(to give initial confidence)
d. the order they are thought of

7. The later in the development life cycle a fault is discovered, the more expensive it is to fix. why?
a. the documentation is poor, so it takes longer to find out what the software is doing.
b. wages are rising
c. the  fault has been built into more documentation,code,tests, etc
d. none of the above

8. Which is not true-The black box tester
a. should be able to understand a functional specification or requirements document
b. should be able to understand the source code.
c. is highly motivated to find faults
d. is creative to find the system’s weaknesses

9. A test design technique is
a. a process for selecting test cases
b. a process for determining expected outputs
c. a way to measure the quality of software
d. a way to measure in a test plan what has to be done

10. Testware(test cases, test dataset)
a. needs configuration management just like requirements, design and code
b. should be newly constructed for each new version of the software
c. is needed only until the software is released into production or use
d. does not need to be documented and commented, as it does not form part of the released
software system

11. An incident logging system
a only records defects
b is of limited value
c is a valuable source of project information during testing if it contains all incidents
d. should be used only by the test team.

12. Increasing the quality of the software, by better development methods, will affect the time needed for testing (the test phases) by:
a. reducing test time
b. no change
c. increasing test time
d. can’t say

13. Coverage measurement
a. is nothing to do with testing
b. is a partial measure of test thoroughness
c. branch coverage should be mandatory for all software
d. can only be applied at unit or module testing, not at system testing

14. When should you stop testing?
a. when time for testing has run out.
b. when all planned tests have been run
c. when the test completion criteria have been met
d. when no faults have been found by the tests run

15. Which of the following is true?
a. Component testing should be black box, system testing should be white box.
b. if u find a lot of bugs in testing, you should not be very confident about the quality of software
c. the fewer bugs you find,the better your testing was
d. the more tests you run, the more bugs you will find.

16. What is the important criterion in deciding what testing technique to use?
a.  how well you know a particular technique
b. the objective of the test
c. how appropriate the technique is for testing the application
d. whether there is a tool to support the technique

17. If the pseudo code below were a programming language ,how many tests are required to achieve 100% statement coverage?
1.If x=3 then
2.     Display_messageX;
3.       If y=2 then
4.          Display_messageY;
5.       Else
6.          Display_messageZ;
7.Else
8.     Display_messageZ;
a. 1
b. 2
c. 3
d. 4

18. Using the same code example as question 17,how many  tests are required to achieve 100% branch/decision coverage?
a. 1
b. 2
c. 3
d. 4

19 Which of the following is NOT a type of non-functional test?
a. State-Transition
b. Usability
c. Performance
d. Security

20. Which of the following  tools would you use to detect a memory leak?
a. State analysis
b. Coverage analysis
c. Dynamic analysis
d. Memory analysis

21. Which  of the following is NOT a standard related to testing?
a.  IEEE829
b.  IEEE610
c.  BS7925-1
d.  BS7925-2

22.which of the following is the component test standard?
a. IEEE 829
b. IEEE 610
c. BS7925-1
d. BS7925-2

23 which of the following statements are true?
a. Faults in program specifications are the most expensive to fix.
b. Faults in code are the most expensive to fix.
c. Faults in requirements are the most expensive to fix
d. Faults in designs are the most expensive to fix.

24. Which of the following is not the integration strategy?
a. Design based
b. Big-bang
c. Bottom-up
d. Top-down

25. Which of the following is a black box design technique?
a. statement testing
b. equivalence partitioning
c. error- guessing
d. usability testing

26. A program with high cyclometic complexity  is almost likely to be:
a. Large
b. Small
c. Difficult to write
d. Difficult to test

27. Which of the following is a static test?
a. code inspection
b. coverage analysis
c. usability assessment
d. installation test

28. Which of the following is the odd one out?
a. white box
b. glass box
c. structural
d. functional

29. A program validates a numeric field as follows:
values less than 10 are rejected, values between 10 and 21 are accepted, values greater than or equal to 22 are rejected
which of the following input values cover all of the equivalence partitions?
a. 10,11,21
b.   3,20,21
c.   3,10,22
d. 10,21,22

30. Using  the same specifications as question 29, which of the following covers the MOST boundary values?
a. 9,10,11,22
b. 9,10,21,22
c. 10,11,21,22
d. 10,11,20,21


Answers of all above Questions:
Question Answer
1.   d
2.   b
3.   d
4.   c
5.   d
6.   a
7.   c
8.   b
9.   a
10.  a
11.  c
12.  a
13.  b
14.  c
15.  b
16.  b
17.  c
18.  c
19.  a
20.  c
21.  b
22.  d
23.  c
24.  a
25.  b
26.  d
27.  a
28.  d
29.  c
30.  b