When’s the last time you accidentally put milk in the cabinet? Or cereal in the fridge? Have you had to hunt around for your car keys recently, only to find them in a place you already thought you’d looked?
We all miss a thing or two from time to time. When you’re doing so much at once, it’s easy to overlook the simple things. It’s understandable.
However, when it comes to your business, an episode of forgetfulness can be very detrimental. Take performance testing, for example. If you don’t approach your performance testing and load testing processes cautiously and diligently, executing the same batch of tests every single time, with the ultimate goal of ensuring your users have the best experience possible no matter what’s happening with the infrastructure, you run the risk of opening a vulnerability that could impact your entire application – and your business.
This is especially true with mobile apps, which are no longer considered a secondary means of accessing the Internet. In fact, in many organizations, the knowledge of how to test and monitor mobile applications is lagging behind actual usage. You don’t want to overlook anything when it comes to mobile performance testing. So in order to save you from the pain of missing those little things, we’ve put together a guide highlighting eight testing blind spots. Use it as a checklist – you may even want to print it out and keep it on your fridge.
1. Mobile Network Latency and Packet Loss
When you test mobile, it’s common practice to use a mobile emulation tool, which will mimic the network characteristics that mobile devices actually experience. For example, any decent test infrastructure will limit bandwidth to what may be found on a 3G network, instead of what is available in the data center doing the testing.
However, mobile networks have different characteristics than standard wired or Wi-Fi desktop networks that go beyond bandwidth constraints. They don’t carry information as reliably. Mobile networks are significantly more prone to problems related to latency and even packet loss. That means your mobile app won’t always get the data it needs, when it’s expected.
So when you are conducting your mobile testing, be sure to account for these commonly ignored attributes. Real devices experience a certain amount of network burps. Be sure your test systems simulate them realistically.
2. Parallel Connections
Repeat after me: A web app is not the same thing as a mobile app. You can’t just change the user agent header on a test script and say it’s now testing mobile. Sadly, that’s what many test scripts do.
A great example of this is the number of parallel connections allowed for an app to communicate back to the server. Mobile networks, devices and applications all enforce varying policies with respect to how many parallel connections are allowed at a given time. Failing to account for this could have a big impact on test results: both the load on your server environment and the user experience.
3. Testing in Real Environments
You know how bugs can cause sites to crash or payments to fail? This leads to unsatisfied customers and lost revenue for your websites. Sometimes these bugs only reveal themselves in the real world, under actual operation. That’s why many modern QA organizations operate a healthy Testing in Production process – to make sure that real bugs in the real world are found and squashed.
Naturally, the same applies for mobile. Don’t just test your mobile experience through mobile emulators in staged environments. You need to test mobile apps in real-world production environments too. You’ll learn a tremendous amount about how users interact with your product, and that will make your structured testing even more robust. This may require more tools and greater human power than you originally had in mind. But, it’s critically important.
4. Automation for Load Testing
Many people start their mobile QA efforts by testing manually on a handful of devices. They don’t rely on automation in the mobile world the way they do in the desktop world, because it’s a little more complicated and elaborate. Furthermore, with so many devices on the market, mobile testing can seem unwieldy and overwhelming.
However, that’s exactly why automation is so important. Manual testing is simply not scalable in mobile. Seek out and implement solutions for mobile test automation. Look for ways to incorporate real devices and emulation into your test strategies. Work performance testing into your functional test automation early, so you can deploy those tests across the many OS combinations you need to address. This is one boat you don’t want to miss!
5. User Pathways and Real-Time Behavior
KPIs (Key Performance Indicators) are a critical part of operating a real-world web applications. You look at your metrics every day to see how things are performing, and you make changes when you need to. However, if you become too glued on just those key metrics – like the number of downloads or the session count – you may forget to monitor other important behaviors of the system. For example, it’s easy to overlook the actual user-paths within the app.
You have to understand the experience of mobile users to provide them with the services they want. How they flow through the app will give you tremendous insight into their experience along the way and where problems may arise. By monitoring these pathways you can then create synthetic users that follow those same paths, constantly evaluating performance of key flows and reporting issues back to you. That way you’ll be able to identify poor experiences before your users do.
6. Background Activity
One of the most important aspects of the mobile user experience is battery life – an attribute that developers comfortable in building for the web may never even consider. However, a poor-performing app that drains a user’s battery will quickly find itself removed. Developers must find ways to reduce background activity, especially for apps that spend a lot of energy fetching notifications and downloading data.
To start, consider how users interact with applications over the course of weeks and months – the app’s shelf life. If a user has not interacted with an app for a month or two, don’t try to engage the user as frequently. Check for notifications on a daily basis instead of a real-time basis, and consider turning off data refreshes until the user opens the app again. Background activity has a negative effect on the user interface, and it is a huge energy sucker.
Application updates are a much bigger deal for mobile apps (especially native ones) as compared to web apps. Many users have their devices configured to occur automatically update their apps – meaning these users won’t know when they have downloaded an update. But there are many people who have configured their updates to occur manually, so you have one chance to get this right. If there is a performance or usage problem that you didn’t spot, you can’t fix it until they have installed another update.
That’s completely different than a web app, where you can just roll back the application and fix it with a snap. With the mobile app, on the other hand, the user needs to perform the update themselves. You can try to push a hotfix release to your users as quickly as possible, but you have no control over when they install the update.
Keep this example in mind: Tinder (the popular dating app) recently released an update that left users in a loop while trying to authenticate their accounts. The app was rendered useless. It ended up taking Tinder a week to update the app, asking users to delete and reinstall in the meantime. In all, they lost a week’s worth of activity on the site due to this error, whereas with a web app they could’ve recovered immediately. Plus, for a week, their users couldn’t get dates. So everyone suffered.
8. Continuous Learning
As performance testing becomes more important, you’ll find that you are doing a lot more testing. That means you’ll be constantly discovering new things, and fixing new problems. You’ll also make some mistakes – a normal and healthy part of the testing process.
Don’t sweep mistakes under the rug. And don’t just fix the symptom and move on. You’ve got a prime opportunity to learn from your errors and improve your process. Be interactive with your team and make a positive change. You’ll find that your productivity will grow exponentially.
Lead The Way With Clear Vision
Keep your vision at 20/20 status with these mobile testing tips. Even if you don’t have a mobile app just yet, you still need a testing strategy to keep the growing number of users happy. Check out how to get a jumpstart on your strategy in our recent blog post.
Hopefully this post helps you remember some commonly forgotten aspects of your mobile performance testing strategy… Now, if only I can remember where I put my car keys!