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
640
Mobile Testing at Gilt
ontherocks
0
50
Other Decks in Programming
See All in Programming
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
1k
SREの越境 / SRE Collaboration
y0hgi
2
310
contenteditable と日本語入力に向き合う
colorful12
0
190
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
250
Kotlinの15年とServer-Side Kotlin
n_takehata
1
140
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
120
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
170
ActionController meets Protocol Buffers
sorah
0
290
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
260
The Rails Doctrine Decade
koic
2
570
Are APIs Still Relevant in the AI Era?
soyuka
0
460
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Prompt Engineering for Job Search
mfonobong
0
510
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Optimising Largest Contentful Paint
csswizardry
37
4k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
From π to Pie charts
rasagy
1
400
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