One page to test them all!

Problem we faced

Our current project is a mobile app for iOS, Android and Mobile web, which is a mixture of pure native screens and webviews. Each platform has its own tools for UI automation like Calabash for iOS/Android and Watir-Webdriver for Mobile Web. But we wanted to create a generic automation framework which could support each of the  above UI automation frameworks but still reuse as much code as possible and avoid duplicating code between them.

 

Page Object Model

Page Object  Model was again a natural fit for this framework. Most implementations of POM recommend different POMs for each platform. But we wanted to have a single Page Object Model for all the 3 platforms to ensure maximum code reuse and reduce overall time spent in adding new automation.

 

Single Page Object Model across platforms

This was complicated because we had native screens as well as webview screens and so it was not possible to use the same Page Object. To solve this, we introduced abstractions for the elements on the screen and encapsulated the respective native driver implementations.

This also allowed us to implement common automation tasks in one place for e.g waiting for new pages to load, so that this code is not repeated across multiple step definitions and platforms. This helped us move to thinking in higher domain level concepts than in terms of low level UI interactions.

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

Outline/structure of the Session

In this talk, walkthrough will given on how we designed this framework, what were our problems, and how we solved each one of them. Instead of giving you the solution upfront, we will present the problem to you, and discuss how they can be solved. And this will help you better appreciate the common problems in designing an automation framework and how they can solved using OO principles.

 

There is sample project which is created, will be used for reference.

Learning Outcome

  1. Cross platform automation. 
  2. How to structure a framework as per project need. 

Target Audience

People who do automation, QA

schedule Submitted 1 year ago

Comments Subscribe to Comments

comment Comment on this Proposal

  • Liked Mukta
    keyboard_arrow_down

    Mukta - Continuous Testing: Stepping beyond Automation Testing!

    45 Mins
    Talk
    Intermediate

    Today businesses are changing rapidly and they need to support rapid innovations and changes. Agility in responding to change is the key to success for every business. IT industries are adapting agile software delivery approach and one of the recent and most acknowledged such practice is DevOps. DevOps helps accelerate the TTM, reduce risks and provides continuous feedback. Continuous Testing is the most important and crucial aspect of DevOps which emphasises continuous process improvement.

     

    Today we don't just need test automation. Times today demand a method which will help measure the risk of business failure, and not just a report which show if tests have passed or failed. This impacts not just changes (or upgrades) in technology and tools, but also a change in quality management culture is observed.

     

    Test automation helps us test faster, and provides a mechanism to detect software defects. Though automation can be considered as a pre requisite to continuous testing, continuous testing is much more. It helps provide process improvements that can prevent future defects from occurring. It plays an important role in providing continuous feedback for your software.

     

  • Liked Ashish Mishra
    keyboard_arrow_down

    Ashish Mishra - Data driven testing using Appium, Cucumber and FitNesse

    45 Mins
    Demonstration
    Intermediate

    My topic will have demonstration of running Mobile test automation using FitNesse and Cucumber tools. Agility will be driven using test-first approach such as BDD and ATDD with data driven testing.