In Agile teams, as developers are able to deliver new features even faster, Testers also need to find a way to implement test scripts quicker. Design Patterns can help with that, as they provide a reusable solution to commonly occuring problems. In this session, we would demonstrate the advantages of using patterns and how we can apply Page object model and Factory patterns to speed-up test script creation.

 
20 favorite thumb_down thumb_up 2 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

  1. Introduction to Design Patterns
  2. Disadvantages of not following Page Object via Demo
  3. Page Object - Introduction
  4. Features of Page Object Pattern
  5. Implementation of Page Object via Demonstration.
  6. Benefits of Page
  7. Extending Page Object via Page Factory
  8. Page Factory demo including initElements @FindBy, @Cachelookup 
  9. LoadableComponents Demo 
  10. Drawbacks of this appraoch

Learning Outcome

Attendes would be able to implement best designing techniques on their own.

Target Audience

Quality Engineers and Test Engineers

schedule Submitted 3 years ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Anand Bagmar
    By Anand Bagmar  ~  2 years ago
    reply Reply

    Will you be speaking about any other patterns also for Test Automation? Is the Factory pattern just an extension of the Page Object Pattern or a different pattern by itself?

    • Jaya Gupta
      By Jaya Gupta  ~  2 years ago
      reply Reply

      We plan to discuss about page object and page factory patterns and a short insight on how on we can use command pattern to introduce BDD. Factory Pattern is and extension of Page Object pattern and it provides support to implement Page Object Pattern.


  • -
    -
    schedule 2 years ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    As the WWW morphed from a system of interlinked hypertext documents to an advanced application delivery platform, the requirements on the underlining technologies and the browsers implementing them changed dramatically.

    To ensure correctness in behaviour and that application code works across multiple browsers, standards come equipped with test suites.  But interoperability can only be guaranteed by a more thorough testing effort.  The W3C has launched a new project called Test the Web Forward to bridge this gap, and WebDriver sits at its centrepiece.

    The talk will focus on the infrastructure that is being created to run these tests, and exemplify how the WebDriver library can be utilized in a complex and untraditional test running framework.  It will also give a glance into the ongoing W3C WebDriver specification work, and where we are headed.

  • Liked derrick
    keyboard_arrow_down

    Design Patterns beyond the Page Object: An investigation into the design patterns used while building page objects.

    derrick
    derrick
    schedule 2 years ago
    Sold Out!
    60 mins
    Demonstration
    Intermediate

    In an age where the Page Object Pattern and Page Factory Pattern dominate web testing conversations, there is still a need to understand and apply the design patterns of yesteryear. Ideas from the Facade Pattern, Factory Method Pattern, the Iterator Pattern, the Object Pool Pattern, and the Decorator Pattern all find their way into the Page Objects we build to represent the increasingly complex widgets found on today's websites.

    In this presentation, we take it back to the old school, looking at novel ways to apply classic design patterns, like those developed by the Gang of Four and Code Complete, to new screen scraping problems. We will investigate three common scenarios where using the typical approach to page objects can be inefficient or difficult, including filling in a web form, iterating over data in a list, and traversing iframes to communicate with widgets. We will explore how to improve upon the naive approach to building these page objects through the use of classic design patterns. Finally, we will formalize our findings into new patterns which can be applied to more general scenarios.

    Code examples will be presented in Python and based off of my work building automation tools for hubzero.org, a platform for scientific collaboration.

  • Liked Igor Khrol
    keyboard_arrow_down

    Increase Selenium tests stability via JavaScript

    Igor Khrol
    Igor Khrol
    schedule 3 years ago
    Sold Out!
    30 mins
    Talk
    Intermediate

    UI-tests are not really stable. Some sync point might be missed and tests will be red from time to time without any obvious reason. Or accidentally some focus might go away and button will not be clicked. These and other cases make automated testing results unpredictable and these results are not trusted. 

    In my speech I want to share the experience how to reach reliable and reproducible results with Selenium tests. In order to reach it we should sacrifice to 100% end user emulation. The presentation is based on the real project where this idea was successful. Also more common recommendations will be given publicity.

  • Liked Prasanna Kanagasabai
    keyboard_arrow_down

    Testing "Injection" Attacks with Selenium

    Prasanna Kanagasabai
    Prasanna Kanagasabai
    Ketan Soni
    Ketan Soni
    schedule 2 years ago
    Sold Out!
    60 mins
    Demonstration
    Intermediate

    Business applications are growing at a break neck speed to cater to ever increasing business need. The dream of ever-connected systems and information at fingertips is quickly becoming a fact. This dream has brought out an evolution of online-real time applications with multiple requirements and functionalities. The down side to this security is being forced to take a back seat. Add to this the sheer quantum of code to cover is overwhelming to a manual security tester.

    One of the most common attacks against web applications is injection attack; injection flaw allows a malicious user to send malicious input to an application. The consequences of having injection flaw in your application can range from a user be able to steal all the data from your database to extreme situation like he having a command access to your infrastructure. We in this session want to show the power of automation using selenium. We will demonstrate how we are writing some interesting scripts to automate the testing of injection attacks in web applications. The outcome of automation is that we have been able get a fair code coverage and gives the time to security tester to concentrate on more tests that need his manual expertise say business logic failure or a design failure. 

    Though selenium could be used to automate far larger scope but we choose Injections as a priority for these sessions as injections form a large part of the web application attack landscape. We intend to give you some of the learning’s we had in the past, and some pitfalls we noticed. One could take the same idea and extrapolate to other attacks too.

    Attacks we plan to cover 

    1. SQL Injection 

    2. Command Injection 

    3. XSS 

  • Liked Isaac Murchie
    keyboard_arrow_down

    Selenium in the palm of your hand: Appium and automated mobile testing

    Isaac Murchie
    Isaac Murchie
    schedule 3 years ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    The mobile world is growing, and it has never been easier to test applications—native, web, or hybrid—using Appium, a free, open-source implementation of the Selenium protocol for automating mobile devices. I will show how Appium, which is in active development and recently shipped version 1.0, allows developers and testers to harness all the power of the native testing frameworks provided by the mobile device manufacturers, but within the context familiar to Selenium users. 

    Further, Appium provides a very good opportunity for looking at the challenges for a technology designed to automate web browsers as it moves into a new realm. I will discuss how functionality was repurposed for this new context, as well as the ways in which the protocol was extended and made more flexible in light of the the expanded use case.

    As a case study in extended functionality, I will discuss the gesture API, which allows a standardized way to automate the sorts of advanced mutli-finger gestures used on modern mobile devices.

  • Liked Sreedevi Vedula
    keyboard_arrow_down

    WebDriver and Cucumber in the JavaScript Land!

    Sreedevi Vedula
    Sreedevi Vedula
    Ramalingam S
    Ramalingam S
    schedule 3 years ago
    Sold Out!
    90 mins
    Demonstration
    Intermediate

    WebDriverJS and Cucumber.js are new entrants in the WebDriver eco-system and are gaining popularity by the day! These JavaScript ports for WebDriver and Cucumber enable us to test the JavaScript UI apps built using frameworks like Angular JS, Ember.JS with great ease.

    The UI tests can be written in JavaScript, thereby using the same technical stack of the application and the tests seamlessly integrate with the code for continuous integration and continuous delivery.

    The session is a demonstration of test framework using Cucumber.js and WebDriverJS for testing an open-source Angular JS application.

  • Liked Jim Evans
    keyboard_arrow_down

    Embrace and Extend: How the Selenium Project Convinced the World's Largest Closed-Source Company to Participate

    Jim Evans
    Jim Evans
    schedule 3 years ago
    Sold Out!
    60 mins
    Talk
    Beginner

    Microsoft. Just the name of the company alone can send some open-source software activists into fits of apoplexy. From the days when executives of the company compared open-source software to "a virus", the company has been seen as incredibly hostile to open-source software. It is surprising how much has changed over the years.

    This is the story of how the Selenium project has managed its relationship with the software company, from the initial, tentative, often contentious and borderline hostile reaching out, to today's open engagement. The story is told through the prism of the Internet Explorer Driver project, with slight digressions to the .NET bindings and other Microsoft technology stacks. The journey is funny, sometimes frustrating, but always entertaining, and there may be a surprise announcement or two.

  • Liked Prashant Badgujar
    keyboard_arrow_down

    Leveraging selenium webdriver for ExtJS web application automation

    Prashant Badgujar
    Prashant Badgujar
    schedule 2 years ago
    Sold Out!
    30 mins
    Talk
    Intermediate

    ExtJS is a web development framework used for developing next generation web based UIs. In ExtJs the object Id's are dynamic in nature, the object id's are not static everytime the object is rendered in UI. The challenge is to automate UI functionality when the objects are dynamic. Extjs does not recommend assigning static html-ids to objects for web application development.

    Would like to share our experience how selenium webdriver with java has been leveraged in retrieving those dynamic Id's at run-time and perform operations on those objects. A way for test automation on an web application which is developed using ExtJS framework which generates the dynamic html-ids.

  • Liked Shankar Garg
    keyboard_arrow_down

    Best of Three Worlds: BDD(Cucumber-JVM),Selenium(Page-Obects) and Mobile Automation(Appium)

    Shankar Garg
    Shankar Garg
    schedule 2 years ago
    Sold Out!
    30 mins
    Demonstration
    Intermediate

    Appium's use for Mobile Automation has been growing rapidly in recent times and everyone who has used Appium has certainly fallen in love with it. Appium has made Mobile Test Automation so easy for both android and iOS platforms. I believe most people who have used Appium will agree with me till this point.

    But as the testing teams adopt Appium in Real life projects and they start implementing Appium for hundreds of tests that's when teams start to feel the heat. Appium in itself is sufficient to Automate the Mobile Apps but how to integrate Appium in the Test Framework, is the questions most testing teams realize late.

    We all know benefits and power of Cucumber, Page objects and Appium individually. To create a Robust and powerful Test Framework we thought of combining all three, thus the resulting framework can cater to the needs of different participants in SDLC.

    So the Objective of this session is to demonstrate how we can use Best of all three words and can create an Awesome Test Framework using Cucumber-JVM, Selenium Page Objects and Appium. 

     

  • Jaya Gupta
    Jaya Gupta
    khyati sehgal
    khyati sehgal
    schedule 3 years ago
    Sold Out!
    20 mins
    Lightning Talk
    Beginner

    In manual testing, we play with our application by running the same tests with different input data. This helps testers to increase test coverage and uncover unexpected bugs. This is not true for automation, where we usually hard code the data we wanted to test into our test function. This reduces the efficiency and effectiveness of our automation scripts which keep executing a scenario again and again with the same set of data. As a result, they rarely find bugs after few executions and bugs that are not in the script execution path or data that we are using in the automation. However, if we add randomly generated data, just like manual testing, we increase our chances of finding new bugs or interesting information with every execution. Test Spicer helps to add this spice to our automation.

    In this session, we will discover how Test Spicer can be used for common tasks like data generation and help allow teams to find gaps in manual testing.

    TestSpicer helps to provide test ideas to make sure that apparent things related to quality are never missed.

  • Vijay Kumar K
    Vijay Kumar K
    schedule 3 years ago
    Sold Out!
    20 mins
    Talk
    Beginner

    Internationalization(I18N), Localization(L10N) testing helps to ensure the application is instinctive, explicable and correct for the people who are accessing from different geographical locations and from various languages.

    We are prenting the session on How selenium helps in Portal content verification, live language translation during chat and mobile language translation.

  • Liked Santiago S Ordoñez
    keyboard_arrow_down

    Enter JS Unit testing: Cross Browser, reliable, fast and developer friendly

    Santiago S Ordoñez
    Santiago S Ordoñez
    schedule 3 years ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Ever been frustrated by slow, unreliable Selenium tests that won't work in all browsers? Chances are you're doing it wrong.

    Selenium is an excellent tool, but as all tools, should only be used for the right purpose.

    In this talk I want to walk the audience through current approaches, frameworks, tools and the advantages or using Javascript Unit Tests to get extensive client-side coverage, reliable and millisecond-speed results.

    Leverage client-side unit testing as a complement to a more focussed and stable set of functional Selenium tests. Use the power of Sauce Labs' Javascript API to run these across all browsers with very little effort.

     

     

  • Liked Amit Rawat
    keyboard_arrow_down

    Testing of Responsive Web Applications using Appium and WebDriver API

    Amit Rawat
    Amit Rawat
    Rajeev
    Rajeev
    schedule 3 years ago
    Sold Out!
    60 mins
    Tutorial
    Intermediate

    All the modern web applications uses HTML5 and RWD (Responsive Web Design) to have an optimal viewing experience across a wide range of devices (from mobile phones to desktop computer monitors). Automating these applications and running the scripts on different devices is a bigger challenge.

    How Appium and Selenium WebDriver API can be used to automate these applications and can also address all the challenges like:

    1. Running the Webdriver scripts on iOS Safari and Android Chrome with minimal changes to the scripts.

    2. Working with the Responsive web elements and validating their size and layout on different devices and viewports.

    3. Automating complex gestures like Swipe, Tap, Pull to refresh etc.

    4. Working with HTML5 based geo-locations and simulating the Mobile network bandwidth and latency using Browsermob