Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOS Testing with Appium at Gilt
Search
Matt Isaacs
August 20, 2014
Programming
140
0
Share
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
620
Mobile Testing at Gilt
ontherocks
0
49
Other Decks in Programming
See All in Programming
iOS26時代の新規アプリ開発
yuukiw00w
0
230
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
260
Modding RubyKaigi for Myself
yui_knk
0
840
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
230
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
7
1.3k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
110
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
300
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
430
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.2k
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
310
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
7
2.9k
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
180
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
470
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
290
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
330
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
Raft: Consensus for Rubyists
vanstee
141
7.5k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
55k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
720
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Marketing to machines
jonoalderson
1
5.3k
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