KEMBAR78
Test Automation Framework Development Introduction | PPT
Test
Automation Framework
Introduction – Data
Driven
(Free to Share/View/Download)
Presenter : Ganuka Yashantha
© Ganuka Yashantha | ganuyash@gmail.com
Contents
1. Software Framework
2. Selenium 2.0
What is Selenium
What we use
Advantages of WebDriver
1. The Better Way
Introduction
PageObject Pattern
1. Automation Framework Approaches
Data/Table Driven Framework
Lessons Learnt
Test Organization
Test Writing Style
Note
© Ganuka Yashantha | ganuyash@gmail.com
Software Test Framework
What is a software test
framework?
1
© Ganuka Yashantha | ganuyash@gmail.com
Software Test Framework
The definition and key components
A software test framework is a universal, reusable software platform used to
develop applications, products and solutions (Wikipedia, 2012).
Software Test Frameworks include,
 Support Programs
 Compilers
 Code Libraries
 APIs
 A tool set to integrate different components
© Ganuka Yashantha | ganuyash@gmail.com
Software Framework
Framework properties
A Software Test framework contain key distinguishing features that separate them
from normal libraries.
They are,
 Inversion of Control (IOC) the overall program's flow of
control is not dictated by the caller, but by the framework.
 Default behaviour must actually be some useful behavior
and not a series of instructions.
 Extensibility can be extended by the user usually by
selective overriding or specialized by user code providing
specific functionality.
 Non modifiable framework code is not allowed to be
modified.
© Ganuka Yashantha | ganuyash@gmail.com
SELENIUM 2.0
What is the easy way to
automate?
2© Ganuka Yashantha | ganuyash@gmail.com
The easy way
Records all user activities and play
back
Selenium IDE is an integrated development
environment for Selenium scripts. It is
implemented as a Firefox extension, and allows
you to record, edit, and debug tests.
Later, the recorded events are played back
and various assertions are made to ensure the
output matches that which is expected.
© Ganuka Yashantha | ganuyash@gmail.com
What is Selenium ?
 create quick bug
reproduction scripts
 create scripts to aid in
automation-aided exploratory
testing
Selenium automates browsers. That's it! What you do with
that power is entirely up to you. Primarily, it is for
automating web applications for testing purposes
 create robust, browser-
based regression
automation
 scale and distribute scripts
across many environments
Selenium IDE Selenium WebDriver
© Ganuka Yashantha | ganuyash@gmail.com
What we Use ?
Selenium WebDriver
 This is commonly referred to as just "WebDriver" or sometimes
as “Selenium 2”
 Selenium 1.0 + WebDriver = Selenium 2.0
 Tests should be written in Java, the implementing classes
one should use are listed as below:
AndroidDriver, ChromeDriver
, EventFiringWebDriver, FirefoxDriver, HtmlUnitDriver,
InternetExplorerDriver, PhantomJSDriver,
RemoteWebDriver, SafariDriver
© Ganuka Yashantha | ganuyash@gmail.com
Advantages of WebDriver
Better error handling.  You can wrap you calls in try/catch
blocks and have recovery routines.
Reusable modules.  PageObject, Reusable flow models,
Fixtures and Factories, data processing, object handling
utilities, etc
Ability to tap into coordinate stuff outside of web browser.
Very mature and complete API
In Sept 2010, supports JavaScript alerts and confirms better
© Ganuka Yashantha | ganuyash@gmail.com
The Better Way
What could be a
better way of
automating?
3© Ganuka Yashantha | ganuyash@gmail.com
The better way
Introduction
Treat automated testing as software development.
Tests should be created with the same concern for software design
principles such as,
• Reduced coupling
• High cohesion
• Proper separation of concerns
• Maintainability
• Reusability
© Ganuka Yashantha | ganuyash@gmail.com
Automation Framework Approaches
Generic Architecture
A Test Automation Framework should have a multi-
tiered architecture. It should consists of the following
tiers.
 Engine Components in this tier are completely
responsible for interacting with the WebDriver
interfaces.
 Domain This tier is meant to contain only page
objects that work against the engine.
 Utils This tier is meant to contain very
generic, reusable functionality across all the
other tiers.
 Functional Tests This tier will contain tests
that are built on top of other tiers to create
actual test scenarios by using page objects in
the Domain.
Test Automation FrameworkTest Automation Framework
Functional Tests(Business Logic)Functional Tests(Business Logic)
Domain(Page Object)
Engine
UtilsUtils
Selenium Web Driver APISelenium Web Driver API
DataObjectDataObject
TestNG FrameWorkTestNG FrameWork
© Ganuka Yashantha | ganuyash@gmail.com
Page Object Design Pattern
 The Page Object pattern represents the screens of your web
app as a series of objects and encapsulates the features
represented by a page.
 It allows us to model the UI in our tests.
 A page object is an object-oriented class that serves as an
interface to a page
clickLogin –Directing to
Home Page
enterPassword
enterUserName
© Ganuka Yashantha | ganuyash@gmail.com
The better way
PageObject class more…
© Ganuka Yashantha | ganuyash@gmail.com
Once new Element
added to the DOM
below Xpaths’ can
be changed….
DataObject Class
Getter and Setters
Test Data
© Ganuka Yashantha | ganuyash@gmail.com
Test Data Generation
Useful When Test Data Generating
 Preparing proper test data is a core part of testing.
 Especially when you do Functional Automation testing or
Performance testing you will need large number of data set.
 Using following links you can make it more handily
• http://www.mockaroo.com/#tab_all
• http://www.generatedata.com/
© Ganuka Yashantha | ganuyash@gmail.com
TestExecution Class
© Ganuka Yashantha | ganuyash@gmail.com
Data passing from
Data Object
Creating login data
Object
Using
LoginPageObject
to navigate
Normal Test
Execution
Engine
Continues ….
© Ganuka Yashantha | ganuyash@gmail.com
The better way
Things to Remember….
In PageObjects,
• The public methods represent the services that the page offers
• Try to stick to the ID and Name when Accessing Elements.(FindElementBy.id
or FindElementBy.name)
• Changes in UI’s having a direct impact on the PageObject Classes
• Methods return other PageObjects, if functionality changed there can be
plenty of changes in DataObjects, PageObjects and Business Logic as well.
• If there are dynamic web elements, changes in those have a impact on
Excel Data sources, Data Object and PageObject.
• Different results for the same action are modeled as different methods
© Ganuka Yashantha | ganuyash@gmail.com
Automation
Framework
Different type of
automation
frameworks?
4© Ganuka Yashantha | ganuyash@gmail.com
Automation Framework Approaches
Data Driven Framework
Data driven is the design of possible inputs what may given by the end user. This would cover
maximum probabilities of an input data. It can be a spread sheet or a DB. We have to connect
and pass the values to the respective field or element.
• Take advantage of tester’s familiarity with test case creation using tables and matrices
• Accommodate localization projects
• Recognize the importance of patterns in test cases
• Enable testers to catalog test cases with Excel spreadsheets
• Enable testers to specify expected results in spreadsheets
© Ganuka Yashantha | ganuyash@gmail.com
Lessons Learnt
Some important
points to keep in
mind
© Ganuka Yashantha | ganuyash@gmail.com
Notes … .. .
 Referred selector order : id > name > css > xpath
 Using ID as a selector is the best Practise.
 If there are changes in Selectors, communicate among the
QAs’ and it’s important to prevent the test failures.
 Automated Test Can be flailed due to :
• Selector Changes (id/name/css/xpath)
• Functionality Changes (business logic)
• Data Provider failures (updating fields/adding new fields, etc)
• External Data Level(XML Changes) Changes
© Ganuka Yashantha | ganuyash@gmail.com
When new Element added to the Navigation Panel Xpath
of the “User Details’’ Element Can be changed.
© Ganuka Yashantha | ganuyash@gmail.com
Scripts can
fail 
When using ID’s
© Ganuka Yashantha | ganuyash@gmail.com
  
Thank You
© Ganuka Yashantha | ganuyash@gmail.com

Test Automation Framework Development Introduction

  • 1.
    Test Automation Framework Introduction –Data Driven (Free to Share/View/Download) Presenter : Ganuka Yashantha © Ganuka Yashantha | ganuyash@gmail.com
  • 2.
    Contents 1. Software Framework 2.Selenium 2.0 What is Selenium What we use Advantages of WebDriver 1. The Better Way Introduction PageObject Pattern 1. Automation Framework Approaches Data/Table Driven Framework Lessons Learnt Test Organization Test Writing Style Note © Ganuka Yashantha | ganuyash@gmail.com
  • 3.
    Software Test Framework Whatis a software test framework? 1 © Ganuka Yashantha | ganuyash@gmail.com
  • 4.
    Software Test Framework Thedefinition and key components A software test framework is a universal, reusable software platform used to develop applications, products and solutions (Wikipedia, 2012). Software Test Frameworks include,  Support Programs  Compilers  Code Libraries  APIs  A tool set to integrate different components © Ganuka Yashantha | ganuyash@gmail.com
  • 5.
    Software Framework Framework properties ASoftware Test framework contain key distinguishing features that separate them from normal libraries. They are,  Inversion of Control (IOC) the overall program's flow of control is not dictated by the caller, but by the framework.  Default behaviour must actually be some useful behavior and not a series of instructions.  Extensibility can be extended by the user usually by selective overriding or specialized by user code providing specific functionality.  Non modifiable framework code is not allowed to be modified. © Ganuka Yashantha | ganuyash@gmail.com
  • 6.
    SELENIUM 2.0 What isthe easy way to automate? 2© Ganuka Yashantha | ganuyash@gmail.com
  • 7.
    The easy way Recordsall user activities and play back Selenium IDE is an integrated development environment for Selenium scripts. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Later, the recorded events are played back and various assertions are made to ensure the output matches that which is expected. © Ganuka Yashantha | ganuyash@gmail.com
  • 8.
    What is Selenium?  create quick bug reproduction scripts  create scripts to aid in automation-aided exploratory testing Selenium automates browsers. That's it! What you do with that power is entirely up to you. Primarily, it is for automating web applications for testing purposes  create robust, browser- based regression automation  scale and distribute scripts across many environments Selenium IDE Selenium WebDriver © Ganuka Yashantha | ganuyash@gmail.com
  • 9.
    What we Use? Selenium WebDriver  This is commonly referred to as just "WebDriver" or sometimes as “Selenium 2”  Selenium 1.0 + WebDriver = Selenium 2.0  Tests should be written in Java, the implementing classes one should use are listed as below: AndroidDriver, ChromeDriver , EventFiringWebDriver, FirefoxDriver, HtmlUnitDriver, InternetExplorerDriver, PhantomJSDriver, RemoteWebDriver, SafariDriver © Ganuka Yashantha | ganuyash@gmail.com
  • 10.
    Advantages of WebDriver Bettererror handling.  You can wrap you calls in try/catch blocks and have recovery routines. Reusable modules.  PageObject, Reusable flow models, Fixtures and Factories, data processing, object handling utilities, etc Ability to tap into coordinate stuff outside of web browser. Very mature and complete API In Sept 2010, supports JavaScript alerts and confirms better © Ganuka Yashantha | ganuyash@gmail.com
  • 11.
    The Better Way Whatcould be a better way of automating? 3© Ganuka Yashantha | ganuyash@gmail.com
  • 12.
    The better way Introduction Treatautomated testing as software development. Tests should be created with the same concern for software design principles such as, • Reduced coupling • High cohesion • Proper separation of concerns • Maintainability • Reusability © Ganuka Yashantha | ganuyash@gmail.com
  • 13.
    Automation Framework Approaches GenericArchitecture A Test Automation Framework should have a multi- tiered architecture. It should consists of the following tiers.  Engine Components in this tier are completely responsible for interacting with the WebDriver interfaces.  Domain This tier is meant to contain only page objects that work against the engine.  Utils This tier is meant to contain very generic, reusable functionality across all the other tiers.  Functional Tests This tier will contain tests that are built on top of other tiers to create actual test scenarios by using page objects in the Domain. Test Automation FrameworkTest Automation Framework Functional Tests(Business Logic)Functional Tests(Business Logic) Domain(Page Object) Engine UtilsUtils Selenium Web Driver APISelenium Web Driver API DataObjectDataObject TestNG FrameWorkTestNG FrameWork © Ganuka Yashantha | ganuyash@gmail.com
  • 14.
    Page Object DesignPattern  The Page Object pattern represents the screens of your web app as a series of objects and encapsulates the features represented by a page.  It allows us to model the UI in our tests.  A page object is an object-oriented class that serves as an interface to a page clickLogin –Directing to Home Page enterPassword enterUserName © Ganuka Yashantha | ganuyash@gmail.com
  • 15.
    The better way PageObjectclass more… © Ganuka Yashantha | ganuyash@gmail.com Once new Element added to the DOM below Xpaths’ can be changed….
  • 16.
    DataObject Class Getter andSetters Test Data © Ganuka Yashantha | ganuyash@gmail.com
  • 17.
    Test Data Generation UsefulWhen Test Data Generating  Preparing proper test data is a core part of testing.  Especially when you do Functional Automation testing or Performance testing you will need large number of data set.  Using following links you can make it more handily • http://www.mockaroo.com/#tab_all • http://www.generatedata.com/ © Ganuka Yashantha | ganuyash@gmail.com
  • 18.
    TestExecution Class © GanukaYashantha | ganuyash@gmail.com Data passing from Data Object Creating login data Object Using LoginPageObject to navigate Normal Test Execution
  • 19.
    Engine Continues …. © GanukaYashantha | ganuyash@gmail.com
  • 20.
    The better way Thingsto Remember…. In PageObjects, • The public methods represent the services that the page offers • Try to stick to the ID and Name when Accessing Elements.(FindElementBy.id or FindElementBy.name) • Changes in UI’s having a direct impact on the PageObject Classes • Methods return other PageObjects, if functionality changed there can be plenty of changes in DataObjects, PageObjects and Business Logic as well. • If there are dynamic web elements, changes in those have a impact on Excel Data sources, Data Object and PageObject. • Different results for the same action are modeled as different methods © Ganuka Yashantha | ganuyash@gmail.com
  • 21.
  • 22.
    Automation Framework Approaches DataDriven Framework Data driven is the design of possible inputs what may given by the end user. This would cover maximum probabilities of an input data. It can be a spread sheet or a DB. We have to connect and pass the values to the respective field or element. • Take advantage of tester’s familiarity with test case creation using tables and matrices • Accommodate localization projects • Recognize the importance of patterns in test cases • Enable testers to catalog test cases with Excel spreadsheets • Enable testers to specify expected results in spreadsheets © Ganuka Yashantha | ganuyash@gmail.com
  • 23.
    Lessons Learnt Some important pointsto keep in mind © Ganuka Yashantha | ganuyash@gmail.com
  • 24.
    Notes … ...  Referred selector order : id > name > css > xpath  Using ID as a selector is the best Practise.  If there are changes in Selectors, communicate among the QAs’ and it’s important to prevent the test failures.  Automated Test Can be flailed due to : • Selector Changes (id/name/css/xpath) • Functionality Changes (business logic) • Data Provider failures (updating fields/adding new fields, etc) • External Data Level(XML Changes) Changes © Ganuka Yashantha | ganuyash@gmail.com
  • 25.
    When new Elementadded to the Navigation Panel Xpath of the “User Details’’ Element Can be changed. © Ganuka Yashantha | ganuyash@gmail.com Scripts can fail 
  • 26.
    When using ID’s ©Ganuka Yashantha | ganuyash@gmail.com   
  • 27.
    Thank You © GanukaYashantha | ganuyash@gmail.com