Gaurav Pandey

Welcome to my website!

Test Data Generators

As testers, we need a lot of test data. While at it, we endeavor to generate this data which is as close to production as possible.

 

The following are some free data generators which would assist us to generate this data. I have hosted some of them on this website.

 

Fake Name Generator

http://www.fakenamegenerator.com/order.php

 

With 29 languages and 22 countries, the Fake Name Generator is the one of the most advanced name generator on the internet. Generate names, addresses, social security numbers, credit card numbers, occupations, UPS tracking numbers, and more absolutely free.

 

Data Generator

http://www.generatedata.com/ 

Also hosted on this website – http://www.gauravpandey.co.in/tools/data_generator/

 

Ever needed custom formatted sample / test data, like, bad? Well, that’s the idea of the Data Generator. It’s a free, open source script written in JavaScript, PHP and MySQL that lets you quickly generate large volumes of custom data in a variety of formats for use in testing software, populating databases.

 

It is a free, open source script written in JavaScript, PHP and MySQL that lets you quickly generate large volumes of custom data in a variety of formats for use in testing software, populating databases.

  • JS-enabled and browser-friendly.
  • Many data types: names, phone numbers, email addresses, cities, states, provinces, counties, dates, street addresses, number ranges, alphanumeric strings, lorem ipsum text and more.
  • Option to generate data in XML, Excel, HTML, CSV or SQL.
  • Country specific data (state / province / county) for Canada, US, Netherlands and UK.
  • Saves your data generation forms for later use

 

dgMaster

http://dgmaster.sourceforge.net/index.html

dgMaster is a simple, free, extensible and open source data generator released under the GPL license. It is currently under development, (for now, only text format is supported), and the plan is to extend it with many features (database, xml and more).

The data generator has built-in support for a number of simple java data types, as well as some higher-level data types:

  • Boolean
  • Date
  • Numeric (Integer, Double, Float, Long)
  • String
  • SQLDate
  • SQLTimestamp
  • SQLTime
  • English text
  • Dictionary usage
  • English first names
  • English last names
  • English full names (with title, etc.)
  • emails

 

Credit card generator

http://www.darkcoding.net/credit-card-numbers/

Also hosted on this website – http://www.gauravpandey.co.in/tools/credit_card_gen/gencc-js.html

 

Credit card numbers that conform to the Luhn formula (MOD 10 check). Usefull for testing e-commerce sites (because they should get past any pre-validation you do, and be declined at the card processor or bank stage).

In testing situations any expiry date within the next 3 years should work

Mind Map–ISO 9126–PERFUM aka FRUEMP

 

 

9126

 

software quality: The totality of functionality and features of a software product that bear on its ability to satisfy stated or implied needs.

 


portability:

The ease with which the software product can be transferred from one hardware or software environment to another.

 

install ability: The capability of the software product to be installed in a specified
environment

co-existence: The capability of the software product to co-exist with other independent software in a common environment sharing common resources.

adaptability: The capability of the software product to be adapted for different specified environments without applying actions or means other than those provided for this purpose for the software considered.

replace ability: The capability of the software product to be used in place of another specified software product for the same purpose in the same environment.


efficiency:

The capability of the software product to provide appropriate performance, relative to the amount of resources used under stated conditions.

 

resource utilization: The capability of the software product to use appropriate amounts and types of resources, for example the amounts of main and secondary memory used by the program and the sizes of required temporary or overflow files, when the software performs its function under stated conditions.


reliability:

The ability of the software product to perform its required functions under stated conditions for a specified period of time, or for a specified number of operations.

 

recoverability: The capability of the software product to re-establish a specified level of performance and recover the data directly affected in case of failure.

maturity: The capability of the software product to avoid failure as a result of
defects in the software.

fault tolerance: The capability of the software product to maintain a specified level of performance in cases of software faults (defects) or of infringement of its specified
interface.


functionality

The capability of the software product to provide functions which meet stated and implied needs when the software is used under specified conditions.

 

interoperability: The capability of the software product to interact with one or more specified components or systems.

suitability: The capability of the software product to provide an appropriate set of functions for specified tasks and user objectives.

accuracy: The capability of the software product to provide the right or agreed results or effects with the needed degree of precision.

security: Attributes of software products that bear on its ability to prevent unauthorized access, whether accidental or deliberate, to programs and data.


usability:

The capability of the software to be understood, learned, used and attractive to the user when used under specified conditions.

 

understandability: The capability of the software product to enable the user to understand whether the software is suitable, and how it can be used for particular tasks and conditions of use.

attractiveness: The capability of the software product to be attractive to the user.

learnability: The capability of the software product to enable the user to learn its application.

operability: The capability of the software product to enable the user to operate and control it.


maintainability:

The ease with which a software product can be modified to correct defects, modified to meet new requirements, modified to make future maintenance easier, or adapted to a changed environment.

 

testability: The capability of the software product to enable modified software to be tested.

stability: The capability of the software product to avoid unexpected effects from modifications in the software.

analyzability: The capability of the software product to be diagnosed for deficiencies or causes of failures in the software, or for the parts to be modified to be identified.

changeability: The capability of the software product to enable specified modifications to be implemented.

Interview Questions on QTP

Question 1. 

What are the Features & Benefits of Quick Test Pro?

The following are some –

  • Operates stand-alone, or integrated into Mercury Business Process Testing and Mercury Quality Center.
  • Introduces next-generation zero-configuration Keyword Driven testing technology in Quick Test Professional 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.

 

Question 2.

What is Keyword view and Expert view in QTP?

- Using Keyword Driven approach, test automation experts have full access to the underlying test and object properties, via an integrated scripting and debugging environment that is round-trip synchronized with the Keyword View.

Advanced testers can view and edit their tests in the Expert View, which reveals the underlying industry-standard VBScript that Quick Test Professional automatically generates.

Any changes made in the Expert View are automatically synchronized with the Keyword View.

 

Question 3.

Which environments does QTP support?

- Quick Test Professional supports functional testing of multiple enterprise environments, including Windows, Web,..NET, Java/J2EE, SAP, Siebel, Oracle, PeopleSoft, Visual Basic, ActiveX, mainframe terminal emulators, and Web services.

Question 4.

What is QTP?

- Quick Test is a graphical interface record-playback automation tool. It is able to work with any web, java or windows client application. Quick Test enables you to test standard web objects and ActiveX controls. In addition to these environments, Quick Test Professional also enables you to test Java applets and applications and multimedia objects on Applications as well as standard Windows applications, Visual Basic 6 applications and.NET framework applications

Question 5.

Explain the QTP testing process?

Quick Test testing process consists of the following main phases:

  • Create your test plan – Prior to automating there should be a detailed description of the test including the exact steps to follow, data to be input, and all items to be verified by the test. The verification information should include both data validations and existence or state verifications of objects in the application.
  • Recording a session on your application – As you navigate through your application, Quick Test graphically displays each step you perform in the form of a collapsible icon-based test tree. A step is any user action that causes or makes a change in your site, such as clicking a link or image, or entering data in a form.
  • Enhancing your test – Inserting checkpoints into your test lets you search for a specific value of a page, object or text string, which helps you identify whether or not your application is functioning correctly. NOTE: Checkpoints can be added to a test as you record it or after the fact via the Active Screen. It is much easier and faster to add the checkpoints during the recording process. Broadening the scope of your test by replacing fixed values with parameters lets you check how your application performs the same operations with multiple sets of data. Adding logic and conditional statements to your test enables you to add sophisticated checks to your test.
  • Debugging your test – If changes were made to the script, you need to debug it to check that it operates smoothly and without interruption.
  • Running your test on a new version of your application – You run a test to check the behavior of your application. While running, Quick Test connects to your application and performs each step in your test.
  • Analyzing the test results – You examine the test results to pinpoint defects in your application.
  • Reporting defects – As you encounter failures in the application when analyzing test results, you will create defect reports in Defect Reporting Tool.

Question 6.

Explain the QTP Tool interface.

- It contains the following key elements:

  • Title bar, displaying the name of the currently open test,
  • Menu bar, displaying menus of Quick Test commands,
  • File toolbar, containing buttons to assist you in managing tests,
  • Test toolbar, containing buttons used while creating and maintaining tests,
  • Debug toolbar, containing buttons used while debugging tests. Note: The Debug toolbar is not displayed when you open Quick Test for the first time. You can display the Debug toolbar by choosing View — Toolbars — Debug.
  • Action toolbar, containing buttons and a list of actions, enabling you to view the details of an individual action or the entire test flow. Note: The Action toolbar is not displayed when you open Quick Test for the first time. You can display the Action toolbar by choosing View — Toolbars — Action. If you insert a reusable or external action in a test, the Action toolbar is displayed automatically.
  • Test pane, containing two tabs to view your test-the Tree View and the Expert View ,Test Details pane, containing the Active Screen.
  • Data Table, containing two tabs, Global and Action, to assist you in parameterizing your test. Debug Viewer pane, containing three tabs to assist you in debugging your test-Watch Expressions, Variables, and Command. (The Debug Viewer pane can be opened only when a test run pauses at a breakpoint.) Status bar, displaying the status of the test

Exception Handling and Recovery Scenarios

 

Question 7.

How to handle the exceptions using recovery scenario manager in QTP?

- There are 4 trigger events during which a recovery scenario should be activated.

  1. A pop up window appears in an opened application during the test run.
  2. A property of an object changes its state or value.
  3. A step in the test does not run successfully.
  4. An open application fails during the test run.

These triggers are considered as exceptions.We 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

Output Values

 

Question 8.

What is the use of Text output value in QTP?

- Output values enable to view the values that the application talks during run time. When parameterized, the values changes on every iteration. Therefore by creating output values, we can capture the values that the application takes for each run and output them to the data table.


 

Object Spy and Object Repository

 

Question 9.

What is Object Spy in QTP?

- Using the Object Spy, you can view the properties of any object in an open application. You use the Object Spy pointer to point to an object. The Object Spy displays the selected object’s hierarchy tree and its properties and values in the Properties tab of the Object Spy dialog box.

Question 10.

Explain the concept of object repository and how QTP recognizes 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 Ordinal identifier such as objects location on the page or in the source code.

Question 11.

How to use the Object spy in QTP?

- There are two ways to Spy the objects in QTP:

  1. Through the File toolbar – in the File Toolbar click on the last toolbar button (an icon showing a person with hat).
  2. Through the Object repository Dialog- in Object repository 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 if the window is minimized then, hold the Ctrl button and activate the required window to and release the Ctrl button.

Question 12.

How does QTP recognize Objects in AUT?

- Quick Test stores the definitions for application objects in a file called the Object Repository. As you record your test, Quick Test will add an entry for each item you interact with. Each Object Repository entry will be identified by a logical name (determined automatically by Quick Test), and will contain a set of properties (type, name, etc) that uniquely identify each object.

Each line in the Quick Test script will contain a reference to the object that you interacted with, a call to the appropriate method (set, click, check) and any parameters for that method (such as the value for a call to the set method).

The references to objects in the script will all be identified by the logical name, rather than any physical, descriptive properties.

Question 13.

What are the types of Object Repositories in QTP?

- Quick Test has two types of object repositories for storing object information:

  • Shared object repositories and
  • Action object repositories.

You can choose which type of object repository you want to use as the default type for new tests, and you can change the default as necessary for each new test.

The object repository per-action mode is the default setting. In this mode, Quick Test automatically creates an object repository file for each action in your test so that you can create and run tests without creating, choosing, or modifying object repository files. However, if you do modify values in an action object repository, your changes do not have any effect on other actions. Therefore, if the same test object exists in more than one action and you modify an object’s property values in one action, you may need to make the same change in every action (and any test) containing the object.

 

Question 14.

How does QTP identify objects in the application?

- QTP identifies the object in the application by Logical Name and Class.

Question 15.

What is test object model in QTP?

- The test object model is a large set of object types or classes that Quick Test uses to represent the objects in your application. Each test object class has a list of properties that can uniquely identify objects of that class and a set of relevant methods that Quick Test can record for it. A test object is an object that Quick Test creates in the test or component to represent the actual object in your application. Quick Test stores information about the object that will help it to identify and check the object during the run session.

Question 16.

What is Object Spy in QTP?

- Using the Object Spy, you can view the properties of any object in an open application. You use the Object Spy pointer to point to an object. The Object Spy displays the selected object’s hierarchy tree and its properties and values in the Properties tab of the Object Spy dialog box.


 

Parameterization

 

Question 17.

How is Run time data (Parameterization) handled in QTP?

- You can then enter test data into the Data Table, an integrated spreadsheet with the full functionality of Excel, to manipulate data sets and create multiple test iterations, without programming, to expand test case coverage. Data can be typed in or imported from databases, spreadsheets, or text files.

Question 18.

What is Parameterizing Tests?

- When you test your application, you may want to check how it performs the same operations with multiple sets of data. For example, suppose you want to check how your application responds to ten separate sets of data. You could record ten separate tests, each with its own set of data. Alternatively, you can create a parameterized test that runs ten times: each time the test runs, it uses a different set of data.

Question 19.

How many ways we can parameterize data in QTP?

- There are four types of parameters:

  • Test, action or component parameters enable you to use values passed from your test or component, or values from other actions in your test.
  • Data Table parameters enable you to create a data-driven test (or action) that runs several times using the data you supply. In each repetition, or iteration, Quick Test uses a different value from the Data Table.
  • Environment variable parameters enable you to use variable values from other sources during the run session. These may be values you supply, or values that Quick Test generates for you based on conditions and options you choose.
  • Random number parameters enable you to insert random numbers as values in your test or component. For example, to check how your application handles small and large ticket orders, you can have Quick Test generate a random number and insert it in a number of tickets edit field.

Question 20.

What does it mean when a check point is in red color?

- A red color indicates failure. Here we analyze the cause for failure whether it is a Script Issue or Environment Issue or an Application issue.

 


 

Test Results

 

Question 21.

Explain about the Test Results of QTP?

- Once a tester has run a test, a Test Results window displays all aspects of the test run:

  • A high-level results overview report (pass/fail status)
  • The data used in all runs
  • An expandable tree of the steps, specifying exactly where application failures occurred
  • The exact locations in the test where failures occurred
  • A still image of the state of your application at a particular step
  • A movie clip of the state of your application at a particular step or of the entire test
  • Detailed explanations of each step and checkpoint pass or failure, at each stage of the test
  • Any system counters that were monitored for your test
  • Quality Center information for your test (if the test was run from Quality Center or if a test that is stored in Quality Center is run from QuickTest and you choose to store the results in Quality Center)

 

 

Checkpoints

 

Question 22.

Explain the check points in QTP?

- A checkpoint verifies that expected information is displayed in an Application while the test is running. You can add eight types of checkpoints to your test for standard web objects using QTP.

  • A page checkpoint checks the characteristics of an Application.
  • A text checkpoint checks that a text string is displayed in the appropriate place on an Application.
  • An object checkpoint (Standard) checks the values of an object on an Application. An image checkpoint checks the values of an image on an Application.
  • A table checkpoint checks information within a table on an application.
  • An Accessibility checkpoint checks the web page for Section 508 compliance.
  • An XML checkpoint checks the contents of individual XML data files or XML documents that are part of your Web application.
  • A database checkpoint checks the contents of databases accessed by your web site

Question 23.

In how many ways we can add check points to an application using QTP?

- We can add checkpoints while recording the application or we can add after recording is completed using Active screen (Note: To perform the second one The Active screen must be enabled while recording).

Question 24.

What is the Difference between Image check-point and Bit map Check point?

- Image checkpoints enable you to check the properties of a Web image. You can check an area of a Web page or application as a bitmap. While creating a test or component, you specify the area you want to check by selecting an object. You can check an entire object or any area within an object. Quick Test captures the specified object as a bitmap, and inserts a checkpoint in the test or component. You can also choose to save only the selected area of the object with your test or component in order to save disk Space. For example, suppose you have a Web site that can display a map of a city the user specifies. The map has control keys for zooming. You can record the new map that is displayed after one click on the control key that zooms in the map. Using the bitmap checkpoint, you can check that the map zooms in correctly. You can create bitmap checkpoints for all supported testing environments (as long as the appropriate add-ins is loaded). Note: The results of bitmap checkpoints may be affected by factors such as operating system, screen resolution, and color settings.

Display formatted text in MS-Word document

'Display Formatted text in MS-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 = "20"

objSelection.TypeText "Some Formatted Text"

objSelection.TypeParagraph()

objSelection.Font.Size = "14"

objSelection.TypeText "" & Date()

objSelection.TypeParagraph()

Download attachments from unread emails from a User selected folder in Outlook.

'Download attachments from unread emails from a User selected folder in Outlook. 

Option explicit

Dim olApp, olMAPI, oFolder,email, attachment, strfilename

'Create the Outlook Application object

Set olApp = CreateObject("Outlook.Application")

'Get the MAPI name space

Set olMAPI = olApp.getnamespace("MAPI")

Msgbox "Ensure that Outlook is launched"

'ask the user to user to select a folder

Set oFolder = olMapi.pickfolder()

If oFolder is nothing Then

		Msgbox "User cancelled the operation"

		exitaction

End If

Set email = ofolder.items(1)

For each email in ofolder.items

		If email.unread = True Then

			For each attachment in email.attachments

						strfilename = "e:\Gaurav\" & attachment.filename

						attachment.saveasfile strfilename

			Next

			'set the email as read

			email.unread = false

        End If

Next

Calculate the sum of the digits of a 4 digit number

'Calculate the sum of the digits of a 4 digit number

Dim iNumber, iSum

iNumber = 500000

If  Len(iNumber) = 4 Then

iSum=0

	iSum =	 iSum + iNumber mod 10

				iNumber = iNumber/10

				iNumber = left (iNumber, 3)

	iSum = iSum + iNumber mod 10

				iNumber = iNumber/10

				iNumber = left (iNumber, 2)

     iSum = iSum + iNumber mod 10

				iNumber = iNumber/10

				iNumber = left (iNumber, 1)

      iSum = iSum + iNumber mod 10

Msgbox ("Sum is " & iSum)

else 

	Msgbox iNumber & " is not a 4 digit number"

End If

Display the file with the last modified date of all the files in a folder

My previous post  gave a listing of modified dates of all the files in a folder.

This post displays only the most recent modified date

Option explicit

'Display the file with the last modified date of all the files in a folder

Dim strPath, objFSO, objFolder, objFilesCollection, iCounter, objFile

Dim arrFileName(), arrFileDateLastModified()

strPath = "E:\test"

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder(strPath)

Set objFilesCollection = objFolder.Files

iCounter = 0

For Each objFile in objFilesCollection

iCounter = iCounter + 1

ReDim Preserve arrFileName(iCounter)

arrFileName(iCounter) = objFile.DateLastModified

ReDim Preserve arrFileDateLastModified(iCounter)

arrFileDateLastModified(iCounter) = objFile.DateLastModified

Next

Dim iOuterCounter, iInnerCounter

For iOuterCounter = 1 To iCounter

    For iInnerCounter = iOuterCounter + 1 To iCounter

        If arrFileDateLastModified(iOuterCounter) < arrFileDateLastModified(iInnerCounter) Then

            SwapValues arrFileName(iOuterCounter), arrFileName(iInnerCounter)

            SwapValues arrFileDateLastModified(iOuterCounter), arrFileDateLastModified(iInnerCounter)

        End If

    Next

Next

'print the most lasted modified file in a folder

print arrFileDateLastModified(1)

Sub SwapValues(ByRef value1, ByRef value2)

    Dim vTemp

    vTemp = value1

    value1 = value2

    value2 = vTemp

End Sub

Display the last modified date of all the files in a folder

Option explicit

'Display the last modified date of all the files in a folder

Dim strPath, objFSO, objFolder, objFilesCollection, iCounter, objFile

Dim arrFileName()

strPath = "E:\test"

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder(strPath)

Set objFilesCollection = objFolder.Files

iCounter = 0

For Each objFile in objFilesCollection

iCounter = iCounter + 1

ReDim Preserve arrFileName(iCounter)

arrFileName(iCounter) = objFile.DateLastModified

print  arrFileName(iCounter) 

Next