SlideShare a Scribd company logo
1 of 30
Download to read offline
The Shifting Landscape of Mobile Automation
Jonathan Lipps • Founding Principal • Cloud Grey


@AppiumDevs • @cloudgrey_io • @jlipps
Applitools Webinar · The Internet
February 23, 2018
Founding Principal
Project Lead & Architect
Jonathan Lipps • Founding Principal • Cloud Grey


@AppiumDevs • @cloudgrey_io • @jlipps
5 years ago
Android Instrumentation
Open Source Proprietary
Appium
Android Instrumentation*
Android UiAutomator*
Robotium
Frank
Selendroid
ios-driver
KIF
Calabash
Apple Instruments +
UIAutomation
Today
XCUITest
(iOS)
EarlGrey
(iOS)
Detox
(iOS + Android)
Espresso
(Android)
Appium
(Many)
Xamarin.UITest
(iOS + Android)
🛠 🛠
WebDriverAgent
(iOS)
🛠🛠🛠
Open Source (Owner) Proprietary
Appium (JS Foundation)
Espresso* (Google)
EarlGrey (Google)
Detox (Wix)
Xamarin.UITest (Microsoft)
WebDriverAgent (Facebook)
XCUITest (Apple)
Framework Platforms Modes Languages Protocol
Requires
Source?
Underlying
Tech /
Vendor
IDE/SDK
integration
Service
Providers
Dev
Appium
iOS, Android,
macOS,
Windows
Native, Hybrid,
Web
Java, Python, Ruby,
C#, JavaScript,
Objective-C, Swift,
PHP
WebDriver No
WDA,
UiAutomator2,
Espresso,
WinAppDriver,
appium-for-mac
N/A
Sauce Labs,
TestObject, AWS,
BrowserStack, BitBar,
Xamarin, AppCenter,
etc…
Full OSS
Espresso Android Native, Hybrid Java, Kotlin Non-standard Yes Google Android Studio
FireBase, BitRise,
TestObject, BitBar,
AWS
Semi OSS
XCUITest iOS Native
Objective-C,
Swift
Non-standard Yes Apple Xcode
AWS, BitBar,
BuddyBuild
Closed
EarlGrey iOS Native
Objective-C,
Swift
Non-standard Yes Google Xcode BuddyBuild Semi OSS
Detox iOS, Android* Native JavaScript Non-standard No
EarlGrey,
Espresso
N/A N/A Full OSS
Xamarin.UITest iOS, Android
Native,
Hybrid?
C# Non-standard No
Microsoft /
Calabash
Visual Studio
Xamarin
TestCloud,
AppCenter
Closed
WDA iOS Native
Java, Python, Ruby,
C#, JavaScript,
Objective-C, Swift,
PHP
WebDriver No XCUITest N/A N/A Semi OSS
Framework Platforms Modes Languages Protocol
Appium
iOS, Android, macOS,
Windows
Native, Hybrid, Web
Java, Python, Ruby, C#,
JavaScript, Objective-C,
Swift, PHP
WebDriver
Espresso Android Native, Hybrid Java, Kotlin Non-standard
XCUITest iOS Native Objective-C, Swift Non-standard
EarlGrey iOS Native Objective-C, Swift Non-standard
Detox iOS, Android* Native JavaScript Non-standard
Xamarin.UITest iOS, Android Native, Hybrid? C# Non-standard
WDA iOS Native
Java, Python, Ruby, C#,
JavaScript, Objective-C,
Swift, PHP
WebDriver
Framework Requires Source?
Underlying Tech /
Vendor
IDE/SDK integration Service Providers Dev
Appium No
WDA, UiAutomator2,
Espresso, WinAppDriver,
appium-for-mac
N/A
Sauce Labs, TestObject,
AWS, BrowserStack, BitBar,
Xamarin, AppCenter, etc…
Full OSS
Espresso Yes Google Android Studio
FireBase, BitRise,
TestObject, BitBar, AWS
Semi OSS
XCUITest Yes Apple Xcode AWS, BitBar, BuddyBuild Closed
EarlGrey Yes Google Xcode BuddyBuild Semi OSS
Detox No EarlGrey, Espresso N/A N/A Full OSS
Xamarin.UITest No Microsoft / Calabash Visual Studio
Xamarin TestCloud,
AppCenter
Closed
WDA No XCUITest N/A N/A Semi OSS
Framework Adoption Strongest Value Weak Point
Appium
Most popular open source automation
technology
Write tests in any language, leverage
WebDriver skills, excellent mobile web
support, multi-platform support
Speed, stability*
Espresso Most popular native Android framework
Officially supported by Google. Fastest and
most stable for Android
Single-platform, tests must be written in
JVM language
XCUITest Most popular native iOS framework Officially supported by Apple
Single-platform, tests must be written in
Apple language. Speed, stability.
EarlGrey Low
Officially supported by Google. Benefits of
Espresso for iOS
Project rewrite is in progress. Single
platform.
Detox Low
Writing JS-based tests for React Native
apps
No vendor support. Stability.
Xamarin.UITest Low
Officially supported by Microsoft. Write in
C#.
Speed, stability. Single language.
WDA Low
Write tests in any language, leverage
WebDriver skills
Single-platform. Speed, stability.
Appium
Install Appium via NPM or Appium Desktop. Ensure you have system dependencies in
place (Android SDK, adb, Xcode, iOS SDK, etc…)
Write a WebDriver-style test using the Selenium or Appium client in your language.
Start the Appium server, then run your test. It speaks to the Appium server, which
turns WebDriver requests into automation behavior, and returns WebDriver
responses.
The client makes the response available to your test script, which can take action or
perform verification based on the result
Espresso
Add Espresso to your Android app’s test dependencies
Write JUnit tests that use Espresso’s view matchers to find elements and interact with
them. The same library contains assertion methods.
Run your test using AndroidJUnitRunner
XCUITest
Add a class to your iOS project in Xcode that extends XCTestCase
Override a setUp method and call XCUIApplication’s launch method
Use the object-oriented XCUITest API to find elements and interact with them
Use XCTAssert methods to make verifications
View reports in Xcode’s Test Navigator
🛠
EarlGrey
Add a new iOS unit testing bundle to your iOS project
Install the EarlGrey rubygem and add EarlGrey as a CocoaPod dependency
Add a new XCTestCase class which imports EarlGrey
Use methods chained on the EarlGrey library to find elements, perform actions, and
make assertions (just like in Espresso)
View reports in Xcode’s Test Navigator
🛠
Detox
Install detox via npm and applesimutils via homebrew
Decorate your React Native project’s package.json with Detox config information
(device to run on, xcodebuild instructions for your app, etc…)
Add a JS test script that utilizes Detox’s global variables which will be injected by the
Detox runner (e.g., device, element)
Build the app using detox build and then run your test using detox test, which wraps
a JS test runner of your choice, e.g., Mocha
🛠
Xamarin.UITest
Add a new UITest project to your Visual Studio solution with the appropriate UITest
template. This will make sure the NuGet dependencies are set.
Associate your mobile projects with the test project
Create a C# test class that imports NUnit and Xamarin.UITest
Write a [SetUp] decorated method that calls ConfigureApp.<platform>.StartApp()
(for the appropriate platform)
Use the resulting app object to perform actions on matching predicates
🛠
WebDriverAgent
Clone the WebDriverAgent repo and run its bootstrap script to use Carthage and
download dependencies
Open the WebDriverAgent Xcode project and run it, or use xcodebuild to build and
run from the command line
Watch the output of WebDriverAgent’s logs to determine its port
Write a WebDriver-style test using the Selenium or Appium client in your language.
Point the RemoteWebDriver to the WDA host/port, and run the test.
🛠
5 years from now
(in my dreams)
Espresso
(Android)
Appium
(Many)
XCUITest
(iOS)
🛠
EarlGrey
(iOS)
🛠
WebDriverAgent
(iOS)
🛠
Xamarin.UITest
(iOS + Android)
🛠
Detox
(iOS + Android)
🛠
Highly integrated with other apps,
locations, experiences
Situation-aware, AR
Spanning many form factors
Phone, watch, TV, goggles, glasses,
installations, tables, ?
Spanning many platforms React Native leads the way
More than stock UI components 3d UIs, VR/AR, IoT
The “mobile” app of the future
Visual testing
Does my app look the way it’s supposed to?
(AVM*)
Performance testing Is my app experience responsive enough?
Security testing
Is my app safe for my customers to use? Is it safe
for me to let them use it?
Location testing
Does my app work the same way anywhere in the
world?
Flow testing
What are all the paths through my app? How hard
is it for users to get where I want them to go?
Beyond functional testing
“Shift left” is now a household term
Automate the automation - code gen, AI, etc…
Tool and framework fatigue
The automation trend continues
To InfinityDriver & Beyond…
An official extension to the WebDriver protocol
A set of Node.js base classes and libraries for easily writing drivers
Multiple drivers, each one a WebDriver interface on top of the best automation tech of the
day for a given platform, plus a helpful collection of other utilities. A stable API on top of a
changing set of underlying technologies.
A community of practitioners who maintain an ever-expanding knowledge-base for
different platforms
The Appium of the Future / ✩Driver / ∞Driver
The WebDriver protocol is a great start! But is it the end of the line?
So many new kinds of testing emerging. Do we create a different protocol for each
one?
Whatever we do, let’s not compete on standards. Implementations? Yes. Standards?
No.
…and beyond!
Promote WebDriver over other options. Not because it’s necessarily the best, but
because it’s a standard.
Contribute your wisdom and experience for a particular platform to the community-
maintained Appium driver for that platform.
Contribute code and help maintain! If we all pitch in a little bit, we all get a lot more in
return. This is the standard open source value prop for businesses.
Big visions require broad support
1
2
3
Thank You
Jonathan Lipps • Founding Principal • Cloud Grey


@AppiumDevs • @cloudgrey_io • @jlipps
Questions?
Jonathan Lipps • Founding Principal • Cloud Grey


@AppiumDevs • @cloudgrey_io • @jlipps
Don’t forget to sign up for
Your free weekly Appium newsletter
https://appiumpro.com

More Related Content

What's hot

Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...Jianbin LIN
 
20170302 tryswift tasting_tests
20170302 tryswift tasting_tests20170302 tryswift tasting_tests
20170302 tryswift tasting_testsKazuaki Matsuo
 
Google IO 2015 Highlights
Google IO 2015 HighlightsGoogle IO 2015 Highlights
Google IO 2015 HighlightsGerard
 
IO17就是講義氣
IO17就是講義氣IO17就是講義氣
IO17就是講義氣PRADA Hsiung
 
Instant app Intro
Instant app IntroInstant app Intro
Instant app IntroJintin Lin
 
Cross Platform Application Development Using Flutter
Cross Platform Application Development Using FlutterCross Platform Application Development Using Flutter
Cross Platform Application Development Using FlutterAbhishek Kumar Gupta
 
React native vs. ionic – which one is better and why
React native vs. ionic – which one is better and why React native vs. ionic – which one is better and why
React native vs. ionic – which one is better and why Moon Technolabs Pvt. Ltd.
 
Build mobile back-end (Restful API) by using Microsoft Azure Functions
Build mobile back-end (Restful API) by using Microsoft Azure FunctionsBuild mobile back-end (Restful API) by using Microsoft Azure Functions
Build mobile back-end (Restful API) by using Microsoft Azure FunctionsSuki Huang
 
Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Devathon
 
Android best practices 2015
Android best practices 2015Android best practices 2015
Android best practices 2015Sean Katz
 
Debugging and Tuning Mobile Web Sites with Modern Web Browsers
Debugging and Tuning Mobile Web Sites with Modern Web BrowsersDebugging and Tuning Mobile Web Sites with Modern Web Browsers
Debugging and Tuning Mobile Web Sites with Modern Web BrowsersTroy Miles
 
4 Ways to Speed Up Your Mobile App Dev Daily Grind
4 Ways to Speed Up Your Mobile App Dev Daily Grind4 Ways to Speed Up Your Mobile App Dev Daily Grind
4 Ways to Speed Up Your Mobile App Dev Daily GrindPerfecto by Perforce
 
Spring roo for entrepreneurs
Spring roo for entrepreneursSpring roo for entrepreneurs
Spring roo for entrepreneursMans Jug
 
Groovy Testing Aug2009
Groovy Testing Aug2009Groovy Testing Aug2009
Groovy Testing Aug2009guest4a266c
 
Flutter vs React Native | Edureka
Flutter vs React Native | EdurekaFlutter vs React Native | Edureka
Flutter vs React Native | EdurekaEdureka!
 

What's hot (20)

Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
Introduction to mobile cross platform solutions(Xamarin vs React Native vs Fl...
 
20170302 tryswift tasting_tests
20170302 tryswift tasting_tests20170302 tryswift tasting_tests
20170302 tryswift tasting_tests
 
Google IO 2015 Highlights
Google IO 2015 HighlightsGoogle IO 2015 Highlights
Google IO 2015 Highlights
 
IO17就是講義氣
IO17就是講義氣IO17就是講義氣
IO17就是講義氣
 
Roadmap to Development
Roadmap to DevelopmentRoadmap to Development
Roadmap to Development
 
Instant app Intro
Instant app IntroInstant app Intro
Instant app Intro
 
Cross Platform Application Development Using Flutter
Cross Platform Application Development Using FlutterCross Platform Application Development Using Flutter
Cross Platform Application Development Using Flutter
 
React native vs. ionic – which one is better and why
React native vs. ionic – which one is better and why React native vs. ionic – which one is better and why
React native vs. ionic – which one is better and why
 
Build mobile back-end (Restful API) by using Microsoft Azure Functions
Build mobile back-end (Restful API) by using Microsoft Azure FunctionsBuild mobile back-end (Restful API) by using Microsoft Azure Functions
Build mobile back-end (Restful API) by using Microsoft Azure Functions
 
flutter.school #HelloWorld
flutter.school #HelloWorldflutter.school #HelloWorld
flutter.school #HelloWorld
 
Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020
 
Flutter for web
Flutter for webFlutter for web
Flutter for web
 
Android best practices 2015
Android best practices 2015Android best practices 2015
Android best practices 2015
 
Debugging and Tuning Mobile Web Sites with Modern Web Browsers
Debugging and Tuning Mobile Web Sites with Modern Web BrowsersDebugging and Tuning Mobile Web Sites with Modern Web Browsers
Debugging and Tuning Mobile Web Sites with Modern Web Browsers
 
4 Ways to Speed Up Your Mobile App Dev Daily Grind
4 Ways to Speed Up Your Mobile App Dev Daily Grind4 Ways to Speed Up Your Mobile App Dev Daily Grind
4 Ways to Speed Up Your Mobile App Dev Daily Grind
 
Spring roo for entrepreneurs
Spring roo for entrepreneursSpring roo for entrepreneurs
Spring roo for entrepreneurs
 
Groovy Testing Aug2009
Groovy Testing Aug2009Groovy Testing Aug2009
Groovy Testing Aug2009
 
Flutter vs React Native | Edureka
Flutter vs React Native | EdurekaFlutter vs React Native | Edureka
Flutter vs React Native | Edureka
 
Flutter
FlutterFlutter
Flutter
 
Introduction to Flutter
Introduction to FlutterIntroduction to Flutter
Introduction to Flutter
 

Similar to Shifting landscape of mobile automation, and the future of Appium - Jonathan Lipps

Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaNoam Kfir
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMoataz Nabil
 
利用 Appium + Robot Framework 實現跨平台 App 互動測試
利用 Appium + Robot Framework 實現跨平台 App 互動測試利用 Appium + Robot Framework 實現跨平台 App 互動測試
利用 Appium + Robot Framework 實現跨平台 App 互動測試Jeremy Kao
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkTroy Miles
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)danielputerman
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGapJoseph Labrecque
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platformi4consulting.org
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularTodd Anglin
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Skytap Cloud
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Dan Cuellar
 
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...Selenium Conference Austin 2017
 
Upgrading Mobile Tester's Weapons with Advanced Debugging
Upgrading Mobile Tester's Weapons with Advanced DebuggingUpgrading Mobile Tester's Weapons with Advanced Debugging
Upgrading Mobile Tester's Weapons with Advanced DebuggingAbhijeet Vaikar
 
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debuggingATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debuggingAgile Testing Alliance
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
 

Similar to Shifting landscape of mobile automation, and the future of Appium - Jonathan Lipps (20)

Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
利用 Appium + Robot Framework 實現跨平台 App 互動測試
利用 Appium + Robot Framework 實現跨平台 App 互動測試利用 Appium + Robot Framework 實現跨平台 App 互動測試
利用 Appium + Robot Framework 實現跨平台 App 互動測試
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platform
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016
 
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
 
Upgrading Mobile Tester's Weapons with Advanced Debugging
Upgrading Mobile Tester's Weapons with Advanced DebuggingUpgrading Mobile Tester's Weapons with Advanced Debugging
Upgrading Mobile Tester's Weapons with Advanced Debugging
 
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debuggingATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 

More from Applitools

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...Applitools
 
Visual AI for eCommerce: Improving Conversions with a Flawless UI
Visual AI for eCommerce: Improving Conversions with a Flawless UIVisual AI for eCommerce: Improving Conversions with a Flawless UI
Visual AI for eCommerce: Improving Conversions with a Flawless UIApplitools
 
A Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the FutureA Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the FutureApplitools
 
Add AI to Your SDLC, presented by Applitools and Curiosity
Add AI to Your SDLC, presented by Applitools and CuriosityAdd AI to Your SDLC, presented by Applitools and Curiosity
Add AI to Your SDLC, presented by Applitools and CuriosityApplitools
 
The Future of AI-Based Test Automation
The Future of AI-Based Test AutomationThe Future of AI-Based Test Automation
The Future of AI-Based Test AutomationApplitools
 
Test Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsTest Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsApplitools
 
Can AI Autogenerate and Run Automated Tests?
Can AI Autogenerate and Run Automated Tests?Can AI Autogenerate and Run Automated Tests?
Can AI Autogenerate and Run Automated Tests?Applitools
 
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityTriple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityApplitools
 
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsNavigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsApplitools
 
Introducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdfIntroducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdfApplitools
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
 
Collaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing CentraCollaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing CentraApplitools
 
What the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the FutureWhat the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the FutureApplitools
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual TestingApplitools
 
Workshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with CypressWorkshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with CypressApplitools
 
From Washing Cars To Automating Test Applications
From Washing Cars To Automating Test ApplicationsFrom Washing Cars To Automating Test Applications
From Washing Cars To Automating Test ApplicationsApplitools
 
A Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous DeliveryA Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous DeliveryApplitools
 
AI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser TestingAI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser TestingApplitools
 
Workshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with JavascriptWorkshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with JavascriptApplitools
 

More from Applitools (20)

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
Streamlining Your Tech Stack: A Blueprint for Enhanced Efficiency and Coverag...
 
Visual AI for eCommerce: Improving Conversions with a Flawless UI
Visual AI for eCommerce: Improving Conversions with a Flawless UIVisual AI for eCommerce: Improving Conversions with a Flawless UI
Visual AI for eCommerce: Improving Conversions with a Flawless UI
 
A Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the FutureA Test Automation Platform Designed for the Future
A Test Automation Platform Designed for the Future
 
Add AI to Your SDLC, presented by Applitools and Curiosity
Add AI to Your SDLC, presented by Applitools and CuriosityAdd AI to Your SDLC, presented by Applitools and Curiosity
Add AI to Your SDLC, presented by Applitools and Curiosity
 
The Future of AI-Based Test Automation
The Future of AI-Based Test AutomationThe Future of AI-Based Test Automation
The Future of AI-Based Test Automation
 
Test Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsTest Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed Teams
 
Can AI Autogenerate and Run Automated Tests?
Can AI Autogenerate and Run Automated Tests?Can AI Autogenerate and Run Automated Tests?
Can AI Autogenerate and Run Automated Tests?
 
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityTriple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality
 
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsNavigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
 
Introducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdfIntroducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdf
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
Collaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing CentraCollaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing Centra
 
What the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the FutureWhat the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the Future
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual Testing
 
Workshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with CypressWorkshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with Cypress
 
From Washing Cars To Automating Test Applications
From Washing Cars To Automating Test ApplicationsFrom Washing Cars To Automating Test Applications
From Washing Cars To Automating Test Applications
 
A Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous DeliveryA Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous Delivery
 
AI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser TestingAI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser Testing
 
Workshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with JavascriptWorkshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with Javascript
 

Recently uploaded

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Recently uploaded (20)

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

Shifting landscape of mobile automation, and the future of Appium - Jonathan Lipps

  • 1. The Shifting Landscape of Mobile Automation Jonathan Lipps • Founding Principal • Cloud Grey 
 @AppiumDevs • @cloudgrey_io • @jlipps Applitools Webinar · The Internet February 23, 2018
  • 2. Founding Principal Project Lead & Architect Jonathan Lipps • Founding Principal • Cloud Grey 
 @AppiumDevs • @cloudgrey_io • @jlipps
  • 5. Open Source Proprietary Appium Android Instrumentation* Android UiAutomator* Robotium Frank Selendroid ios-driver KIF Calabash Apple Instruments + UIAutomation
  • 8. Open Source (Owner) Proprietary Appium (JS Foundation) Espresso* (Google) EarlGrey (Google) Detox (Wix) Xamarin.UITest (Microsoft) WebDriverAgent (Facebook) XCUITest (Apple)
  • 9. Framework Platforms Modes Languages Protocol Requires Source? Underlying Tech / Vendor IDE/SDK integration Service Providers Dev Appium iOS, Android, macOS, Windows Native, Hybrid, Web Java, Python, Ruby, C#, JavaScript, Objective-C, Swift, PHP WebDriver No WDA, UiAutomator2, Espresso, WinAppDriver, appium-for-mac N/A Sauce Labs, TestObject, AWS, BrowserStack, BitBar, Xamarin, AppCenter, etc… Full OSS Espresso Android Native, Hybrid Java, Kotlin Non-standard Yes Google Android Studio FireBase, BitRise, TestObject, BitBar, AWS Semi OSS XCUITest iOS Native Objective-C, Swift Non-standard Yes Apple Xcode AWS, BitBar, BuddyBuild Closed EarlGrey iOS Native Objective-C, Swift Non-standard Yes Google Xcode BuddyBuild Semi OSS Detox iOS, Android* Native JavaScript Non-standard No EarlGrey, Espresso N/A N/A Full OSS Xamarin.UITest iOS, Android Native, Hybrid? C# Non-standard No Microsoft / Calabash Visual Studio Xamarin TestCloud, AppCenter Closed WDA iOS Native Java, Python, Ruby, C#, JavaScript, Objective-C, Swift, PHP WebDriver No XCUITest N/A N/A Semi OSS
  • 10. Framework Platforms Modes Languages Protocol Appium iOS, Android, macOS, Windows Native, Hybrid, Web Java, Python, Ruby, C#, JavaScript, Objective-C, Swift, PHP WebDriver Espresso Android Native, Hybrid Java, Kotlin Non-standard XCUITest iOS Native Objective-C, Swift Non-standard EarlGrey iOS Native Objective-C, Swift Non-standard Detox iOS, Android* Native JavaScript Non-standard Xamarin.UITest iOS, Android Native, Hybrid? C# Non-standard WDA iOS Native Java, Python, Ruby, C#, JavaScript, Objective-C, Swift, PHP WebDriver
  • 11. Framework Requires Source? Underlying Tech / Vendor IDE/SDK integration Service Providers Dev Appium No WDA, UiAutomator2, Espresso, WinAppDriver, appium-for-mac N/A Sauce Labs, TestObject, AWS, BrowserStack, BitBar, Xamarin, AppCenter, etc… Full OSS Espresso Yes Google Android Studio FireBase, BitRise, TestObject, BitBar, AWS Semi OSS XCUITest Yes Apple Xcode AWS, BitBar, BuddyBuild Closed EarlGrey Yes Google Xcode BuddyBuild Semi OSS Detox No EarlGrey, Espresso N/A N/A Full OSS Xamarin.UITest No Microsoft / Calabash Visual Studio Xamarin TestCloud, AppCenter Closed WDA No XCUITest N/A N/A Semi OSS
  • 12. Framework Adoption Strongest Value Weak Point Appium Most popular open source automation technology Write tests in any language, leverage WebDriver skills, excellent mobile web support, multi-platform support Speed, stability* Espresso Most popular native Android framework Officially supported by Google. Fastest and most stable for Android Single-platform, tests must be written in JVM language XCUITest Most popular native iOS framework Officially supported by Apple Single-platform, tests must be written in Apple language. Speed, stability. EarlGrey Low Officially supported by Google. Benefits of Espresso for iOS Project rewrite is in progress. Single platform. Detox Low Writing JS-based tests for React Native apps No vendor support. Stability. Xamarin.UITest Low Officially supported by Microsoft. Write in C#. Speed, stability. Single language. WDA Low Write tests in any language, leverage WebDriver skills Single-platform. Speed, stability.
  • 13. Appium Install Appium via NPM or Appium Desktop. Ensure you have system dependencies in place (Android SDK, adb, Xcode, iOS SDK, etc…) Write a WebDriver-style test using the Selenium or Appium client in your language. Start the Appium server, then run your test. It speaks to the Appium server, which turns WebDriver requests into automation behavior, and returns WebDriver responses. The client makes the response available to your test script, which can take action or perform verification based on the result
  • 14. Espresso Add Espresso to your Android app’s test dependencies Write JUnit tests that use Espresso’s view matchers to find elements and interact with them. The same library contains assertion methods. Run your test using AndroidJUnitRunner
  • 15. XCUITest Add a class to your iOS project in Xcode that extends XCTestCase Override a setUp method and call XCUIApplication’s launch method Use the object-oriented XCUITest API to find elements and interact with them Use XCTAssert methods to make verifications View reports in Xcode’s Test Navigator 🛠
  • 16. EarlGrey Add a new iOS unit testing bundle to your iOS project Install the EarlGrey rubygem and add EarlGrey as a CocoaPod dependency Add a new XCTestCase class which imports EarlGrey Use methods chained on the EarlGrey library to find elements, perform actions, and make assertions (just like in Espresso) View reports in Xcode’s Test Navigator 🛠
  • 17. Detox Install detox via npm and applesimutils via homebrew Decorate your React Native project’s package.json with Detox config information (device to run on, xcodebuild instructions for your app, etc…) Add a JS test script that utilizes Detox’s global variables which will be injected by the Detox runner (e.g., device, element) Build the app using detox build and then run your test using detox test, which wraps a JS test runner of your choice, e.g., Mocha 🛠
  • 18. Xamarin.UITest Add a new UITest project to your Visual Studio solution with the appropriate UITest template. This will make sure the NuGet dependencies are set. Associate your mobile projects with the test project Create a C# test class that imports NUnit and Xamarin.UITest Write a [SetUp] decorated method that calls ConfigureApp.<platform>.StartApp() (for the appropriate platform) Use the resulting app object to perform actions on matching predicates 🛠
  • 19. WebDriverAgent Clone the WebDriverAgent repo and run its bootstrap script to use Carthage and download dependencies Open the WebDriverAgent Xcode project and run it, or use xcodebuild to build and run from the command line Watch the output of WebDriverAgent’s logs to determine its port Write a WebDriver-style test using the Selenium or Appium client in your language. Point the RemoteWebDriver to the WDA host/port, and run the test. 🛠
  • 20. 5 years from now (in my dreams)
  • 22. Highly integrated with other apps, locations, experiences Situation-aware, AR Spanning many form factors Phone, watch, TV, goggles, glasses, installations, tables, ? Spanning many platforms React Native leads the way More than stock UI components 3d UIs, VR/AR, IoT The “mobile” app of the future
  • 23. Visual testing Does my app look the way it’s supposed to? (AVM*) Performance testing Is my app experience responsive enough? Security testing Is my app safe for my customers to use? Is it safe for me to let them use it? Location testing Does my app work the same way anywhere in the world? Flow testing What are all the paths through my app? How hard is it for users to get where I want them to go? Beyond functional testing
  • 24. “Shift left” is now a household term Automate the automation - code gen, AI, etc… Tool and framework fatigue The automation trend continues
  • 25. To InfinityDriver & Beyond…
  • 26. An official extension to the WebDriver protocol A set of Node.js base classes and libraries for easily writing drivers Multiple drivers, each one a WebDriver interface on top of the best automation tech of the day for a given platform, plus a helpful collection of other utilities. A stable API on top of a changing set of underlying technologies. A community of practitioners who maintain an ever-expanding knowledge-base for different platforms The Appium of the Future / ✩Driver / ∞Driver
  • 27. The WebDriver protocol is a great start! But is it the end of the line? So many new kinds of testing emerging. Do we create a different protocol for each one? Whatever we do, let’s not compete on standards. Implementations? Yes. Standards? No. …and beyond!
  • 28. Promote WebDriver over other options. Not because it’s necessarily the best, but because it’s a standard. Contribute your wisdom and experience for a particular platform to the community- maintained Appium driver for that platform. Contribute code and help maintain! If we all pitch in a little bit, we all get a lot more in return. This is the standard open source value prop for businesses. Big visions require broad support 1 2 3
  • 29. Thank You Jonathan Lipps • Founding Principal • Cloud Grey 
 @AppiumDevs • @cloudgrey_io • @jlipps
  • 30. Questions? Jonathan Lipps • Founding Principal • Cloud Grey 
 @AppiumDevs • @cloudgrey_io • @jlipps Don’t forget to sign up for Your free weekly Appium newsletter https://appiumpro.com