iOS UI Automation
using Xcode
GETTING STARTED USING APPLE’S NEW FRAMEWORK
What we’ll be going over
 Introduction
 Best tools for UI testing iOS applications
 Introduction into the framework
 Demo of UI automation
 CI/CD
Konnor Willison @konnorwillison
 Worked at Bluehost, Overstock, Vivint.
 Currently at Demandware/Salesforce as a Software Developer in Test
 We’re hiring!
 Quality Assurance Engineer II
 Data Engineer Team Lead
 Sr. Infrastructure Engineer
 Principal Engineer-Platform Operations Training
 Senior Java Developer
 Work mostly in Java
 Love anything automation
 Was tasked with finding a solution to automate iOS UI testing
What are some ways to UI test iOS
applications?
 KIF – Keep it Functional
 Calabash
 Appium
 Apple’s UIAutomation (currently dropped)
 Xcode 7+ UI Testing
Testing with Xcode
 UI Testing
 Interact with UI Elements
 Verify UI properties and states
 UI Recording
 Rapidly set up projects
 Uses XCTest and Accessibility
Xcode UI Testing
 Requirements
 New APIs
 Recording
Requirements
 iOS 9+
 OS X 10.11+
 iOS devices need to be enabled for development
 Connected to trusted host running Xcode
 OS X must grant permission to Xcode Helper
Main APIs to Interact with
 XCUIApplication
 XCUIElement
 XCUIElementQuery
Interacting with the app
XCUIApplication
 proxy for tested application
 independent of app
XCUIElement
 proxy object for user interface elements
 types (buttons, cells, window)
 identifiers from accessibility, label, title (how to find element, combine
type and identify)
 for hierarchy in application
 elements must be unique (resolve to single instance)
 exception (exists property)
 where simulation of UI exists
XCUIElementQuery
 specify elements
 only get accessible elements
 number of matches using count
 elementAtIndex
 filter by type, label
 Find element by subscripting – table.staticTexts[“Order Now”]
 Index – table.staticTexts.elementAtIndex(0)
 Unique – app.navigationBars.element
 Evaluated on demand
Recording
 Add reliability with minimal effort
 Use recording to find the elements
 Event validation with XCTAssert
Demo

More Related Content

PPTX
Mobile automation testing with selenium and appium
PPTX
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
PDF
KKBOX WWDC17 UIKit - QQ
PPTX
iOS Distribution and App store pushing and more
PPTX
Automated UI Testing for Web and Native Apps on iOS and Android
PPT
BCS Selenium Workshop
PPSX
Cross platform test automation using Appium
PPTX
Mobility testing
Mobile automation testing with selenium and appium
QA Fest 2014. Ярослав Пернеровский. Appium - два в одном. рецепт приготовлени...
KKBOX WWDC17 UIKit - QQ
iOS Distribution and App store pushing and more
Automated UI Testing for Web and Native Apps on iOS and Android
BCS Selenium Workshop
Cross platform test automation using Appium
Mobility testing

What's hot (20)

KEY
Introduction to Mobile-UI Automated Testing Tools
PDF
Intro to Windows Azure Mobile Services with iOS
PDF
Appium
PDF
Appium: Automation for Mobile Apps
PDF
WinAppDriver - Windows Store Apps Test Automation
PPTX
Mobile application development
PDF
PyUIA 0.3
PPTX
Monkey talk
PPT
Phonegap android
PPTX
React native introduction
PDF
Monkey talk
PPTX
React Native
PDF
Apple WWDC Mobility Review 2014
DOCX
Creation of simple application using - step by step
PDF
UI Testing with Earl Grey
PDF
Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...
PDF
Automation Anywhere IQ Bots | Edureka
PDF
01 04 - android set up and creating an android project
PDF
Wroc.py #32: Microservices in flask
PPT
Ios development
Introduction to Mobile-UI Automated Testing Tools
Intro to Windows Azure Mobile Services with iOS
Appium
Appium: Automation for Mobile Apps
WinAppDriver - Windows Store Apps Test Automation
Mobile application development
PyUIA 0.3
Monkey talk
Phonegap android
React native introduction
Monkey talk
React Native
Apple WWDC Mobility Review 2014
Creation of simple application using - step by step
UI Testing with Earl Grey
Automation Anywhere Control Room | Control Room Administration Tutorial | Edu...
Automation Anywhere IQ Bots | Edureka
01 04 - android set up and creating an android project
Wroc.py #32: Microservices in flask
Ios development
Ad

Viewers also liked (20)

PPTX
Final presentation slides
PPTX
Prezentacja szczawnica j_sikora
PDF
Magazine carletti
PDF
Yankee Hat Minerals
PDF
SETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIA
PDF
Australia zoo
PDF
accenture-increasing-return-talent-development-canadian-companies
DOCX
Las cuatro libertades de stamall
DOCX
Generalidades del bautismo aldo f acosta 2015
PDF
Lemken zirkon 10-450 parts katalog
PPTX
María teresa maldonado sada actividad 3 gestion del conocimiento
PDF
Lemken system-kompaktor k 450 parts catalog
PDF
Lemken zirkon 7/400 parts catalog
PDF
Lec 8 b - sedimentary rocks - Geology for 1th year | Zagazig university.
PDF
Varga Csaba - A társadalom felébredése az agóniából
PPT
Quality Attributes Workshop
PPTX
Presentación 1 valor posicional de los números hasta el 9999
PPT
Meeting
PPTX
Surgery in Bleeding Diathesis
Final presentation slides
Prezentacja szczawnica j_sikora
Magazine carletti
Yankee Hat Minerals
SETTLEMENT POTENTIALITY ANALYSIS OF CLAY SOILS, NORTH JEDDAH, SAUDI ARABIA
Australia zoo
accenture-increasing-return-talent-development-canadian-companies
Las cuatro libertades de stamall
Generalidades del bautismo aldo f acosta 2015
Lemken zirkon 10-450 parts katalog
María teresa maldonado sada actividad 3 gestion del conocimiento
Lemken system-kompaktor k 450 parts catalog
Lemken zirkon 7/400 parts catalog
Lec 8 b - sedimentary rocks - Geology for 1th year | Zagazig university.
Varga Csaba - A társadalom felébredése az agóniából
Quality Attributes Workshop
Presentación 1 valor posicional de los números hasta el 9999
Meeting
Surgery in Bleeding Diathesis
Ad

Similar to open-west (20)

PPTX
XCUITest for iOS App Testing and how to test with Xcode
PDF
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
PDF
Top iOS Testing Tools and Frameworks.pdf
PDF
Tech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn Hiệp
PDF
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
PDF
Xcode 7 UI Testing - Xcake Dublin, October 2015
PPTX
iOS Developer Interview Questions
PDF
Automated Xcode 7 UI Testing
PPT
I os 101:basic training rajan
PDF
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
PPTX
WhatIsAppium.pptx
PDF
2012 mobile testingsummit-moet
PPTX
Appium.pptx
PPTX
Mobile Testing Challenges Lighting Talk with www.softtest.ie
PDF
Automation strategies for agile testing Gaurav bansal
PDF
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
PDF
Appium: the Superhero of Mobile testing
PPTX
Appium
PPTX
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
PDF
2012 star west-t10
XCUITest for iOS App Testing and how to test with Xcode
Understanding XCUITest Framework Your Guide to Efficient iOS Testing.pdf
Top iOS Testing Tools and Frameworks.pdf
Tech Talk #5 : KIF-iOS Integration Testing Framework - Nguyễn Hiệp
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Xcode 7 UI Testing - Xcake Dublin, October 2015
iOS Developer Interview Questions
Automated Xcode 7 UI Testing
I os 101:basic training rajan
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
WhatIsAppium.pptx
2012 mobile testingsummit-moet
Appium.pptx
Mobile Testing Challenges Lighting Talk with www.softtest.ie
Automation strategies for agile testing Gaurav bansal
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Appium: the Superhero of Mobile testing
Appium
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
2012 star west-t10

open-west

  • 1. iOS UI Automation using Xcode GETTING STARTED USING APPLE’S NEW FRAMEWORK
  • 2. What we’ll be going over  Introduction  Best tools for UI testing iOS applications  Introduction into the framework  Demo of UI automation  CI/CD
  • 3. Konnor Willison @konnorwillison  Worked at Bluehost, Overstock, Vivint.  Currently at Demandware/Salesforce as a Software Developer in Test  We’re hiring!  Quality Assurance Engineer II  Data Engineer Team Lead  Sr. Infrastructure Engineer  Principal Engineer-Platform Operations Training  Senior Java Developer  Work mostly in Java  Love anything automation  Was tasked with finding a solution to automate iOS UI testing
  • 4. What are some ways to UI test iOS applications?  KIF – Keep it Functional  Calabash  Appium  Apple’s UIAutomation (currently dropped)  Xcode 7+ UI Testing
  • 5. Testing with Xcode  UI Testing  Interact with UI Elements  Verify UI properties and states  UI Recording  Rapidly set up projects  Uses XCTest and Accessibility
  • 6. Xcode UI Testing  Requirements  New APIs  Recording
  • 7. Requirements  iOS 9+  OS X 10.11+  iOS devices need to be enabled for development  Connected to trusted host running Xcode  OS X must grant permission to Xcode Helper
  • 8. Main APIs to Interact with  XCUIApplication  XCUIElement  XCUIElementQuery
  • 10. XCUIApplication  proxy for tested application  independent of app
  • 11. XCUIElement  proxy object for user interface elements  types (buttons, cells, window)  identifiers from accessibility, label, title (how to find element, combine type and identify)  for hierarchy in application  elements must be unique (resolve to single instance)  exception (exists property)  where simulation of UI exists
  • 12. XCUIElementQuery  specify elements  only get accessible elements  number of matches using count  elementAtIndex  filter by type, label  Find element by subscripting – table.staticTexts[“Order Now”]  Index – table.staticTexts.elementAtIndex(0)  Unique – app.navigationBars.element  Evaluated on demand
  • 13. Recording  Add reliability with minimal effort  Use recording to find the elements  Event validation with XCTAssert
  • 14. Demo

Editor's Notes

  • #5: KIF: integration framework, directly in xcode project, written in objective c Calabash: uses cucumber, screenshots, able to test in the cloud, not integrated with xcode Appium: uses webdriver protocol Apple’s uiautomation: javascript Xcode UI testing: integrated with xcode, recording, can use xcodebuild, screenshots, quickstart
  • #6: Xctest is xcode’s testing framework test methods assertions integrated with xcode debugging easy continuous integration supports swift and obj c Accessibility how disabled people can interact with iOS semantic data for guiding through the UI provides apis to fine tune data that is present this way can interact with environment the same way the user does improve accessibility data, impacts testing, easier to write tests, more reliable, better for disabled users not accessible: custom view subclasses, layers, sprites, and other graphics
  • #10: Don’t go over these Three new apis XCUIApplication() proxy for tested application independent of app XCUIElement() proxy object for user interface elements types (buttons, cells, window) identifiers from accessibility, label, title (how to find element, combine type and identify) for heirarchy in application elements must be unique (resolve to single instance) exception (exists property) where simulation of UI exists XCUIElementQuery() specify elements only get accessible elements number of matches using count elementAtIndex filter by type, label