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.
Outline/Structure of the Case Study
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
- Cross platform automation.
- How to structure a framework as per project need.
Target Audience
People who do automation, QA
Video
Links
I have written experience summary of talk. find it here: one page to test them all, vodqa baganglore
Github demo: CrossPlatformPageObject
schedule Submitted 7 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Mukta Aphale - 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.
-
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.