Introduction
Most general software testing principals apply equally well to mobile solutions, although the number of tools available for mobile testing is much smaller, and there are a lot of extra potential problems your users can encounter that you have to test for.Many mobile solutions involve a significant hardware element in addition to the PDA, such as scanners, mobile telephony, GPS and position based devices, telemetry, etc. These extra hardware elements place additional demands on the tester, particularly in terms of isolating a bug to hardware or software.Mobile applications are often intended to be used by people with no technical or IT background, such as meter readers, milkmen, insurance sales people, on devices that have small screens, and either no keyboards or awkward keyboards. Good usability testing, carried out in conjunction with key users, in their own environment, is essential. I have seen a number of hand held projects fail for the reason that the end-user could not come to terms with the technology, even though the application was robust and met the functional spec. Many hand-held operating systems come in even more flavors than their desk top counterparts. I can think of seven flavors of Windows CE alone. Add to this that many enterprise PDA manufactures OEM the operating system, and update it regularly, you start to see the problems testing. Remember also that we don't have our faithful automation tools for regression testing here.
Let's start with some Mobile Testing Basics.
Mobile Testing Basics
Mobile Device Testing is the process to assure the quality of mobile devices, like mobile phone, PDA etc. The testing will be conducted on both hardware and software.
And from the view of different procedures, the testing comprises R&D Testing, Factory Testing and Certificate Testing.
R&D Testing
R&D test is the main test phase for mobile device, and it happens during the developing phase of the mobile devices. It contains hardware testing, software testing, and mechanical testing.
Factory Testing
Factory Testing is a kind of sanity check on mobile devices. It's conducted automatically to verify that there are no defects brought by the manufacturing or assembling.
Certificate Testing
Certificate Testing is the check before a mobile device goes to market. Many institutes or governments require mobile devices to conform it's specifications and protocols to make sure the mobile device will not harm users' health and have the compatibility with devices from other manufactures. Once the mobile device passes the checking, a certificate will be issued to it.
Unique Challenges in Testing
Unlike the PC based environment, the mobile environment is constituted by a plethora of devices with diverse hardware and software configurations and communication intricacies.
This diversity in mobile computing environments presents unique challenges in application development, quality assurance and deployment, requiring unique testing strategies.
Mobile Buisness Applications can be classified into stand-alone applications and enterprise applications. On the other hand, Enterprise applications are built to perform resource intensive transactions that are typical of corporate computing environments. Enterprise applications also interface with external systems through Wireless Application Protocol (WAP) or Hyper Text Transfer Protocol (HTTP). The unique challenges in testing mobile applications arising from diversity of the device environment, hardware and networking considerations and Rapid Application Development (RAD) methodologies are explained below:
Diversity of the Device Environment
The realm of mobile computing is composed of various types of mobile devices and underlying software (hundreds of device types, over 40 mobile browsers). Some of the unique challenges involved in mobile testing as a result of this condition are:
Rendering of images and positioning of positioning of elements on screen may be unsuitable in some devices due to the difference in display sizes across mobile devices and models.
Exhaustive testing of user interfaces is necessary to ensure compatibility of the application.
Mobile devices have different application runtimes- For example, Binary Runtime Environment for Wireless (BREW), Java, embedded visual basic runtime are some of the runtimes commonly available in mobile devices. Applications should be tested exhaustively for the variations specific to runtime.
Hardware Configuration & Network related challenges
Mobile environment offers lesser memory and processing power for computing when compared with the traditional PC environment. Unlike the network landscape of PC environment, the network landscape of a mobile device may have gateways (access points between wireless internet and the cable internet). Some of the drawbacks of diverse hardware configurations and network landscape of mobile devices are:
Limitations in processing speed and memory size of mobile devices lead to variations in performance of applications across different types of devices.
Testing programs should ensure that the applications deliver optimum performance for all desired configurations of hardware.
Some devices communicate through WAP while some others use HTTP to communicate. Applications should be tested for their compatibility with WAP enabled as well as HTTP enabled devices.
The network latency (time taken for data transfer) will be unpredictable when applications communicate over network boundaries, leading to inconsistent data transfer speeds. Testing should measure the performance of applications for various network bandwidths.
Gateways in a wireless network may act as data optimzers that deliver content more suitable for specific devices. This data optimization process of gateways may result in decreased performance for heavy traffic. Testing should determine the network traffic at which the gateway capabilities will impact performance of the mobile application.
Rapid Application Development (RAD)
In order to deliver the benefits of faster time to market, RAD environments are used for mobile application development. Since the time taken for development is reduced by the introduction of RAD tools, builds will be available for testing much earlier. Therefore, RAD methodology imposes an indirect pressure on testing teams to reduce the testing cycle time without compromising on the quality and coverage.
Critical Success Factors
The critical factors that determine the the success of mobile testing program are:
Use of Test Automation
Use of emulators and actual devices
Testing for mobile environment and application complexity
Use of test automation
Testing of mobile applications is traditionally done by manual execution of test cases and visual verification of results. But it is an
effort intensive and time consuming process. Automating the appropriate areas of a testing program can yield quantifiable benefits.
Use of emulators and actual devices
Emulators can be beneficial for testing features of the application that are device independent. However, actual devices should be usedfor validating the results.
Testing for mobile environment and application complexity
Due to diversity in mobile hardware and platforms, testing programs need to incorporate GUI and compatibility tests in addition to the standard functionality tests. Enterprise applications are more complex in both functionality and architecture. Such applications require performance testing, security testing and synchronization testing in addition to the standard functionality testing.
Guidelines for Testing Mobile Applications
-
Understand the network landscape and device landscape before venturing into testing and identifying bottlenecks.
-
Conduct testing in uncontrolled real world test conditions (field based testing) is necessary, especially for a multitier mobile application.
-
Select the right automation test tools for the success of testing program.
Rules of thumb for ideal test tool are:
One tool should support all desired platforms.
Tools should support for various screen types,resolutions and input mechanism such as touchpad and keypad.
The tools should be connected to the external system to carry out end to end testing.
-
Check the end to end functional flow in all possible platforms atleast once.
-
Conduct Performace testing,GUI testing and Compatibility testing using actual devices.Even though these testing can be done using emulators, testing with actual devices is recommended.
Measure performance in realistic conditions of wireless traffice and user load.
Keywords:
mobile testing
mobile testing tutorial
mobile testing tools
mobile testing interview questions
mobile testing jobs
mobile testing ppt
mobile testing wiki
mobile app testing
mobile software testing
mobile automation testing tools
mobile testing tutorial
mobile phone testing tools
mobile application testing
mobile testing interview questions
mobile testing tools tutorial
mobile app testing tools
mobile testing tools free download
mobile testing tutorial pdf
mobile testing interview questions
mobile testing tools
java mobile application testing tutorial
java mobile application testing example
mobile application development tutorial
mobile testing pdf
mobile testing techniques
mobile application testing techniques and tools
software testing techniques
mobile testing methodologies
mobile testing tutorial
mobile testing tools
mobile testing interview questions
mobile testing interview questions and answers pdf
mobile testing tools
mobile testing tutorial
mobile testing interview questions with answers
mobile apps testing interview questions