35
The Restless Are Getting Native Lessons Learnt While Automating an iOS App Wednesday, April 18, 12

The Restless Are Getting Native: SeleniumConf 2012

Embed Size (px)

DESCRIPTION

Presented at SeleniumConf 2012 in London, this talk summarizes my experiences attempting to write automated functional tests for an iOS application.

Citation preview

Page 1: The Restless Are Getting Native: SeleniumConf 2012

The Restless Are Getting Native

Lessons Learnt While Automating an iOS App

Wednesday, April 18, 12

Page 2: The Restless Are Getting Native: SeleniumConf 2012

What’s the point of automated tests?

• To catch regression bugs

• To do so faster and more reliably than a human

Wednesday, April 18, 12

Page 3: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 4: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 5: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 6: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 7: The Restless Are Getting Native: SeleniumConf 2012

What’s the biggest win of automated tests?

FASTER FEEDBACK

Wednesday, April 18, 12

Page 8: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 9: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 10: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 11: The Restless Are Getting Native: SeleniumConf 2012

</rant>

Wednesday, April 18, 12

Page 12: The Restless Are Getting Native: SeleniumConf 2012

iOS Automation Tools

• NativeDriver http://nativedriver.googlecode.com/

• KIF https://github.com/square/KIF

• Frank http://www.testingwithfrank.com/

• MonkeyTalk http://www.gorillalogic.com/

• Calabash https://github.com/calabash/calabash-ios

• iCuke https://github.com/unboxed/icuke

• UISpec http://uispec.googlecode.com/

Wednesday, April 18, 12

Page 13: The Restless Are Getting Native: SeleniumConf 2012

Why NativeDriver?

Familiar API

Wednesday, April 18, 12

Page 14: The Restless Are Getting Native: SeleniumConf 2012

Why NativeDriver?

Android

Wednesday, April 18, 12

Page 15: The Restless Are Getting Native: SeleniumConf 2012

Why NativeDriver?

“Hybrid” Apps

Wednesday, April 18, 12

Page 16: The Restless Are Getting Native: SeleniumConf 2012

NativeDriver Architecture

Wednesday, April 18, 12

Page 17: The Restless Are Getting Native: SeleniumConf 2012

NativeDriver Test Support Code

Wednesday, April 18, 12

Page 18: The Restless Are Getting Native: SeleniumConf 2012

NativeDriver Test Code

Wednesday, April 18, 12

Page 19: The Restless Are Getting Native: SeleniumConf 2012

The ugly bits

•What if NativeDriver doesn’t support a widget I need to automate?

• How do I build from the command line?

• How do I launch the simulator from the command line?

Wednesday, April 18, 12

Page 20: The Restless Are Getting Native: SeleniumConf 2012

Challenges

Wednesday, April 18, 12

Page 21: The Restless Are Getting Native: SeleniumConf 2012

Challenge: Cultural Differences

Wednesday, April 18, 12

Page 22: The Restless Are Getting Native: SeleniumConf 2012

Web Test Automation

• Selenium, Watir, Capybara, HTMLUnit, etc.

• Test automation is commonplace

Wednesday, April 18, 12

Page 23: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 24: The Restless Are Getting Native: SeleniumConf 2012

Real Developers Don’t Write Tests

Wednesday, April 18, 12

Page 25: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 26: The Restless Are Getting Native: SeleniumConf 2012

Challenge:Language Choice

Wednesday, April 18, 12

Page 27: The Restless Are Getting Native: SeleniumConf 2012

Recommendations

Wednesday, April 18, 12

Page 28: The Restless Are Getting Native: SeleniumConf 2012

Recommendation:Show Value Early

Wednesday, April 18, 12

Page 29: The Restless Are Getting Native: SeleniumConf 2012

Recommendation: Surprise and

Delight

Wednesday, April 18, 12

Page 30: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 31: The Restless Are Getting Native: SeleniumConf 2012

Recommendation: Know Your Limits

Wednesday, April 18, 12

Page 32: The Restless Are Getting Native: SeleniumConf 2012

The Future of NativeDriver

Wednesday, April 18, 12

Page 33: The Restless Are Getting Native: SeleniumConf 2012

Wednesday, April 18, 12

Page 34: The Restless Are Getting Native: SeleniumConf 2012

The Future of Mobile Testing

...is in your hands

Wednesday, April 18, 12

Page 35: The Restless Are Getting Native: SeleniumConf 2012

Thank you!

dante AT cochiva DAWT com@dantebriones

Wednesday, April 18, 12