Welcome!

Mobile IoT Authors: Yeshim Deniz, Zakia Bouachraoui, Liz McMillan, Elizabeth White, Pat Romanski

Related Topics: @DevOpsSummit, Mobile IoT

@DevOpsSummit: Blog Post

Blind Spots: The Top 8 Things You Overlook When Testing Mobile | @DevOpSummit #APM #DevOps

When you test mobile, it's common practice to use a mobile emulation tool

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.

7. Updates
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!

Photo Credit: crimsong19

More Stories By Tim Hinds

Tim Hinds is the Product Marketing Manager for NeoLoad at Neotys. He has a background in Agile software development, Scrum, Kanban, Continuous Integration, Continuous Delivery, and Continuous Testing practices.

Previously, Tim was Product Marketing Manager at AccuRev, a company acquired by Micro Focus, where he worked with software configuration management, issue tracking, Agile project management, continuous integration, workflow automation, and distributed version control systems.

IoT & Smart Cities Stories
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
Nicolas Fierro is CEO of MIMIR Blockchain Solutions. He is a programmer, technologist, and operations dev who has worked with Ethereum and blockchain since 2014. His knowledge in blockchain dates to when he performed dev ops services to the Ethereum Foundation as one the privileged few developers to work with the original core team in Switzerland.
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
Whenever a new technology hits the high points of hype, everyone starts talking about it like it will solve all their business problems. Blockchain is one of those technologies. According to Gartner's latest report on the hype cycle of emerging technologies, blockchain has just passed the peak of their hype cycle curve. If you read the news articles about it, one would think it has taken over the technology world. No disruptive technology is without its challenges and potential impediments t...
If a machine can invent, does this mean the end of the patent system as we know it? The patent system, both in the US and Europe, allows companies to protect their inventions and helps foster innovation. However, Artificial Intelligence (AI) could be set to disrupt the patent system as we know it. This talk will examine how AI may change the patent landscape in the years to come. Furthermore, ways in which companies can best protect their AI related inventions will be examined from both a US and...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (November 12-13, 2018, New York City) today announced the outline and schedule of the track. "The track has been designed in experience/degree order," said Schmarzo. "So, that folks who attend the entire track can leave the conference with some of the skills necessary to get their work done when they get back to their offices. It actually ties back to some work that I'm doing at the University of San...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...