DRAFT

Workshop Day

Thu, Jun 13
09:30

    Registration - 30 mins

10:00
  • Added to My Schedule
    keyboard_arrow_down

    Getting Started with Appium

    schedule 10:00 AM - 06:00 PM place Jupiter 1
  • Added to My Schedule
    keyboard_arrow_down

    Advanced Appium

    schedule 10:00 AM - 06:00 PM place Jupiter 2
  • Added to My Schedule
    keyboard_arrow_down

    Fix a Bug and Contribute to Appium

    schedule 10:00 AM - 06:00 PM place Pluto
  • Added to My Schedule
    keyboard_arrow_down

    Appium at Scale

    schedule 10:00 AM - 06:00 PM place Mars

Day 1

Fri, Jun 14
09:00

    Registration - 30 mins

09:30

    Appium - State of the Union - 45 mins

10:20

    Welcome Address - 20 mins

10:40

    Coffee/Tea Break - 20 mins

11:00
  • Added to My Schedule
    keyboard_arrow_down
    Kazuaki Matsuo

    Kazuaki Matsuo - Uncovering breaking changes behind UI on mobile applications

    schedule 11:00 AM - 11:45 AM place Grand Ball Room 1

    It is essential to track user logs correctly to improve and develop your own web/mobile services continuously. For instance, how users flow on your applications to evaluate if they work expectedly or not.

    Meanwhile, mobile application trends have been changed quickly such as architectural things or UI related one. Developers continue to add, refactor or rewrite their applications frequently. They also need to release them frequently, 2-week release for instance. Their business also changes quickly. A number of developers working for one application also has been increasing.

    As a result, it is quite difficult to catch up with everything. Developers know a part of them. They add, rewrite or refactor codebase they do not know well with exploratory it. Functionalities related to UI are easy to understand. But, it is difficult to uncover what happens in the backend such as what kind of logs the app sends to servers.

    In Android case, if one application sends a log to a server on a fragment's onCreate. But the fragment can use in another view. If a developer does not know what the log means, he/she might re-use the fragment in another view if he/she think they can re-use it. It can break activity logs collecting on the server side. How to maintain logs is also an interesting topic though.

    In general, we notice the breaking after releasing the app since we can easy to observe the number statistically. But, it means we can not use the data to evaluate our business correctly until we fix it and re-release it.

    In this talk, I would like to show an example of how I had been implemented to uncover the above thing following some scenarios based on my experience. It might be an example what we already can automate in the mobile world.

    This topic is similar to monitor CPU/Memory/network thing. This story is based on my experience I had been worked for a couple of years.

  • schedule 11:00 AM - 11:45 AM place Grand Ball Room 2

    In today’s agile world the time to market is becoming increasingly shorter. There is a constant desire to release ASAP to keep ahead of the competition and to please users with updated/new features. Because of this, we have less time to fully do manual and exploratory testing of our apps. Especially, when you consider all the combinations of OS's, Locales, Accessibility, Orientations & Resolutions apps support. Running anywhere from 1 to 100's of Appium crawler bots (covering all of those combinations) at once we can discover more issues quickly and efficiently without having to write a line of code.

    UI Automation also has its limitations as it only tests for expected results. Crawler bots test the unexpected, by collecting metadata such as logs, app strings, screenshots, memory and reporting back it’s finding for review so we can test all these combinations quickly and more efficiently. In this talk, I will go over the current challenges we face in today's development world, why we need more tools to help us keep pace, and cover how you can build your own Appium crawler.

    I've open sourced this tool and is available here for everyone to use: https://github.com/isonic1/Appium-Native-Crawler

  • Added to My Schedule
    keyboard_arrow_down
    Raveendar Reddy Anugu

    Raveendar Reddy Anugu / Rajesh Kumar - Automated Static and Dynamic Security Analysis of Mobile apps

    schedule 11:00 AM - 12:30 PM place Jupiter

    This workshop will cover mobile application security testing techniques which comprises different security bypassing methods and automation of static and dynamic analysis of mobile apps.

    Below are the some techniques and tools will use for demonstrating mobile application security.

    • Root detection bypass
    • SSL Pinning bypass
    • Static Security Analysis(Manual and Automation)
    • Dynamic Security Analysis using MobSF and Burpsuite
    • Drozer - Intent bypass
    • Use of APK analyzer and APK editor
    • Miscellaneous vulnerabilities in Mobile applications
12:00
  • Added to My Schedule
    keyboard_arrow_down
    Gaurav Singh

    Gaurav Singh - How to kill test flake in Appium?

    schedule 12:00 PM - 12:45 PM place Grand Ball Room 1

    Whether you are a beginner learning the ways of writing UI automated tests or an experienced practitioner, you must have faced the below situation:

    You write a test and it works perfectly in your local, happily you promote the tests to your CI environment and surely it passes initially, however after sometime the test starts failing sporadically. This phenomenon is described as Test flakiness and it’s a bummer for any engineer worth his salt. This can cause numerable side effects and doubts into the minds of software teams not trusting UI automation.

    However all hope is not lost. We all know a Tool is only as good as its master.

    In this talk, I will cover the measures or patterns which you can implement to reduce the flakiness in your Appium tests as much as "humanly" possible and increase their speed and reliability.

  • Added to My Schedule
    keyboard_arrow_down
    Anton Angelov

    Anton Angelov - How to Test the Test Automation Framework?

    schedule 12:00 PM - 12:45 PM place Grand Ball Room 2

    Nowadays, more and more companies are building test automation frameworks based on WebDriver and Appium for testing their web and mobile projects. A big part of why there are so many flaky tests is that we don't treat our tests as production code. Moreover, we don't treat our framework as a product. In the talk, you will see examples of how you can automate the testing of your test automation framework and be sure that it is highly reliable. You can get lots of ideas for various types of tests such as learning tests verifying that 3rd party dependencies are not breaking the code, compatibility tests checking that the UI components are working for each mobile control on each OS, cross-platform verifications for testing whether everything is working on multiple OS. Sample test environments for storing different distributions of the framework packages will be presented.

12:45

    LunchBreak - 60 mins

01:45
  • schedule 01:45 PM - 02:30 PM place Grand Ball Room 1

    Experimentation and quick feedback is the key to success of any product, while of course ensuring a good quality product with new and better features is being shipped out at a decent / regular frequency to the users.

    In this session, we will discuss how to enable experimentation, get quick feedback and reduce risk for the product by using a case study of a media / entertainment domain product, used by millions of users across 10+ countries - i.e. - we will discuss Testing Strategy and the Release process an Android & iOS Native app - that will help enable CI & CD.

    To understand these techniques, we will quickly recap the challenges and quirks of testing Native Apps and how that is different than Web / Mobile Web Apps.

    The majority of the discussion will focus on different techniques / practices related to Testing & Releases that can be established to achieve our goals, some of which are listed below:

    • Functional Automation approach - identify and automate user scenarios, across supported regions
    • Testing approach - what to test, when to test, how to test!
    • Manual Sanity before release - and why it was important!
    • Staged roll-outs via Google’s Play Store and Apple’s App Store
    • Extensive monitoring of the release as users come on board, and comparing the key metrics (ex: consumer engagement) with prior releases
    • Understanding Consumer Sentiments (Google’s Play Store / Apple’s App Store review comments, Social Media scans, Issues reported to / by Support, etc.)

  • Added to My Schedule
    keyboard_arrow_down
    Sravan Kumar

    Sravan Kumar - Bootcamp to understand Appium android internals

    schedule 01:45 PM - 02:30 PM place Grand Ball Room 2

    Appium is a world's most popular open source mobile test automation framework developed using WebDriver protocol and I am fortunate enough to get a chance to contribute to appium-uiautomator2-server and appium-uiautomator2-driver modules.

    The goal of the session is to help the Appium community to have a better understanding of Appium and how it works.

    In this session, I will be discussing Appium architecture specifically towards its Android modules(UiAutomator2 and Espresso) and how the communication happens between Appium modules.

  • Added to My Schedule
    keyboard_arrow_down
    Rajdeep

    Rajdeep - There is more in Espresso Driver's Element than you think

    schedule 01:45 PM - 02:30 PM place Jupiter

    Appium is undisputed champion when it comes to mobile automation. One of the reasons behind this is the continuous improvement done by the community and the hard-work of Maintainers. The recent release of espresso-driver is yet another example of such improvement. There are a lot of capabilities in this driver, one of which is the ability to call platform methods on elements without modifying anything in Application under test. This opens the door of infinite possibilities. What it means is, if the Android platform supports some actions or properties on an element, then Appium will support it out of the box.
    For an automation engineer, that's a very powerful addition. I was fortunate enough to work on this feature and would like to showcase what are the various tricky cases where this feature can be applied. There will be real examples shown with a sample android app. I will also introduce one more small bonus feature at the end, about flashing elements on screen ;)

02:45
  • Added to My Schedule
    keyboard_arrow_down

    Experience Report 1

    schedule 02:45 PM - 03:05 PM place Grand Ball Room 1
  • Added to My Schedule
    keyboard_arrow_down

    Experience Report 2

    schedule 02:45 PM - 03:05 PM place Grand Ball Room 2
  • Added to My Schedule
    keyboard_arrow_down

    Experience Report 3

    schedule 02:45 PM - 03:05 PM place Jupiter
03:05

    Coffee Break - 25 mins

03:30
  • Added to My Schedule
    keyboard_arrow_down
    Bruno Alassia

    Bruno Alassia - Go beyond the software, automate hardware scenarios on Android Emulators

    schedule 03:30 PM - 04:15 PM place Grand Ball Room 1

    Explore the limits Appium can help you achieve to control the Android Emulator behavior. Automate network emulation, receive fake SMS and phone calls, change the battery states and levels and a lot more, all using real-life test cases. What happens to my app if I lost connection? How does my UI react to an incoming phone call? And more.

  • Added to My Schedule
    keyboard_arrow_down
    Nozomi Ito

    Nozomi Ito - How we use Appium as our product's core library

    schedule 03:30 PM - 04:15 PM place Grand Ball Room 2

    Appium is very useful tool, but that does not mean everyone can use it without any effort.
    Users sometimes need to tweak command parameters, and the version upgrade of Appium or dependent platform sometimes causes problems.
    As the lead developer of a cloud testing service using Appium as its backend, I have been managing these problems with various measures.
    In this session, I introduce especially unique ones of all these measures.

  • Added to My Schedule
    keyboard_arrow_down
    Jonah Stiennon

    Jonah Stiennon - All Desired Capabilities

    schedule 03:30 PM - 05:00 PM place Jupiter

    Appium has so many desired capabilities! How many exactly? Let's count!

    Join Appium contributor Jonah Stiennon as he iterates through every desired capability supported by Appium.

    Many special behaviors and specific workarounds are made available only through desired capabilities. Often the key to selecting an element reliably, launching an app, or avoiding a timeout, is picking the right set of desired capabilities. There's so many that testers don't get the chance to sit down and become acquainted with them all.

    There's too many to easily memorize and documentation can be sparse. Jonah will introduce novel ways to classify, visualize, and organize all of the desired capabilities, making it easier to find ones which can be useful.

04:30
  • Added to My Schedule
    keyboard_arrow_down
    Christian Bromann

    Christian Bromann - Appium for Couch Potatoes: An HbbTV Driver

    schedule 04:30 PM - 05:15 PM place Grand Ball Room 1

    Almost 13 years ago we started with Selenium to automate websites. With Appium we generalised that concept on mobile and just recently entered the Windows and Mac space by adding a Windows and Mac OS driver to the Appium family. Let’s continue our StarDriver quest and enter a (not quite) new sphere: the television. Within the last years, a new standard called Hybrid Broadcast Broadband TV (HbbTV) evolved with which the latest generation of Smart TVs has been equipped. This standard allows broadcasters to build web apps for their broadcast channels to provide additional context information to the TV stream or videos on demand.

    The number of HbbTV apps being developed is increasing more and more as the standard gets rolled out to the whole world. By now almost all TV manufacturers support the standard and due to the high number of TVs in the market the fragmentation is extreme. Different TVs run different proprietary rendering engines with a different level of JavaScript support. Until today the only way to test an HbbTV app is by taking the remote control and manually walking through the app, this has to change.

    This talk will introduce a new driver to Appium that allows the running of automated tests based on the Webdriver protocol for HbbTV apps on Smart TVs. It will explain not only how the driver works but also how in general other drivers do their job in the Selenium and Appium world. We will look into the challenges that automating an app for a TV device brings and will talk about how anyone can build a driver for anything.

  • Added to My Schedule
    keyboard_arrow_down
    Sai Krishna

    Sai Krishna / Srinivasan Sekar - Life Cycle of an Appium command

    schedule 04:30 PM - 05:15 PM place Grand Ball Room 2

    Every command you write using Appium Client Library will be converted to JSON Wire Protocol over HTTP which in turn will be passed to the drivers(AndroidDriver, IOSDriver). The respective driver doesn’t just send or execute the command directly on the device. Appium has a Lifecycle of modules which sends the command to the devices.

    Abstract:

    The goal of the session is to help the Appium community to have a better understanding of Appium and how it works internally.

    Will discuss on following aspects:

    • What happens under the hood when the session is created, mainly how appium connect to the corresponding device, installing the app, launching the app and the different steps involved in the process.

    • Command life cycle - How client request converted into an HTTP request, how received request passes through appium drivers(ios-driver & AndroidDriver) and the respective driver don’t just send or execute the command directly on the device. Appium has a Lifecycle of modules which sends the command to the devices.

    • How the final response passed to the client through different layers.
05:30

    Lightning Talks - 45 mins

06:15

    Birds of Feather (BoF) - 75 mins

07:30

    Dinner and Networking - 150 mins

Day 2

Sat, Jun 15
09:15

    Registration - 15 mins

09:30

    Day 2 Opening Keynote - 45 mins

10:20

    Important Announcements - 20 mins

10:40

    Coffee/Tea Break - 20 mins

11:00
  • Added to My Schedule
    keyboard_arrow_down
    Diego Molina

    Diego Molina - Building a Mobile Testing Infrastructure: What I Learned

    schedule 11:00 AM - 11:45 AM place Grand Ball Room 1

    Mobile is everywhere, and everyone wants a piece of it. All companies want to have mobile apps for their products, lots developers want to code mobile apps, and lots testers want to build awesome tests and frameworks for mobile apps…

    But, what about the infrastructure? Does someone want to spend endless days building a test infrastructure for Android and iOS apps? Not so many people have the time and patience to put all the pieces together and make them work like a Swiss watch. It just seems that many people forget that tests also need a solid infrastructure to be reliable.

    In this talk, I will narrate the journey I went through while doing the job that not so many people want, building a mobile testing infrastructure. The attendants will see all the steps taken in the process of planning the system architecture, how all the components were selected, and how they were put together.

    More importantly, I will share the lessons learned and the open source components that are being used in the final solution, and also guidelines on how to scope the needed resources when building your own mobile testing infrastructure.

  • Added to My Schedule
    keyboard_arrow_down
    Wim Selles

    Wim Selles - Building your own native app visual testing module with Appium

    schedule 11:00 AM - 11:45 AM place Grand Ball Room 2

    We all know that Appium can do (almost) everything what you tell it to do, but in the end we always ask it to do the same thing. We ask Appium to automate our happy and or our error flow. The result can give us the confirmation that the user can still buy a product, or verify if his bank account still has a positive balance.

    But what if we need to know more than that - what if we also need to verify the layout of our app? The answer would be easy, as there are plenty of open-source or paid solutions that can help you with that. However, almost all of these solutions focus on web/hybrid apps, not on native iOS and or Android apps.

    I faced this challenge when I was automating a React Native app for my customer. There was no image comparison tool that could do what I wanted it to do, so I rolled up my sleeves and started building my own. In this talk we’ll be walking down the path I’ve been taking and I’ll explain:

    • Why I used ResembleJS as my core visual comparison solution
    • The things I’ve learned about Appium in the process (pro tips!)
    • The differences between iOS and Android and how I managed to solve this in one cross-platform solution
    • The pros and cons of my solution
  • Added to My Schedule
    keyboard_arrow_down

    Workshop

    schedule 11:00 AM - 12:30 PM place Jupiter
12:00
  • Added to My Schedule
    keyboard_arrow_down
    Vivek Upreti

    Vivek Upreti / Naresh Jain - Setting up Jenkins CI Pipeline using Appium tests for Android and iOS

    schedule 12:00 PM - 12:45 PM place Grand Ball Room 1

    GUI and functional tests determine if the product is working correctly from an end user perspective. With increasing number of automated GUI tests we would want to automate when and where they are executed. Continuous Integration helps in merging code to a centralised repository frequently and find out issues early in development cycle in order to help push quality upstream.

    In the talk, you will see examples of how you can setup CI system for Android and IOS native/hybrid apps and how to plugin your Appium tests in the pipeline using Jenkins. We will also talk about the challenges we face while setting it up for Android and IOS applications. We will also talk about how to strengthen your CI pipeline via integrating various tests and Static code analysis tools.

    CI Pipeline

  • Added to My Schedule
    keyboard_arrow_down
    Dawid Pacia

    Dawid Pacia - Mobile & IoT integration testing - "Mission Impossible" or "A last hope"?

    schedule 12:00 PM - 12:45 PM place Grand Ball Room 2

    It is predicted that till 2025 there will be over 75 billion devices spewing 180 zettabytes of data and generating up to 6 trillion dollars. That enormous increase force companies to introduce a continuous approach to deliver the product as fast as possible and be able to compete on the market.


    The main question is how to test application for end user among so much hardware equipment and ecosystems combining HW, FW, mobile devices and complex backend architecture? Considering all factors and possible obstacles is it for companies a real “A New Hope” for companies or just simply “Mission Impossible”?


    I will take the participants on a journey to the IoT world. It will be a talk about the challenges that any tester will face at some point. I will present the dangers, risks and snares but also good practices and practical approach to mobile E2E test automation for the IoT solutions in CI approach.


    Technical examples will be presented using Python languages and supported by physical devices (mobile phones and IoT equipment).

12:45

    LunchBreak - 60 mins

01:45
  • Added to My Schedule
    keyboard_arrow_down
    Tomer Cohen

    Tomer Cohen - Low-level android automation with adb

    schedule 01:45 PM - 02:30 PM place Grand Ball Room 1

    When we speak about Android automation, the first thing that comes to mind is Appium, however, what if Appium doesn't serve all your Android automation needs, at least not in the most efficient way?

    When I was asked to create a test automation framework for our android service (no GUI), I needed to choose the right tool for the mission. After several weeks of researching many options (both commercial and open source). I realized that ADB is my best call because of the following reasons:
    • ADB provides a faster to run solution for controlling an android device
    • ADB is in a lower level of Android OS therefore it's more flexible
    • ADB is going through less code components (like appium client, appium server etc..) and as a result is more reliable

    In this tutorial I will share my journey towards deciding to use Android Debug Bridge when it comes to non-gui android application and how I have implemented my choice.
    After this tutorial, you will have a better understanding of what is ADB, how it works, and how you can start and apply automation for the Low-Level layer of Android OS with ADB and Python.

  • Added to My Schedule
    keyboard_arrow_down
    Shama Ugale

    Shama Ugale - Testing your Bot!

    schedule 01:45 PM - 02:30 PM place Grand Ball Room 2

    Chatbots are one of the most widely adopted AI/ML implementations in the business sector. A chatbot is an intelligent machine used to imitate human conversation through text and voice commands. Today bots are widely used as a personal assistant, customer service, HR, sales and marketing to name a few. In short, bots are everywhere and we rely on them to a certain extent, this makes it extremely important to assure the quality of the chatbots and test them thoroughly. They are built using NLU/NLP-Services (Natural language understanding and processing) and are subjected to constant training and improvement which has direct impact on tests. Voice based bots like Siri and Alexa depend on speech recognition technologies. As the chatbots user do not have any barriers and due to the unpredictable user’s behavior it becomes utmost difficult to verify the correctness on the output. In this talk, we will discuss how the chatbots are different as compared to the other applications and the challenges they bring onto the table while verifying their behavior, and focus on the testing strategies and automation testing of the bots.

  • Added to My Schedule
    keyboard_arrow_down
    Vishvnath Pratap SIngh

    Vishvnath Pratap SIngh / Lokesh Mittal - Automated Solution for Non Functional Requirements (NFR) & Performance Metrics Of Mobile App

    schedule 01:45 PM - 02:30 PM place Jupiter

    Android/IOS Performance monitoring generally is to concentrate on numbers such as throughput, but evaluating key parameters can often be more revealing and valuable. System aspects like Memory profiling, CPU tracing & network utilization gives us app insights for defining app behavior good or bad, in terms of app performance with metrices like Memory usage,Cpu usage, Network data usage, Battery usage, Slow UI/frozen frames evalution ,Activity life cycle performance ,shared preferences usage etc.

    App performance demands an early insight of capturing key metrics in development phase, to be dependent on production monitoring can be too late. This can help us tune to the desired level of business goal achievement as well.

02:45
  • Added to My Schedule
    keyboard_arrow_down

    Experience Report

    schedule 02:45 PM - 03:05 PM place Grand Ball Room 1
  • Added to My Schedule
    keyboard_arrow_down

    Experience Report

    schedule 02:45 PM - 03:05 PM place Grand Ball Room 2
  • Added to My Schedule
    keyboard_arrow_down

    Experience Report

    schedule 02:45 PM - 03:05 PM place Jupiter
03:05

    Coffee Break - 25 mins

03:30
  • Added to My Schedule
    keyboard_arrow_down
    Srinivasan Sekar

    Srinivasan Sekar / Sai Krishna - Native mobile commands in Appium

    schedule 03:30 PM - 04:15 PM place Grand Ball Room 1

    Apple and Google’s test automation framework does not natively support W3C standards for few web driver spec implementations directly for e.g TouchActions interface in XCTest, etc. Although test automation frameworks support a rich set of those functions specific to platforms, Appium does provide ways to directly invoke these functions e.g gestures, biometric handling, etc.

    Many special behaviors and workarounds are made available and achieved only through executing platform-specific native commands of Appium. For instance, there are 100+ issues been reported on date picker or handling picker wheel in the appium organization but it can be achieved quite easily by executing native mobile commands.

    There are so many that testers might not get chance to go through each one of these and get acquainted with all of those. Native mobile commands help to handle much complex use cases like biometric handling, talking to Siri, performance profiling, etc quite easily.

  • Added to My Schedule
    keyboard_arrow_down
    Bijoya Chatterjee

    Bijoya Chatterjee - Trust Issues with UI Automation

    schedule 03:30 PM - 04:15 PM place Grand Ball Room 2

    UI Test Automation is notorious for stability issues. UI automation is almost synonymous with "Flaky Test". We discuss taking a proactive strategy towards test automation flakiness as opposed to a reactive approach where we look at failures and then decide the course of action. How can we in the test automation community use and develop tools that helps eliminate flakiness and also identifies flaky tests before they are not just run but even before they are merged. How do we create these tools in a service model that plugs into our Continuous Integration pipelines ?

  • Added to My Schedule
    keyboard_arrow_down

    Workshop

    schedule 03:30 PM - 05:00 PM place Jupiter
04:25
  • Added to My Schedule
    keyboard_arrow_down

    Talk

    schedule 04:25 PM - 04:45 PM place Grand Ball Room 1
  • Added to My Schedule
    keyboard_arrow_down

    Talk

    schedule 04:25 PM - 04:45 PM place Grand Ball Room 2
05:00

    Q & A with the Appium Committee - 45 mins

05:45

    Closing Talk - 15 mins