17
Test automation of Mobile Apps Ričardas Vaitkus

Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Embed Size (px)

DESCRIPTION

Presentation from Bugs'a'loud Vilnius QA Gathering

Citation preview

Page 1: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Test automation of Mobile AppsRičardas Vaitkus

Page 2: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Mobile is taking over the world. But how do we scale mobile quality?

Page 3: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Native Web Hybrid apps

Page 4: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Hybrid apps maker• PhoneGap

Page 5: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Mobile apps testing• Appium is cross-platform solution for

native and hybrid mobile automation

Page 6: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Appium philosophy• Test the same app you submit to the

market• Write test in any language, using any

framework• Use standard automation specification

and API

Page 7: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Support platforms• Real devices• Simulators• Native apps• Hybrid apps• Mobile web• Robots?!

Page 8: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Appium in space

iOS• Calabash-ios

• Frank

• UIAutomation

• ios-driver

• KeepItFunctional

Android• Calabash-android

• MonkeyTalk

• Robotium

• UiAutomator

• Selendroid

Page 9: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Selenium WebDriver• Is standard for browser automation, with libraries in

every* language• Is used every single day by thousands of developers

familiar with its model• Is an HTTP API

• POST /session

• POST /session/element

• GET /session/element/:id/:attr

• Is a W3C working draft

Page 10: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Languages • WebDriver compatible

• Java

• Objective-C

• JavaScript with Node.js

• PHP

• Python

• Ruby

• C#

• Perl

• Clojure

Page 11: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Appium architecture• Appium is an HTTP server that creates

and handles WebDriver sessions• Appium starts a “test case” on the device

that spawns a server and listens for proxied commands

Page 12: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Appium architecture• On iOS, appium proxies commands to a

UIAutomation script running in Istruments

Page 13: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Appium architecture• On Android, appium proxies commands

to a UiAutomator test case running on device

Page 14: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Automation frameworks• iOS – UIAutomation• Android >= 4.2 – UiAutomator• Android < 4.2 & Hybrid – Selendroid • FireFoxOS – Marionette

Page 15: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Gestures• tap (on screen or on element)• flick (on screen or on element)• swipe/drag (on screen or on element)• scroll to (element)• slider• shake• longTap (element)

Page 16: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)

Appium opens door to cross-platform mobile testing: one test, two mobile platforms

Page 17: Test automation of mobile apps (Bugs'a'loud Vilnius QA Gathering)