SlideShare a Scribd company logo
Page Object
Generation
Lose the maintenance,
increase the productivity
The Problem
 Failuresguide our work
 The product is ever-changing
 Developers do not communicate
  changes proactively (or at all)
 40% of our time is spent accounting for
  these changes
 Who can analyze 300 test failures every
  night?
What Changes?
 Htmlid (i.e. “Locator”)
 Element type
 Major navigation path


Each will break most automated tests
Html id


 Ifthe id changes (e.g. to signinField), the
  test will break
 The element will no longer exist
Element Type


 Thelink is changed from a Link to Button
 WebDriver will still look for a link
Navigation Path
 Pages  are added
 Popups are introduced
 Buttons and forms are split up across
  pages
 UI Look and feel “reset”
 WebDriver scripts don’t stand a chance—
  you just start over
The Change Cycle
Wish List for a Solution
 Build  in a mechanism for change
  communication
 Account for the changes AS THEY
  HAPPEN, not reactively
 Tighter integration with development
 Pass rate needs to be 97% or better, with
  all failures accounted for within 24 hours
Page Object Generation
 Generate   the pages on every build
 Web Controls are mapped to specific
  WebElement types
 If the type of an object changes in a way
  that breaks automation, the whole build
  fails
Let’s See It!
What you get
A   page, containing every element in the
  UI
 Each element is aware of its Tab
 Including every Rich WebElement
 A Fields object, usable by those writing
  Test Scripts
The New Change Cycle
The New Change Cycle
          •Significant underlying type (Text Input to Radio Button)
          •Insignificant underlying type (Button to Link)
Developer
 Change   •id changes for localization


           •Compiler flags type change—breakage
           •Compiler ignores type change (Both are IClickable)
Regenerate
  Model    •Page auto-updates id change—no breakage


          •Tester doesn’t know—fixed before dev check-in
          •Tester doesn’t know—Framework “absorbs” the change
   Test   •Tester doesn’t know—id is s String, stored in one place
When change happens
   Html id changes
       Who cares?
         Generation process normalizes names
         Unit test enforces uniqueness
   Element type changes
       Developer fixes prior to check-in
   Navigation path changes
       More rare, but failures show up within 24 hours
       Without all the noise, issues are easier to spot,
        analyze, and fix
Where do you go now?
   You have a model of your system
   Use it to “analyze itself”
   The all-table test
   Role-based security tests
   Algorithms to
       Iterate through every page looking for
        standards compliance
       500 errors
       Forms
       Security issues (code injection, XSS etc)
Bottom Line
 We   found 7 major regressions in 2008, the
  last year of the “old” platform
 12 in 2009 with >500 test cases
 20 in 2010 with >1100 test cases
 More than 50 in 2011 with 1700 test cases
 Customer reported defects did NOT go
  down, because…
 Velocity increased so much, features
  were added at a much faster clip
Questions?

More Related Content

PPTX
Testing Rapidly Changing Applications With Self-Testing Object-Oriented Selen...
PDF
Using Selenium to Improve a Teams Development Cycle
PDF
Selenium - The page object pattern
PPTX
Better Page Object Handling with Loadable Component Pattern
PPTX
Learn SoapUI
ODP
PhpUnit & web driver
PPT
Ppt of soap ui
PDF
Web Services Automated Testing via SoapUI Tool
Testing Rapidly Changing Applications With Self-Testing Object-Oriented Selen...
Using Selenium to Improve a Teams Development Cycle
Selenium - The page object pattern
Better Page Object Handling with Loadable Component Pattern
Learn SoapUI
PhpUnit & web driver
Ppt of soap ui
Web Services Automated Testing via SoapUI Tool

What's hot (20)

PDF
How to Use Selenium, Successfully
PPTX
Marcin Wasilczyk - Page objects with selenium
PPT
Selenium and The Grinder
PDF
Selenium Best Practices with Jason Huggins
PDF
Practical Tips & Tricks for Selenium Test Automation
PPTX
DSL, Page Object and Selenium – a way to reliable functional tests
PDF
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
PDF
How to Build Your Own Test Automation Framework?
PDF
How To Use Selenium Successfully
PPTX
Introduction to SoapUI day 2
PPT
Web services testing
PDF
Testing Web Services - QA or the Highway 2016
PDF
Practical Tips & Tricks for Selenium Test Automation - Dave Haeffner
PPTX
REST API testing with SpecFlow
PPTX
Breaking Dependencies to Allow Unit Testing
PDF
Testing Angular
PPTX
Api testing
PDF
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
PPTX
Selenium Design Patterns
PPTX
Improving the Quality of Existing Software
How to Use Selenium, Successfully
Marcin Wasilczyk - Page objects with selenium
Selenium and The Grinder
Selenium Best Practices with Jason Huggins
Practical Tips & Tricks for Selenium Test Automation
DSL, Page Object and Selenium – a way to reliable functional tests
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
How to Build Your Own Test Automation Framework?
How To Use Selenium Successfully
Introduction to SoapUI day 2
Web services testing
Testing Web Services - QA or the Highway 2016
Practical Tips & Tricks for Selenium Test Automation - Dave Haeffner
REST API testing with SpecFlow
Breaking Dependencies to Allow Unit Testing
Testing Angular
Api testing
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Design Patterns
Improving the Quality of Existing Software
Ad

Viewers also liked (11)

PDF
Automatic Test Case Generation
PDF
Automated Test Case Generation and Execution from Models
PDF
Introducing Selenium Builder – the Future of Test Development
PDF
Selenium Builder
PDF
Selenium intro
PPT
Building Quality with Foundations of Mud
PPTX
Model-based Testing of a Software Bus - Applied on Core Flight Executive
PDF
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
PDF
The story of language development
PDF
TMPA-2017: A Survey on Model-Based Testing Tools for Test Case Generation
PDF
[HCMC STC Jan 2015] FATS: A Framework For Automated Testing Scenarios
Automatic Test Case Generation
Automated Test Case Generation and Execution from Models
Introducing Selenium Builder – the Future of Test Development
Selenium Builder
Selenium intro
Building Quality with Foundations of Mud
Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
The story of language development
TMPA-2017: A Survey on Model-Based Testing Tools for Test Case Generation
[HCMC STC Jan 2015] FATS: A Framework For Automated Testing Scenarios
Ad

Similar to Self-Generating Test Artifacts for Selenium/WebDriver (20)

PDF
Automation strategies for agile testing Gaurav bansal
PDF
Using The Page Object Pattern
PPTX
Designing for the internet - Page Objects for the Real World
PPT
WE-06-Testing.ppt
PPTX
Testing web application
PDF
Testingwebapplication by nandi cool
PPTX
Designing Self-maintaining UI Tests for Web Applications
PPTX
Automated integration tests for ajax applications (с. карпушин, auriga)
PPT
Test Automation Framework Designs
PPT
Test Automation Framework Designs
PPTX
DSL, Page Object and WebDriver – the path to reliable functional tests.pptx
PPTX
Testing webapps, websites and mobile applications
PPTX
Testing web based applications
PPTX
Glimpse and Benefits of Testing
PPT
Web test
PPT
Web test
PPTX
Web Engineering - Web Application Testing
PDF
Acceptance Testing of Web UI
PDF
Automation Abstractions: Page Objects and Beyond
PDF
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Automation strategies for agile testing Gaurav bansal
Using The Page Object Pattern
Designing for the internet - Page Objects for the Real World
WE-06-Testing.ppt
Testing web application
Testingwebapplication by nandi cool
Designing Self-maintaining UI Tests for Web Applications
Automated integration tests for ajax applications (с. карпушин, auriga)
Test Automation Framework Designs
Test Automation Framework Designs
DSL, Page Object and WebDriver – the path to reliable functional tests.pptx
Testing webapps, websites and mobile applications
Testing web based applications
Glimpse and Benefits of Testing
Web test
Web test
Web Engineering - Web Application Testing
Acceptance Testing of Web UI
Automation Abstractions: Page Objects and Beyond
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)

More from seleniumconf (8)

PDF
More Than Automation - How Good Acceptance Tests Can Make Your Team Happier
PDF
Building a Selenium Community One Meetup at a Time
PDF
Introduction to selenium_grid_workshop
PDF
Automated Security Testing
PDF
Selenium: State of the Union
PDF
Automated Web App Performance Testing Using WebDriver
PPT
Building a Driver: Lessons Learned From Developing the Internet Explorer Driver
KEY
Massively Continuous Integration: From 3 days to 30 minutes
More Than Automation - How Good Acceptance Tests Can Make Your Team Happier
Building a Selenium Community One Meetup at a Time
Introduction to selenium_grid_workshop
Automated Security Testing
Selenium: State of the Union
Automated Web App Performance Testing Using WebDriver
Building a Driver: Lessons Learned From Developing the Internet Explorer Driver
Massively Continuous Integration: From 3 days to 30 minutes

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
A Presentation on Artificial Intelligence
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Machine Learning_overview_presentation.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Spectroscopy.pptx food analysis technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
Teaching material agriculture food technology
PDF
Assigned Numbers - 2025 - Bluetooth® Document
Unlocking AI with Model Context Protocol (MCP)
A Presentation on Artificial Intelligence
Spectral efficient network and resource selection model in 5G networks
Machine Learning_overview_presentation.pptx
Electronic commerce courselecture one. Pdf
Review of recent advances in non-invasive hemoglobin estimation
Spectroscopy.pptx food analysis technology
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25-Week II
Per capita expenditure prediction using model stacking based on satellite ima...
The Rise and Fall of 3GPP – Time for a Sabbatical?
MYSQL Presentation for SQL database connectivity
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Teaching material agriculture food technology
Assigned Numbers - 2025 - Bluetooth® Document

Self-Generating Test Artifacts for Selenium/WebDriver

  • 1. Page Object Generation Lose the maintenance, increase the productivity
  • 2. The Problem  Failuresguide our work  The product is ever-changing  Developers do not communicate changes proactively (or at all)  40% of our time is spent accounting for these changes  Who can analyze 300 test failures every night?
  • 3. What Changes?  Htmlid (i.e. “Locator”)  Element type  Major navigation path Each will break most automated tests
  • 4. Html id  Ifthe id changes (e.g. to signinField), the test will break  The element will no longer exist
  • 5. Element Type  Thelink is changed from a Link to Button  WebDriver will still look for a link
  • 6. Navigation Path  Pages are added  Popups are introduced  Buttons and forms are split up across pages  UI Look and feel “reset”  WebDriver scripts don’t stand a chance— you just start over
  • 8. Wish List for a Solution  Build in a mechanism for change communication  Account for the changes AS THEY HAPPEN, not reactively  Tighter integration with development  Pass rate needs to be 97% or better, with all failures accounted for within 24 hours
  • 9. Page Object Generation  Generate the pages on every build  Web Controls are mapped to specific WebElement types  If the type of an object changes in a way that breaks automation, the whole build fails
  • 11. What you get A page, containing every element in the UI  Each element is aware of its Tab  Including every Rich WebElement  A Fields object, usable by those writing Test Scripts
  • 12. The New Change Cycle
  • 13. The New Change Cycle •Significant underlying type (Text Input to Radio Button) •Insignificant underlying type (Button to Link) Developer Change •id changes for localization •Compiler flags type change—breakage •Compiler ignores type change (Both are IClickable) Regenerate Model •Page auto-updates id change—no breakage •Tester doesn’t know—fixed before dev check-in •Tester doesn’t know—Framework “absorbs” the change Test •Tester doesn’t know—id is s String, stored in one place
  • 14. When change happens  Html id changes  Who cares?  Generation process normalizes names  Unit test enforces uniqueness  Element type changes  Developer fixes prior to check-in  Navigation path changes  More rare, but failures show up within 24 hours  Without all the noise, issues are easier to spot, analyze, and fix
  • 15. Where do you go now?  You have a model of your system  Use it to “analyze itself”  The all-table test  Role-based security tests  Algorithms to  Iterate through every page looking for standards compliance  500 errors  Forms  Security issues (code injection, XSS etc)
  • 16. Bottom Line  We found 7 major regressions in 2008, the last year of the “old” platform  12 in 2009 with >500 test cases  20 in 2010 with >1100 test cases  More than 50 in 2011 with 1700 test cases  Customer reported defects did NOT go down, because…  Velocity increased so much, features were added at a much faster clip