test automation of mobile apps

17
Test automation of Mobile Apps Ričardas Vaitkus

Upload: rvaitkus

Post on 26-May-2015

321 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Test automation of mobile apps

Test automation of Mobile AppsRičardas Vaitkus

Page 2: Test automation of mobile apps

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

Page 3: Test automation of mobile apps

Native Web Hybrid apps

Page 4: Test automation of mobile apps

Hybrid apps maker

• PhoneGap

Page 5: Test automation of mobile apps

Mobile apps testing

• Appium is cross-platform solution for native and hybrid mobile automation

Page 6: Test automation of mobile apps

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

Support platforms

• Real devices

• Simulators

• Native apps

• Hybrid apps

• Mobile web

• Robots?!

Page 8: Test automation of mobile apps

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

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

Languages • WebDriver compatible

• Java

• Objective-C

• JavaScript with Node.js

• PHP

• Python

• Ruby

• C#

• Perl

• Clojure

Page 11: Test automation of mobile apps

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 proxiedcommands

Page 12: Test automation of mobile apps

Appium architecture

• On iOS, appium proxies commands to a UIAutomation script running in Istruments

Page 13: Test automation of mobile apps

Appium architecture

• On Android, appium proxies commands to a UiAutomator test case running on device

Page 14: Test automation of mobile apps

Automation frameworks

• iOS – UIAutomation

• Android >= 4.2 – UiAutomator

• Android < 4.2 & Hybrid – Selendroid

• FireFoxOS – Marionette

Page 15: Test automation of mobile apps

Gestures

• taptaptaptap (on screen or on element)

• flickflickflickflick (on screen or on element)

• swipe/dragswipe/dragswipe/dragswipe/drag (on screen or on element)

• scroll scroll scroll scroll totototo (element)

• sliderslidersliderslider

• shakeshakeshakeshake

• longTaplongTaplongTaplongTap (element)

Page 16: Test automation of mobile apps

Appium opens door to crosscrosscrosscross----platform mobile platform mobile platform mobile platform mobile testingtestingtestingtesting: one test, two mobile platforms

Page 17: Test automation of mobile apps