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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Matt Isaacs
August 20, 2014
Programming
0
140
iOS Testing with Appium at Gilt
Talk given at the Appium Roadshow. Projective Space, New York.
Matt Isaacs
August 20, 2014
Tweet
Share
More Decks by Matt Isaacs
See All by Matt Isaacs
Better Recursion With Swift
ontherocks
1
610
Mobile Testing at Gilt
ontherocks
0
48
Other Decks in Programming
See All in Programming
Docコメントで始める簡単ガードレール
keisukeikeda
1
120
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
250
CSC307 Lecture 14
javiergs
PRO
0
470
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
140
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
560
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
150
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
120
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
190
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
290
CSC307 Lecture 15
javiergs
PRO
0
250
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
150
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
360
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
260
Navigating Weather and Climate Data
rabernat
0
140
Are puppies a ranking factor?
jonoalderson
1
3.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
140
Measuring & Analyzing Core Web Vitals
bluesmoon
9
790
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Building Adaptive Systems
keathley
44
3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
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