ios testing with appium at gilt
Post on 15-Jan-2015
2.045 Views
Preview:
DESCRIPTION
TRANSCRIPT
iOS Testing with AppiumDetails learned the hard way
What is Gilt?
Luxe brands up to 60% off
Inventory Changes DailySales are available for a limited time.
Sales start at noon ET.New sales start daily at 12pm, with bonus sales at 9pm.
Gilt MobileCovers apps + mobile infrastructure.
Team of 12 (And counting). QA Team offsite.
iPhone • iPad • Android
Previously form Gilt MobileTest 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 ProductionInfrastructure 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 workUIAutomation 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.
About that Accessibility thingYou’re probably not accessible enough.
Container views hide their contents!
Accessibility isn't overheadGood for your users and your tests. UIAccessibilityIdentifier is for tests.
Implementing UIAccessibilityContainer helps.
That’s a lot of workAccessibility 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 cultureNo 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 cultureApp features take priority. Testing delegated to QA. QA is doing a great job!
Artist dont Test!They might if it doesn’t get in the way.
The hardest partGetting the team involved.
Not knocking the teamPeople are busy.
They understand the benefits of testing. Benefits need to be balanced with effort.
The TakeawayThe 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.
Thanks!
Matt Isaacs @haveahennessy
top related