Giant 2 statue

2 essential virtualization techniques for mobile testing

I recently read that there are more mobile devices in the world than toothbrushes. This makes me worry about our human priorities, but let’s set that aside for a moment. From a business perspective, such a huge number of devices means there’s a huge opportunity for teams that are able to deliver valuable, robust apps into the hands of millions of users—in other words, there’s gold out there, maybe some of it going into dental fillings.

But there are problems in how most organizations treat their mobile app-dev objectives. Too many teams are focused on the wrong goals when it comes to delivering a successful mobile app to the market.

Mobile Testing: Build your mobile QA skills

Technical goals should not be confused with outcomes

These goals often include: 1) fast time to market (you beat your competition with a new idea); 2) reduced production incidents (your app works as expected, or better, and your customers keep coming back for new downloads and upgrades, which leads to viral explosion in your user base); 3) reduced costs (for both you and your customers).

To be clear, these goals are worthy, but they are not what technical teams should be focused on. That's because these goals are the outcomes of effective processes and best practices that should underlie your mobile app development capability. You should focus instead on smarter, technical practices that will put those outcomes in reach.

Two virtualization practices to adopt

How do you achieve those positive outcomes? When you implement 1) network virtualization, and 2) service virtualization, you’ll be much more likely to meet your end users' expectations, and your customers will more successfully consume your products and services.

1. Network virtualization

Network virtualization gives you the ability to optimize your applications to function and perform for end users across even the worst network conditions. By enabling the core capabilities of capture, replay, and optimize, network virtualization becomes fully automated. This capability is integrated into many core products for which you already have an investment; by leveraging this capability, you can get more value from that investment.

Your mobile end users exist anywhere, for random periods of time, and they are in continuous movement. Yet they still expect to have a great end-user experience from your products and services. This is why your virtualization technique needs to capture and emulate four common network conditions:

Bandwidth: As you probably know, bandwidth determines “throughput,” which means how many messages can be transferred during some measure of time. The unit of time, in turn, determines your definition of latency.

Latency: First, the audio has to be encoded, then it has to travel between two endpoints. What actually gets received on either end of the user communication may be technically sound, but the quality of the communication will suffer if users feel as if they are “talking over” each other. That can happen with 100ms of latency, and if the latency rises  to 200 to 300ms, speakers will not be able to have a normal conversation.

Jitter: As packets are received, delays are inevitable. Jitter is expressed as the variance in those delay intervals. High jitter causes choppy voice or basic signal interruptions. When packets are received with excessive variation, they can be dropped altogether (i.e., packet loss).

Packet loss: With UDP (user datagram protocol) telephony, packet loss means audio degradation or total audio loss. This condition happens during network congestion. The percentage of packets dropped in an exchange, compared to the number of packets sent, is the “packet loss” number.

Netbeez offers a great set of test criteria for acceptable levels of latency at packet loss based on VoIP communications.

2. Service virtualization

Service virtualization enables you to simulate services that may not yet be available, are too costly, or are simply not yet developed. Complex and composite applications are highly reliant on hundreds of services that your organization may, or may not, own or host.

If you do not have access to a service or simply believe it is too costly to have in development and testing, can you afford to wait until production for the acid test? That method invariably leads to one or more services being forgotten or not tested, then upon deployment into production, a service fails, causing other components to hang or fail.

Service virtualization helps you accurately recreate your production environment quickly and easily. This allows you to ensure that your systems and applications will work as designed for your end users. As far as mobile performance goes, that means you deliver on the expectations of your end users the first time, more quickly, and with higher confidence.

Keep the measures of success in sight

Virtualization is critical to a mobile app organization’s ability to configure and test against many likely issues that customers will encounter during the course of an application’s lifecycle. If you can use network and service virtualization in your mobile app development process, you are going to be more efficient and cost-effective in your app delivery process.

Which means you will have a better chance at achieving the goals most organizations ascribe to as the measures of success: beating the competition, reducing production incidents, and lowering costs.

Mobile Testing: Build your mobile QA skills

Image credit: Flickr

Topics: Mobile