The document covers different types of applications and the challenges that are faced by QA and testing team . It also outlines some of the solutions or the risk mitigator for the applications
2. Contents
1.
INTRODUCTION ..................................................................................................................................... 2
2.
TYPE OF OS ............................................................................................................................................ 3
3.
TYPES OF APPLICATIONS ....................................................................................................................... 4
4.
TYPES OF TESTING FOR MOBILE APPLICATIONS ................................................................................... 5
5.
QA CHALLENGES IN MOBILE APPLICATION TESTING ............................................................................ 6
6.
MOBILE APPLICATION TESTING RISK MITIGATORS ............................................................................... 8
Mobile Application Testing
3. 1. INTRODUCTION
Mobile devices are evolving into increasingly sophisticated general purpose computers and
this has led to the development of a variety of platforms and operating systems in the
mobile space.The number and variety of consumer and enterprise mobile applications has
grown exponentially over the last few years. Organizations need to ensure that every
application meets a high quality bar in order to prevent revenue loss, lost productivity and
damage to brand reputation.
Mobile applications need to be tested on a variety of software platforms and versions, on
diverse hardware and under different network connectivity conditions. Moreover, the rapid
pace of mobile OS updates, the frequent introduction of new devices and the customer
expectation of quick upgrades require additional test cycles. Over a time every big
organization has entered into this business and thus, we have a variety of Mobile Operating
Systems evolving in the market.
Operating system
Owned By
Android
Google Inc.
iOS
Apple Inc.
Blackberry
Blackberry
Windows Mobile
Microsoft
Mobile Application Testing
4. 2. TYPE OF OS
Android by Google Inc.
o Android is an Open Source, Linux-derived platform backed by Google.
IPhone OS from Apple Inc.
o IPhone OS has four abstraction layers: the Core OS layer, the Core Services
layer, the Media layer, and the Cocoa Touch layer. Presently XCode is the
development environment and the applications are written in Objective C (a
variant of language C).
Windows Mobile from Microsoft
o
Windows Mobile, also known as Windows Phone, is the mobile phone version
of Microsoft's operating system. Because of this, it is easily compatible with
many Windows programs such as Microsoft Office, making it a popular choice
for businesspeople.
Blackberry from RIM(Research In Motion)
o The BlackBerry OS is tailor-made for business, with functionality taking a seat
over personality or appearance. Its main focus is on messaging, email and
other communication features. Media players and other entrainment-based
applications are less-common for the device.
Mobile Application Testing
5. 3. TYPES OF APPLICATIONS
A Smartphone is the one that has a vast range of applications (built-in) and supports plenty
more from the external apps markets. These apps allow the user to do almost everything
that previously required a Desktop PC or a laptop.
Native App
Web App
Hybrid App
Native App
Native mobile applications are the ones that run directly from your handheld. These are
mobile OS/platform based applications, which can be downloaded from the relevant mobile
store and thereafter installed on the device. Native mobile apps provide fast performance
and a high degree of reliability. They also have access to a phone’s various devices, such as
its camera and address book. However, this type of app is expensive to develop because it
is tied to one type of operating system, forcing the company that creates the app to make
duplicate versions that work on other platforms
Web App
Web mobile applications are software programs that run directly from the web browser on
mobile phones and tablets. These web-based mobile apps do not get installed on your
handheld mobile device and are run on web-hosted servers. These web-based mobile
applications can be developed on a single platform as they are not limited by the operating
systems of your device. Web apps are not real apps; they are really websites that, in many
ways, look and feel like native applications. They are run by a browser and typically written
in HTML5
Hybrid App
Hybrid Apps are like native apps, run on the device, and are written with web technologies
(HTML5, CSS and JavaScript). Hybrid apps run inside a native container, and leverage the
device’s browser engine (but not the browser) to render the HTML and process the
JavaScript locally. Often, companies build hybrid apps as wrappers for an existing web
page; in that way, they hope to get a presence in the app store, without spending
significant effort for developing a different app. Hybrid apps are also popular because they
allow cross-platform development: that is, the same HTML code components can be reused
on different mobile operating systems, reducing significantly the development costs.
Mobile Application Testing
6. 4. TYPES OF TESTING FOR MOBILE APPLICATIONS
Usability testing
This include text visibility in the selected language, navigation between screens, verification
of functionality online/offline, feedback from interaction with the system i.e. downloaded
application should prompt with message.
Compatibility Testing
This entails validating the application for different mobile devices, OS versions, screen sizes
and resolution as per the requirement, checking if integration server changes, checking for
the app isolation with other apps on the device.
Interface Testing
With diverse features and gestures of touch supported in smartphones, response time to
user’s action should be a considerable point. Thus testing each screen, buttons, text inputs,
navigation flows such as bookmarks, Facebook is very crucial.
Services Testing
This includes checking the behavior of services. It includes checking if a service takes too
long or is used offline, and also checking the behavior of the service when the server goes
down.
Performance Testing
This includes checking the server connection changes from Wi-Fi to 2G/3g or vice versa.
Also, application response time, memory leaks, resources like GPRS, CAMERA etc.
Security Testing
With increased usage of internet on the mobile devices, all data transfer requires security.
This includes encryption/decryption techniques used for sensitive data communication,
checks for multi used support, and checks for access to saved files stored in application.
Orientation Testing
This checks the behavior of application in different orientation. A smartphone supports both
landscape and portrait orientation. The change in orientationresults in change of the UI of
the application. Height, width, breadth are factors that change with orientation. The
application should respond to both.
Localization Testing
With increase in globalization, survival becomes more challenging. The apps that support
global languages are more likely to sustain the market changes and trends.
Mobile Application Testing
7. 5. QA CHALLENGES IN MOBILE APPLICATION
TESTING
The aim of application testing is to validate the quality and performance of the features
offered. There are, however, some challenges faced which makes mobile testing a greater
challenge vis-à-vis desktop and web-based application testing. Factors are:
Mobile Testing strategy for Native Application
While native applications can provide a rich experience to the user, they also add some
complexity to the lives of those tasked with testing them.
Testing needs to ascertain that the app can be successfully downloaded to the device,
executed on the device and interact with the supporting back content infrastructure. When
updates are made its important to makesure that the application can be pushed out to and
accepted by the end user. There’s a misperception that successful testing of app
functionality on one device provides assurance across all others of the same operating
system.
To meet the challenge of testing for native mobile applications, it’s essential to test on the
physical devices supported by the application. Steps to ensure backward compatibility with
each older generation of the device is also expected. Consistency in executing the test plan
is also a problem when limited to manual testing.
Mobile testing strategy for Web Application
While testing mobile Web applications several challenges encountered are presented by the
nature of the global, mobile Web. With Each challenge, different technology options are
explored to manage issues and mitigate risk. Coming up with the right solutions requires an
assessment of the advantages and disadvantages inherent in each of the testing options
available and determining the technology that best suits the requirements. These mobile
testing challenges include devices, network, and scripting.
Various Mobile Platforms and devices
With the proliferation of devices such as iPhones, iPads, and a wide variety of Android
devices, mobile application providers have to market to a variety of mobile platforms to
reach their audience. However, because no industry-wide standards for operating systems
or device hardware have been established, this is not a simple task.Mobile testing is
challenging due to various compatibility issue as a mobile application can be deployed
across devices which have different
Operating Systems
Versions of Operating System
Manufacturers
Keypad types such as virtual or hard keypad
Mobile Application Testing
8. Creating separate tests for each device and platform can quickly become costly and time
intensive
Data Carrier Providers
There are a lot of local data providers in market offering the best of their services in terms
of data connectivity, bandwidth, and speed but still in any case the speed has to be fast.
Whether it is a web or native application, both need speed and a good connectivity when
the data download or upload is little huge but if the data is very low like in KBs then a low
speed might work
Mobile Testing Tool Availability for Automation
The tool used for desktop or web based testing do not work for mobile testing. When
everyday a tester has to run a same set of Suites or cases on an application again and again
then the need for automation arises. For mobile application testing, this has been a big
question for testers as even today there are not many good tools available in market
thatcan be used across platforms and for native as well as web application. Android and iOS
have their own tools, which come bundled with their SDKs like UI Automation and Monkey
Runner but then creating and maintaining two different tools is not recommendable.
Skilled QA for Automation
Quality resource to automate the testing is a key point to be considered. With limited
automation tools available in market, the need for experienced resources is rising.
Automation team can assess the tools available in market for testing.
Change in Orientation
With smartphones capturing a large part of the market, along came the big screen with
touch options. This feature brought a whole new interface. The bigger screen supported all
views like left portrait, right portrait, left landscape and right landscape. Application must
support both landscape and portrait view. The appearance of application should be
supported
Battery Life
Mobile devices have a variable battery life based on the usage; various checks for
application behavior when the device is shut down automatically must be performed. Since
batteries found in mobiles are much smaller than in laptops, so battery consumption is an
important factor to measure the Performance of the application.
Dependency on External Resources
The internet connectivity is one prime factor that affects the performance of an application.
Many applications depend on external resources like network connectivity. A major point to
be considered with the connectivity is the application’s behavior to the bandwidth
availability for connectivity. A check for such dependencies ought to be performed.
Mobile Application Testing
9. 6. MOBILE APPLICATION TESTING RISK
MITIGATORS
With so many aspects to keep in mind while testing, it becomes difficult to find a single
effective solution. Following factors can be focused on to minimize the requirements of
testing
Emulators
All application can be tested on emulators without investing in mobile handsets. They are
available free and can also be used for stress and performance testing. Various scenarios
like bypassing the network, using live environments like modem can be tested on the
emulators. It is a cost effective solution.
Emulated devicesare relatively easier to manage. You can switch device types by simply
loading a new device profile, and instantly you have a new device that presents itself to
your mobile Web application in the same way that the real device would. And because the
emulators run on more powerful PCs and servers and were designed with testing in mind,
they are typically fully instrumented to capture detailed diagnostics about the protocols that
go back and forth between client and server at the various levels of the stack.When you
encounter an application fault, you will have the information to isolate and thus correct the
problem. Emulated devices are thus cost effective, because a single platform with frequent
updates of device profiles can be used to test every device on the market both today and
tomorrow.
However, the very nature of emulators and simulators means testing is occurring in an
environment far removed from the real world, with a series of actions performed by a
mouse and keyboard, not fingers on a touch screen.
Mobile Application Testing
10. Mobile Cloud Computing solutions
Mobile cloud computing environments can be used for deploying and testing a mobile
application. In this new architecture, data processing and data storage happen outside of
mobile devicesi.e. the task and data are kept on internet rather than on individual devices
and providing on-demand access.
Real time Devices with Real Network
With emulator availability to test the application, it is to be kept in mind that testing on a
real device is always a different experience. Whenever required, a real time device with a
real network should be available. This is unavoidable as mobile devices will be used by end
users for running the application.
Automation tools to avoid Manual work
Automating whatever possible is a key solution. Real device solutions that provide script and
playback functionality can allow execution of more test cases with higher degree of
consistency.This is a time saving option available for testing. Various tools are available in
market for mobile application testing
Mobile Application Testing
12. 7. Conclusion
The various challenges that are involved in testing a mobile application can be extenuated by adopting
any combination of solutions provided here. Also, it is not a matter of choosing one tool or technique;
there are simply too many compromises that must be made. Most likely it is seen that a combination of
testing tools and techniques is required to meet quality requirements.
It is purely requirement based, which technique may turn out to be the most effective one. There may
be situations when a proven technique fails.
About the Author
Shaireen Dhingra
Business Technology Analyst
3 years of experience in Functional Testing
Experience on Mobile Application Development in Android and Windows OS 7
Mobile Application Testing