ios testing with appium at gilt

Post on 15-Jan-2015

2.036 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

A talk by Gilt Senior Software Engineer Matt Isaacs for the Appium Roadshow, August 2014.

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.

Give us a visit

tech.gilt.com @gilttech

Thanks!

Matt Isaacs @haveahennessy

top related