Jonah will be presenting the following sessions
filter_list help_outline
  • Jonah Stiennon

    Jonah Stiennon - All Desired Capabilities

    Jonah Stiennon
    Jonah Stiennon
    Cloud Grey
    schedule 2 years ago
    Sold Out!
    90 Mins

    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.

  • Jonah Stiennon

    Jonah Stiennon - Find Elements By Accessibility Id

    Jonah Stiennon
    Jonah Stiennon
    Cloud Grey
    schedule 2 years ago
    Sold Out!
    20 Mins

    You'll find many written sources which assert that AccessibilityId is the preferred selector to use for finding elements, but why is this the case? What's wrong with XPath?

    In this talk, we will discuss Accessibility Id's in depth. How Appium uses them to find elements on iOS, Android, and web, and how developers add these Id's to apps. We will specifically focus on the performance impact of using XPath selectors instead of Accessibility Id's.

    We will demonstrate techniques we can use to improve the performance of XPath selectors if accessibility Id's are missing, and discuss strategies for convincing managers and app developers to add accessibility Id's to the apps we automate.

1. What got you started/interested in Testing?

My first job out of college was working on a small web development team inside of a large old company. We had two backend devs, one frontend dev, a designer and a woman who did our QA. She was the nicest and hardest-working person on our team, but I felt so sorry for her tireless manual testing. Every day she'd report the bugs she found at standup, and the devs would tell her "we already have a new version in dev, maybe some of those things are fixed", and she'd have to start over. That's the first time I started playing with Selenium IDE.

A few years later I moved to San Francisco and started a new job on the Ecosystems and Integrations team at Sauce Labs. From then on, everything in my life was about testing.

2. What has been your best moment/highlight working with Appium?

After working on Appium at Sauce Labs for a year or two, Jonathan Lipps had us start planning for a major rewrite for version 1.0. The goal was to leverage Babel to use newer Javascript language features such as async/await, while also rearchitecting Appium from the ground up. The groundwork was laid by writing a few small async/await modules together as a team, and putting them into Appium behind a layer which translated to the old callback patterns.

Most of what Appium does is execute other programs on separate processes, analyzing logs, catching errors, retrying, and timeouts. Jonathan wrote the teen-process module to better handle shell execution in modern Javascript and we brought it into a minor part of Appium to try it out and get used to it.

This work was done while regular Appium development was ongoing, and it laid the groundwork for turning and devoting the majority of our time to a full rewrite of Appium.

The team went offsite to a satellite office and spent week working together to lay out the general architecture and design for the new version. It was one of the highlights of my career, working together with a team I respected and liked, all pairing together. Everybody knew the problem and domain by heart, but didn't already know the solution.

The rewrite was an example rarely seen in the industry: it was on-time, successful, and had less bugs than the version it replaced. Appium switched to using async/await instead of callbacks, the modular driver system was developed, Webdriver commands were all handled in one place, exceptions were organized to be thrown and returned in a consistent way, and logging was consolidated.

3. What do you think is the biggest challenge faced by Mobile Testers today?

The problem I'm focussing on right now is the difficulty of writing Appium tests. The inconsistency of the drivers, the difficulty of choosing selectors, organizing and maintaining test suites.

4. What is your advice to testers, who are new to automation?

Get to know your tools really well, explore and experiment. Don't be afraid to try new things.

5. Tell us about the session/s you will be presenting at the conference and why did you choose those topics?

All Desired Capabilities: There's a lot of these (about 180!) and they can often fix test suite issues but most people don't know what's available. Simply familiarizing yourself with them all, will help recall them when you need them. I chose this topic because I saw so many new desired capabilities which I didn't know existed.

Find Elements By Accessibility Id: This is the most efficient and easiest to use locator strategy, but most people don't use it. I'd like to raise awareness and encourage its use.

6. What are some of the key takeaways from your session/s?

Well you may get a quick overview of every desired capability. My hope is that you'll then have a better chance of remembering them next time you run into an issue.

For the Accessibility Id talk, I hope you consider using them whenever possible, this helps accessibility users too!

7. Which are your favourite sessions at Appium Conf? (Sessions that you are looking forward to attend)
  • Appium the Next Generation - by Jonathan Lipps
  • Life Cycle of an Appium Command - by Sai Krishna and Srinivasan Sekar
  • Low-level android automation with adb - by Tomer Cohen
  • Start contributing to OSS projects on your way - by Kazuaki Matsuo
  • How we use Appium as our product's core library - by Nozomi Ito
  • How we took Appium to 11 platforms - Simon Granger
8. Any personal message/remarks you want to share with the Testing community in India?

I want to hear about your testing pains and ideas!