In previous blogs i shared some of the difficulties in running a mobile project, and few leading cloud based solutions which can be useful in dealing with few of the difficulties i raised.
In this blog i would like to highlight few of the problems which an automation team which develops tests for mobile should be aware of in advance.
From one hand, we want to isolate when developing automation our test environment and make it free of interrupts and noises, this in order to have a consistent and flawless test run without the need to complicate the test scripts etc., however – from the other hand when developing automation (especially for mobile) – we want to actually introduce as many interrupts as possible during the test run since these are most probably some of the issues which a real user will face when running the application we tend to test etc.
So – what is the proposed solution?
IMHO, the way to develop robust automation for mobile requires to have a controlled test environment with the right number of mobile handsets per platform, while adding to the “formula” automation which will trigger possible interferences (such as incoming call, incoming SMS/Mail, low battery events, lost of communication, screen orientation change etc.).
We have the ability these days to use e.g. Android Emulator in order to simulate an incoming call/SMS, or Roaming, or change of Network as well as change of location (by using the Android DDMs tool with the Location configuration tool), which we can use in our test automation environment. We also have tools which act as a private cloud within a closed network (e.g. Seetest by Experitest) which can allow us to test on multiple devices at the same time using parallel scenario’s etc.
The bottom line is: We know that automating tests on mobile which is a hard thing on its own (need to handle detection of unique objects, dynamic events and many more), however the tests we develop, should be relevant to the mobile world and combine mobile world interrupts such as i mentioned above, otherwise we can assure that the application runs OK on the device, but when interrupts starts to show up – we do not cover this at all since we isolated the test platforms from the “world”.
Another complexity when doing automation for mobile (on top of the variety of platforms to support – iOS, Android etc.), is the “portability” of the developed tests across mobile handsets. We know already that solutions such as “PerfectoMobile” uses ScriptOnce keyword based development language to overcome this, and allow a develop once, run everywhere solution, and we also see other tools today such as PhoneGap, CodeNameOne, MagicSoftware uniPaaS tool which aim to cover development and automation in a cross-platform environment.
I will extend my blogs in the future around each of the above cross-platform solutions and explain how they work and what are their advantages.
I wrote a while ago a presentation about mobile test automation which is still relevant and can be complimentary to this blog – see Link: http://www.slideshare.net/ek121268/mobile-automated-testingerank