Tuesday, November 13, 2007

Interview Question-Part2

Automated Testing Interview Questions - Mercury QuickTest Professional
General knowledge or software automation is your best guide when you answer these QTP questions:


1)How to create basic scripts from a manual test case in QTP?
2)How to add verification steps to tests?
3)How to use custom checkpoints in QuickTest Professional?
4)How to use database checkpoints?
5)How to manage objects in the Object Repository in QuickTest Professional?
6)How to parameterize tests?
7)How to customize checkpoints with parameters?
8)How to run an integrated test scenario using Multiple Actions?
9)How to use the QTP Step Generator?
10)How to use debug tools?
11)How to create virtual objects?
12)What is the difference between QTP Analog and Low-Level recording modes?
13)Please describe Object and Smart Identification?
14)What is the difference between Per-Action vs. Shared Object Repositories?


Ask yourself the following questions that covers the basics of the QTP functionality:

1)What are the main benefits of QuickTest Professional?
2)What is Add-In Manager in QTP?
3)What QTP Options do you know?
4)How to Identify Objects and their Properties?
5)What is the Object Repository?
6)How to Add Synchronization Steps?
7)How to Set the Global Sync Timeouts in QTP?
8)What is Regular Expressions and how to use them?
9)How to Create Data-Driven tests?
10)What are Checkpoints with Parameters?
11)What is the difference between Global and Local Data Sheets?
12)How to create Reusable and Multiple Actions?
13)Describe the benefits of the Step Generator.
14)What are the main options that are available in the Step Generator dialog box?
15)What is Exception Handling?
16)What is Recovery Scenario Wizard in QTP?
17)Describe the purpose of a Database Checkpoint
18)What is the difference between Analog Recording and Low-Level Recording in automation tools?
19)Describe Per-Action vs. Shared Object Repositories
20)Describe how and when Smart Identification is used
21)Please identify when the Expert View is useful.
22)How can we translate the steps between the Keyword and Expert Views?
23)How software automation specialist enter steps in the Expert View?
24)How can you retrieve an object's properties?
25)How software tester can use constants and variables in scripts?
26)How can you write the scripts that operate on different objects depending on run-time information?
27)How QA specialist can identify when programmatic descriptions are useful?
28)What VBScript operators, functions, and statements do you use in QuickTest Professional?
29)How to retrieve data from application objects?
30)Please list some VBScript looping statements and explain when each is useful.
31)How to use the DataTable object to store run-time data and drive actions?
32)How to build scripts that access data from external sources?
33)How can you create new subroutines and functions?
34)How we can build a new and associate library of functions?
35)Please identify when to handle run errors programmatically.
36)What are the main ways of managing QTP run errors?
37)Did you use abort loops, procedures, iterations, actions, and runs?


Detailed QTP questions with answers. Some of them were used for Mercury QTP certification.

1)What is the purpose of loading an add-in?
answer: To enable QTP to recognize objects of your applications.
2))What does the Missing Resources pane show?

answer: Missing of any external function or repository
3)During designing a test, what do you need to take into account to ensure that the test can be reiterated?

answer: Set initial and end conditions as part of the test,
4)How do you determine whether a test failed or passed?

answer: Go to the result screen and check
5)What does the export Test to Zip feature do?
6)What is the object class?
7)What is the step to change the logical name of the object recorded by QTP?

answer: Open the Object Repository.
8)What is Object Spy used for?

answer: View the runtime object methods and properties.
9)When QuickTest Pro enable you to specify a synchronization points?

answer: While recording a test and after recording a test
10)What is the function of a synchronization point?

answer: To provide more time for an object to process before moving to the next step in a test.
11)What can you use a synchronization point for?

answer: To provide more time for an object to process in the real environment.
12)When QTP enable you to specify a synchronization points?

answer: While recording and after recording a test
13)Why do you use regular expressions in your test?

answer: To define a checkpoint that can accept a range of values.
14)How do you determine if a checkpoint is use in a test?

answer: 1. A checkmark appears next to the step in the results.
2. The OPERATION column of KEYWORD VIEW lists the operation as CHECK
3. A check mark appears at each level of the Test Summary tree.
15)What is standard checkpoint?

answer: A mechanism to check the property of an object.
16)How many ways we have to set checkpoints?

Answer:1. In the recording mode
2. In the insert mode in keyword view screen (right mouse click)
3. In an active screen mode
17)What is the purpose of the input parameters?

answer: Drives a variety of data values through a test.
18)How can you make a checkpoint flexible?

answer: Create and insert a regular expression or input data to the parametr using the design-time Data Table
19)Which action can you use only within the test which it was created?

answer: Regular action; Regular (non – reusable) action; External action.
20)Where do you set action iterations for the specified action?

answer: Action Call Properties
21)What is created by default with a new action?

answer: Local object repository, Local data sheet and Folder (tree structure)
22)What is Step generator used for?

answer: Function and object listing
23)Which field in the Step Generator dialog box is optional, depending on the object and operation?

answer: Document step
24)How can you insert the ReportEvent feature?

answer: Using New step or Step generator.
25)In which dialog box do you check Web to load add-ins for a Web application?

answer: In Add-in manager.
26)Why do you create a text checkpoint on a Web application?
27)When do we use custom checkpoints?

answer: Standard checkpoints does not works
28)When do we use breakpoints?

answer: stop execution to verify values of variables.
29)Why do we require a database checkpoint in test?

answer: To test database as the backend
30)Which query tool is used to create a query in Database Query Wizard?

answer: MS query
31)What does the source property of a database test object specify?

answer: Connection string; username; password;
32)Name the object repository type in which QuickTest pro saves the information about objects during a record session, by default?

answer: per action (local)
33)Where are shared objects stored in QuckTest Professional?

answer: in .TSR files
39)Which object repository type can you create using Object Repository Manager?

answer: Global
40)When do we use a low level recording to record a test?

answer: If QTP does not any objects at all
41)When do we use analog recording to record a test?

answer: To record mouse movement for example online signature.
42)How does a bitmap checkpoint work?
43)What is a virtual object?

answer: A generic object mapped to the standard object.
44)What are the components of a recovery scenario?

answer: Trigger, Recovery, Post-recovery
45)When do you select the Object State trigger event type?

answer: On the “Select Trigger Event” screen
46)Can you select multiple recovery operations for the trigger event?

answer: Yes
47)When does an optional step execute in a test?

answer: When this object exists. ( this is build for negative testing)
48)What are 3 categories of steps in Step Generator?

answer: Function; Test object; Utility object
49)What is the function of the auto expend VBScript syntax feature in Expert view?

answer: to help with programming
50)What is the function of the VBScript With statement?

answer: Edit -> advance -> Apply with
51)What is the function of breakpoints?

answer: Allows debug the code.
52)What are the advantages of retrieving the values of the properties of an object?

answer: Create checkpoints; create your own logic; populate a datasheet faster.
53)Which command will you use in QuickTest Pro to retrieve the value of the enabled property of a button in an application?

answer: RO property (runtime)
54)What is the difference between constants and variables?

answer: constant can’t be changed and variable can be changed.
55)What are dynamic objects?

answer: Dynamic objects are changed during time of test execution.
56)What is the function of a Description object?

answer: To hold a property value.
57)What are the steps involved in building a programmatic description of dynamic objects?

answer: 1. Identify the object class. 2. Select object properties. 3. Create a programmatic description.
58)What are the additional uses of programmatic descriptions?

answer: bypass the object repository.
59)What is the function of the Is operator?

answer: Compare two objects.
60)What is the function of the Set operator?

answer: Set a variable to an object.
61)What does the split function do?

answer: Returns a zero-based, one-dimensional array containing a specified number of substrings.
62)What are the VBScript functions that invoke dialog boxes to interact with users?

answer: 1 . InputBox function: Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns the contents of the text box.
2. MsgBox Function: Displays a message in a dialog box, waits for the user to click a button, and returns a value indicating which button the user clicked.
63)Which method do you use to retrieve data from the WebList object?
64)What is difference between the For..Next and While..Wend statements?
65)What is the function of GetSheet method in Data Table?

answer: Only sets focus on the current sheet.
66)Which property do you use to retrieve or assign data into a cell in a Data Table object?
67)Give a scenario in which you may require to access data from external sources.
68)What are the methods used to import data from and export data into a MS Excel worksheet? answer: import sheet and export sheet
69)What is the purpose of the Close method?
70)What are the methods of the TextStream object that are used for reading from a text file?
71)What are the advantages of creating a procedure in a test?

answer: to increase usability
72)What is the difference between a subroutine and function procedure?

answer: Function is always return a value
73)What is the advantage of associating a procedure with a test object?
74)How do you create a library file?

Interview Questions-Part1

1. What are SetToProperty, SetRoProperty, GetToProperty scripting?
2. What is the difference between version 6.5 and 8.2?
3. What is the difference between Normal mode and Fast mode?
4. How do you invoke the application through QTP?
5. How do you close the Task Manager through QTP?
6. How will you load the object during run time?
7. How will you handle the situation when object is not captured during record?
8. What is test object?
9. How QTP recognizes the objects stored in object repository
10. What is post recovery scenario?
11. What is reusable action and how the same can be implemented (process)
12. How will u integrate oracle with QTP
13. How QTP integrate with application
14. What is object repository?
15. What are all the fields present in object repository?
16. What is smart identification?
17. What are the mandatory properties for a text box (scenario?)
18. What is Checkpoint?
19. What is object?
20. What are the properties of object?
21. What is Action?
22. What will be there in Keyword view and Expert View?
23. What is regular expression how will u implement it
24. Where the checkpoints are stored
25. What is database checkpoint, how will u parameterize the database from separate data table
26. How will u handle application crash using recovery scenario manager (Step By Step Process)
27. What is Virtual Object?
28. What is the difference between calling a function and reusing an action?
29. How QTP support all types of applications (Platforms)
30. What is the difference between application testing and product testing?
31. What is throw object?
32. What is Run-time Data?
33. How will you enhance the script?
34. Can objects recogonised without repository?
35. Where did u automate in ur project
36. Any challenge that faced in ur project
37. Batch test,run action
38. Purpose of automation
39. Diff ways of parameterising
40. Error handled other than recovery scenario manager
41. Diff betw WR and QTP
42. What kind of errors can b handled?
43. How you used DDT in QTP?
44. Difference between keyword driven test and DDT?
45. How did you use regular expression in QTP and also in Win Runner?
46. How do you learn the object in QTP?
47. How will you handle custom object in QTP?
48. Differences in QTP and Win Runner.

49. Give us the Definition for Integration Testing, Regression Testing System Testing
50. How will you report the bug and explain the defect tracking Sheet you handled?
51. What In-string function will do?
52. What is L-trim function will do?
53. WinRunner and QTP difference?
54. In website, protocol has been changed http: to https what you will do? Tell me your Approach?
55. What Framework you are following?
56. How to load the object repository at run time?
57. How much strong on VB and C?
58. How to compare the 2 strings?
59. What is the Silent mode in WinRunner?
60. Have you worked with Quality Center?
61. Have you used Test Director?
62. What is QTP Test Frame work?
63. Definitions for Keyword view and Tree View?
64. What is Smart Identification?
65. What is Object Repository?
66. What is your experience level in QTP?
67. What is your Role and Responsibilities In QTP with your current organisation?


68. Explain the following:
· Import and Export of files.
· Random testing of 500 test cases.
· Invoking of application
· Opening notepad in QTP &Writing of Test Result in Notepad.
· Merging of Two Repositories
· Datafile / Verification of data file when file is not available in local system.
· Business process component / Types and usage.
· Opening of notepad in QTP to write and execute the coding.
· How to find local host name using QTP
· How to handle exception when data table is not available in local host system or Path is not correct (Explain Statement with example)
· Runtime dynamic settings.
· Script generated after applying database check point.
· Script generated at the time of setting runtime property.
· Types of exception handling and script for that.
· Scripting

Wednesday, August 22, 2007

Descriptive Programming

Introduction:
This document demonstrates the usage of Descriptive programming in QTP 8.20. It also discusses situations where Descriptive programming can be used. Using Descriptive Programming automation scripts can be created even if the application has not been developed.


Descriptive Programming:
Whenever QTP records any action on any object of an application, it adds some description on how to recognize that object to a repository of objects called object repository. QTP cannot take action on an object until unless its object description is in the Object Repository. But descriptive programming provides a way to perform action on objects which are not in Object repository

Object Identification:
To identify an object during the play back of the scripts QTP stores some properties which helps QTP to uniquely identify the object on a page. Below screen shots shows an example Object repository:

Now to recognize a radio button on a page QTP had added 2 properties the name of the radio button and the html tag for it. The name the left tree view is the logical name given by QTP for the object. This can be changed as per the convenience of the person writing the test case. QTP only allows UNIQUE logical name under same level of hierarchy. As we see in the snapshot the two objects in Browser->Page node are “WebTable” and “testPath”, they cannot have the same logical name. But an object under some other node can have the same name. Now with the current repository that we have, we can only write operation on objects which are in the repository. Some of the example operations are given below

Browser("Browser").Page("Page").WebRadioGroup ("testPath").Select "2"

cellData = Browser("Browser").Page("Page").WebTable ("WebTable").GetCellData (1,1)

Browser("Example2").Page("Page").WebEdit("testPath").Set "Test text"

When and Why to use Descriptive programming?

Below are some of the situations when Descriptive Programming can be considered useful:
1. The objects in the application are dynamic in nature and need special handling to identify the object. The best example would be of clicking a link which changes according to the user of the application, Ex. “Logout <>”.
2. When object repository is getting huge due to the no. of objects being added. If the size of Object repository increases too much then it decreases the performance of QTP while recognizing a object.
3. When you don’t want to use object repository at all. Well the first question would be why not Object repository? Consider the following scenario which would help understand why not Object repository

Scenario 1: Suppose we have a web application that has not been developed yet. Now QTP for recording the script and adding the objects to repository needs the application to be up, that would mean waiting for the application to be deployed before we can start of with making QTP scripts. But if we know the descriptions of the objects that will be created then we can still start off with the script writing for testing

Scenario 2: Suppose an application has 3 navigation buttons on each and every page. Let the buttons be “Cancel”, “Back” and “Next”. Now recording action on these buttons would add 3 objects per page in the repository. For a 10 page flow this would mean 30 objects which could have been represented just by using 3 objects. So instead of adding these 30 objects to the repository we can just write 3 descriptions for the object and use it on any page.

4. Modification to a test case is needed but the Object repository for the same is Read only or in shared mode i.e. changes may affect other scripts as well.
5. When you want to take action on similar type of object i.e. suppose we have 20 textboxes on the page and there names are in the form txt_1, txt_2, txt_3 and so on. Now adding all 20 the Object repository would not be a good programming approach.

How to use Descriptive programming?

There are two ways in which descriptive programming can be used
1. By creating properties collection object for the description.
2. By giving the description in form of the string arguments.

1. By creating properties collection object for the description.

To use this method you need first to create an empty description

Dim obj_Desc ‘Not necessary to declare
Set obj_Desc = Description.Create

Now we have a blank description in “obj_Desc”. Each description has 3 properties “Name”, “Value” and “Regular Expression”.

obj_Desc(“html tag”).value= “INPUT”

When you use a property name for the first time the property is added to the collection and when you use it again the property is modified. By default each property that is defined is a regular expression. Suppose if we have the following description

obj_Desc(“html tag”).value= “INPUT”
obj_Desc(“name”).value= “txt.*”

This would mean an object with html tag as INPUT and name starting with txt. Now actually that “.*” was considered as regular expression. So, if you want the property “name” not to be recognized as a regular expression then you need to set the “regularexpression” property as FALSE

obj_Desc(“html tag”).value= “INPUT”
obj_Desc(“name”).value= “txt.*”
obj_Desc(“name”).regularexpression= “txt.*”

This is how of we create a description. Now below is the way we can use it

Browser(“Browser”).Page(“Page”).WebEdit(obj_Desc).set “Test”

When we say .WebEdit(obj_Desc) we define one more property for our description that was not earlier defined that is it’s a text box (because QTPs WebEdit boxes map to text boxes in a web page).

If we know that we have more than 1 element with same description on the page then we must define “index” property for the that description

Consider the HTML code given below




Now the html code has two objects with same description. So distinguish between these 2 objects we will use the “index” property. Here is the description for both the object

For 1st textbox:
obj_Desc(“html tag”).value= “INPUT”
obj_Desc(“name”).value= “txt_Name”
obj_Desc(“index”).value= “0”

For 2nd textbox:
obj_Desc(“html tag”).value= “INPUT”
obj_Desc(“name”).value= “txt_Name”
obj_Desc(“index”).value= “1”

Consider the HTML Code given below:




We can use the same description for both the objects and still distinguish between both of them
obj_Desc(“html tag”).value= “INPUT”
obj_Desc(“name”).value= “txt_Name”

When I want to refer to the textbox then I will use the inside a WebEdit object and to refer to the radio button I will use the description object with the WebRadioGroup object.

Browser(“Browser”).Page(“Page”).WebEdit(obj_Desc).set “Test” ‘Refers to the text box
Browser(“Browser”).Page(“Page”).WebRadioGroup(obj_Desc).set “Test” ‘Refers to the radio button

But if we use WebElement object for the description then we must define the “index” property because for a webelement the current description would return two objects.

Hierarchy of test description:

When using programmatic descriptions from a specific point within a test object hierarchy, you must continue to use programmatic descriptions
from that point onward within the same statement. If you specify a test object by its object repository name after other objects in the hierarchy have
been described using programmatic descriptions, QuickTest cannot identify the object.

For example, you can use Browser(Desc1).Page(Desc1).Link(desc3), since it uses programmatic descriptions throughout the entire test object hierarchy.
You can also use Browser("Index").Page(Desc1).Link(desc3), since it uses programmatic descriptions from a certain point in the description (starting
from the Page object description).

However, you cannot use Browser(Desc1).Page(Desc1).Link("Example1"), since it uses programmatic descriptions for the Browser and Page objects but
then attempts to use an object repository name for the Link test object (QuickTest tries to locate the Link object based on its name, but cannot
locate it in the repository because the parent objects were specified using programmatic descriptions).

Getting Child Object:

We can use description object to get all the objects on the page that matches that specific description. Suppose we have to check all the checkboxes present on a web page. So we will first create an object description for a checkboxe and then get all the checkboxes from the page

Dim obj_ChkDesc

Set obj_ChkDesc=Description.Create
obj_ChkDesc(“html tag”).value = “INPUT”
obj_ChkDesc(“type”).value = “checkbox”

Dim allCheckboxes, singleCheckBox

Set allCheckboxes = Browse(“Browser”).Page(“Page”).ChildObjects(obj_ChkDesc)

For each singleCheckBox in allCheckboxes

singleCheckBox.Set “ON”

Next

The above code will check all the check boxes present on the page. To get all the child objects we need to specify an object description i.e. we can’t use the string arguments that will be discussed later in the 2nd way of using the programming description.

Possible Operation on Description Object

Consider the below code for all the solutions
Dim obj_ChkDesc

Set obj_ChkDesc=Description.Create
obj_ChkDesc(“html tag”).value = “INPUT”
obj_ChkDesc(“type”).value = “checkbox”

Q: How to get the no. of description defined in a collection
A: obj_ChkDesc.Count ‘Will return 2 in our case

Q: How to remove a description from the collection
A: obj_ChkDesc.remove “html tag” ‘would delete the html tag property from the collection

Q: How do I check if property exists or not in the collection?
A: The answer is that it’s not possible. Because whenever we try to access a property which is not defined its automatically added to the collection. The only way to determine is to check its value that is use a if statement “if obj_ChkDesc(“html tag”).value = empty then”.

Q: How to browse through all the properties of a properties collection?
A: Two ways
1st:
For each desc in obj_ChkDesc
Name=desc.Name
Value=desc.Value
RE = desc.regularexpression
Next
2nd:
For i=0 to obj_ChkDesc.count - 1
Name= obj_ChkDesc(i).Name
Value= obj_ChkDesc(i).Value
RE = obj_ChkDesc(i).regularexpression
Next

2. By giving the description in form of the string arguments.

You can describe an object directly in a statement by specifying property:=value pairs describing the object instead of specifying an object’s
name. The general syntax is:

TestObject("PropertyName1:=PropertyValue1", "..." , "PropertyNameX:=PropertyValueX")

TestObject—the test object class could be WebEdit, WebRadioGroup etc….

PropertyName:=PropertyValue—the test object property and its value. Each property:=value pair should be separated by commas and quotation
marks. Note that you can enter a variable name as the property value if you want to find an object based on property values you retrieve during a run session.

Consider the HTML Code given below:




Now to refer to the textbox the statement would be as given below

Browser(“Browser”).Page(“Page”).WebEdit(“Name:=txt_Name”,”html tag:=INPUT”).set “Test”

And to refer to the radio button the statement would be as given below

Browser(“Browser”).Page(“Page”).WebRadioGroup(“Name:=txt_Name”,”html tag:=INPUT”).set “Test”

If we refer to them as a web element then we will have to distinguish between the 2 using the index property

Browser(“Browser”).Page(“Page”).WebElement(“Name:=txt_Name”,”html tag:=INPUT”,”Index:=0”).set “Test” ‘ Refers to the textbox
Browser(“Browser”).Page(“Page”).WebElement(“Name:=txt_Name”,”html tag:=INPUT”,”Index:=1”).set “Test” ‘ Refers to the radio button


Reference:
1. “Mercury QuickTest Professional, User’s Guide, Version 8.0.1”
Author :Tarun Lalwani

Links For CompleteTestng

Links to software testing information
Automated Testing Methodology: (working on it)

Agile Testing Methodology and XP Programming:
http://www.testing.com/cgi-bin/blog/2003/09/25%20-%20agile-testing-project-6

Agile testing directions: technology-facing product critiques - Brian Marick
http://www.context-driven-testing.com/

The Seven Basic Principles of the Context-Driven School - Brian Marick

Books that are setting the pace in the industry:
"Software Testing In The Real World" by Ed Kit
Book Review"
The Complete Guide to Software Testing" by Bill Hetzel
Book Review

CSTE Certification Exam Study Materials:

Certified Software Test Engineer Body Of Knowledgewww.softwarecertifications.com/cstebok/cstebok.htm

eNews Letters of interest to testers: (working on it)

General Testing Body Of Knowledge:
www.softwarecertifications.com/cstebok/cstebok.htm
www.qualitydigest.com/july98/html/cste.html
www.softwarecertifications.com/cstebok/cstebok.htm
www.qaimea.com/certification/certify.html
www.qaiindia.com/Certification/note1.htm
rapidsqa.com/pages/353345
www.iqaa.org/certifications/cert-self-study/index.php
www.asq.org/cert/types/csqe/bok.html

Load Testing - Stress Testing - Volume Testing - Performance Testing links


www.testingfaqs.org/t-load.html
http://sourceforge.net/projects/dieseltest
http://sourceforge.net/projects/deluge
http://hammerhead.sourceforge.net/
http://opensourcetesting.org/performance.php
http://sourceforge.net/
http://www.grove.co.uk/Tool_Information/Choosing_Tools.html
www.softwareqatest.com/qatweb1.html#LOAD
www.sqa-test.com/toolpage.html


News Groups for QA/QC:
QA Forums
www.qaforums.com/
Sticky Minds
http://www.stickyminds.com

Professional Organizations:

Quality Assurance Institute
http://www.qaiusa.com
American Society For Qualit
y
www.asq.org
Software Quality Engineering
www.sqe.com

Quality Assurance:

Recognized Quality Assurance certifications that are desirable:
Certified Software Quality Analyst (CSQA)
www.softwarecertifications.com/qai_cqa.htm
American Society for Quality Certification (ASQ)
http://www.asq.org/
Quality Improvement Associate Certification (CQIA)
http://search.msn.com/results.aspx?h=105&FORM=AS5&q=Quality+Improvement+Associate+Certification
Six Sigma Black Belt Certification (SSBB)
http://www.asq.org/certification/six-sigma/
Certified Manager of Software Quality (CMSQ)
http://www.asq.org/certification/manager-of-quality/index.html
Certified Test Manager (CTM)
www.testinginstitute.com/ctm.php
Certified Software Project Manager (CSPM)
www.softwarecertifications.com/qai_cspm.htm

Quality Control:
Certification Desirable:

Certified Software Test Professional (CSTP) QAI
www.testinginstitute.com/cstp.php
Certified Software Tester (CSTE) QAI
www.softwarecertifications.com/qai_cste.htm
International Software Testing Qualifications Board (ISTQB)
www.istqb.org
Certified Quality Engineer (CQE)
www.cqeweb.com
Center For Quality of Management (CQM)
www.cqm.org

Just as a side note it is important to understand the difference between QA and QC:

Normally Quality Assurance is a manager’s responsibility and is a staff position. It entails working on improving process in such a way that it would prevent future defects from happening. Quality Assurance in the industry is referred to as the work of prevention. A Quality Control Analyst would be classified more as a statition than as a tester, whose job is to build quality into the organization through continuous improvement of processes rather than into the product going out the door through testing for defects.
A Quality Control Test Engineer is a line position and is normally done by test engineers. Quality Control is detecting defects that have already occurred. Thus in the industry Quality Control is referred to as the work of detection.
A Quality Assurance Analyst normally would not do testing. A Quality Assurance Analyst would be engaged in working either as a manger or with managers on improvement of processes that would keep defects from happening. A Quality Assurance Analyst would study metrics and look for trends. They would be a facilitator, coordinator, educator, quality planner and measurement analyst. Risk analysis and Cost of Quality studies are done by Quality Control Analysts. Testing of the application for Quality Control is done by Test Engineers. However in most smaller businesses, a Quality Assurance Analyst would also double as a Test Engineer!

Resources Links of interest to testers:
www.aptest.com/resources.html

Trade Journals of interest to testers:
Better Software Magazine(was STQE)
www.stickyminds.com/BetterSoftware/magazine.asp
Sticky Minds (on line magazine)
www.stickyminds.com
Crosstalk (free)
www.stsc.hill.af.mil/crosstalk
The Journal of the Quality Assurance Institute (QAI)
www.qaiusa.com

American Society For Quality (have several trade journals all accessible from their web page)
www.asq.org/
Quality Progress
Six Sigma Forum Magazine
Quality Management Journal (QMJ)
Journal of Quality Technology (JQT)
Software Quality Professional (SQP)
Quality EngineeringTechnometricsTHE INFORMED OUTLOOKAQP's Journal for Quality and Participation (JQP)

Recommended Reading List:
The Complete Guide to Software Testing By Bill Hetzel ISBN: 0471565679
Software Testing in the Real World : Improving the Process by Edward Kit ISBN: 0-201-87756-2
Inroads to Software Quality by Alka Jarvis and Vern Crandall ISBN 0132384035
CMM Implementation Guide CMM Implementation Guide by Kim Caputo ISBN 0201379384
Making Process Improvement Work by Neil S. Potter and Mary E. Sakry ISBN 020177577
8Software Testing by Ron Patton ISBN 0672319837Political Savvy by John R. DeLuca ISBN 0966763602S
oftware Test Automation by Mark Fewster and Dorothy Graham ISBN 0201331403
Testing Computer Software by Cam Kaner, Jack Falk, Hugn Quoc Nguyen ISBN 1-85032-847-1
How to Break Software by James A. Whittaker ISBN 0-201-79619-8
Evvective Methods for Software Testing, Second Edition by William E. Perry ISBN 0-471-35418-X



Tuesday, August 14, 2007

Interview Q&A

1. What are the Features and Benefits of Quick Test Pro(QTP)..?
1. Key word driven testing
2. Suitable for both client server and web based application
3. Vb script as the scriot language
4. Better error handling mechanism
5. Excellent data driven testing features

2. Where can I get Quck Test pro(QTP Pro) software.. ?
This is Just for Information purpose Only. Introduction to QuickTest Professional 8.0, Computer Based Training: Please find the step to get QuickTest Professional 8.0 CBT Step by Step Tutorial and Evaluation copy of the software. The full CBT is 162 MB. You will have to create account to be able to download evaluation copies of CBT and Software.

3. How to handle the exceptions using recovery secnario manager in Qtp?
You can instruct QTP to recover unexpected events or errors that occured 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

4. what is the use of Text output value in Qtp?
Output values enable to view the values that the application talkes during run time.When paramaterised, 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.

5. How to use the Object spy in QTP 8.0 version?
There are two ways to Spy the objects in QTP 1) Thru file toolbar ---In the File ToolBar click on the last toolbar button (an icon showing a person with hat). 2) Tru Object repository Dialog ---In Objectrepository dialog click on the button"object spy..." In the Object spy Dialog click on the button showing hand symbol. the pointer now changes in to a hand symbol and we have to point out the object to spy the state of the object if at all the object is not visible..or window is minimised then Hold the Ctrl button and activate the required window to and release the Ctrl button.

6. What is the file extension of the code file and object repository file in QTP?
File extension of -- Per test object rep :- filename.mtr --
Shared Oject rep :- filename.tsr
Code file extension id script.mts

7. Explain the concept of object repository and how QTP recognises objects?
Object Repository: displays a tree of all objects in the current component or in the current action or entire test( depending on the object repository mode you selected). we can view or modify the test object description of any test object in the repository or to add new objects to the repository. Quicktest learns the default property values and determines in which test object class it fits.If it is not enough it adds assistive properties, one by one to the description until it has compiled the unique description.If no assistive properties are available, then it adds a special Ordianl identifier such as objects location onthe page or in the source code.

8. What are the properties you would use for identifying a browser and page when using descriptive programming ? "name" would be another property apart from "title" that we can use. OR We can also use the property "micClass". ex: Browser("micClass:=browser").page("micClass:=page")....

9. What are the different scripting languages you could use when working with QTP ?
Visual Basic (VB),XML,JavaScript,Java,HTML

10. Give me an example where you have used a COM interface in your QTP project?

11. Few basic questions on commonly used Excel VBA functions.
common functions are: Coloring the cell Auto fit cell setting navigation from link in one cell to other saving

12. Explain the keyword createobject with an example.
Creates and returns a reference to an Automation object syntax: CreateObject(servername.typename [, location]) Arguments servername:Required. The name of the application providing the object. typename : Required. The type or class of the object to create. location : Optional. The name of the network server where the object is to be created.

13. Explain in brief about the QTP Automation Object Model.
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.

14. How to handle dynamic objects in QTP?
QTP has a unique feature called Smart Object Identification/recognition. QTP generally identifies an object by matching its test object and run time object properties. QTP may fail to recognise the dynamic objects whose properties change during run time. Hence it has an option of enabling Smart Identification, wherein it can identify the objects even if their properties changes during run time. Check this out- If QuickTest is unable to find any object that matches the recorded object description, or if it finds more than one object that fits the description, then QuickTest ignores the recorded description, and uses the Smart Identification mechanism to try to identify the object. While the Smart Identification mechanism is more complex, it is more flexible, and thus, if configured logically, a Smart Identification definition can probably help QuickTest identify an object, if it is present, even when the recorded description fails. The Smart Identification mechanism uses two types of properties: Base filter properties—The most fundamental properties of a particular test object class; those whose values cannot be changed without changing the essence of the original object. For example, if a Web link's tag was changed from to any other value, you could no longer call it the same object. Optional filter properties—Other properties that can help identify objects of a particular class as they are unlikely to change on a regular basis, but which can be ignored if they are no longer applicable.

15. What is a Run-Time Data Table? Where can I find and view this table?
In QTP, there is data table used , which is used at runtime. -In QTP, select the option View->Data tabke. -This is basically an excel file, which is stored in the folder of the test created, its name is Default.xls by default.

16. How does Parameterization and Data-Driving relate to each other in QTP?
To datadrive we have to parameterize.i.e. we have to make the constant value as parameter, so that in each iteraration(cycle) it takes a value that is supplied in run-time datatable. Through parameterization only we can drive a transaction(action) with different sets of data. You know running the script with the same set of data several times is not suggestable, and it's also of no use.

17. What is the difference between Call to Action and Copy Action.?
Call to Action : The changes made in Call to Action , will be reflected in the orginal action( from where the script is called).But where as in Copy Action , the changes made in the script ,will not effect the original script(Action)

18. Discuss QTP Environment.
QuickTest Pro environment using the graphical interface and ActiveScreen technologies - A testing process for creating test scripts, relating manual test requirements to automated verification features - Data driving to use several sets of data using one test script.

19. Explain the concept of how QTP identifies object.
During recording qtp looks at the object and stores it as test object.For each test object QT learns a set of default properties called mandatory properties,and look at the rest of the objects to check whether this properties are enough to uniquely identify the object. During test run,QT searches for the run time obkects that matches with the test object it learned while recording.

20. Differentiate the two Object Repository Types of QTP.
Object repository is used to store all the objects in the application being tested.
2 types of oject repositoy per action and shared. In shared repository only one centralised repository for all the tests. where as in per action.for each test a separate per action repostory is created.

21. What the differences are and best practical application of each.
Per Action: For Each Action, one Object Repository is created. Shared :One Object Repository is used by entire application

22. Explain what the difference between Shared Repository and Per_Action Repository ?
Shared Repository: Entire application uses one Object Repository , that similar to Global GUI Map file in WinRunner Per Action: For each Action ,one Object Repository is created, like GUI map file per test in WinRunner

23. Have you ever written a compiled module? If yes tell me about some of the functions that you wrote.
I Used the functions for Capturing the dynamic data during runtime. Function used for Capturing Desktop, browser and pages.

24. What projects have you used WinRunner on? Tell me about some of the challenges that arose and how you handled them.
pbs :WR fails to identify the object in gui. If there is a non std window obk wr cannot recognize it ,we use GUI SPY for that to handle such situation.

25. Can you do more than just capture and playback?
I have done Dynamically capturing the objects during runtime in which no recording, no playback and no use of repository is done AT ALL. -It was done by the windows scripting using the DOM(Document Object Model) of the windows.

26. How long have you used the product?

27. How to do the scripting. Is there any inbuilt functions in QTP as in QTP-S. Whatz the difference between them? how to handle script issues?
Yes, there's an in-built functionality called "Step Generator" in Insert->Step->Step Generator -F7, which will generate the scripts as u enter the appropriate steps.

28. What is the difference between check point and output value.
An outPut value is a value captured during the test run and entered in the run-time but to a specified location. EX:-Location in Data Table[Global sheet / local sheet]

29. IF we use batch testing.the result shown for last action only.in that how can i get result for every action.
u can click on the icon in the tree view to view the result of every action

30. How the exception handling can be done using QTP?
It can be done Using the Recovery Scenario Manager which provides a wizard that gudies you through the process of defining a recovery scenario. FYI.. The wizard could be accesed in QTP> Tools-> Recovery Scenario Manager .......

31. How do you test siebel application using qtp?

32. How many types of Actions are there in QTP?
There are three kinds of actions: non-reusable action—an action that can be called only in the test with which it is stored, and can be called only once. reusable action—an action that can be called multiple times by the test with which it is stored (the local test) as well as by other tests. external action—a reusable action stored with another test. External actions are read-only in the calling test, but you can choose to use a local, editable copy of the Data Table information for the external action.

33. How do you data drive an external spreadsheet?

34. I want to open a Notepad window without recording a test and I do not want to use SystemUtil.Run command as well How do I do this?
U can still make the notepad open without using the record or System utility script, just by mentioning the path of the notepad "( i.e., where the notepad.exe is stored in the system) in the "Windows Applications Tab" of the "Record and Run Settings window. Try it out. All the Best. .