the essentials of mobile app testing and monitoring

21
MobilePundits www.mobilepundits.com

Upload: mobilepundits

Post on 07-Jul-2015

177 views

Category:

Technology


2 download

DESCRIPTION

Mobile Technology is transforming the way people use their cell phones. Although demand is highest for consumer apps, enterprise applications are evolving too, allowing businesses to work more productively In this document we look at how the testing of mobile applications helps to achieve quality. Here we explore a typical way that an app is developed, look at the testing stages involved, answer some of the frequent questions concerning testing, and provide a definition of the common testing terms.

TRANSCRIPT

Page 1: The Essentials of Mobile App Testing and Monitoring

MobilePundits

www.mobilepundits.com

Page 2: The Essentials of Mobile App Testing and Monitoring

Introduction: You’ve developed a Mobile App...Now What?

By the time you finish reading this, the mobile app landscape will have changed. Along with the

development, testing mobile apps is quiet more challenging than testing based on desktop or web

applications.

Mobile app testing is an approach towards solving the emerging technological implications of

Mobile Apps. iOS and Android have been the most successful operating systems so far. It is

quite challenging to test and verify each and every application before releasing it for public use.

In today’s business environment, testing seems to be a cost-effective solution to avoid any

compromise on quality.

QA Challenges in Mobile Application Testing

Variation in Device

Mobile app testing becomes difficult because of many operating systems and myriad devices.

Compatibility is a major issue here because a mobile application can be deployed across multiple

devices. They differ in:

• Mobile operating systems like iOS, Android, BlackBerry, Windows, Symbian, etc.

• Different versions of these operating systems such as iOS 4.x, 5.x, BB 4.x, 5.x, 6.x, Android

2.0, 2.x, 3.x, 4.x, Windows 7, Windows 8.

Mobile Testing Tool Availability

The tools used for desktop and web-based applications do not work for mobile application.

Hence, a complex scripting technique and new tool development is required for mobile

application testing.

Page 3: The Essentials of Mobile App Testing and Monitoring

Industry Standards

Testing of mobile application must be performed according to certain industry standards so that

the applications can be accepted globally by people using different mobile operating systems.

This will help in making the application popular.

Necessity of Skilled QA specialist in Automation Testing

Every Quality team needs skilled quality assurance specialist not only to evaluate the automation

tools that are present in the market for application testing but also to quickly recognize any bugs

in the user interface as UI is very critical in the mobile world. A well-examined and fully

functional mobile application can be easily be rejected by end users because of bad interface

even though if it is working perfectly.

Page 4: The Essentials of Mobile App Testing and Monitoring

Cloud Computing

This technology offers a seamless web-based environment for mobile on simulators where the

QA team can deploy, automate and test any mobile application. This approach of cloud

computing has really helped in reducing the overall cost of a project under development.

Listed below are some of the most common problems that are faced by the testers in an

environment of cloud computing:

•High-cost

•A Subscription Model

•Lock-in

•The Automation is time-consuming and image based

•Automation cannot be done outside the framework

Mobile Testing Challenges for Native Applications

For many, “mobile application” means a native or a hybrid application. These are some

commonly downloaded software applications from the respective app stores. The unique

experience that they offer to the users improves the capabilities of the operating system and

device for which they are developed. The downloaded is often monitored by the store, with

mechanisms in place to charge consumers.

Page 5: The Essentials of Mobile App Testing and Monitoring

Though native applications offer rich user experience to the users – and plausible money

spinning for the developers. Some complexity is added to the lives of those who test it. Testing is

meant to make sure that the application can be successfully downloaded and executed on the

device. To meet the challenges of the testing procedure, backward compatibility with each older

device you are expected to support must also be checked.

Mobile Testing Challenges for Web Applications

Like any other website on internet, a mobile web app is also viewed by people around the world.

Even when you are targeting people from one particular landscape or a network, it will help you

understand dynamics of the world.

Page 6: The Essentials of Mobile App Testing and Monitoring

Mobile Application Testing Strategy

The Test strategy should make sure that all the quality and performance guidelines are met. A

few pointers in this area:

Selection of the devices

Analyze the market and choose the devices that are widely used. (This decision mostly relies on

the clients. The client or the app builders consider the popularity factor of a certain devices as

well as the marketing needs for the application to decide what handsets to use for testing.)

Emulators

The use of emulators is extremely useful in the initial stages of development, as they allow quick

and efficient checking of the app. Emulator is a system that runs software from one environment

to another environment without changing the software itself. It duplicates the features and work

on real system.

Types of Mobile Emulators

Device Emulator- provided by device manufacturers

Browser Emulator- simulates mobile browser environments.

Operating systems Emulator- Apple provides emulators for iPhones, Microsoft for

Windows phones and Google Android phones

Some free and easy to use mobile device emulators are:

iPhone Tester – All you need to do with this is – enter the URL in search box and you can see

the real time preview of how it appears on an iPhone.

Page 7: The Essentials of Mobile App Testing and Monitoring

Mobile Phone Emulator – Used to test handsets like iPhone, blackberry, HTC, Samsung etc.

MobiReady– With this, not only can we test the web app, we can also check the code.

Responsivepx– It checks the responses of the web pages, appearances and functionality of the

websites.

Page 8: The Essentials of Mobile App Testing and Monitoring

Screenfly– It is a customizable tool and used to test websites under different categories.

Mobile cloud Computing Services

The testing experts can efficiently make use of the environment of mobile cloud computing for

deploying and testing the application. Using this technique, we can keep both the task and the

data on the internet instead of keeping it on an individual device. This is what brings on-demand

access in vogue. Lowering down the complexity of project implementation, organizations take

the advantage of services of cloud computing so as to reduce the development and testing cost

and boost the return on investment of a mobile software application solution.

Page 9: The Essentials of Mobile App Testing and Monitoring

Real Times Devices with Real Networks

It is quite natural that testing can be done against real networks. Real devices can be used at real

locations for performing testing. This is something that the QA team just cannot avoid. Testing

of real devices on real networks should always be an option whenever needed. This thing came

into picture because every application will be used at different locations by end users who might

use it from a remote area with inconsistent network signal strength.

Avoid Manual Work with Automation Tools

Page 10: The Essentials of Mobile App Testing and Monitoring

Automate whenever and wherever possible! Remote and Emulators, real time devices and

solutions which support playback functionality and scripts help in saving and allow execution of

more test cases with higher degree of consistency.

Any testing team must automate the task of mobile software applications so as to avoid any

manual task. This will not only save cost but time as well. There are many tools available in the

market for performing automation tools.

Types of Testing for a Mobile Application

Usability Testing

This is the type of testing that includes visibility of text in the selected language, screen

navigation, verification of online and offline functionality, feedback from interaction with the

system, which means that the download app should be prompt with messages.

Page 11: The Essentials of Mobile App Testing and Monitoring

Compatibility Testing

Compatibility testing means validation of mobile application for myriad devices keeping in mind

all the major operating systems, screen size and resolution as per the demand of users,

proofreading if the integration server changes, editing of the mobile app isolation with other

software apps on the device.

Interface Testing

Following are the things that integration testing covers:

•Screens Resolution

•Buttons

•Text Inputs

•Navigation flow like Facebook, Twitter, Reviews, Bookmarks, etc.

Page 12: The Essentials of Mobile App Testing and Monitoring

Service Testing

Validation of mobile software application not to behave as a server is included in this type of

testing. It even covers checking of a service which can be used offline or takes too long or when

a service goes down and responds back with malformed responses.

Performance Testing

Performance testing is something where you will need to verify the server connection of WIFI

from 2G/3G or vice versa, size of the shared images used by the software code is in accordance

with the desired response time, optimization of code with the CPU cycle, consumption of

battery, memory leaks, certain resources like camera, GPS, etc., freed.

Page 13: The Essentials of Mobile App Testing and Monitoring

Operational Testing

This type of testing checks for the back-up of all the important information in the application,

save and recovery plan if the battery goes down, if the data of mobile app is lost in the case of

up-gradation from respective app store, accessibility of the app when user gets an alarm,

message, call, reminder, etc. and power usage while accessing the application.

Low Level Resource Testing

Overuse of memory and not releasing is something that comes under low level resource testing.

It also checks if temporary files of the applications are not cleaned, local database is growing too

large. Low level testing will also see the garbage generated by the mobile app.

Page 14: The Essentials of Mobile App Testing and Monitoring

Security Testing

Security testing will include the encryption and decryption techniques used for communication

of sensitive data, checking of multi-user support without any interference of the data between

them, and checking of accessibility to files that are saved in the app by any unintended users and

detect areas where tested application does not receive any nasty content.

Testing Recommendation

For the types of testing mentioned it is a good idea to use some combination of real device and

emulator testing, as recommended in the table below:

Page 15: The Essentials of Mobile App Testing and Monitoring

Enterprise applications must meet requirements for maintenance, administration and security.

They “are more complex in functionality and architecture” and therefore it is important to test

enterprise application on performance, security, and synchronization in addition to the standard

functionality testing.

Test Automation Tools & Frameworks Testing mobile applications is traditionally done by manual execution of test cases and visual

verification of the results. However, it is very time consuming. Using automation tools and

testing frameworks yields quantifiable benefits and is recommended.

Automated testing offers fast, repeatable and comprehensive test execution, including overnight

or over weekend test runs. However the investment in tools, test script development and data

collection is required and is and is not amenable to fast changing requirements.

The development platform for mobile application which is a Personal Computer is different from

the target platform which is a handheld device. It is impossible to test the various possible states

a GUI can have. Because of these unlimited testing scenarios mobile GUI testing is more

difficult compared to functional testing of desktop application.“Manual GUI testing is very error

prone and hardly reproducible, and causes very high effort”.

Android Testing Framework The Android testing framework provides powerful tools for testing mobile applications. The

following diagram summarizes the testing framework of Android:

Page 16: The Essentials of Mobile App Testing and Monitoring

The Android SDK (Software Development Kit) consists of tools for developing and testing

android based mobile application. The Android SDK tools are available as Plug-in in Eclipse

with ADT, and “in command-line form for use with other IDES”. The SDK“tools get

information from the project of the application under test and use this information to

automatically create the build files, manifest file, and directory structure for the test package”.

The SDK also provides monkeyRunner, an API testing devices with Python programs, and

UI/Application Exerciser Monkey, a command-line tool for stress-testing UIs by sending

pseudo-random events to a device.

Sikuli

Sikuli Test is a GUI testing framework that enables automation testing tasks.“It allows testers to

write visual scripts to automate tests, to refer to GUI objects by their visual representation

directly, and to provide robustness to changes in spatial arrangements of GUI components”. The

script uses action statements to simulate the interactions and assertion statements to visually

verify the outcomes of the

interactions.

Test scripts under Sikuli Test are written to test traditional desktop GUI applications on

Windows and Mac OSX, as well as mobile applications in an Android emulator and iOs

simulators.

Page 17: The Essentials of Mobile App Testing and Monitoring

JaBUTi/ME: White Box Testing

White box testing is a technique based on the internal structure of a given implementation, from

which the test requirements are derived. In general, “white box testing criteria use a

representation known as Control Flow Graph (CFG) to abstract the structure of the program or of

part of the program, as a procedure or method”.

Server based testing JaBUTi/ME

JaBUTi (Java Bytecode Understanding and Testing Tool) is a complete tool suite for

understanding and testing Java programs and Java-based components. JaBUTi differs “from

other testing tools because it performs the static and analysis directly on Java Bytecode not on

the Java source code”.

Mobile Test: Black Box Testing

Page 18: The Essentials of Mobile App Testing and Monitoring

An automatic black box testing tool for mobile devices introduced in this Chapter is Mobile Test.

With Mobile Test building maintainable and reusable test cases for testing system level and

application level software on various mobile devices is possible. Mobile Test observes the input

and output information of an application. “From the input perspective, a mobile application

receives two kinds of inputs“. The first input is form the user GUI such as keyboard events,

touch events. The second input is environmental context events.

Mobile Test Architecture

Mobile Test architecture

The architecture of Mobile Test subdivides the system environment into layers to reduce the

complexity the system. Each layer provides services to upper layers with the support of lower

layers. In this way, the test control layer can be separated from the characteristics of the

underlying devices.

Page 19: The Essentials of Mobile App Testing and Monitoring

List of available testing tools

The table below gives a list of available testing frameworks with the platforms they can be tested

on.

Available mobile automation testing tools and the platforms they run on

Page 20: The Essentials of Mobile App Testing and Monitoring

Fledge: BlackBerry device simulator that enables mobile application testing on a Personal

Computer. Tests, various connectivity and state changes can be simulated.

MonkeyTalk (formerly known as FoneMonkey): offers the possibilities to save a script, load,

read and modify it. FoneMonkey is designed to support developers and quality control tests.

FoneMonkey automates testing on iOS simulators, Android emulators or real devices.

QTP(QuickTest Professional): is an automated testing tool provided by HP/Mercury

Interactive. QTP uses VB scripting language to build its flows. It provides automated and

regression testing and also generates test scripts that can be executed on local or remote mobile

devices.

CTS (Compatibility test Suit): runs on Personal Computer and manages test execution.

Individual test cases are executed on attached mobile devices or on an emulator.

UISpec: Behavior Driven Development framework for the iPhone that provides a full automated

testing solution that drives the actual iPhone UI. It is modeled after the very popular RSpec for

Ruby.

Hermes: black box automation tool for testing J2ME applications. Hermes supports

application independence, and open interfaces for extensibility.

Eggplant: black box automation tool that runs on Mac OSX and Linux. It can test applications

on a vast range of other platforms because it connects to and controls them using VNC (Virtual

Network Computing).

Robotium: black box automation tool for Android Mobile Application. Robotium is a UI testing

tool. The Framework provides API’s to test various kinds of Widgets/UI present in mobile

applications developed with android SDK.

Page 21: The Essentials of Mobile App Testing and Monitoring

Conclusion

Application development for mobile devices is evolving. The strategies presented in this thesis

discuss the testing of mobile device applications and how important it is to plan a test strategy

that is mobile-specific. Unique challenges like device challenges and software challenges of

mobile devices need to be considered because traditional testing does not cover all characteristic

important for mobile application. The use of automation test tools and test methods should be

conducted for a successful testing result.

The advantage of testing these apps before the deployment in a live environment cannot be

stressed out. An app with bugs and errors will not only hurt the productivity but reputation as

well.

About MobilePundits

MobilePundits partners with global enterprises to drive their innovation-led growth. That's why Deloitte awarded MobilePundits

among the top 100 most innovative companies. As a leading provider of next-generation consulting, technology and outsourcing

solutions, MobilePundits helps clients across the world. Visit www.mobilepundits.com and see how MobilePundits, offers its best

outsource and development services.

For more information, contact [email protected]