Troubleshooting Mobile Applications
Now-a-days the mobile application development is advancing towards higher levels of sophistication. Attractive UI and animations supporting cool functionality are still the major factors in making the application popular. However, there is no denying that other factors like availability in different network coverages as well as device resource utilization and memory leaks as well as overall performance contribute a lot in converting the initial buzz to sustainable popularity for an application.
A lot of diagnostic information is available for mobile devices now, which helps the developer assess the application on these non functional criteria. Our team at Harbinger has expertise in various troubleshooting aspects of the mobile platforms and tools used therein. Here is a birds’ eye view of those efforts.
|Unit Testing||iPhone||OCUnit can be used for tracking functionality issues as well as Unit Test case automation|
|Android||JUNIT can be used for Unit Test case automation.Commands for monkey testing are supported hence various Test cases which include Black Box (Device) Testing can be done on emulator without actual need of device.|
|WinMo||Slilverlight Unit Test Framework for Windows Phone 7 is the tool of choice|
|BlackBerry||b-unittesting and J2MEUnit tools can be used for unit testing. There is no built-in support for unit testing BlackBerry Apps.|
|Bada||The bada IDE provides a tool for unit testing. Unit tests wizards as well as API for test case development can be used for the testing. Test results are in the form of XML files.|
|UI testing and Automation||iPhone||Instruments tool can be used for UI testing and automation|
|Android||UI/Application Exerciser Monkey can be used for UI testing|
|WinMo||Silverlight UI Automation Testing using Prism 4.0 can be the tool of choice.|
|Bada||UI sequencer can be used for the UI automation of the application|
|Memory Leaks||iPhone||Static analyzer will show memory leaks in the application while building it.
Leaks Instrument is useful to find memory leaks while running the application.
|Android||Android supports DDMS tool which can be utilized for tracking memory utilization by various threads, and memory released during garbage collection, profiling application etc.|
|WinMo||Application Verifier tool can detect and pinpoint memory leaks, handle leaks, and leaks in graphics device interface (GDI) objects. The tool can also detect some forms of heap corruption. The profiling tools can also help detect memory related performance issues.|
|BlackBerry||The BlackBerry JDE provides two tools to help find memory leaks – Memory Statistics tool and Objects tool|
|Bada||Memory usage checker tool monitors application memory usage, which will help in analyzing memory leaks|
|Code Coverage / Profiling||iPhone||“Instruments” can be used for code coverage and profiling|
|Android||Android supports DDMS tool which can be utilized for code profiling|
|WinMo||Ants performance profiler, CLR Memory profiler as well as profiling tools in Visual Studio Visual Studio can be used for profiling.|
|BlackBerry||The Profiler tool, included in the Blackberry JDE, can be used to optimize application code.|
|Bada||Bada Testing Tool also contains a code coverage tool.|
|Network details, overall performance||iPhone||“Charles” tool can be used to simulate various network availability scenarios. Using this tool, we can find out performance of the application.|
|Android||ADB tool provided by Android supports lots of debugging features. It runs on adb shell and calls (Linux) system specific commands to debug the application, trace memory logs, retrieve time consumptions and radio informations, stack etc.|
|WinMo||Microsoft.Phone.NetNetworkInformation namespace is used to check the availability of various network connection types like MobileBroadbandCdma, MobileBroadbandGsm etc.EQATEC Profiler can be used to monitor Windows Phone 7 application performance|
|Bada||We can monitor resource usage statistics using the Resource Monitor. This will help in assessing overall performance of the application.|
|Logging and Debugging||iPhone||Logging and Debugging can be done in Xcode|
|Android||Android supports api’s for Event Logs, Logging Method calls, and tracing data in application|
|WinMo||Visual studio provides logging and debugging ability for windows phone 7 applications.|
|BlackBerry||EventLogger API can be used to log various events in the application.|
In addition to these, there are various troubleshooting abilities provided by SDKs and third party tools for all mobile platforms. The above table covers tools and\or API for most of the critical non-functional testing aspects mobile application developers face today