Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cross-Platform Testing - Mobile Test Summit SF

Pete Hodgson
November 01, 2012

Cross-Platform Testing - Mobile Test Summit SF

4 talks in one!

I talked briefly about Frank.

I talked a lot about how to use the Page Object pattern to enable re-usable, cross-platform tests.

Then I introduced PublicAutomation, a lightweight wrapper around Apple's private UIAutomation framework.

Finally I announced that lesspainful.com will be providing cloud hosting and support for Frank test suites.

Pete Hodgson

November 01, 2012
Tweet

More Decks by Pete Hodgson

Other Decks in Programming

Transcript

  1. 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 symbiote Thursday, November 1, 12
  2. or come talk to me to find out more about

    Frank testingwithfrank.com Thursday, November 1, 12
  3. Test Scripts Phone Automation 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
  4. Test Scripts Phone Automation 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}’” ) ... ... Hard to Read! Thursday, November 1, 12
  5. Test Scripts Phone Automation 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}’” ) ... ... Fragile! Thursday, November 1, 12
  6. Test Scripts Phone Automation 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}’” ) ... ... No Abstractions Thursday, November 1, 12
  7. Test Scripts Phone Automation Driver Page Objects class HomeScreen def

    login(user,pass) 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 end Thursday, November 1, 12
  8. Test Scripts Phone Automation Driver Page Objects ... ... home_screen.login(

    ‘pete’, ‘sekrit’ ) home_screen.verify_logged_in_as( ‘pete’ ) ... ... Thursday, November 1, 12
  9. iPhone-specific ‘stuff’ Web-specific ‘stuff’ Test Scripts class HomeScreen def login(user,pass)

    # WEBDRIVER STUFF GOES HERE end def verify_logged_in_as(user) # MORE WEBDRIVER STUFF end end Thursday, November 1, 12
  10. iPhone-specific ‘stuff’ Web-specific ‘stuff’ Test Scripts class HomeScreen def login(user,pass)

    # WEBDRIVER STUFF GOES HERE end def verify_logged_in_as(user) # MORE WEBDRIVER STUFF end end same interface Thursday, November 1, 12
  11. gives the freedom to build better integration and tooling on

    top PublicAutomation Thursday, November 1, 12