Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
iOS Testing with Appium at Gilt
Search
Matt Isaacs
August 20, 2014
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOS Testing with Appium at Gilt
Talk given at the Appium Roadshow. Projective Space, New York.
Matt Isaacs
August 20, 2014
More Decks by Matt Isaacs
See All by Matt Isaacs
Better Recursion With Swift
ontherocks
1
650
Mobile Testing at Gilt
ontherocks
0
52
Other Decks in Programming
See All in Programming
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
300
GraphQL の onError と Nullability のこれから
quramy
0
210
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
290
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
340
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
720
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
SODA - FACT BOOK(JP)
sodainc
1
40k
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
200
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
590
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Bash Introduction
62gerente
615
220k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
520
For a Future-Friendly Web
brad_frost
184
11k
Leo the Paperboy
mayatellez
10
2.4k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
300
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
510
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
Transcript
iOS Testing with Appium Details learned the hard way
What is Gilt?
Luxe brands up to 60% off
Inventory Changes Daily Sales are available for a limited time.
Sales start at noon ET. New sales start daily at
12pm, with bonus sales at 9pm.
Gilt Mobile Covers apps + mobile infrastructure. Team of 12
(And counting). QA Team offsite.
iPhone • iPad • Android
Previously form Gilt Mobile Test benefits need to be balanced
with effort. UI Tests offer the most benefit to QA. Increased revenue → Quality focus. Really hard to change established practices.
What are we automating? Full sanity - Can customers login
in and buy stuff? iPhone only. For now.
Run daily at 19:15 EST… Tests take a long time.
Can conflict with customers.
…On Production Infrastructure is quite complex. Infrastructure is constantly evolving.
Impractical to mock.
Why Appium? We’ve already built Selenium infrastructure. We already have
Selenium skills.
All part of the Philosophy! No SDK to compile in.
Strong open source community. Cross-platform support.
No libs? What is this sorcery? Appium serves as a
webdriver proxy for UIAutomation. Part of instruments.
Accessibility makes it work UIAutomation drives apps via iOS Accessibility.
Elements located by accessibility labels.
Where do we start? We already have the Selenium fundamentals.
We’re already mostly accessible. Lets build some page objects.
Convention on top of Actions and Locators. Page validated during
construction. Actions return new page objects. What are Page Objects?
When to wait? - Page object construction. Page objects represent
state. Actions → State transitions Solves some reliability issues
Sore points. Accessibility. Overlays and pass-throughs. Partially obscured controls. Execution
time.
None
About that Accessibility thing You’re probably not accessible enough. Container
views hide their contents!
Accessibility isn't overhead Good for your users and your tests.
UIAccessibilityIdentifier is for tests. Implementing UIAccessibilityContainer helps.
That’s a lot of work Accessibility feels like overhead. Rich
Views → Complex Page Objects
But wait! There’s more work! We still need to write
the actual tests. Page Objects might require some debugging.
Debug Page Objects? Test code needs tests?
(╯°□°)╯︵ ┻━┻ Too. Much. Work.
Issue amplified by culture No problem in enterprise. Mobile seems
to be different.
– NSHipster “Objective-C developers have, for the most part, remained
relatively apathetic to Unit Testing.”
Issue amplified by culture App features take priority. Testing delegated
to QA. QA is doing a great job!
Artists don’t Test! They might if it doesn’t get in
the way.
The hardest part Getting the team involved.
Not knocking the team People are busy. They understand the
benefits of testing. Benefits need to be balanced with effort.
The Takeaway The overhead involved is a developer deterrent. Appium
tests are not yet integral to our process. But Appium is only getting better.
Buy some cool stuff!! Preferably on mobile.
Give us a visit tech.gilt.com @gilttech
Thanks! Matt Isaacs @haveahennessy