1.
2. How to open the browser through script?
a) To open Firefox
SystemUtil.Run "firefox.exe", URL, , , SHOW_MAXIMIZED
b) To open Internet Explorer
SystemUtil.Run "iexplorer.exe", URL, , , SHOW_MAXIMIZED
a) To open Firefox
SystemUtil.Run "firefox.exe", URL, , , SHOW_MAXIMIZED
b) To open Internet Explorer
SystemUtil.Run "iexplorer.exe", URL, , , SHOW_MAXIMIZED
3. How to retrive the whole text of the page ?
var = Browser("title:= title").page("title:=title").Object.documentElement.innertext
OR
var = Browser("title:= title").page("title:=title").WebElement("html tag:=BODY").getROProperty("innertext")
var = Browser("title:= title").page("title:=title").Object.documentElement.innertext
OR
var = Browser("title:= title").page("title:=title").WebElement("html tag:=BODY").getROProperty("innertext")
4. How to add array and retrieve the Dictionary Object ?
Function DicDemo
Dim a, d, i, s, arr(2) ' Create some variables.
Set d = CreateObject("Scripting.Dictionary")
arr(0)=0
arr(1)=1
arr(2)=2
d.Add "Arr", arr
a = d.Items ' Get the items.
newarr=a(0)
For i=0 to ubound(newarr)
msgbox newarr(i)
Next
End Function
Call DicDemo
Function DicDemo
Dim a, d, i, s, arr(2) ' Create some variables.
Set d = CreateObject("Scripting.Dictionary")
arr(0)=0
arr(1)=1
arr(2)=2
d.Add "Arr", arr
a = d.Items ' Get the items.
newarr=a(0)
For i=0 to ubound(newarr)
msgbox newarr(i)
Next
End Function
Call DicDemo
5. How to retrieve the static text of the Dialog Box
Dialog("text:=MyWindow").Static(nativeclass:=Static").GetROProperty("text")
OR
Dialog("text:=MyWindow").Static(nativeclass:=Static","Index:=0").GetROProperty("text")
Dialog("text:=MyWindow").Static(nativeclass:=Static").GetROProperty("text")
OR
Dialog("text:=MyWindow").Static(nativeclass:=Static","Index:=0").GetROProperty("text")
6. How to store the double quoted text in the variable ?
strname= """puneet"""
msgbox strname
strname= chr(34)&"puneet"&chr(34)
msgbox strname
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
strname= """puneet"""
msgbox strname
strname= chr(34)&"puneet"&chr(34)
msgbox strname
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
7. How to close all the opened browsers ?
While Browser("CreationTime:=0").Exist
Browser("CreationTime:=0").Close
Wend
Creation time is a special property associated with the Browser Object. The value of this property show the order in which the browser has opened. The First Browser that opens receives the Value 0. And so when you close the first Browser the value of this property in all the browser decrease by 1.
While Browser("CreationTime:=0").Exist
Browser("CreationTime:=0").Close
Wend
Creation time is a special property associated with the Browser Object. The value of this property show the order in which the browser has opened. The First Browser that opens receives the Value 0. And so when you close the first Browser the value of this property in all the browser decrease by 1.
8. What is the file extension of the code file & object repository file in QTP?
Ans) for object repositories file the extension is .tsr
for code file the extension is .vbs
Ans) for object repositories file the extension is .tsr
for code file the extension is .vbs
10. What are the properties you would use for identifying a browser & page when using descriptive programming in QTP?
Ans) Title is the property we use.ex: Browser("Title:="xxx").page("Title:="xxxx").....
"Name" would be another property apart from "title" that we can use.
Ex: Browser ("name:="xxx"").page("name:="xxxx"").....
Ans) Title is the property we use.ex: Browser("Title:="xxx").page("Title:="xxxx").....
"Name" would be another property apart from "title" that we can use.
Ex: Browser ("name:="xxx"").page("name:="xxxx"").....
11. What are the different scripting languages you could use when working with QTP?
Ans) Visual Basic Script,XML,JavaScript,Java,HTML
Ans) Visual Basic Script,XML,JavaScript,Java,HTML
12. Give me an example where you have used a COM interface in your QTP project?
[as per your project]
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
[as per your project]
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
13. Explain the keyword createobject with an example.
Ans) Creates and returns a reference to an Automation object . create object creates handle to the instance of the specified object so that we program can use the methods on the specified object. It is used for implementing Automation(as defined by microsoft).
Ans) Creates and returns a reference to an Automation object . create object creates handle to the instance of the specified object so that we program can use the methods on the specified object. It is used for implementing Automation(as defined by microsoft).
14. Explain in brief about the QTP Automation Object Model.
Ans) Essentially all configuration and run functionality provided via the QuickTest interface is in some way represented in the QuickTest automation object model via objects, methods, and properties. Although a one-on-one comparison cannot always be made, most dialog boxes in QuickTest have a corresponding automation object, most options in dialog boxes can be set and/or retrieved using the corresponding object property, and most menu commands and other operations have corresponding automation methods.
You can use the objects, methods, and properties exposed by the QuickTest automation object model, along with standard programming elements such as loops and conditional statements to design your program
Ans) Essentially all configuration and run functionality provided via the QuickTest interface is in some way represented in the QuickTest automation object model via objects, methods, and properties. Although a one-on-one comparison cannot always be made, most dialog boxes in QuickTest have a corresponding automation object, most options in dialog boxes can be set and/or retrieved using the corresponding object property, and most menu commands and other operations have corresponding automation methods.
You can use the objects, methods, and properties exposed by the QuickTest automation object model, along with standard programming elements such as loops and conditional statements to design your program
15. What are the Features & Benefits of Quick Test Pro(QTP)..?
Ans) Operates stand-alone, or integrated into Mercury Business Process Testing and Mercury Quality Center.
Introduces next-generation “zero-configuration” Keyword Driven testing technology in QuickTest Professional 8.0 — allowing for fast test creation, easier maintenance, and more powerful data-driving capability
Identifies objects with Unique Smart Object Recognition, even if they change from build to build, enabling reliable unattended script execution
Collapses test documentation and test creation to a single step with Auto-documentation technology
Enables thorough validation of applications through a full complement of checkpoints
Ans) Operates stand-alone, or integrated into Mercury Business Process Testing and Mercury Quality Center.
Introduces next-generation “zero-configuration” Keyword Driven testing technology in QuickTest Professional 8.0 — allowing for fast test creation, easier maintenance, and more powerful data-driving capability
Identifies objects with Unique Smart Object Recognition, even if they change from build to build, enabling reliable unattended script execution
Collapses test documentation and test creation to a single step with Auto-documentation technology
Enables thorough validation of applications through a full complement of checkpoints
16. How to handle the exceptions using recovery scenario manager in QTP?
Ans) You can instruct QTP to recover unexpected events or errors that occurred in your testing environment during test run. Recovery scenario manager provides a wizard that guides you through the defining recovery scenario. Recovery scenario has three steps
1. Triggered Events
2. Recovery steps
3. Post Recovery Test-Run
Ans) You can instruct QTP to recover unexpected events or errors that occurred in your testing environment during test run. Recovery scenario manager provides a wizard that guides you through the defining recovery scenario. Recovery scenario has three steps
1. Triggered Events
2. Recovery steps
3. Post Recovery Test-Run
17. what is the use of Text output value in QTP?
Ans) Output values enable to view the values that the application takes during run time. When parameterized, the values change for each iteration.Thus by creating output values, we can capture the values that the application takes for each run and output them to the data table.
Ans) Output values enable to view the values that the application takes during run time. When parameterized, the values change for each iteration.Thus by creating output values, we can capture the values that the application takes for each run and output them to the data table.
18. QTP pros and cons
Ans) Pros:
• Ease of use.
• Simple interface.
• Presents the test case as a business workflow to the tester (simpler to understand).
• Numerous features.
• Uses a real programming language (Microsoft’s VBScript) with numerous resources available.
• QuickTest Pro is significantly easier for a non-technical person to adapt to and create working test cases, compared to WinRunner.
• Data table integration better and easier to use than WinRunner.
• Test Run Iterations/Data driving a test is easier and better implement with QuickTest.
• Parameterization easier than WinRunner.
• Can enhance existing QuickTest scripts without the “Application Under Test” being available; by using the ActiveScreen.
• Can create and implement the Microsoft Object Model (Outlook objects, ADO objects, FileSystem objects, supports DOM, WSH, etc.).
• Better object identification mechanism.
• Numerous existing functions available for implementation – both from within QuickTest Pro and VBScript.
• QTP supports .NET development environment (currently WinRunner 7.5 does not).
• XML support (currently WinRunner 7.5 does not).
• The Test Report is more robust in QuickTest compared to WinRunner.
• Integrates with TestDirector and WinRunner (can kick off WinRunner scripts from QuickTest).
Cons:
• Currently there are fewer resources (consultants and expertise) available due to QTP being a newer product on the market and because there is a greater Demand than Supply, thus fewer employee/consulting resources.
• Must know VBScript in order to program at all.
• Must be able to program in VBScript in order to implement the real advance testing tasks and to handle very dynamic situations.
• Need training to implement properly.
• The Object Repository (OR) and “testing environment” (paths, folders, function libraries, OR) can be difficult to understand and implement initially.
Ans) Pros:
• Ease of use.
• Simple interface.
• Presents the test case as a business workflow to the tester (simpler to understand).
• Numerous features.
• Uses a real programming language (Microsoft’s VBScript) with numerous resources available.
• QuickTest Pro is significantly easier for a non-technical person to adapt to and create working test cases, compared to WinRunner.
• Data table integration better and easier to use than WinRunner.
• Test Run Iterations/Data driving a test is easier and better implement with QuickTest.
• Parameterization easier than WinRunner.
• Can enhance existing QuickTest scripts without the “Application Under Test” being available; by using the ActiveScreen.
• Can create and implement the Microsoft Object Model (Outlook objects, ADO objects, FileSystem objects, supports DOM, WSH, etc.).
• Better object identification mechanism.
• Numerous existing functions available for implementation – both from within QuickTest Pro and VBScript.
• QTP supports .NET development environment (currently WinRunner 7.5 does not).
• XML support (currently WinRunner 7.5 does not).
• The Test Report is more robust in QuickTest compared to WinRunner.
• Integrates with TestDirector and WinRunner (can kick off WinRunner scripts from QuickTest).
Cons:
• Currently there are fewer resources (consultants and expertise) available due to QTP being a newer product on the market and because there is a greater Demand than Supply, thus fewer employee/consulting resources.
• Must know VBScript in order to program at all.
• Must be able to program in VBScript in order to implement the real advance testing tasks and to handle very dynamic situations.
• Need training to implement properly.
• The Object Repository (OR) and “testing environment” (paths, folders, function libraries, OR) can be difficult to understand and implement initially.
19. How can we do the Analysis of Results in QTP?
The Test Results window contains a graphic and text summary of the results of a run as well as details of each step in the run.
To view the results of a run:
1. If the Test Results window is not already open, click the Results button or choose Automation (menu) > Results.
Tip: You can open the Test Results window as a standalone application from the Start menu. To open the Test Results window, choose Start > Programs > QTP Professional > Test Results Viewer.
1. If there are test results for the current test, they are displayed in the Test Results window.
2. If there are several test results for the current test, or if there are no test results for the current test, the Open Test Results dialog box opens. You can select the test results for any test, or you can search for the test results (results.xml) file anywhere in the file system. Click Open to display the selected results in the Test Results window.
Note: Results files for QTP Professional are saved with a .qtp file extension.
The following example shows the results of a test with three iterations:

(Click on the above image to see the large view)
2. You can view the results of an individual iteration, an action, or a step. When you select a step in the test results tree, the right side of the Test Results window contains the details of the selected step. Depending on your settings in the Run tab of the Options dialog box, the right side of the Test Results window may be split into two panes, with the bottom pane containing a still image (or in selected cases, other data) of the selected step. The right pane may also contain a movie of your application.
3. Viewing Results of Tests Run From Quality Center
When you run test sets containing QTP tests from Quality Center, the Quality Center server opens QTP on the host computer and runs the tests from that computer. All run results are then saved to the default location for those tests.
You can view the results of QTP tests run from Quality Center. If your results include a movie of your application, the movie can be viewed in Quality Center.
The Test Results window contains a graphic and text summary of the results of a run as well as details of each step in the run.
To view the results of a run:
1. If the Test Results window is not already open, click the Results button or choose Automation (menu) > Results.
Tip: You can open the Test Results window as a standalone application from the Start menu. To open the Test Results window, choose Start > Programs > QTP Professional > Test Results Viewer.
1. If there are test results for the current test, they are displayed in the Test Results window.
2. If there are several test results for the current test, or if there are no test results for the current test, the Open Test Results dialog box opens. You can select the test results for any test, or you can search for the test results (results.xml) file anywhere in the file system. Click Open to display the selected results in the Test Results window.
Note: Results files for QTP Professional are saved with a .qtp file extension.
The following example shows the results of a test with three iterations:

(Click on the above image to see the large view)
2. You can view the results of an individual iteration, an action, or a step. When you select a step in the test results tree, the right side of the Test Results window contains the details of the selected step. Depending on your settings in the Run tab of the Options dialog box, the right side of the Test Results window may be split into two panes, with the bottom pane containing a still image (or in selected cases, other data) of the selected step. The right pane may also contain a movie of your application.
3. Viewing Results of Tests Run From Quality Center
When you run test sets containing QTP tests from Quality Center, the Quality Center server opens QTP on the host computer and runs the tests from that computer. All run results are then saved to the default location for those tests.
You can view the results of QTP tests run from Quality Center. If your results include a movie of your application, the movie can be viewed in Quality Center.
20. After creating the test, what is the purpose of running them?
The major Purpose of running the test scripts are Checking and testing the application. And confirm that there are no major bugs in the application and working fine as per the business rules.
Also we run the test scripts to update the test scripts by running the test in the update mode and debug the the script by running I debug mode.
The major Purpose of running the test scripts are Checking and testing the application. And confirm that there are no major bugs in the application and working fine as per the business rules.
Also we run the test scripts to update the test scripts by running the test in the update mode and debug the the script by running I debug mode.
21. why QTP is majorly used?
HP QTP Professional software provides functional and regression test automation for major software applications and environments, including next-generation development technologies, such as Windows® Presentation Foundation, Web services, Macromedia Flex, Ajax, Delphi, PowerBuilder, .NET, J2EE and enterprise resource planning (ERP), and customer relationship management (CRM) applications.
HP QTP Professional offers a fresh approach to automated testing: It deploys the concept of keyworddriven testing to radically simplify test creation and maintenance. Using keyword capabilities, your testers can build test cases by capturing flows directly from the application screens and applying robust capturing technology (record/replay). In addition, your power users get full access to the underlying test and object properties through an integrated scripting and debugging environment that is synchronized with the Keyword View capability for your complete testing cycle.
HP QTP Professional software provides functional and regression test automation for major software applications and environments, including next-generation development technologies, such as Windows® Presentation Foundation, Web services, Macromedia Flex, Ajax, Delphi, PowerBuilder, .NET, J2EE and enterprise resource planning (ERP), and customer relationship management (CRM) applications.
HP QTP Professional offers a fresh approach to automated testing: It deploys the concept of keyworddriven testing to radically simplify test creation and maintenance. Using keyword capabilities, your testers can build test cases by capturing flows directly from the application screens and applying robust capturing technology (record/replay). In addition, your power users get full access to the underlying test and object properties through an integrated scripting and debugging environment that is synchronized with the Keyword View capability for your complete testing cycle.
22. With HP QTP Professional, your quality assurance (QA) organization can:
- Empower the entire team to create sophisticated test suites with less training.
- Establish correct functionality across all environments, data sets, and business processes.
- Fully document and replicate defects for developers, helping them fix defects faster and meet production deadlines.
- Easily regression test ever-changing applications and environments.
- Deliver quality products and services and improve revenues and profitability.
- Enable tester workgroups to share automated testing assets across teams.
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
- Empower the entire team to create sophisticated test suites with less training.
- Establish correct functionality across all environments, data sets, and business processes.
- Fully document and replicate defects for developers, helping them fix defects faster and meet production deadlines.
- Easily regression test ever-changing applications and environments.
- Deliver quality products and services and improve revenues and profitability.
- Enable tester workgroups to share automated testing assets across teams.
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
23. I have a Microsoft Access database that contains data I would like to use in my test. How do I do this?
The Expert View enables you to access databases using ADO and ODBC. Below is a sample test that searches for books written by an author in the "Authors" table of the database.
Dim MyDB
Dim MyEng
Set MyEng = CreateObject("DAO.DBEngine.35")
Dim Td
Dim rs
' Specify the database to use.
Set MyDB = MyEng.OpenDatabase("BIBLIO.MDB")
' Read and use the name of the first 10 authors.
Set Td = MyDB.TableDefs("Authors")
Set rs = Td.OpenRecordset
rs.MoveFirst
For i = 1 To 10
Browser("Book Club").Page("Search Books").WebEdit("Author Name").Set rs("Author")
Browser("Book Club").Page("Search Books").WebButton("Search").Click
Next
The Expert View enables you to access databases using ADO and ODBC. Below is a sample test that searches for books written by an author in the "Authors" table of the database.
Dim MyDB
Dim MyEng
Set MyEng = CreateObject("DAO.DBEngine.35")
Dim Td
Dim rs
' Specify the database to use.
Set MyDB = MyEng.OpenDatabase("BIBLIO.MDB")
' Read and use the name of the first 10 authors.
Set Td = MyDB.TableDefs("Authors")
Set rs = Td.OpenRecordset
rs.MoveFirst
For i = 1 To 10
Browser("Book Club").Page("Search Books").WebEdit("Author Name").Set rs("Author")
Browser("Book Club").Page("Search Books").WebButton("Search").Click
Next
24. Can we create many external variable files with same names & different values?
Of course YES. For localization testing we are using this and this is very efficient way for localization testing.
With the same variable name and different variable values, one can create many external variable files. And using the different file each time, we can run the test as many times we want.
Of course YES. For localization testing we are using this and this is very efficient way for localization testing.
With the same variable name and different variable values, one can create many external variable files. And using the different file each time, we can run the test as many times we want.
25. Can we use Data Driver to parameterize the VBScript functions in QTP?
You cannot use the Data Driver to parameterize the values of arguments for user-defined methods or VBScript functions. []
Notes from From HP QTP User Guide:
Notes:
- When finding multiple occurrences of a selected value, QTP conducts a search that is case sensitive and searches only for exact matches. (It does not find values that include the selected value as part of a longer string.)
- You cannot use the Data Driver to parameterize the values of arguments for user-defined methods or VBScript functions.
You cannot use the Data Driver to parameterize the values of arguments for user-defined methods or VBScript functions. []
Notes from From HP QTP User Guide:
Notes:
- When finding multiple occurrences of a selected value, QTP conducts a search that is case sensitive and searches only for exact matches. (It does not find values that include the selected value as part of a longer string.)
- You cannot use the Data Driver to parameterize the values of arguments for user-defined methods or VBScript functions.
26. How can we add the same comment to every action that we create?
If you want to add the same comment to every action that you create, you can add the comment to an action template
To create an action template:
1. Create a text file containing the comments, function calls, and other statements that you want to include in your action template. The text file must be in the structure and format used in the Expert View.
2. Save the text file as ActionTemplate.mst in your \dat folder. All new actions you create contain the script lines from the action template.
Note: Only the file name ActionTemplate.mst is recognized as an action template.
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
If you want to add the same comment to every action that you create, you can add the comment to an action template
To create an action template:
1. Create a text file containing the comments, function calls, and other statements that you want to include in your action template. The text file must be in the structure and format used in the Expert View.
2. Save the text file as ActionTemplate.mst in your \dat folder. All new actions you create contain the script lines from the action template.
Note: Only the file name ActionTemplate.mst is recognized as an action template.
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
27. How can we check a current data value with a value stored in a database in QTP?
Date base Checkpoint in QTP: You create a database checkpoint based on the results of the query (result set) you defined on a database. You can create a check on a database to check the contents of the entire result set, or a part of it. QTP captures the current data from the database, saves this information as expected data, and inserts a database checkpoint into the test. This checkpoint is displayed in the Expert View as a DbTable.Check CheckPoint statement and as a step in the Keyword View, as follows:
(Click on the image to see clear view)

When you run the test, the database checkpoint compares the current data in the database to the expected data defined in the Database Checkpoint Properties dialog box. If the expected data and the current results do not match, the database checkpoint fails. You can view the results of the checkpoint in the Test Results window.
You can modify the expected data of a database checkpoint before you run your test. You can also make changes to the query in an existing database checkpoint. This can be useful if you move the database to a new location on the network.
Date base Checkpoint in QTP: You create a database checkpoint based on the results of the query (result set) you defined on a database. You can create a check on a database to check the contents of the entire result set, or a part of it. QTP captures the current data from the database, saves this information as expected data, and inserts a database checkpoint into the test. This checkpoint is displayed in the Expert View as a DbTable.Check CheckPoint statement and as a step in the Keyword View, as follows:
(Click on the image to see clear view)
When you run the test, the database checkpoint compares the current data in the database to the expected data defined in the Database Checkpoint Properties dialog box. If the expected data and the current results do not match, the database checkpoint fails. You can view the results of the checkpoint in the Test Results window.
You can modify the expected data of a database checkpoint before you run your test. You can also make changes to the query in an existing database checkpoint. This can be useful if you move the database to a new location on the network.
28. How can we check if an environment variable exists or not?
(Source: QA Forums)
When we use Environment("Param1").value then QTP expects the environment variable to be already defined.
But when we use Environment.value("Param1") then QTP will create a new internal environment variable if it does not exists already. So to be sure that variable exist in the environment try using Environment("Param1").value.
If you need to test for the existence of an environment variable, you might consider using:
if not "%var%"=="" @echo var=%var%
While this works, a better method is:
if defined var @echo var=%var%
Try this little test:
@echo off
setlocal
if not "%var%"=="" @echo line 3 %var%
if defined var @echo line 4 %var%
set var=hello world
if not "%var%"=="" @echo line 6 %var%
if defined var @echo line 7 %var%
endlocal
(Source: QA Forums)
When we use Environment("Param1").value then QTP expects the environment variable to be already defined.
But when we use Environment.value("Param1") then QTP will create a new internal environment variable if it does not exists already. So to be sure that variable exist in the environment try using Environment("Param1").value.
If you need to test for the existence of an environment variable, you might consider using:
if not "%var%"=="" @echo var=%var%
While this works, a better method is:
if defined var @echo var=%var%
Try this little test:
@echo off
setlocal
if not "%var%"=="" @echo line 3 %var%
if defined var @echo line 4 %var%
set var=hello world
if not "%var%"=="" @echo line 6 %var%
if defined var @echo line 7 %var%
endlocal
29. Can I store functions and subroutines in a function library?
You can define functions within an individual test, or you can create one or more VBScript function libraries containing your functions, and then call them from any test or use them in any component.
You can also register your functions as methods for QTP test objects. Your registered methods can override the functionality of an existing test object method for the duration of a run session, or you can register a new method for a test object class.
You can define functions within an individual test, or you can create one or more VBScript function libraries containing your functions, and then call them from any test or use them in any component.
You can also register your functions as methods for QTP test objects. Your registered methods can override the functionality of an existing test object method for the duration of a run session, or you can register a new method for a test object class.
30. How can we check the contents of tables in our application in QTP?
By adding table checkpoints to the test, we can check the content of tables displayed in the application. For example, we can check that a specified value is displayed in a certain cell. Certain environments also support checking the properties of the table object.
For example, a check that a table has the expected number of rows and columns. A table checkpoint can also be created by inserting a standard checkpoint on a table object.
By adding table checkpoints to the test, we can check the content of tables displayed in the application. For example, we can check that a specified value is displayed in a certain cell. Certain environments also support checking the properties of the table object.
For example, a check that a table has the expected number of rows and columns. A table checkpoint can also be created by inserting a standard checkpoint on a table object.
31. How we check the databases accessed by our application in QTP?
The contents of a database accessed by your application can be checked by Database Checkpoint. Database checkpoints are supported for all add-in environments
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
The contents of a database accessed by your application can be checked by Database Checkpoint. Database checkpoints are supported for all add-in environments
http://futurethoughtsllc.com/QTPInterviewQuestionsAnswers.aspx
No comments:
Post a Comment