SlideShare a Scribd company logo
1 of 30
Introduction to the integral
Framework
INTRODUCTION
TO THE
INTEGRAL FRAMEWORK
BY
KARTHIK SUBRAMANIAN
https://www.linkedin.com/in/karsub1
karsubp@gmail.com
Introduction to the Integral Framework
One definition of the word Integral is: consisting or composed of parts
that together constitute a whole.
The focus of this framework is Simplicity. By creating and maintaining
easy-to-understanding parts, it is possible to create and maintain an
easy-to-understand whole. Simplicity here means minimizing the key
resources involved in the framework and making sure those resources
follow clear lines of communication with each other.
The Integral framework places a majority of its emphasis on Description
Objects, Component Scripts and Actions, Function Libraries (VBS files),
Driver Scripts and Actions and Master Scripts and Actions. The
Following Diagram shows a simplified hierarchy of these resources.
VBS
Components
Master
Driver Driver Driver
VBS
Description Objects
Instead of using the Object Repository feature in Quick Test Pro
(QTP), each component action will use explicitly defined
Description Objects which are property name/value collections
used to identify an object within the Application Under Test
(AUT)
Component Scripts
Component Scripts are composed of very small, reusable,
automated pieces of functionality within the AUT. Examples of
component actions include entering text in a field or clicking on a
Button
Function Libraries
External functions and subroutines written as VBS files can be
an extremely valuable way to reuse code in an automation
framework
Driver Scripts
Driver Scripts are composed of reusable actions that dictate the
order in which component actions are executed so that a user
experience in simulated. The focus of a driver script is on page-
specific activity.
Master Scripts
Master Scripts decide the order in which driver scripts are executed so that
a full, end-–to-end test scenario can be simulated. The focus of a master
script is on system-wide activity
Component Scripts
Each component script contains a collection of reusable actions that can
be used to manipulate or validate objects on a particular screen in the
AUT. Separate component scripts should be created to handle areas of the
screen that appear on more than one screen (e.g. a navigation banner at
the top of the left of the screen that appears on most of the screens).
Popup windows and dialogs should be considered different screens within
the AUT and should have corresponding component scripts as well. The
following illustration shows how each object on the AUT screen has a
corresponding reusable action in the component script
Component script Application Under Test
= Reusable Action
Login
Username
Password
Login
Enter Username
Enter Password
Click Login
Component script Application Under Test
= Reusable Action
Component Action Types
There are two main types of component actions within
the Integral Framework: manipulation actions and
validation actions. Manipulation actions are those
actions that do something to an object on the
application’s user interface. Validation actions are
those actions that check something in the system,
comparing an expected value against an actual value
or application state. The following illustration shows
how component actions can be used to validate or
manipulate specific objects in the AUT.
Component script Application Under Test
ValUsername
ValTodaysDate
ClickStart
Welcome
Welcome SunRaise!
Today’s Date: January 1, 10
Start
Component script Application Under Test
= Reusable Action
Creating Component
Scripts/Actions
Input Parameters
Input parameters are used to pass information to reusable component
actions. An action that handles entering text into a text field will have an
input parameter that specifies what text should be entered into the field.
Input parameters, depending on the parameter type (i.e. String, Number,
Boolean, etc.), might utilize a default value when a similar value will often
be passed into the action.
Output Parameters
Output parameters can be used to return information back to the calling
driver action. Output parameters are typically used to retrieve information
that is generated by the AUT and that is needed later during the
automated script’s execution
Referencing External Files
When multiple components actions use very similar code to perform their
object manipulations, the code is a good candidate for reuse by moving it
to an external file. The following illustration shows how two component
actions that contain similar code can reuse code by moving the logic to an
external file and simply calling the external file.
WebEdit_EnterText.vbs
Moving code to an external file not only allows the code to be
referenced more easily by component actions but it also allows
for simpler maintenance of the code since it’s only in one place.
Imagine if the logic of enter text was in 500 components actions
and then had to be updated. One would have to make the logic
update in 500 places instead of just one.
Use the ExecuteFile command in QTP to retrieve the external
file and put the file’s code into memory for execution. In the
previous example, Both EnterUsername and EnterPassword
actions would need to perform the following command before the
calling the subroutine in the external file.
ExecuteFile “WebEdit_EnterText.vbs”
Description Objects
The Integral Framework uses description objects instead of object
repositories to identify objects in the AUT. Using description objects
allows the engineer to be very specific when defining the property
names and values to use when identifying the object being
manipulated or validated. Storing property names and values in
object repositories requires additional space and processing during
script execution since it forces QTP to create and reference an XML
file where all the property names and values are stored and then
create description objects based on those properties. It also avoids
identifying similar fields on different pages. By manually creating
description objects, engineers can save space and skip extra
processing required by QTP.
The following example code shows how to create a description
object and assign a property or properties name/value pair to it.
‘Set aside memory for the description object variable
Dim descrWebEdit
‘Create the description object and assign it to the variable
Set descrWebEdit=Description.Create()
‘Add the Property to our object, supplying as the property value
descrWebEdit(“name”).value=”MyfeildName”
Note: Use the Object Spy tool in QTP to discover the properties
that uniquely identify the object being manipulated or validated.
Piecing It all Together: Using Component Actions
The following diagram shows an example of everything discussed thus
far.
“SunRaise” is passed into the component action EnterUsername as an
input parameter. Because EnterUsername handles only entering text into
the Username fields, the action only needs to: (1) identify the
field being manipulated, and (2) enter text into the field. Step (1) is
handled by creating a description object that uniquely identifies the field
on the screen. Step (2) is handled by the external file
WebEdit_EnterText.vbs which contains a subroutine of the same name.
To enter text into the password field, the engineer would create a
component action called EnterPassword where a description object is
created to uniquely identify the Password field, and then make a call to
the same WebEdit_EnterText.vbs.
Driver Scripts
Each driver script contains reusable actions that call component actions in
a particular order to simulate a user experience on a particular screen in
the AUT. While component actions focus on a particular field or object on a
screen, driver actions focus on manipulating more than one object on the
screen
A user experience on a particular screen may involve manipulating one or
more pop-up windows or may require navigating to and from another
screen in the application in order to complete the activity. Manipulating
pop-up windows and /or navigating to another screen should take place
within the same driver action if, and only if, those extra steps are necessary
to the activity.
Driver scripts control which specific data is passed to the component
actions it calls i.e. the username “SunRaise” should be passed from the
driver action as an input parameter to the component action
EnterUsername
Driver Action Types
There are two main types of driver actions within the Integral framework:
Independent actions and dependent actions. Independent actions are
those actions that can be executed regardless of the application state.
Dependent actions are those actions that can execute successfully only if
the application is in a particular state (i.e., on a particular screen).
An example of an independent action might be creating a new user
account in the system. An action such as creating a new record that does
not rely on any other record being created previously can usually take
place at any time while in the application. As long as the automated test
can perform the necessary actions to return the application to a ‘start’ state
(e.g. returning to a home page or login screen), the independent action
can execute successfully.
An example of dependent action might be performing a task on the
fourth screen in a wizard-like sequence of screens. Without first
executing the actions that correspond to the previous screens in the
wizard, the dependent action cannot execute successfully.
Creating a Driver script
The reusable actions that make up a driver script should be named
in a way that clearly and concisely describes what the action is doing
on the particular screen. An example might be AddUserAccount for a
driver action that simulates entering in information for a new user
account, submitting that information to the system and performing
validation to ensure that the activity was successful.
Piecing It All Together: Using Driver Actions
The following illustration shows a driver action that enters a
username and password and then clicks the Login button –
in that order - to simulate a user logging into the system.
Note that “…”denotes QTP Syntax that has been removed
in this document
Component Action
Component Action
Component Action
Application Under Test
WebEdit_EnterText.vbs
WebButton_Click.vbs
RunAction “EnterUsername”, …. ,”SunRaise”
RunAction “EnterPassword”, …. ,”Password”
RunAction “ClickLogin”, …
EnterPassword
Click Login
EnterUsername
Code to
Enter text
Code to
Enter text
Login
Username
Password
Login
SunRaise
**********
Driver Action: Login
WebButton_Click.vbs
Data Scenarios
A data scenario is a collection of specific data that are used to
populate fields, act as expected values for validations and otherwise
drive an action to simulate the information a user might input into the
system and expect to receive from the system as output. As an
example, imagine that there are two user accounts in the system.
Each user account has an associated username and password that
must be used together in order to gain access into the system. The
following table represents two possible data scenarios that could be
used for the driver action Login shown above
Username Password
1 SunRaise SunPassword1
2 Moonlight CoolWinter
By referencing the first data scenario in the Login driver action, the
automation would simulate logging into the system as SunRaise. By
referencing the second data scenario, the automation would
simulate logging into the system as Moonlight. Note that the driver
action would not have to be changed at all in order to perform either
simulation. It would only be necessary to manage what input data
was supplied to the component actions called in the driver action.
This is where driver action input parameters are introduced.
Input Parameters
Input parameters are used to tell the driver action which data
scenario to use. Like component actions, a default value can be
assigned to be input parameter for the driver action.
Piecing it All Together: Using Data Scenarios
The following illustration shows how a call from master action can
dictate which data scenario is referenced by a driver action, thereby
determining how the driver action will simulate a user experience.
Referencing External Files
There are two types of external files within the Integral Framework:
AUT-focused libraries and framework – focused libraries. AUT-
focused libraries are the functions and subroutines that are used by
component actions to manipulate or validate the AUT. Framework-
focused libraries are the functions and subroutines that are used
within the framework itself to control execution flow and data.
Most AUT-focused libraries can be thought of as replacing the code
that QTP automatically generates during a recording of an action.
QTP might generate the following line after clicking a web button.
Browser(…).Page(…).WebButton(…).Click
The Integral Framework uses a description object to uniquely
identify the WebButton, and then passes that description object to
the WebButton_Click subroutine managed in the external file
WebButton_Click.vbs
Framework – focused libraries are designed to make the framework
more easily maintained and flexible by implementing code reuse.
Framework-focused libraries can contain functions that handle
commonly used tasks (e.g. formatting data in a particular way) or
dictate how the automation test should be executed (e.g. how many
times an action should be executed and which data scenario to use)
.
Master Scripts
Each master action will contain only calls to driver actions in a
particular order that simulates a user experience across more than
one screen in the system. Each call to a driver action also contains
the row number of the data scenario to use while executing. If more
than one row number is supplied, the driver action will be executed
once for each row number supplied and in the order that the
numbers are supplied. This functionality should be implemented in
the driver actions using a separate VBS file.
KARTHIK SUBRAMANIAN
https://www.linkedin.com/in/karsub1
karsubp@gmail.com
Meet The Expert
Selenium – Page Object Framework Overview

More Related Content

What's hot

Inversion of Control and Dependency Injection
Inversion of Control and Dependency InjectionInversion of Control and Dependency Injection
Inversion of Control and Dependency InjectionDinesh Sharma
 
iOS Swift application architecture
iOS Swift application architectureiOS Swift application architecture
iOS Swift application architectureRomain Rochegude
 
Intoduction to Angularjs
Intoduction to AngularjsIntoduction to Angularjs
Intoduction to AngularjsGaurav Agrawal
 
iOS Layout Overview
iOS Layout OverviewiOS Layout Overview
iOS Layout OverviewMake School
 
iOS app dev Training - Session1
iOS app dev Training - Session1iOS app dev Training - Session1
iOS app dev Training - Session1Hussain Behestee
 
Introduction to Core Java Programming
Introduction to Core Java ProgrammingIntroduction to Core Java Programming
Introduction to Core Java ProgrammingRaveendra R
 
Refreshing Your App in iOS 7
Refreshing Your App in iOS 7Refreshing Your App in iOS 7
Refreshing Your App in iOS 7Aviary
 
Automated Testing on iOS
Automated Testing on iOSAutomated Testing on iOS
Automated Testing on iOSMake School
 
A Tour of Building Web Applications with R Shiny
A Tour of Building Web Applications with R Shiny A Tour of Building Web Applications with R Shiny
A Tour of Building Web Applications with R Shiny Wendy Chen Dubois
 
An R shiny demo for IDA MOOC facilitation, Developing Data Products
An R shiny demo for IDA MOOC facilitation, Developing Data ProductsAn R shiny demo for IDA MOOC facilitation, Developing Data Products
An R shiny demo for IDA MOOC facilitation, Developing Data ProductsWei Zhong Toh
 
What are the components in React?
What are the components in React?What are the components in React?
What are the components in React?BOSC Tech Labs
 
Dependency Injection, Zend Framework and Symfony Container
Dependency Injection, Zend Framework and Symfony ContainerDependency Injection, Zend Framework and Symfony Container
Dependency Injection, Zend Framework and Symfony ContainerDiego Lewin
 
Understanding router state in angular 7 passing data through angular router s...
Understanding router state in angular 7 passing data through angular router s...Understanding router state in angular 7 passing data through angular router s...
Understanding router state in angular 7 passing data through angular router s...Katy Slemon
 
Murach: How to transfer data from controllers
Murach: How to transfer data from controllersMurach: How to transfer data from controllers
Murach: How to transfer data from controllersMahmoudOHassouna
 
OpenWebBeans/Web Beans
OpenWebBeans/Web BeansOpenWebBeans/Web Beans
OpenWebBeans/Web BeansGurkan Erdogdu
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Jonas Follesø
 
Ivanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedIvanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedTim Read
 

What's hot (20)

Inversion of Control and Dependency Injection
Inversion of Control and Dependency InjectionInversion of Control and Dependency Injection
Inversion of Control and Dependency Injection
 
iOS Swift application architecture
iOS Swift application architectureiOS Swift application architecture
iOS Swift application architecture
 
Learning Robotic Process Automation-81-167
Learning Robotic Process Automation-81-167Learning Robotic Process Automation-81-167
Learning Robotic Process Automation-81-167
 
Intoduction to Angularjs
Intoduction to AngularjsIntoduction to Angularjs
Intoduction to Angularjs
 
iOS Layout Overview
iOS Layout OverviewiOS Layout Overview
iOS Layout Overview
 
iOS app dev Training - Session1
iOS app dev Training - Session1iOS app dev Training - Session1
iOS app dev Training - Session1
 
Introduction to Core Java Programming
Introduction to Core Java ProgrammingIntroduction to Core Java Programming
Introduction to Core Java Programming
 
iOS Development (Part 2)
iOS Development (Part 2)iOS Development (Part 2)
iOS Development (Part 2)
 
Refreshing Your App in iOS 7
Refreshing Your App in iOS 7Refreshing Your App in iOS 7
Refreshing Your App in iOS 7
 
Automated Testing on iOS
Automated Testing on iOSAutomated Testing on iOS
Automated Testing on iOS
 
A Tour of Building Web Applications with R Shiny
A Tour of Building Web Applications with R Shiny A Tour of Building Web Applications with R Shiny
A Tour of Building Web Applications with R Shiny
 
An R shiny demo for IDA MOOC facilitation, Developing Data Products
An R shiny demo for IDA MOOC facilitation, Developing Data ProductsAn R shiny demo for IDA MOOC facilitation, Developing Data Products
An R shiny demo for IDA MOOC facilitation, Developing Data Products
 
What are the components in React?
What are the components in React?What are the components in React?
What are the components in React?
 
Dependency Injection, Zend Framework and Symfony Container
Dependency Injection, Zend Framework and Symfony ContainerDependency Injection, Zend Framework and Symfony Container
Dependency Injection, Zend Framework and Symfony Container
 
Understanding router state in angular 7 passing data through angular router s...
Understanding router state in angular 7 passing data through angular router s...Understanding router state in angular 7 passing data through angular router s...
Understanding router state in angular 7 passing data through angular router s...
 
Murach: How to transfer data from controllers
Murach: How to transfer data from controllersMurach: How to transfer data from controllers
Murach: How to transfer data from controllers
 
Angular 2
Angular 2Angular 2
Angular 2
 
OpenWebBeans/Web Beans
OpenWebBeans/Web BeansOpenWebBeans/Web Beans
OpenWebBeans/Web Beans
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008
 
Ivanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedIvanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys Limited
 

Viewers also liked

Introduction to the INTEGRAL FRAMEWORK
Introduction to the INTEGRAL FRAMEWORKIntroduction to the INTEGRAL FRAMEWORK
Introduction to the INTEGRAL FRAMEWORKKarthik Subramanian
 
2 selenium-aakar gupte
2 selenium-aakar gupte2 selenium-aakar gupte
2 selenium-aakar gupteaakar gupte
 
Selenium Ide Tutorials
Selenium Ide TutorialsSelenium Ide Tutorials
Selenium Ide Tutorialsgueste1e4db
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object patternMichael Palotas
 
Selenium Automation Framework (SAF).
Selenium Automation Framework (SAF).Selenium Automation Framework (SAF).
Selenium Automation Framework (SAF).Mindtree Ltd.
 
Selenium Basics Tutorial
Selenium Basics TutorialSelenium Basics Tutorial
Selenium Basics TutorialClever Moe
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Seleniumvivek_prahlad
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using SeleniumNaresh Chintalcheru
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework DesignsSauce Labs
 
Best Presentation About Infosys
Best Presentation About InfosysBest Presentation About Infosys
Best Presentation About InfosysDurgadatta Dash
 

Viewers also liked (12)

Introduction to the INTEGRAL FRAMEWORK
Introduction to the INTEGRAL FRAMEWORKIntroduction to the INTEGRAL FRAMEWORK
Introduction to the INTEGRAL FRAMEWORK
 
2 selenium-aakar gupte
2 selenium-aakar gupte2 selenium-aakar gupte
2 selenium-aakar gupte
 
Selenium Ide Tutorials
Selenium Ide TutorialsSelenium Ide Tutorials
Selenium Ide Tutorials
 
Selenium Webdriver
Selenium WebdriverSelenium Webdriver
Selenium Webdriver
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object pattern
 
Selenium Automation Framework
Selenium Automation  FrameworkSelenium Automation  Framework
Selenium Automation Framework
 
Selenium Automation Framework (SAF).
Selenium Automation Framework (SAF).Selenium Automation Framework (SAF).
Selenium Automation Framework (SAF).
 
Selenium Basics Tutorial
Selenium Basics TutorialSelenium Basics Tutorial
Selenium Basics Tutorial
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
Best Presentation About Infosys
Best Presentation About InfosysBest Presentation About Infosys
Best Presentation About Infosys
 

Similar to Introduction to the integral framework

Azure Durable Functions
Azure Durable FunctionsAzure Durable Functions
Azure Durable FunctionsKarthikeyan VK
 
Hybrid test automation frameworks implementation using qtp
Hybrid test automation frameworks implementation using qtpHybrid test automation frameworks implementation using qtp
Hybrid test automation frameworks implementation using qtpabhijob
 
Architecture Specification - Visual Modeling Tool
Architecture Specification - Visual Modeling ToolArchitecture Specification - Visual Modeling Tool
Architecture Specification - Visual Modeling ToolAdriaan Venter
 
Java Web Programming [8/9] : JSF and AJAX
Java Web Programming [8/9] : JSF and AJAXJava Web Programming [8/9] : JSF and AJAX
Java Web Programming [8/9] : JSF and AJAXIMC Institute
 
REACTJS.pdf
REACTJS.pdfREACTJS.pdf
REACTJS.pdfArthyR3
 
Why use .net by naveen kumar veligeti
Why use .net by naveen kumar veligetiWhy use .net by naveen kumar veligeti
Why use .net by naveen kumar veligetiNaveen Kumar Veligeti
 
UI Automation_White_CodedUI common problems and tricks
UI Automation_White_CodedUI common problems and tricksUI Automation_White_CodedUI common problems and tricks
UI Automation_White_CodedUI common problems and tricksTsimafei Avilin
 
Asp.net+interview+questions+and+answers
Asp.net+interview+questions+and+answersAsp.net+interview+questions+and+answers
Asp.net+interview+questions+and+answersMohan Raj
 
AspMVC4 start101
AspMVC4 start101AspMVC4 start101
AspMVC4 start101Rich Helton
 
Asp.Net Ajax Component Development
Asp.Net Ajax Component DevelopmentAsp.Net Ajax Component Development
Asp.Net Ajax Component DevelopmentChui-Wen Chiu
 
Mobile application
Mobile applicationMobile application
Mobile applicationaspnet123
 
Mastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullyMastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullySpringPeople
 
Exploring Adobe Flex
Exploring Adobe Flex Exploring Adobe Flex
Exploring Adobe Flex senthil0809
 
C sharp and asp.net interview questions
C sharp and asp.net interview questionsC sharp and asp.net interview questions
C sharp and asp.net interview questionsAkhil Mittal
 
Net framework session03
Net framework session03Net framework session03
Net framework session03Vivek chan
 

Similar to Introduction to the integral framework (20)

Azure Durable Functions
Azure Durable FunctionsAzure Durable Functions
Azure Durable Functions
 
Hybrid test automation frameworks implementation using qtp
Hybrid test automation frameworks implementation using qtpHybrid test automation frameworks implementation using qtp
Hybrid test automation frameworks implementation using qtp
 
Architecture Specification - Visual Modeling Tool
Architecture Specification - Visual Modeling ToolArchitecture Specification - Visual Modeling Tool
Architecture Specification - Visual Modeling Tool
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Java Web Programming [8/9] : JSF and AJAX
Java Web Programming [8/9] : JSF and AJAXJava Web Programming [8/9] : JSF and AJAX
Java Web Programming [8/9] : JSF and AJAX
 
PagesToGo.pdf
PagesToGo.pdfPagesToGo.pdf
PagesToGo.pdf
 
REACTJS.pdf
REACTJS.pdfREACTJS.pdf
REACTJS.pdf
 
Why use .net by naveen kumar veligeti
Why use .net by naveen kumar veligetiWhy use .net by naveen kumar veligeti
Why use .net by naveen kumar veligeti
 
UI Automation_White_CodedUI common problems and tricks
UI Automation_White_CodedUI common problems and tricksUI Automation_White_CodedUI common problems and tricks
UI Automation_White_CodedUI common problems and tricks
 
Asp.net+interview+questions+and+answers
Asp.net+interview+questions+and+answersAsp.net+interview+questions+and+answers
Asp.net+interview+questions+and+answers
 
AspMVC4 start101
AspMVC4 start101AspMVC4 start101
AspMVC4 start101
 
Asp.Net Ajax Component Development
Asp.Net Ajax Component DevelopmentAsp.Net Ajax Component Development
Asp.Net Ajax Component Development
 
Angular2 and You
Angular2 and YouAngular2 and You
Angular2 and You
 
Mobile application
Mobile applicationMobile application
Mobile application
 
Building richwebapplicationsusingasp
Building richwebapplicationsusingaspBuilding richwebapplicationsusingasp
Building richwebapplicationsusingasp
 
react-en.pdf
react-en.pdfreact-en.pdf
react-en.pdf
 
Mastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium SuccessfullyMastering Test Automation: How To Use Selenium Successfully
Mastering Test Automation: How To Use Selenium Successfully
 
Exploring Adobe Flex
Exploring Adobe Flex Exploring Adobe Flex
Exploring Adobe Flex
 
C sharp and asp.net interview questions
C sharp and asp.net interview questionsC sharp and asp.net interview questions
C sharp and asp.net interview questions
 
Net framework session03
Net framework session03Net framework session03
Net framework session03
 

Recently uploaded

Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation SlidesKeppelCorporation
 
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...lizamodels9
 
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / NcrCall Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncrdollysharma2066
 
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckPitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckHajeJanKamps
 
Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Riya Pathan
 
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,noida100girls
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Servicecallgirls2057
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Seta Wicaksana
 
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...lizamodels9
 
Annual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesAnnual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesKeppelCorporation
 
(Best) ENJOY Call Girls in Faridabad Ex | 8377087607
(Best) ENJOY Call Girls in Faridabad Ex | 8377087607(Best) ENJOY Call Girls in Faridabad Ex | 8377087607
(Best) ENJOY Call Girls in Faridabad Ex | 8377087607dollysharma2066
 
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607dollysharma2066
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessSeta Wicaksana
 
Call Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any TimeCall Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any Timedelhimodelshub1
 
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu MenzaYouth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menzaictsugar
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Kirill Klimov
 
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCRashishs7044
 
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdfNewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdfKhaled Al Awadi
 
Islamabad Escorts | Call 03274100048 | Escort Service in Islamabad
Islamabad Escorts | Call 03274100048 | Escort Service in IslamabadIslamabad Escorts | Call 03274100048 | Escort Service in Islamabad
Islamabad Escorts | Call 03274100048 | Escort Service in IslamabadAyesha Khan
 
Marketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet CreationsMarketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet Creationsnakalysalcedo61
 

Recently uploaded (20)

Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
 
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
 
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / NcrCall Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
Call Girls in DELHI Cantt, ( Call Me )-8377877756-Female Escort- In Delhi / Ncr
 
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckPitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
 
Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737
 
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...
 
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
Call Girls In Connaught Place Delhi ❤️88604**77959_Russian 100% Genuine Escor...
 
Annual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesAnnual General Meeting Presentation Slides
Annual General Meeting Presentation Slides
 
(Best) ENJOY Call Girls in Faridabad Ex | 8377087607
(Best) ENJOY Call Girls in Faridabad Ex | 8377087607(Best) ENJOY Call Girls in Faridabad Ex | 8377087607
(Best) ENJOY Call Girls in Faridabad Ex | 8377087607
 
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful Business
 
Call Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any TimeCall Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any Time
 
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu MenzaYouth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024
 
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
 
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdfNewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
 
Islamabad Escorts | Call 03274100048 | Escort Service in Islamabad
Islamabad Escorts | Call 03274100048 | Escort Service in IslamabadIslamabad Escorts | Call 03274100048 | Escort Service in Islamabad
Islamabad Escorts | Call 03274100048 | Escort Service in Islamabad
 
Marketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet CreationsMarketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet Creations
 

Introduction to the integral framework

  • 1. Introduction to the integral Framework INTRODUCTION TO THE INTEGRAL FRAMEWORK BY KARTHIK SUBRAMANIAN https://www.linkedin.com/in/karsub1 karsubp@gmail.com
  • 2. Introduction to the Integral Framework One definition of the word Integral is: consisting or composed of parts that together constitute a whole. The focus of this framework is Simplicity. By creating and maintaining easy-to-understanding parts, it is possible to create and maintain an easy-to-understand whole. Simplicity here means minimizing the key resources involved in the framework and making sure those resources follow clear lines of communication with each other. The Integral framework places a majority of its emphasis on Description Objects, Component Scripts and Actions, Function Libraries (VBS files), Driver Scripts and Actions and Master Scripts and Actions. The Following Diagram shows a simplified hierarchy of these resources.
  • 4. Description Objects Instead of using the Object Repository feature in Quick Test Pro (QTP), each component action will use explicitly defined Description Objects which are property name/value collections used to identify an object within the Application Under Test (AUT) Component Scripts Component Scripts are composed of very small, reusable, automated pieces of functionality within the AUT. Examples of component actions include entering text in a field or clicking on a Button
  • 5. Function Libraries External functions and subroutines written as VBS files can be an extremely valuable way to reuse code in an automation framework Driver Scripts Driver Scripts are composed of reusable actions that dictate the order in which component actions are executed so that a user experience in simulated. The focus of a driver script is on page- specific activity.
  • 6. Master Scripts Master Scripts decide the order in which driver scripts are executed so that a full, end-–to-end test scenario can be simulated. The focus of a master script is on system-wide activity Component Scripts Each component script contains a collection of reusable actions that can be used to manipulate or validate objects on a particular screen in the AUT. Separate component scripts should be created to handle areas of the screen that appear on more than one screen (e.g. a navigation banner at the top of the left of the screen that appears on most of the screens). Popup windows and dialogs should be considered different screens within the AUT and should have corresponding component scripts as well. The following illustration shows how each object on the AUT screen has a corresponding reusable action in the component script
  • 7. Component script Application Under Test = Reusable Action Login Username Password Login Enter Username Enter Password Click Login Component script Application Under Test = Reusable Action
  • 8. Component Action Types There are two main types of component actions within the Integral Framework: manipulation actions and validation actions. Manipulation actions are those actions that do something to an object on the application’s user interface. Validation actions are those actions that check something in the system, comparing an expected value against an actual value or application state. The following illustration shows how component actions can be used to validate or manipulate specific objects in the AUT.
  • 9. Component script Application Under Test ValUsername ValTodaysDate ClickStart Welcome Welcome SunRaise! Today’s Date: January 1, 10 Start Component script Application Under Test = Reusable Action
  • 11. Input Parameters Input parameters are used to pass information to reusable component actions. An action that handles entering text into a text field will have an input parameter that specifies what text should be entered into the field. Input parameters, depending on the parameter type (i.e. String, Number, Boolean, etc.), might utilize a default value when a similar value will often be passed into the action. Output Parameters Output parameters can be used to return information back to the calling driver action. Output parameters are typically used to retrieve information that is generated by the AUT and that is needed later during the automated script’s execution
  • 12. Referencing External Files When multiple components actions use very similar code to perform their object manipulations, the code is a good candidate for reuse by moving it to an external file. The following illustration shows how two component actions that contain similar code can reuse code by moving the logic to an external file and simply calling the external file. WebEdit_EnterText.vbs
  • 13. Moving code to an external file not only allows the code to be referenced more easily by component actions but it also allows for simpler maintenance of the code since it’s only in one place. Imagine if the logic of enter text was in 500 components actions and then had to be updated. One would have to make the logic update in 500 places instead of just one. Use the ExecuteFile command in QTP to retrieve the external file and put the file’s code into memory for execution. In the previous example, Both EnterUsername and EnterPassword actions would need to perform the following command before the calling the subroutine in the external file. ExecuteFile “WebEdit_EnterText.vbs”
  • 14. Description Objects The Integral Framework uses description objects instead of object repositories to identify objects in the AUT. Using description objects allows the engineer to be very specific when defining the property names and values to use when identifying the object being manipulated or validated. Storing property names and values in object repositories requires additional space and processing during script execution since it forces QTP to create and reference an XML file where all the property names and values are stored and then create description objects based on those properties. It also avoids identifying similar fields on different pages. By manually creating description objects, engineers can save space and skip extra processing required by QTP.
  • 15. The following example code shows how to create a description object and assign a property or properties name/value pair to it. ‘Set aside memory for the description object variable Dim descrWebEdit ‘Create the description object and assign it to the variable Set descrWebEdit=Description.Create() ‘Add the Property to our object, supplying as the property value descrWebEdit(“name”).value=”MyfeildName” Note: Use the Object Spy tool in QTP to discover the properties that uniquely identify the object being manipulated or validated.
  • 16. Piecing It all Together: Using Component Actions The following diagram shows an example of everything discussed thus far. “SunRaise” is passed into the component action EnterUsername as an input parameter. Because EnterUsername handles only entering text into the Username fields, the action only needs to: (1) identify the field being manipulated, and (2) enter text into the field. Step (1) is handled by creating a description object that uniquely identifies the field on the screen. Step (2) is handled by the external file WebEdit_EnterText.vbs which contains a subroutine of the same name. To enter text into the password field, the engineer would create a component action called EnterPassword where a description object is created to uniquely identify the Password field, and then make a call to the same WebEdit_EnterText.vbs.
  • 17.
  • 18. Driver Scripts Each driver script contains reusable actions that call component actions in a particular order to simulate a user experience on a particular screen in the AUT. While component actions focus on a particular field or object on a screen, driver actions focus on manipulating more than one object on the screen A user experience on a particular screen may involve manipulating one or more pop-up windows or may require navigating to and from another screen in the application in order to complete the activity. Manipulating pop-up windows and /or navigating to another screen should take place within the same driver action if, and only if, those extra steps are necessary to the activity. Driver scripts control which specific data is passed to the component actions it calls i.e. the username “SunRaise” should be passed from the driver action as an input parameter to the component action EnterUsername
  • 19. Driver Action Types There are two main types of driver actions within the Integral framework: Independent actions and dependent actions. Independent actions are those actions that can be executed regardless of the application state. Dependent actions are those actions that can execute successfully only if the application is in a particular state (i.e., on a particular screen). An example of an independent action might be creating a new user account in the system. An action such as creating a new record that does not rely on any other record being created previously can usually take place at any time while in the application. As long as the automated test can perform the necessary actions to return the application to a ‘start’ state (e.g. returning to a home page or login screen), the independent action can execute successfully.
  • 20. An example of dependent action might be performing a task on the fourth screen in a wizard-like sequence of screens. Without first executing the actions that correspond to the previous screens in the wizard, the dependent action cannot execute successfully. Creating a Driver script The reusable actions that make up a driver script should be named in a way that clearly and concisely describes what the action is doing on the particular screen. An example might be AddUserAccount for a driver action that simulates entering in information for a new user account, submitting that information to the system and performing validation to ensure that the activity was successful.
  • 21. Piecing It All Together: Using Driver Actions The following illustration shows a driver action that enters a username and password and then clicks the Login button – in that order - to simulate a user logging into the system. Note that “…”denotes QTP Syntax that has been removed in this document
  • 22. Component Action Component Action Component Action Application Under Test WebEdit_EnterText.vbs WebButton_Click.vbs RunAction “EnterUsername”, …. ,”SunRaise” RunAction “EnterPassword”, …. ,”Password” RunAction “ClickLogin”, … EnterPassword Click Login EnterUsername Code to Enter text Code to Enter text Login Username Password Login SunRaise ********** Driver Action: Login WebButton_Click.vbs
  • 23. Data Scenarios A data scenario is a collection of specific data that are used to populate fields, act as expected values for validations and otherwise drive an action to simulate the information a user might input into the system and expect to receive from the system as output. As an example, imagine that there are two user accounts in the system. Each user account has an associated username and password that must be used together in order to gain access into the system. The following table represents two possible data scenarios that could be used for the driver action Login shown above Username Password 1 SunRaise SunPassword1 2 Moonlight CoolWinter
  • 24. By referencing the first data scenario in the Login driver action, the automation would simulate logging into the system as SunRaise. By referencing the second data scenario, the automation would simulate logging into the system as Moonlight. Note that the driver action would not have to be changed at all in order to perform either simulation. It would only be necessary to manage what input data was supplied to the component actions called in the driver action. This is where driver action input parameters are introduced. Input Parameters Input parameters are used to tell the driver action which data scenario to use. Like component actions, a default value can be assigned to be input parameter for the driver action.
  • 25. Piecing it All Together: Using Data Scenarios The following illustration shows how a call from master action can dictate which data scenario is referenced by a driver action, thereby determining how the driver action will simulate a user experience.
  • 26.
  • 27. Referencing External Files There are two types of external files within the Integral Framework: AUT-focused libraries and framework – focused libraries. AUT- focused libraries are the functions and subroutines that are used by component actions to manipulate or validate the AUT. Framework- focused libraries are the functions and subroutines that are used within the framework itself to control execution flow and data. Most AUT-focused libraries can be thought of as replacing the code that QTP automatically generates during a recording of an action. QTP might generate the following line after clicking a web button. Browser(…).Page(…).WebButton(…).Click
  • 28. The Integral Framework uses a description object to uniquely identify the WebButton, and then passes that description object to the WebButton_Click subroutine managed in the external file WebButton_Click.vbs Framework – focused libraries are designed to make the framework more easily maintained and flexible by implementing code reuse. Framework-focused libraries can contain functions that handle commonly used tasks (e.g. formatting data in a particular way) or dictate how the automation test should be executed (e.g. how many times an action should be executed and which data scenario to use) .
  • 29. Master Scripts Each master action will contain only calls to driver actions in a particular order that simulates a user experience across more than one screen in the system. Each call to a driver action also contains the row number of the data scenario to use while executing. If more than one row number is supplied, the driver action will be executed once for each row number supplied and in the order that the numbers are supplied. This functionality should be implemented in the driver actions using a separate VBS file.