I’m now a mobile tester

I’ve decided to take a job writing automated tests for HomeAway’s mobile applications.  So I’ve gone from using Watir and Watirmark to something new.  What I have to test  now can be broken down to these parts

  1. An iOS native application
  2. An Android native application
  3. A set of APIs that the native application uses for data CRUD
  4. An app for owners that is written using Phonegap

I started about 6 months ago and have been learning the business and the applications as well as looking at ways of testing that takes what I have seen work in the past.  When I first started writing proof of concept tests I used Appium Selenium and Ruby for testing 1 and 2 above.  The first big discovery is that I can’t use IDs to get at the elements.  I have to use the accessibilityIdentifier on iOS and the contentDescription on Android.  While the applications are developed by two different sets of developers and are not the same I was able to do some useful testing with the exact same test code.  To do this I had to get both dev environments up and running on my machine and put in the same accessibility strings in the two systems.  I imagine there will be places where UI code will look like

if platform == 'iOS'
do this
else
do that
end

I have not had to do that yet.

For testing the APIs I am using net/https and json.  This testing was easy to get going and is in TeamCity running after the API it is testing builds.

The Phonegap application is interesting.  I spent a couple of days trying to use Appium or variations of Appium to get at the application bit it reminded me of testing flash applications embedded in HTML  So, I am running the application as a web application on the local machine and using Selenium to drive a web browser and that is working now.

All of this code uses a Watermark-like MVC approach to test their parts with the exception of the API tests, in that case the View code is just the JSON and the controller just calls out to JSON instead of a normal view.  The JSON controller is subclassed from the normal controller and probably needs a little work.

 

Advertisements
Explore posts in the same categories: Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s


%d bloggers like this: