MoPub Banner

Smaato One More

Inmobi Again

...

MobFox Interstitial Ad

MoPub Full Screen Ad

Smaato Ad Unit

Tuesday, June 22, 2010

Automation on Mobile Applications !

Automation, is SW Industry, most likely, all the management people loves it. there is 3 reasons for that.

Automation reduce costs,
Automation increase the productivity,
Automation decreases the resource requirement.


the above bullets make the management guru's to feel, automation is one of the best solution that must be executed in their very own organization.

We all know that a Web Application or a Desktop application automation is Quite possible with the famous mercury (now HP) automation tools QTP, WinRunner, Load Runner for Performance, IBM's Rational Robo and so on.

Can we automate a Mobile application in the same way ? What we got, when a mobile application in our hand ? We have a Emulator running the Application, and We have a device running the application.

If the emulator layout is not changing every time, then its Quite possible to record and playback - run the application on the emulator using the automation tools available.

How a device can be contacted then ? any embedded device, which provides a interface (USB or Serial), can be contacted from a PC - using lightweight tools like python, and ask the DUT to perform specific operations like connecting to Wireless LAN, Bluetooth, Running a Media Player and making a call.

Lets Discuss about the Open source test framework from the top smartphones.


Android, provides the test application framework (junit) in the SDK itself, a set of interfaces and classes that can feel the developer comfortable with the test ! In my views, Little unstable, sometimes excellently stable, still teething baby in the market, intended to grow as a giant !


IPhone, OMG, Driving the market like Crazy, making smartphones and standers become a war, providing an excellent Unit test applications, logic and boundary testing, that make the developer to write testable code. look at this link to IPhone OS test reference. there is some untested (i am not tested it), IPhone Unit testing framework is also available with code.google.com :).


Best in the Market, yet to catch up, missed the previous smartphone flight, Nokia, has a great cross platform framework QT SDK, anything is possible. Its has a QTestLib Test Framework a lightweight, data Driven, easily extendable, IDE Friendly, self contained, Type and Thread safety, Rapid test framework, with their API Support. Oops Thats a lot of features isn't it ?


Samsung Bada, I Love this. Eclipse based, really handy open source SDK ( as of now only Samsung Wave is released as a BADA Device) Looks like Developing on it, is connecting a mouse in to your PC and move around click click. its so handy and plug and play. u get all the source code right in front of you and u start playing with it.

Blackberry, has a eclipse java plugin , java app development tools and has its very own widget SDK. it has a web plug in too. stay in touch with its developer zone. Its Java, so there is some Mocking APIs are available in their developer zones.

Another Smartphone killer LG, has not yet released anything open source, even though I know about them, I am not allowed to expose it in public. Sony Ericsson and motorola is also having a lot of tools in automation and I am unable to disclose them at this point in time ( I have worked in all these companies by myself - LG, Motorola, SEMC )

all these tools and open source SDK, Unit test frameworks will provide the developer or tester to design the tests, make sure their application is running all the time, takes stress, stable, give the user what they want.

Lets take an example of an touch screen application, which has buttons on it. but Is the buttons on the application is touchable ? yes, an event can be passed to do so. but what if the SDK did not support to specific events, that can touch the UI and pass the navigation ?

In the past, there is many Failure attempts to perform UI Automation. Capturing the Screen and record them as a file, and compare them with the screens again and passing test cases.

For these, Writing and reviewing code, cost of the tools, maintaining them, resource requirement are huge. It eats more then engaging a real cute tester and performing the test manually. Thats the very reason, its unsuccessful. more over, a human can do more of a automation system, especially it comes to a hand held, user device. the automation system only think what we are saying to it. it never innovates. but it has its very own advantages.

Example, sending 500 SMS, a human can become mad of doing it. I had done it once :(( , but an Automation system can do it without taking 5 coffee breaks.

So manual testing, has its own advantages, and Automation testing has its own advantages. In my Point of View, Manual testing and Automation should be 50 : 50 in a mobile testing environment. both of these directions meet with one centralized point and the defects should be distributed to the development from testing from one source. thats how it should take up great !

But Cost effectiveness is the key to mobile phone automation and also, We should be able to 'do it quickly' and use it for production. the time line for making the script should be same as testing it manually. how we do it ?

Now all the devices want us to touch it to perform some action, no wonder, thats the way we want it, but performing automation on touch screen phone, how easy, how cheep, how much fun it is, with open source tools like sikuli.

Its a UI Recording tool, having an excellent algorithm.




In their site, There is a user created video, a girl from taiwan, installed VLC client in the Android Phone, VLC Server in the emulator running in the PC, and she use this sikuli tool to do automate her test cases, and its quiet amazing.

I am not suggesting only one tool, here, but I would like to show how simply a mobile phone automation can be done ! I know few people against automation of mobile applications, they got some valid points, please comment below. but I am sure automation is a very thing, which we should use to receive great productivity in the mobile application / platform making / OEM organizations !