The expectation of regular software updates – it's what developers are tasked with, and what users expect and demand. Increased functionality, better performance, and fewer bugs – often in a week or less. Automation of critical processes such as QA can help meet the gargantuan task of constant updates, but it can also send your software into a death spiral of user abandonment unless deployed correctly ...
Will your mobile app work in your customer's moment of need in an instant?
Mobile users only have one or two seconds of patience for an app to display the requested information before leaving the app. This means the complex trip – from app tap, to call to the back-end service, to call to the database and then back to the app – must happen in a moment. As a result, it's imperative that developers ensure that users experience a seamless "mobile moment."
For example last month I missed game 7 of the NBA semi-finals between the Golden State Warriors and the Oklahoma City Thunder. The next day, I wanted to see the game highlights, so I opened up my mobile browser to ESPN.com. It was apparent that I wasn't the only one doing this, as the video replay took longer to load than usual.
So, what happens in that mobile moment? Many communication roundtrips between my smartphone and the ESPN servers just to get me to the ESPN.com homepage. When you consider the latency overhead of a single HTTP request, on 3G it could take up to 3.6 seconds just to start a homepage. On LTE, it takes one second.
Things also get worse when mobile traffic spikes and the back-end is loaded. Golden State's game 7 win was epic, but if you tried to watch the replay in near real-time, ESPN.com was slow because their servers had high user load at that time.
Sluggish service response can increase user abandonment, because mobile users have become accustomed to speed. To stay ahead of these users, DevTest teams must put themselves in the users' shoes while testing mobile apps and websites.
Mobile Testing: Front and Back
Testing for the real user experience needs to include mobile app and back-end services being tested together against real world conditions, such as high user load and network condition changes. The ESPN scenario mentioned above was not a single point of failure; it was a combination of application, network and busy servers.
To truly validate the user experience, organizations need to ensure their apps work well when the audience needs it, even in the busiest of mobile moments. For example, the WatchESPN app outage during the 2014 World Cup is another example of back-end services falling short at a crucial mobile moment. The app crashed for US users during the beginning of the US and Germany match, due to unprecedented traffic related to a perfect storm of two soccer games and live Wimbledon coverage. The server coverage in the US was not prepared to handle abnormally high traffic for a soccer game.
As a result, companies need to test for these "perfect storm" scenarios and have a plan in place for when servers reach capacity. Proper back-end testing will benefit teams in two key ways:
■ Knowing the point when the back-end services become sluggish allows teams to have more servers (or virtual servers) on standby. In addition, plan to re-route network traffic through servers in another country where there is more bandwidth. Either way, it's imperative that a contingency plan is set in place.
■ Being aware of bandwidth limits and utilizing that data to update users with alerts, such as "Due to high demand, our service is down. Try back in 10 minutes." or "Your Wi-Fi network may not have adequate bandwidth for our service. Try switching to an LTE network." While circumstances may cause frustration, it's important to engage with users and provide information updates.
It's just as critical to test the back-end services of an app as the front-end. There are many products on the market that simulate user load on back-end services, while simultaneously seeing how the app performs under real world load conditions. In addition, developers should also run user condition tests (switching network conditions, background apps) on the front-end while using service virtualization tools, to ensure back-end services are just as busy.
As mobile users consume more multimedia and IoT services, testing back-end services for user load spikes will be key for delivering the best mobile moments.
Eran Kinsbruner is Mobile Technical Evangelist for Perfecto Mobile.