Testing Mobile Apps

 

If you are someone using a smartphone to get through most of your day, then I’m sure would you’ve experienced it – You are in an elevator using your smartphone trying to find a restaurant for dinner but the app you are using unexpectedly crashes, or you are in a crowded subway using your smartphone to upload a video to some social media portal but the app you are using takes too long to respond, or you are just waiting for a friend in the basement of a parking lot and in the meanwhile you decide to shop for some new shoes but the e-commerce app you are using does not respond the way it should. Isn’t it frustrating when the apps you are using does not work when you require it the most? In these situations, the first thing you do is simply uninstall it, or in the worst case write a bad review.

Strangely, though most of the apps are functional and performance tested, they are still found to be defective by the users. It could be possible that not all scenarios are covered during testing. So, where is the gap? Deeper investigations have revealed that mobile apps behave differently in different network environments. In the above scenarios particularly, it seems like there is more evidence indicating that these issues are caused due to irregular mobile networks in locations such as the Elevator, or the crowded Subway, or the basement of a parking lot.

 

Why do apps behave differently in different network environments?

The network has a huge impact on the behaviour of your apps. Most of the apps that we use today are functioning by constantly communicating and fetching information from some servers or users that are miles away. The communication that happens is on wireless networks that are unfortunately not always reliable or consistent. Though most MNOs have established wider and better networks, it is practically difficult to achieve absolute seamless connectivity with excellent signal stability using existing wireless technologies. This is because, inherently, wireless networks have several inconsistencies like the lack of bandwidth in some places, the drop in packets caused by handovers and routing while moving, and more interference from other networks. Additionally, the networks through which data is transferred wirelessly also vary based on the technology used like GPRS, UMTS, HSDPA, LTE etc.

 

Why should apps be tested in different network environments?

The unpredictability of wireless networks has a huge impact on the functionality, performance and user-experience of an app. This is why we often see certain functional defects, performance defects, and sometimes crashes only when the app is running on a certain network or in some specific locations. Besides, mobile apps are expected to function on everything from an excellent Wifi connection, to a snail-paced 2.5G connection. Hence mobile apps have to undergo a wide range of tests on different networks with a variety of conditions before they are released to the users.

 

Are you testing your apps on different network conditions?

Traditionally, mobile apps are tested using the best networks in perfect conditions. But in real environments when the apps are being used anything can go wrong – the network bandwidth might not be enough, the latency might be high, data losses might occur, or there might be interference from other networks. App development companies have now realised the impact a network can have on their apps and are slowly filling up the gaps in mobile app testing. They are now focused on ensuring the app’s functional stability and relentless performance despite network inconsistencies. But testing mobile apps on different varieties of networks with a range of uncommon conditions is overwhelming and challenging. Moreover, these apps have to be tested on numerous mobile devices. It’s a tedious but crucial task. Additionally, tools that support such testing are scarce.

 

How can you test your apps in different network environments?

  1. Testing Mobile Apps using live networks – Live networks can be used for testing mobile apps. The apps can be installed on real devices and can be tested on various networks like GPRS, UMTS, LTE, CDMA, etc. But the procedure of using real networks for app testing is slow, cumbersome, and mostly provides inaccurate results. Testers need to travel to different locations or wait for the network conditions to occur for conducting the tests. Furthermore, when the developers try to reproduce the bugs in order to fix it, the exact network conditions are hard to be replicated; eventually, most of the bugs will be closed as “Cannot Reproduce” while the bug still remains.
  2. Simulated networks – Network related tests for mobile apps need not be such a hassle if the testers are given full control of the network being used. Using a simulated lab network, testers can easily test their mobile apps by simply selecting and applying the type of network profile to be used. They can also create and customize different network profiles by simply changing parameters like Uplink Bandwidth, Downlink Bandwidth, Latency, Loss Percentage, Packets Corruption, etc. This setup helps testers to replicate a myriad of network conditions for testing mobile apps.
    On a larger view, when a mobile device cloud like pCloudy is being used you can test your mobile apps on varieties of networks, on hundreds of real mobile devices in parallel, through manual tests or automation runs. It is one platform that takes care of your entire app testing needs by helping app developers to easily test and experience the app functionality and performance on different networks and different mobile devices.

Mobile App Testing Comparison

 
Mobile App Testing Comparison

Apps are the ‘new thing’. We are living in an era, where, you click on your mobile screen for your evening cup of ‘cuppa’. With the advent of technology and internet, mobile phones and services are getting personalized like never before! And to compliance these services, numerous number of apps are appearing every day to suit different platforms. Among the apps, the demand for consumer apps is the highest, but various enterprise applications are also evolving to support various businesses. Due to the ever-growing demand for mobile apps, app makers and developers are shifting their focus towards creating strategies and roadmap before launching their applications. It is easier to launch an app with features and functionality required by a particular service, but it is pretty critical to have a rigorous and a flawless mobile testing plan before the deployment.


70% of Apps

Testing is a crucial step, where developers can ensure the quality of the app they are going to release. No one wants to release an app full of bugs, or which allows a lot of pop-ups. A faulty GUI, or a confusing UX, can be the reasons for the sad demise of your app before it creates its own space in the app market. That’s why mastering the art of mobile app testing has become the primary objective for any developer to sustain in the market.

Mobile App testing throws many new kinds of challenges

  • There are numbers of real devices available in the market and for which developers have to go through large numbers of tests

Device Fragmentation

  • There are frequent changes in mobile apps. It has become difficult to keep pace with the changes.
  • Availability of the right Mobile App Infrastructure, the right device matrix and the right tool set is a very selective process!
  • Simulating or reproducing bugs reported by users are extremely difficult as they are mostly related to a specific device.. Bugs are always progressive in nature. And that’s why the cost of development increases significantly.

40% of bugs

Current Approach

The typical testing approach involves use of simulators or emulators with a combination of internal mobile lab (selected set of devices). These approaches don’t provide full testing coverage. Bugs are found when an app is launched in the market. It leads to overall high cost of quality. Organizations have started to look at Automation to reduce cycle time and increase test coverage. But, without a proper Mobile lab infrastructure, it doesn’t yield good result.

Solution: Future is cloud

Blog site e-testing notes, “Cloud-based testing makes it possible to collaborate more effectively, to test across multiple platforms with less hardware, and to spend less on testing efforts, both long and short term.”

Why is cloud based Mobile App Testing the way to go?

  • Produces better quality apps by testing on the widest possible variety of devices available, while reducing capital budgets.
  • Cloud offers a ready infrastructure for Automation runs, which results an Increase in test coverage.
  • Quickly reproduce bugs reported from the market.
  • It allows easy collaboration between various teams.
  • Boosts the Agile development process by allowing easy integration within a continuous process.
  • It saves cost as the same lab can be accessed by geographically distributed teams.
  • Cloud lets you access devices which have been stopped in the market. For example, there are still many users in India use the old Android versions like 2.3 on phone, like Samsung Galaxy Star Duos.

20% of devices

Conclusion:

Effective use of cloud can shorten cycle times, improve app quality, and reduce capital budgets by bringing order to the chaos of mobile app development and testing.