Essential Guide

Enterprise architects' guide to success with mobile apps for business

A comprehensive collection of articles, videos and more, hand-picked by our editors

Mobile testing tutorial: Testers transition from Web to mobile apps

Test expert Matt Heusser offers a practical mobile testing tutorial for developers who are no longer beginners in the mobile space.

As enterprises move from Web applications to mobile apps, software testers are building mobile software testing skills on top of their existing Web application skills. Unfortunately, testing mobile applications is a lot different than testing Web apps. There are plenty of articles that help beginners take the first steps in mobile testing. This article is intended to give practical advice and actionable steps to testers that are already...

working with mobile applications.

Multimedia bug reports help gather and present data

More information about mobile testing

This is the first part in a three-part series on mobile testing.

In the second part, you’ll find tips for testing iOS apps.

In the third part, Heusser covers Android app testing.

Most bug reports are plain text; they take time to create, time to understand, and can involve information loss. Using screen captures, or even creating movies to demonstrate buggy behavior, can be faster and clearer than trying to explain it in words. I record movies with a microphone on so I can explain what I am doing; this makes reproducing the problem a snap for the programmers.

With Web-based mobile applications, errors can frequently be recreated on a laptop in Chrome or Safari, which makes it even easier to produce those quick bug clips. Alternatively, a second device can record a movie as bugs are reproduced on the first device.

If an external decision maker -- a product manager of some type -- is the one to decide what to fix, watching a movie that includes a voiceover explaining what's happening will help that person make better decisions about how to treat the bug.

Use developer tools

It is easy enough to simply not support private browsing, but get that in writing.

Each of the major desktop browsers have developers' tools that allow developers -- and testers -- to view network traffic, JavaScript, local storage, and even analyze website performance. It turns out these things are available on mobile devices, too, with a little extra work. The developer tools are a little different for the different major mobile platforms.

I've written step-by-step directions for Android developer tools and other Android testing tools, as well as separate instructions for Safari Web Inspector and other iOS debugging tools. Check those out for specifics on how to run through these steps on one platform or the other.

Focus on networking issues

When programmers shift from a desktop world to mobile, they often make assumptions, including that the Internet connection will always be working or accessible. Networking issues on mobile devices span a gamut, from unwittingly leaving coverage areas, to purposefully disabling network connections with airplane mode. These are cases we have to test for.

iPhone settings

The classic way to test for changes in signal is to ride on a bus, take a walk, or go into an elevator -- that sort of thing; all of that is very time-intensive. Signal loss could also be simulated by switching to airplane mode in the mobile device settings. This is easier, but has some limitations.

Switching to airplane mode can cause different behavior than losing and gaining an external connection because the operating system knows it should stop getting messages, and the cutover is so fast. Airplane mode testing might not be valid, but then again, it might be.

I suggest trying both and checking for differences in behavior. If the behavior is the same, the at-the-desk shortcut of airplane mode might be appropriate. Be wary, though, of only testing in airplane mode or only testing once. As applications change over time, look for new user actions or functionalities that require long page loads, or AJAX-like requirements that might happen in the background.

Don't rely on airplane mode alone, and certainly don't just "poke" the application one time in airplane mode and call it done. Look for scenarios that require a page load, or, better yet, JavaScript that loads data behind the scenes in the existing page.

Try throttling bandwidth

Testing should also be done under conditions ranging from full to zero connectivity. There are two ways to do this, either by using developer tools to simulate networking issues, or by creating a virtual wireless access point and reproducing adverse conditions with a tool like IPFW. Apple iOS developers will likely choose the former, while Android developers are likely to choose the latter.

Don't forget about private browsing

Some power users do not want their browsing habits stored, so they turn on private browsing, which is similar to "incognito mode." If the application tries to read and write to local storage (to hold data if the wireless connection is lost, for example), then the reads and writes may fail in mysterious ways for users with private browsing on. I recommend a two-pronged attack: Talk to the technical staff about local data storage, but also spend ten minutes using the application with private browsing on.

It is easy enough to simply not support private browsing, but get that in writing. Also, be prepared for that written-in-stone decree to change; private browsing might be used by a surprisingly high number of users. If support calls start coming in with strange errors that can't be reproduced, ask if users have private browsing on.

This was first published in March 2014

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

Essential Guide

Enterprise architects' guide to success with mobile apps for business
Related Discussions

Matt Heusser asks:

Do you use multimedia bug reports to report problems?

3  Responses So Far

Join the Discussion

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchSOA

TheServerSide

SearchCloudApplications

SearchAWS

SearchBusinessAnalytics

SearchFinancialApplications

SearchHealthIT

Close