Automation Testing Training Introduction To QTP
Session Objectives
Introduction to Automation Benefits of Automated Testing Automated Testing Process Introduction to QTP and its Salient Features Environment Supported
Introduction to Automation
Drawbacks of Manual testing Manual Testing
- Manual testing is time-consuming and tedious
- Requiring a heavy investment in human resources - Time constraints often make it impossible to manually test every feature thoroughly before the application is released - Low reliability
Benefits of Automated Testing
Why Automation -
Fast Reliable Repeatable Programmable Comprehensive Reusable
Automated Testing
The following XL sheet give you the difference in Time taken for Manual testing and Automation Testing. Sales Process
Sr.No. 1 2 3 4 5 6 7 8 9 10 11 10
Business Process Sales Order Processing Reversal Process BOM and Pallets Shipment POD & X-DOCS Free Promotions Goods Crate Material Generation of Requirement Batch Split & Invoice Summary Inter company Sales Out of Scope Total
No of Script No of Conditions Name Conditions Automated S001 32 32 S002 7 7 S003 8 8 S004 4 4 S005 10 10 S006 4 4 S007 3 3 S008 1 1 S009 2 2 S010 5 5 40 0 116
76
Effort (in hours) for Automation 30.4 6.65 7.6 3.8 9.5 3.8 2.85 0.95 1.9 4.75 0 72.2
Time Taking Effort (in seconds) for Running for Manual (in Seconds) Running of all the for one conditions iteration 1500 420 298 123 512 240 395 120 714 182 388 124 445 148 422 210 630 101 555 185
5859
1853
RebatesProcess
Sr.No. 1 2
Business Process Rebate Agreement Processing Out of Scope Total
Time Taking Effort (in seconds) for Running No. of Effort (in for Manual (in Seconds) Script No of Condtions hours) for Running of all the for one Name Conditions Automated Automation conditions iteration R001 28 28 26.6 1200 360 2 0 0 30 28 26.6 1200 360
Which Test Cases to Automate?
Tests that need to be run for every build of the application (sanity check, regression test) Tests that use multiple data values for the same actions (data driven tests) Stress/load testing Tests requiring a great deal of precision
Which Test Cases Not to Automate?
Usability testing
One-time testing "ASAP" testing
"How easy is the application to use?"
"We need to test NOW!"
Ad hoc/random testing
based on intuition and knowledge of application
Leading Automation Tools available in the Market For Functional testing
WinRunner QTP
Rational Robot
Silk Test
QA Run
Automated Testing Process
Automated testing involves three main steps
Creating Script(s)
Executing Script(s)
Analyzing Result(s)
Advantages of QTP over Win runner
QTP has user-friendly Browser, At a Glance we can have a look of Scripts, Active Screen and the Data XL Sheet. QTP uses VB Script while win runner uses TSL which is C language based QTP has Recovery Manager QTP generates output values and these can be used as input values to other Objects
Introduction to QTP
Quick Test Professional is the flagship functional testing tool from Mercury Interactive. It is an icon based tool, which automates the functional & regression testing of an application. QTP is easier to use and implement for both technical & non technical testers in comparison to other functional testing tools available. Available versions are QTP 6.0 , 6.5,8.0 and 8.2
Salient Features
Its Active Screen technology offers a Point-and-check interface for accessing & interacting with the components of the application under test. QTP produces an Icon-Based test tree in which each branch represents a step in the business process Testers can view and edit their test using either the tree view, an Icon-Based representation, or the expert View, which reveals the VBScript test that QTP automatically generates. QTP can automatically introduce Checkpoints
Salient Features
During execution testers can manually insert several types of check points to verify that the objects continue to behave as expected. These check points are shown in the presentation in the later stage
Testers are able to record their tests so that each action, or step in the business process are modular & reusable.
When application under test changes, testers can update Object Repository, thus the change made is then propagated across all the scripts that reference to this object EX: In the Authentication screen when the name of the button is changed to Sign In form Login, Just make an update in the Object Repository.
Salient Features
After running a test QTP displays the results in a tress structure and in clear visual reports Scripting Language is VBScript which is easy to use , understand and program even complex functionalities with ease.. Library files contains VBScript functions and subroutines that can be added to the test. Support Modern Development Environment.
QuickTest testing process
The QuickTest testing process consists of 7 main phases: 1. 2. 3. 4. 5. 6. 7.
Preparing to record Recording a session on your application Enhancing your test Debugging your test Running your test Analyzing the test results Reporting defects
Add–In Manager
Default ActiveX VisualBasic Web
Additional Java Oracle PeopleSoft .Net Terminal Emulator Sap, Siebel & Web services
Environments Supported
Basic Web Technologies HTML DHTML XML Browsers Netscape Internet Explorer AOL Advanced Web Technologies JavaScript Java ActiveX
Environments Supported
Multimedia Technologies Flash RealAudio/Real Video MS Media Player ERP Solutions mySAP.com Siebel 2001 Oracle PeopleSoft .NET Win Forms Web Forms NET Control
Environments Supported
Web Services XML WSDL
Operating Systems Windows XP/2003 Windows 2000 Windows 98 Windows NT Windows ME
Environments Supported
Terminal Emulators
3270 5250 VT100
Languages
European Japanese Chinese (traditional and simplified) Korean
Environments not Supported • • • • • •
• • • •
Custom C/S PowerBuilder Forte Delphi Centura Stingray Smalltalk ERP/CRM Baan PeopleSoft Windows Siebel 5, 6 GUI Clients Oracle GUI Forms
QTP Screen
Important Toolbars
Test toolbar: containing buttons to assist you in the testing process(ex: record,Run..) Debug toolbar: containing buttons to assist you in debugging your test Action toolbar: containing buttons and a list of actions, enabling you to view the details of an individual action or the entire test flow Test pane: containing two tabs to view your test—the Keyword View and the Expert View Test Details pane : containing the Active Screen Data Table: containing two or more tabs to assist you in parameterizing your test—Global and one tab for each Action
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Recording Modes in QTP
Normal(This mode is the default and takes full advantage of
Quick Test's test object model, recognizing the objects in your application regardless of their location on the screen)
Analog Recording (enables you to records the exact mouse
and keyboard operations you perform in relation to either the screen or the application window. In this recording mode, Quick Test record and tracks every movement of the mouse as you drag the mouse around a screen or window. User cannot edit analog recording steps from within Quick Test)
Recording Modes in QTP
Low Level Recording (enables you to record on any object in your application, whether or not Quick Test recognizes the specific object or the specific operation. This mode records at the object level and records all run-time objects as Window or Win Object test objects. Use low-level Recording for Recording tests in an environment or on an object not recognized by Quick Test. You can also use low-level Recording if the exact coordinates of the object are important for your test.)
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Object Repository
Object Repository acts as a translator between QTP script and the Operating System ( similar to GUI map concept in win runner).
QTP stores information it learns about a window or an object in object repository
When QTP runs a test, it uses the object repository to locate objects. QTP reads an objects description in the repository and then looks for an object with the same properties in the application under test.
How QTP Stores Objects
Generates Script
QTP TEST SCRIPT
Add objects using object identification settings
Object Repository
Object Repository Types of Object Repositories
Per Action Object Repository
Shared Object Repository
Object Repository Per Action TEST 1
Object Repository
ACTION 1 ACTION 2
Object Repository
TEST 2 ACTION 1 ACTION 2
Object Repository
Object Repository
Shared Object Repository TEST 1 ACTION 1 ACTION 2 Object Repository TEST 2 ACTION 1 ACTION 2
Per Action vs Shared Object Repository Per Action Object Repository
Separate action repository for each action. If an object description changes, you need to modify the object in every action repository using that object. No need for any Object Repository administrator. Preferred method if application won’t change during renovation Default Object Repository. Preferable for novice QTP users.
Shared Object Repository
can use the same shared object repository file for multiple tests. If an object description changes, you only have to modify in the shared Object Repository – all tests will playback properly. Requires Shared object repository creation and maintenance. Crucial if application may change during renovation Most commonly used across Automation projects.
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Object Recognition configuration
To identify objects uniquely, object identification configuration can be done. User can configure Mandatory,Assistive properties and ordinal identifier Examples: List Box Combo Box Text Box Text Area
Smart Object Identification
Smart Object Identification to Ensure Successful Test Execution
A sophisticated object recognition mechanism allows tests to automatically recover when object properties are not found during execution. Quick Test now evaluates application object properties upon test playback, and can make decisions based on logical property matches, even if the recorded object properties are not present.
Smart Object Identification
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 How does Smart Identification process work?
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
What is Active Screen?
While recording the screen is captured and stored. In the tool the same can be seen as “Active Screen” The same can be updated by using “Change Active Screen” Option
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Script View
Keyword View
Expert View
Keyword View
Expert View
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
What are Actions?
Actions help divide your test into logical units Group of Statements to perform certain action Actions can be nested Multiple actions can be called in a single test
Splitting Actions Calling Actions Using Action Parameters Impact on Object Repository
Actions
Three Types
Non–reusable
Re-usable
External
Actions
Actions can divide a test into several distinct business Processes. Each actions signifies a logical independent test. To divide a test into actions you can Insert a New Action Split an existing action into two Actions Insert a copy of an existing Action Insert a call to an existing Action In this way several actions can be integrated to each other within the test or across different tests logically.
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Checkpoints A checkpoint is a step in your test that compares the actual values of a specified object property to an expected value of the same property Like, Verify text in status bar Verify value in a grid Verify bitmaps (Tick mark in Release strategy )
Checkpoints
Various Checkpoints are available Text / Text Area Checkpoint Bitmap Checkpoint Database Checkpoint XML Checkpoint(File/Webpage) Standard Checkpoint(Page/Table/Image/object) Accessibility Checkpoint
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Output Values
An Output value is a step in which one or more values are captured at a specific point in the test
Can capture status bar messages Can capture object properties and text Can store the values in a variable or table
Text / Text Area Output Value
Bitmap Output Value
Database Output Value
XML Output Value(File/Webpage)
Standard Output Value
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
What is a Synchronization Point?
A synchronization point is a line in the test script that instructs QTP to wait for a certain response from the application during playback.
Why Synchronize?
Inputs data to AUT Attempts next step Script fails
Accepts input Sends data to database server
Inputs data to AUT
Waits
AU
T
t rip
Run script
Sc
AU
Sc
Run script
With synchronization point
T
Without synchronization point rip t
Accepts input Sends data to database server
Waits for server; cannot continue
Continues
Client affirms transaction is complete
Process To Add Synchronization Points
Locate the lines in the script to insert the synchronization point In Quick Test choose Insert > Step > Synchronization Point. The mouse pointer turns into a pointing hand. This should be done while recording. Using the Hand Pointer click on the object to Synchronize. Add Synchronization Point dialog box opens.
Synchronization
Select the Property name and its corresponding value which you want to use for the synchronization point.
Enter the synchronization point timeout (in milliseconds) and Click OK. A Wait Property step is added to your test.
For e.g. for this case the step inserted in the script will be Dialog (“Login”) . WaitProperty "enabled", 1, 10000
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Data Driven Testing
QTP supports Data Driven Testing Can use the Data Driver Wizard to parameterize the tests Stores data file with extension .XL Two types of sheets within the data table “Global” and “Action” Data in “Global” is available across all actions in the test Data in “Action” is available only to that action
Parameterization
Parameterization allows us to pick different values at run time. Reduces Time and Effort. Usage of data drivers allow us to use the same data for various input boxes. Parameterization can also be done for checkpoints.
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Transaction Response Time
Transaction Response Time is used to measure the response time of any transaction Can be done for a single transaction Can be done for multiple transactions Results are logged in Test results log for every iteration Response time measured from start to end of one iteration (within login and logoff)
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Recovery scenarios
QTP can recover from unexpected events and/ or errors Control can be transferred to a function Useful, when running unattended Every Script has at least one recovery scenario Generic recovery scenario naming convention is g Script specific recovery scenarios naming convention is <Script ID>_
Recovery scenarios In QTP
What is Recovery Scenario How to Implement Recovery Scenario Types of Recovery Scenario Advantage of Recovery Scenario Disadvantage of Recovery Scenario
What is Recovery Scenario
Recovery Scenario is used to control the execution flow of QTP script.
To Control the unexpected event or action perform by the application which we are going to automate.
Recovery Scenario
Unexpected events, errors, popup window, message, link and application crashes during a test run can disrupt your test and distort test results. This is a problem particularly when running tests unattended—the test is suspended until you perform the action needed to recover.
How to Implement Recovery Scenario.
In QTP the Recovery Scenario Manager provides a wizard that guides you through the process of defining a recovery scenario—a definition of an unexpected event and the operation's necessary to recover the test run.
How to Implement Recovery Scenario.
Record the Error on which you want to create recovery. In QTP go to Tools Menu Option -> select the Recovery Scenario Manager.
Recovery Scenario Manager
Recovery Event
Recovery Condition
Recovery Operation
Run Option
Save The Recovery Scenario
Tip
After you have created recovery scenarios, you can associate one or more scenarios with a test in order to instruct QuickTest to perform the recovery scenario's during the test run if a trigger event occurs. The Recovery tab of the Test Settings dialog box lists all the recovery scenarios associated with the current test.
To add a recovery scenario to a test
Advantage of Recovery Scenario
Control the Execution flow of script. Handle unexpected behavior of application. User define Error Message.
Settings
When we call Recovery scenario with On Every step option scrip execution become slow. Call only on Error.
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Execute Script Script can be executed in two ways Run Select Test->Run Run from Step Select Test->Run from Step
Test Run Where the Test Results are stored Two ways New folder is created for each run Temp folder overwrites last run results E.g.. T:\QTP_SCRIPTS_FINAL\S007_015\Res1 C:\DOCUME~1\SU2693\LOCALS~1\Temp\TempResults
Test Run
Analyze Result's Structure of a Test Result log Results at an overall level and at step level Results at action level rolled up to get summary of results Screen shots help you to verify the flow Screen shots available to identify the failures Run time data is visible for debugging the failures
Test Results QTP Test/Step Outcome Passed Expected Vs actual is same Failed Expected Vs actual is different Done Step has been executed when unable to execute, marks the step as failed Warning Step has been executed but QTP logs a message
Test Results How to view the Test Results
Select Test->Results
How to check the results of the past runs
Select Start->QTP->Test Results Viewer
How to delete the past test results
Select Start->QTP->Tools-> Test Results Deletion Tool
What you need to Know in QTP?
How are the objects recognized? What is Object Repository? What is Object Recognition configuration? What is Active Screen? What is Keyword View and Expert View? What are Actions? What are the checkpoints available? Output Values Synchronization Point Data Driven Test? Transaction Response Time Exception Handling Reporting
Any Questions?
? Thanks