According to Compuware, 79% of users would only retry an app once or twice if it failed to work the first time. This raises project teams’ concerns about the app quality and calls for thorough mobile app testing. But how to make mobile testing efficient and predictable? To do so, mobile app testing vendors establish a quality mobile testing process that considers the specifics of mobile technology and the app under test. Let’s consider it in detail.
What You Will Learn
An efficient mobile testing process comprises several elements. The most important of them are:
- Integrating testing into the development process.
- Setting up a mobile testing strategy.
- Testing as such.
Integrating testing into development
To be efficient, mobile application testing should be a dynamic and responsive part of the development process. Flexible methodologies, such as Agile, make it possible. In Agile, the development process breaks into iterations (2 – 4 weeks) that result in delivering a functional app. Testing goes in parallel with development.
Setting up a mobile testing strategy
To build a mobile testing strategy that is efficient and scalable, a testing team have to consider the following key issues:
- Test environment:
- Real devices
Each test environment has its pros and cons:
- Show how the app actually works on given devices
- Testing with regard to in-built software and hardware specifics
- Interrupt testing
- Not all the target devices are available at hand
- No need to look for rare devices
- Simulate hardware and software
- Time-consuming adjustment
- No testing of mobile-specific factors (battery consumption, interrupts, etc.)
- Not suitable for all types of testing (e.g. UI testing)
- Unlimited availability of devices
- No need to maintain a device pool
- Not always suitable due to security concerns
Testing teams usually use a combination of test environments (e.g., real devices + emulators or real devices + the cloud). Testing on several real devices (5 – 10) is always required to check real-life peculiarities of the app work.
Manual or automated?
The answer is manual and automated. Repetitive and time-consuming types of testing (regression testing), as well as those that simply can’t be performed manually (performance testing) should be automated. Usually, test automation in mobile testing takes up around 30%.
Structured or exploratory testing?
In Agile, exploratory testing is especially important due to lack of time and fixed requirements. Exploratory testing is used to test the look and feel of an app, as well as complicated use cases. It is not suitable for testing critical functionality or for repetitive testing that are covered by structured testing.
Having devised a testing strategy, the team should look at the types of testing to perform.
Testing as such
Functional and non-functional testing efforts for mobile have their specifics dictated by the nature of mobile technologies (on-the-go availability anytime and anywhere, heavy reliance on network connections and more).
Functional testing specifics
Functional mobile testing checks not only compliance with project requirements but also the following issues:
- Device-specific features. Mobile apps usually interact with a number of in-built device features – camera, sensors, GPS and more. These interactions should be thoroughly tested.
- Network connections. Unfortunately, network connections (2G – 4G and Wi-Fi) aren’t perfect: connection outages, let alone intermittent connection issues, are rather common.
- Interruptions. In real life, all sorts of interruptions (calls, SMS, push notifications from other apps, etc.) to a mobile app are commonplace.
The basic requirement for the specifics above is to check that the app safely closes or goes to background without crashing or losing data.
Non-functional testing specifics
For mobile apps, UI testing is just as important as functional testing. Testing teams closely watch the UI, as this element is the key to top app performance among users. Once the UI changes, test engineers carefully test it to detect possible inconsistencies. They also look at mobile gestures and soft keyboards that have to be tested either manually or automatically.
For mobile apps, a thorough performance testing is critical. Among other things (intermittent connection, heavy load, traffic spikes and more), performance testing should look at the ways the app handles the following data-related situations:
- Data of various volume. The app may work fine with small data items and slow down with large ones.
- Massive data download from server. Test cases/scripts should involve multiple data sets instead of a single data set employed multiple times.
- Data growth. The app should remain stable when in use for a long time, i.e. it should not accumulate unneeded data.
Security testing specifics depend on the nature of the app. It is crucial to make sure if login credentials are correctly encrypted. Sensitive data, such as mobile banking information shouldn’t be stored on mobile devices. Sometimes, mobile apps are built in compliance with industry standards (for example, hospital apps). In this case, standard provisions may call for specific types of security testing, such as assuring role-based access in HIPAA compliant medical apps.
Mobile application testing is not so black as painted. The key point here is to hold on to a structured testing process. To develop a stable mobile testing process to use after each iteration the team should focus on:
- The specifics of the app and types of testing it requires.
- The specific mobile application testing challenges (external factors and device limitations) that will affect the app most.
Keeping those in mind, the QA team will secure the testing process efficiency and, hence, the product’s quality.
Vast device coverage and complex functionality are key features of mobile apps. Mobile app testing services have to ensure them. That’s what we do.