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

677

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
677
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

×