These days we find most of the apps are being developed across different platform, iOS, android, windows and to keep the user base which uses web, mobile web and websites.

When apps are being developed for cross domains, most of the functionality provided by the app is very similar, varying thing is PLATFORM.

In rapid development cycle, where there are tools which allows you to write once and reuse across multiple platforms, makes development very faster. But at the same time, if we have different automation suite for different platforms, it becomes very difficult to keep a pace with ongoing functionality. This is the exact problem we faced, and the solution we came up with is "One Page to test them all! -A cross platform mobile automation framework! "

Page Object Model

Well, 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.

So, in summary, we write our tests for one platform and run them for all with an abstraction layer in place.

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.

1. What's the problem?

2. What's possible solutions?

3. What's the best way to do cross platform automation?

4. Demo and will be automating one screen automation will be part of demo.

There is sample project which is created, will be used for reference. Find the github repo here. Will be giving demo with help of created this sample project

Learning Outcome

How to apply OO practices in designing framework.

Cross platform automation --> one of the solution.

Target Audience

Whoever has worked on automation, aware about mobile testing/automation

People who liked this proposal, also liked:

Simon Stewart - Fix a Bug, Become a Committer

schedule 1 year ago

Sold Out!

480 Mins

Workshop

Beginner

Have you ever wondered how Selenium works under the covers? Do you get frustrated with locators not locating, pages not loading, or browsers behaving inconsistently from one run to the next? Selenium is an attempt to unify thousands of disparate elements across a wide spectrum of challenges into a single, common interface that works seamlessly with all the major browsers - and yet only a handful of volunteers work to maintain this gigantic effort. If you would like to enhance your own Selenium experience while contributing back to the software that has defined so many of our careers, come to this workshop. In it we'll dissect the different elements of Selenium, dive into its internals, learn how it was built and how to make changes to it, and even write a unit test you can contribute on the same day!

schedule 1 year ago

45 Mins

Experience Report

Advanced

Problem Statement

Expected Result:Mobile is taking over the world and wow! my product works awesomely everywhere.

Actual Result: OMG! it breaks on iOS 6 :-(

Holy Jesus! did we also test on firefox version 30.0 on Windows machine ??

Having an application on all major platforms(Desktop Web, Mobile Web, Mobile Native apps etc.) brings a daunting requirement of verifying every single feature before giving a +1 for release and so it becomes essential for the QA folk to test and provide proper feedback as quickly as possible, which immediately takes the complete reliance only on manual testing out of the question and pushes for the need for automated testing with scalable automation framework embracing any product need in the future.

We surely have 5 points to be answered before we think about such solution :

Do we have a single test code which can test the product everywhere with a simple mechanism to trigger and manage them?

Where is the plan to reduce Time To market having so many tests running before each code push?

Do we have 1 click solution to monitor all the test results in one go to assert the state of ThumbsUp for release?

Is continuos integration in place?

How can I integrate all of the above 4 points using the same beautiful tool Selenium along with other aligned open-source projects like Appium, Shell and Jenkins?

schedule 1 year ago

Sold Out!

45 Mins

Demonstration

Intermediate

Today over 100 million users share over 40 billion messages per month on Hike. Its not just simple 1:1 chat messages. Users can do a VoIP call or share rich multi-media content in 8 different languages in group chats with hundreds of members. User can transfer large (upto 100 MB) file using Wifi-Direct .i.e. device to device file transfer without using Internet. And many more features. How do you ensure that you can roll out a release every month without breaking any of these features?

With such a large user based, which is very sensitive to frequent upgrades due to data consumption cost, rigorously testing the app becomes extremely critical.

When we started our automation journey in 2014, we were looking for a device lab which can simplify our testing effort. However we gave up and ended up building our own setup. The reason being, we require multiple devices that can communicate with each other for a single test. And we have 6000+ such tests, which we want to run in parallel. While many device labs allow you to run tests in parallel, they don't allow the devices to communicate with each other. Also its not possible to run the same test across multiple devices. Imagine testing a group-chat flow with photo sharing or imagine the device to device file transfer using hotspot. How would you test these features?

If this interests you, join us and we'll share our learning trying to achieve this at Hike.

Roy Nuriel / Sreevatsa S - From Pyramids to hourglass - New approach and best practices for digital apps testing

schedule 1 year ago

Sold Out!

45 Mins

Talk

Executive

One of the first things that you learn when you enter the quality assurance space is the famous triangle braked down to Unit test at the lower, on top of it Acceptance Tests based on API (in some places this layer is integration tests but the idea is the same) and at the top of the Pyramid we have the User Interface (UI) Tests. This Pyramid, in the last two decades was the main principle on how to approach testing activities (mainly automation).

In the last couple of year we are all taking part in the digital transformation that is taking place all over. Mobile Native applications as well as web applications take part in almost any activity that we are doing during the day, business are building their strategy on this channel and shifting resources and budgets to deliver applications maintained and expend their market share.

So what changed?

The users are no longer static, they are interacting with those apps while they are on the train on their way to the office, while waiting for a flight at the airport or drinking coffee while waiting for their next meeting – those “interactions” are done most of the time while they are on the go working with mobile device. In addition the application take advantage of the sensors that those devices provide in order to provide better user experience. The environment where our end users use our application has significant impact on the functionality and performance of our application which at the end of the day we call quality.

During the last year we developed a new approach for digital application testing – The “Hourglass” – This new approach expend the known Pyramid and update it to the digital era – The client side is richer and contains many components that impact the quality of application. It redefine the definition of coverage. At the top of the pyramid we add 2 additional triangles (the gives the hourglass shape) – The first one is devices – what devices should we test, how we should approach the changes that happens in the devise market. The second is the environment, the places that our end users will use and interact with the application. We leverage the automation investment and get the real digital coverage which will help to reach high quality applications.

schedule 1 year ago

Sold Out!

45 Mins

Talk

Intermediate

I know what you’re thinking: the creators of WinRunner, QTP/UFT are now embracing Selenium?

Ten years after Selenium came into existence as an open source alternative to Mercury Interactive, the perception and relationship between QTP and Selenium has morphed from competition to collaboration with complementary test automation frameworks.

Join Ori Bendet, HPE Inbound Product Manager for Functional Testing to discuss how HPE’s R&D uses Selenium and other open source tools. Understand the new roles and responsibilities of dev/test @HPE and how they fit into current team structure. Discover their lessons learned about how Selenium and open source has contributed to the success and maturity of HPE's own quality assurance and testing tools across the entire portfolio.

schedule 1 year ago

45 Mins

Demonstration

Intermediate

Building a Test Automation Framework is easy - there are so many resources / guides / blogs / etc. available to help you get started and help solve the issues you get along the journey.

Teams already building 1000s of tests of various types - UI, web service-based, integration, unit, etc. is a proof of that.

However, building a "good" Test Automation Framework is not very easy. There are a lot of principles and practices you need to use, in the right context, with a good set of skills required to make the Test Automation Framework maintainable, scalable and reusable.

In this talk, we will focus on one of the critical aspects and patterns in building the Test Automation framework - Test Data!

We will look at different data patterns as options and techniques how tocreate, manage, use, reuse Test Data in a way to keep the tests running in an reliable and deterministic way. We will also discusswhat questions to ask, what things to think about in selecting your approach for Test Data!

This discussion will be applicable for any type of Test Automation (web / mobile / desktop), but, we will focus primarily on UI automation frameworks, ex. using Selenium.

schedule 1 year ago

Sold Out!

45 Mins

Talk

Intermediate

Selenium was born for web-application testing. But have you ever thought it could be a great tool for testing Windows desktop apps too?

Today, more and more desktop apps use a web-like approach to implement their UI. The methods vary from basic HTMLayout environment to complex designs in CEF (Chromium Embedded Framework). However traditional GUI automation tools seem to be a step behind or ignoring the trend completely. This situation calls for finding new ways of testing.

In our talk we shall introduce to you a new way of utilizing Selenium for automated testing of desktop applications. No matter whether the HTML UI content is completely offline or loaded and updated dynamically, Selenium is able to access and navigate it just like in a web page. We’ll also show you how to build a small framework around it and plug it into your Continuous Integration process. All of this will be demonstrated using a real-life instance of Avast Antivirus for Windows.

Adam Carmi - Advanced Automated Visual Testing With Selenium

schedule 1 year ago

Sold Out!

45 Mins

Talk

Beginner

Automated visual testing is a major emerging trend in the dev / test community. In this talk you will learn what visual testing is and why it should be automated. We will take a deep dive into some of the technological challenges involved with visual test automation and show how modern tools address them. We will review available Selenium-based open-source and commercial visual testing tools, demo cutting edge technologies that enable running cross browser and cross device visual tests at large scale, and show how visual test automation fits in the development / deployment lifecycle.

If you don’t know what visual testing is, if you think that Sikuli is a visual test automation tool, if you are already automating your visual tests and want to learn more on what else is out there, if you are on your way to implement Continuous Deployment or just interested in seeing how cool image processing algorithms can be, this talk is for you!

Prasad Kalgutkar - Brace yourself from an automation death trap

schedule 1 year ago

Sold Out!

45 Mins

Case Study

Intermediate

We all in the voyage to test effectively always think about test automation & let me tell you, its no less crucial & important than production app code. Its a code/framework/architecture built to test your app code and catch some of app defects. This when placed in an eco-system of continuous integration & deployment takes a next level of importance.

I have been fortunate enough to have had my share of failures & eventually learn out of it while automating. In this session, I wish to take my audience through the importance of automation in Agile, the essentials to think of while deciding the tools and also take some tangible take-aways while writing automation code.

The take-aways will be some technical inputs which have immensely helped me to build flexible frameworks for delivery of enterprise products. The aspects this take-aways will touch are on the pressings issues an automation tester face around test data management, code modularization, defining the clarity on responsibilities of different modules/classes written in an automation framework.

This session will be a good dialogue supported with some live demos for better understanding & overall making us think to stay away from the obvious failures.

Sargis Sargsyan - Web Application Testing with Selenium

schedule 1 year ago

Sold Out!

90 Mins

Talk

Intermediate

Creating automated tests for a web application can be challenging. During this talk we will discuss how to use the popular browser automation framework, Selenium, to create automated tests for web applications. We will examine using Selenium and Java to automate the web browser using Selenium WebDriver. Also we will talk about the implementation of a simple, maintainable framework for testing a web application using Selenium.

Christina Thalayasingam - Distributed Testing and Test Reporting

schedule 1 year ago

Sold Out!

45 Mins

Demonstration

Advanced

As we are moving into the agile world, continuous integration has a major role to play.

So how do we cater for a complete test on every sprint or every release? We can use Selenium for Test Automation. When we use a continuous integration approach it would be helpful to use Selenium Grid. It allows you to run your tests on different machines against different browsers in parallel. Essentially, Selenium-Grid supports distributed test execution.

This helps you to run your automated tests on various different machines, operating systems and browsers at the same time. This saves time and would help to run your testing in a nightly build.

Extent Reports will go hand in hand with Selenium Grid as it will help you retrieve all test results including Test Evidences into a comprehendible report.

This talk would have a quick guide on how to use Selenium. With details on how to create html reports (with latest plug-in) which would give understanding test execution results for both technical and non technical people. The highlight of the talk would be on Selenium Grid which permits to run Selenium test cases on various operating systems and browsers from a specific hub. This would cover quick demonstrations on main browsers used in the industry such as Firefox, Chrome and Internet explorer. This would help for continuous integration.

Dharmesh Vaya - Selenium + SoapUI + JMeter : A complete framework

schedule 1 year ago

Sold Out!

45 Mins

Talk

Beginner

This talk showcases how you can develop a framework in Java with all kinds of features like WebTesting with Selenium, Service Layer testing with SoapUI and Load Testing with JMeter - all packaged as a single testing solution. Above all, make use of open source libraries and get details HTML reports as well as Summary reports. This solution allows you to seamlessly integrate all your testing requirements under a single framework.

Rajdeep - Enrich Your Automation With Visual Assertions

schedule 1 year ago

Sold Out!

45 Mins

Talk

Intermediate

This talk is about a ruby gem I wrote for adding visual assertion with selenium as driver.

While we continuously implement new functionalities in our app, automated functional tests acts as safety net and gives us confidence. Still, there is something missing. Many times we get feedback like:"Sign-In button has shifted and user have to scroll down to see it""We wanted to change background color of screen-X, it got changed for Screen-Y screen as well""Why has fonts of this link become so tiny?”I am working on customer facing enterprise level Mobile apps of one of the biggest airline in the world. For us user experience is as important as functionality.Our regression suit did not have capability to catch such issues. Moreover, we started building another airline app from the same codebase with only change in user interface of this new app. This means, change done for one app, affects another. Hence, it became really critical to enhance our automation with visual assertions.To accomplish this, I worte my own gem called 'nakal'.http://rubygems.org/gems/nakal

Arnon Axelrod - Introducing Test Automation Essentials

schedule 1 year ago

Sold Out!

90 Mins

Demonstration

Intermediate

As a test automation consultant who builds the infrastructure for many test automation projects, I found myself writing some common code over and over again. At some point I decided to collect all of this common code into one open-source project called “Test Automation Essentials”, so both others and I can use it in more projects. The project is composed of few small C# libraries, so you can use only the parts you really need. These libraries range from very generic utilities (that may be useful even in non-test projects) to more specific CodedUI and Selenium utilities. In this session, I will show the main utilities in these libraries and talk about the process of creating it. Even if you are not developing your test code in C#, I am sure you will get some ideas that you can use in other languages and tools too! (For more information see Test Automation Essentials)

Among the features of these libraries are:

A straight-forward API to handle frames/iframes and multiple browser windows, avoiding unneccesary StaleElementExceptions and the combersome need for SwitchTo().

A WaitForElement method that simpilfies the usage of explicit wait (i.e. WebDriverWait), and avoiding the the time-wasting implicit wait when using FindElements.

An automatic logging of every Click and SendKeys actions

A simple way to write reliable and reusable cleanup code

Many syntactic sugars (mainly in the form of Extension Methods) that makes the code more readable

schedule 1 year ago

Sold Out!

20 Mins

Talk

Beginner

In this era of continuous software development and continuous delivery automation of a software plays a really big role in reducing time and effort for quality control and visually verifying individual functionalities. Automation plays a vital role in quickly pin pointing any break within the functionalities of the software system and also provides a quick report so that the software development team is aware what functionality in the system needs to be attended.

The session would contain running an automation test headless by using the capability of phantomjs driver, running Selenium, implemented in Java and triggered by TestNG. People interested in learning automation can utilise the power of phantomjs driver to run tests quickly and get the desired test reports.

schedule 1 year ago

Sold Out!

45 Mins

Demonstration

Beginner

With the increased pace in adoption of agile methodology, testing is now becoming really complex in relation to the not so simple yet sweet demand of every project manager: "Why don’t you automate test cases while you test?"

Having worked and counselled in product giants and more than 5 startups in India, we would like to throw some light on what fits the test automation use case. Is UI automation "the Only way to test efficiently?"

The main issue with startups following Agile is “time crunch.” With multiple deploys a day and a fast paced development cycle, how does one find time to automate the product?

In this session, we will be sharing some methods/tools/techniques which increase the overall test coverage and have worked well in the past for startup culture.

A demo of some simple, useful and robust tools used for API, UI and Performance testing will also be given.