Developing and testing apps for mobile devices is vastly more complicated than for PCs. Part 2 of the mobile special checks the must-have skills and know-how.
Hardware diversity
With PCs, testers have only one central processing unit platform on which to test applications and most hardware components are compatible with those operating systems. Their display formats also are also relatively standard and input devices well-known and familiar.
By contrast, mobile carriers offer a dizzying range of handsets, each with unique configurations that can have unpredictable effects on the performance of applications.
Handset complexity
Handsets are built around a variety of processors, running at various speeds with varying amounts of memory, as well as different size screens operating in different resolutions and orientations. A greater variety of hardware is also likely to features on today’s mobile device: Wi-Fi and Bluetooth network capabilities, cameras, GPS receivers and even an accelerometer, which senses movement of the device.
Software variation
Likewise, the handheld operating system market is more splintered than for PCs and is also changing fast. Palm was the dominant OS for mobile devices five years but has been overtaken by iPhone, Android, and RIM.
Testers must maintain knowledge of the tools required for an ever-changing cast of operating systems. Variety continues throughout the mobile software stack as devices utilise different runtime environments ranging from J2ME to the .NET Compact Framework or BREW.
Custom build scripts
Testers must build and execute scripts that check the interaction among the various applications on the handset. They also have to check interaction between the application and components such as the camera, microphone, charger, Bluetooth and Wi-Fi.
Network compatibility
Carriers worldwide are upgrading their networks from 2G to 3G and even to 4G with LTE (Long Term Evolution) networks. Different carriers use different methods to tunnel their own traffic into the TCP IP protocol used by the Web, which impacts how applications receive and transmit data. They use different web proxies to determine which sites their users can access, and how they will be displayed.
All of these differences can affect the stability, performance or security of an application, and must be tested to assure the end-user experience.
Compliance
Finally, in order to be certified, applications may have to be tested for compliance with industry or carrier-specific standards. Each of these added test requirements increases the complexity, cost and time needed to ensure proper performance.
With thanks to Pradeep G, head of mobile testing, Cognizant.
Search CWJobs for mobile jobs and 1000’s of IT vacancies.