Your SlideShare is downloading. ×
0
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Cross-Platform Testing with Frank
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Cross-Platform Testing with Frank

675

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
675
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Thursday, November 1, 12
  • 2. Hi, I’m Pete HodgsonThursday, November 1, 12
  • 3. Thursday, November 1, 12
  • 4. We’re HiringThursday, November 1, 12
  • 5. Thursday, November 1, 12
  • 6. two-minute tour of FrankThursday, November 1, 12
  • 7. two-minute tour of Frank UI automation tool for native iOS apps - “WebDriver for iOS” Write your tests using the language and tooling you want integrate with CI powerful view-selection facilities explore a running app with symbioteThursday, November 1, 12
  • 8. symbioteThursday, November 1, 12
  • 9. lots more to tell you, but not right nowThursday, November 1, 12
  • 10. testingwithfrank.com or come talk to me to find out more about FrankThursday, November 1, 12
  • 11. Cross-platform testing for mobileThursday, November 1, 12
  • 12. PhoneThursday, November 1, 12
  • 13. Test Scripts PhoneThursday, November 1, 12
  • 14. Test Scripts Automation Phone DriverThursday, November 1, 12
  • 15. Test Scripts Automation Phone Driver ... ... type_into_text_field( ‘username’, user ) type_into_text_field( ‘password’, pass ) touch “button marked:‘Login’” wait_for_element_to_exist( “loginBanner marked:‘Welcome #{user}’” ) ... ...Thursday, November 1, 12
  • 16. Test Scripts Hard to Read! Automation Driver Phone ... ... type_into_text_field( ‘username’, user ) type_into_text_field( ‘password’, pass ) touch “button marked:‘Login’” wait_for_element_to_exist( “loginBanner marked:‘Welcome #{user}’” ) ... ...Thursday, November 1, 12
  • 17. ! Test Scripts gi l e Automation Driver Phone Fr a ... ... type_into_text_field( ‘username’, user ) type_into_text_field( ‘password’, pass ) touch “button marked:‘Login’” wait_for_element_to_exist( “loginBanner marked:‘Welcome #{user}’” ) ... ...Thursday, November 1, 12
  • 18. N o s on Test Scripts t ra c ti Automation Phone s Driver Ab ... ... type_into_text_field( ‘username’, user ) type_into_text_field( ‘password’, pass ) touch “button marked:‘Login’” wait_for_element_to_exist( “loginBanner marked:‘Welcome #{user}’” ) ... ...Thursday, November 1, 12
  • 19. Test Scripts Automation Phone DriverThursday, November 1, 12
  • 20. the Page Object PatternThursday, November 1, 12
  • 21. Test Scripts Automation Phone DriverThursday, November 1, 12
  • 22. Test Scripts Page Automation Phone Objects DriverThursday, November 1, 12
  • 23. Test Scripts Page Automation Phone Objects DriverThursday, November 1, 12
  • 24. Test Scripts class HomeScreen Page Automation Phone Driver def login(user,pass)Objects type_into_text_field( ‘username’, user ) type_into_text_field( ‘password’, pass ) touch “button marked:‘Login’” end def verify_logged_in_as(user) wait_for_element_to_exist( “loginBanner marked:‘Welcome #{user}’” ) end endThursday, November 1, 12
  • 25. Test Scripts Page Automation Phone Objects Driver ... ... home_screen.login( ‘pete’, ‘sekrit’ ) home_screen.verify_logged_in_as( ‘pete’ ) ... ...Thursday, November 1, 12
  • 26. Test Scripts Page Automation Phone Objects Driver User TechThursday, November 1, 12
  • 27. Cross-platform testing for mobileThursday, November 1, 12
  • 28. Cross-platform testing for mobileThursday, November 1, 12
  • 29. Cross-platform testing for mobileThursday, November 1, 12
  • 30. Test Scripts Page Automation Phone Objects DriverThursday, November 1, 12
  • 31. Test Scripts Page Automation Phone Objects DriverThursday, November 1, 12
  • 32. Test Scripts iPhone-specific ‘stuff’Thursday, November 1, 12
  • 33. Test Scripts iPhone-specific ‘stuff’Thursday, November 1, 12
  • 34. Test Scripts iPhone-specific ‘stuff’Thursday, November 1, 12
  • 35. Test Scripts iPhone-specific ‘stuff’ Web-specific ‘stuff’Thursday, November 1, 12
  • 36. Test Scripts class HomeScreen def login(user,pass) #iPhone-specific GOES HERE WEBDRIVER STUFF end ‘stuff’ def verify_logged_in_as(user) Web-specific # MORE WEBDRIVER STUFF end ‘stuff’ endThursday, November 1, 12
  • 37. same interface Test Scripts class HomeScreen def login(user,pass) #iPhone-specific GOES HERE WEBDRIVER STUFF end ‘stuff’ def verify_logged_in_as(user) Web-specific # MORE WEBDRIVER STUFF end ‘stuff’ endThursday, November 1, 12
  • 38. Test Scripts iPhone-specific ‘stuff’Thursday, November 1, 12
  • 39. Test Scripts iPhone-specific ‘stuff’ iPad-specific ‘stuff’Thursday, November 1, 12
  • 40. Test Scripts iPhone-specific ‘stuff’ iPad-specific ‘stuff’Thursday, November 1, 12
  • 41. Test Scripts iPhone-specific ‘stuff’ iPad-specific ‘stuff’Thursday, November 1, 12
  • 42. User TechThursday, November 1, 12
  • 43. User PlatformThursday, November 1, 12
  • 44. Thursday, November 1, 12
  • 45. Apple’s UIAutomationThursday, November 1, 12
  • 46. PublicAutomationThursday, November 1, 12
  • 47. alternatives to stock UIAutomation Bwoken UISpec Zucchini NativeDriver tuneup.js KIF Calabash FrankThursday, November 1, 12
  • 48. extend UIAutomation Bwoken UISpec Zucchini NativeDriver tuneup.js KIF Calabash FrankThursday, November 1, 12
  • 49. replace UIAutomation Bwoken UISpec Zucchini NativeDriver tuneup.js KIF Calabash FrankThursday, November 1, 12
  • 50. a third way: PublicAutomationThursday, November 1, 12
  • 51. PublicAutomation exposes Apple’s own low-level UIAutomation private frameworkThursday, November 1, 12
  • 52. PublicAutomation provides the power of Apple’s touch synthesis implementationThursday, November 1, 12
  • 53. PublicAutomation gives the freedom to build better integration and tooling on topThursday, November 1, 12
  • 54. PublicAutomation has been Frank’s touch synthesis library since 1.0 (replacing KIF)Thursday, November 1, 12
  • 55. PublicAutomation open source and up on github bit.ly/publicautomationThursday, November 1, 12
  • 56. Thanks!Thursday, November 1, 12
  • 57. Thanks! Pete Hodgson @ph1 blog.thepete.net phodgson@thoughtworks.comThursday, November 1, 12
  • 58. Thursday, November 1, 12
  • 59. one more thing...Thursday, November 1, 12
  • 60. Thursday, November 1, 12

×