Debugging and logs with Android OS (Device/Emulator)

Hi,

We all know that when developing a mobile application (In this case, for Android) we need to have runtime live data throughout the testing life-cycle.

We want to understand how the processes are handled, if something goes wrong, to get live logs and output to share with the developers, and add to defect reports etc.

In the Android SDK and Emulator we have as of today (Android SDK R18) few tools which can ease our testing activities and provide live data:

– Android Emulator itself allows to easily plug-in several Emulators to simulate real device skins (Motorola Razr, Samsung Galaxy Tab e.g. and many more).

In the Emulator you can use the most common debugging utility called Logcat (simply run adb logcat with its various command line options and write the logs to a file in which you can perform searches etc.).

In addition to the Logcat tool, there is a free utility which comes with the SDK called DDM (Dalvik Debug Monitor). This free utility which you can launch as a batch file from the tools directory, allows the users to perform much more that just view logs. With the DDM user, can simulate incoming call/SMS, lost of network, roaming , test location-based applications etc. –> Highly recommended!

So far, we have the Android SDK (Which can be plugged into Eclipse IDE from which users can get more capabilities) with its Emulators, ADB Logcat, DDM – But this is mainly useful for desktop simulators.

What if we want to get the logs from a running device?

Same as above – A user which connects his device via ADB to the PC, can still run ADB Logact into a file, and then perform adb pull to the saved log, and bring it from the device to his PC for further analysis. On top of this there are also good and useful android apps in the market which provides similar capabilities – a strong and useful App which i cam across is the “Logger Collector” which allows to collect ru time logs from the device, and then share it either by mail, BT or other methods.

To end this short blog, a tip –> Google also provides a web site developer/s to easily test their web using a free tool and get detailed report with guidelines and check lists –> Go to this link for more info:http://www.howtogomo.com/en-gb/d/

For more info – feel free to contact me

Regards,

Eran Kinsbruner

Complexities in automating tests on mobile platforms

Hi,

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

Regards,

Eran Kinsbruner

Mobile testing in the cloud

Hi,

In this short blog, I will try to give a small taste of the mobile testing cloud leading solutions these days (I am sure that there are many more, but these are the one i ran across and can point you to).

When talking about mobile testing, we need to understand that there are plenty of complexities which mobile testing manager need to deal with.

Few examples:

– Plenty of mobile handsets (Each few weeks/months new phones show up) – support of existing applications/solutions/services on new handsets is a challenge (e.g.: A working and deployed app which runs ok on Samsung Galaxy SII – need to be tested on the newly launched Samsung Galaxy S III)

– Testing different locales on different operators, gaining high network’s coverage

– porting activities testing (during mature development life cycle)

– expensive logistics in acquiring many devices which will serve R&D teams

The above are just few examples of difficulties around mobile testing which the cloud based solutions provide a solution for.

Testing in the cloud saves money for the companies and prevent them for acquiring expensive handsets for rather short testing cycles. The cloud provides coverage in various operators across the world, and quick TTM.

Few of the leading tools which are out there are listed below:

 PerfectoMobile – “Mobile Cloud Interactive” –> A cloud based solution which provides access to hundreds of real handsets which are spread across the world with real SIM inside connected to real operators (Vodafone, Verizon etc.)

The solution is based on a device rack (DDM) which can hold up to 4 different/similar devices which are connected to a server, and against each of their screen there is a video camera pointed and provide liver streaming (through web browser) of whatever is being performed/displayed on the handset. The flow of each handset is captured and saved as a video file (in FLV format) allowing the testers/developers an easy way to reproduce and report bugs etc.

On top of the above cloud service which has a pricing model (pay by the hour of use) the company also provide an automation robust solution (which i will report in future blog/s) which plugs in to commonly used automation solutions (such as HP QTP). For more info on the Mobile Cloud solution – http://www.perfectomobile.com/portal/cms/services/web_access_to_real_handsets.html

KeyNote Device anywhere – “Test Center Enterprise Interactive” – In a similar model as stated above in PerfectoMobile, we have the older solution in the market which provides as well device remote access in a cloud based solution across the world (different pricing model). This solution requires user registration and a windows based utility download from which one can access the mobile cloud, run tests on “ordered” handsets, and get detailed reports.

The above as mentioned earlier, provides increased coverage on more devices, networks and locales and increases the level of confidence in the quality of the vendors deliverables.

http://www.keynotedeviceanywhere.com/mobile-application-enterprise-testing.html

– SeeTest by Experitest – Company which provides unique test automation solution which plugs into various IDE’s (Jsystem, QTP and more), and also in a unique model provides a local mobile cloud in the company home network. A company who owns its devices and wants to run existing and/or new test plans on them in one single run from any PC in the company – he can get remote connectivity to each of the handsets connected via USB (or USB Hub) to any of the machines in the network and launch the test scripts (Great solution when trying to build continuous integration solution inside a company R&D)

More details: http://experitest.com/cloud/

– Last – We have SOASTA CloudTest solution – This is a load/performance testing solution within a cloud based product.

The company holds access to thousands of PC”s which can be configured to access simultaneously to any web url/server and introduce load. See a recent press release which introduces the cooperation of SOASTA and HP around load testing:

“Cloud-based test service delivers automated performance testing across 47 locations with access to over 350,000 servers and 17 different APIs” ….. http://www.soasta.com/company/news/press-releases/soasta-brings-cloudtest-to-hp-cloud-services/

 The mobile test automation which is also provided by the company allows a tester a unthethered agent to be installed on his target device from which he can test against the SOASTA IDE his application (through WiFi/3G connection).

For more information on these solutions: http://www.soasta.com/?gclid=CL72odjo_a8CFQpd3wodNFfMUw

Hope you find these high level information useful.

For further details contact me at Eran.Kinsbrunner@gmail.com

Regards,

Eran Kinsbruner

Mobile Testing fundamentals – Introduction

Hi,

This is the first blog in a long series of blogs which i intend on writing in the near future.

As we all know, the world is mobilizing its business in a constant way, and we are now facing an IT world in which we have more Smartphones and Tablets than regular PC’s. This trend will only increase in the near future.

Image

The penetration of mobile into our lives, mandates a change of perspective in the way we develop, test and deploy our apps.

We do not know (Yet) about a new SWDLC (Software development life cycle) for mobile, such as waterfall or Agile, but we do know that a long life cycle of more than 6 months is not acceptable and cannot be effective since this world is dynamic and things we test on today, might not be as relevant as we think in 6-9 months from the time we finished testing.

So, what do we need to care about before rushing into a new mobile project:

– Top leading platforms today and in the next 6-12 months (As of now we are looking into iOS, Android, and soon Windows Phone 7, while RIM is in a constant slow down so it is hard to tell what will be the value of our investment in this platform)

– Top leading mobiles which represent a family in the platform it belongs to (e.g. Samsung Glaxy SII/III, Motorola Razr, HTC One series can be great representatives for the Android platform)

– Mobile development discipline (Native, Hybrid ?)

– Mobile testing tools (Simulators, test automation , cloud services and more)

– Market needs, are there similar apps available?

– Target consumers (Might be relevant for an app which is location based, to offer other services etc.)

Once we are a bit more clear on the above fundamental aspects, i think we can start moving forward (within reasonable time boundaries as i noted above).

Since this is a preliminary post, i will leave this post as is.

In the future blogs, you should expect more details on existing testing tools, services, simulators, complexities in mobile testign and ways to overcome them, guidelines and many more

Thanks,

Eran Kinsbruner

About me:

I have more than 10 years of experience in the mobile land, in which i managed porting activities, testing, pre-certification, automation activities and many other mobile related activities in all various platforms such as J2ME, Symbian, iOS, Android, RIM, Windows Phone.

I worked for 7 years at Sun Microsystems in the J2ME line of business products (Mainly around testing activities), than i moved to NeuStar NGM in which i ran the Client testing and porting for mobile (~3 years). Currently i am the Mobile testing CTO at TACT/Matrix which is one of the largest IT company in Israel.

I often present in conferences around mobile testing, methodologies, tools and other topics related to mobile.

Eran.kinsbrunner@gmail.com

Regards,

Eran Kinsbruner