Category Page

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.

Introduction to iOS TestFlight

TestFlight is an online service used to distribute and test beta iOS applications. Developers can use Test Flight to evade the Apple’s bitter binding procedure for testing new versions of their apps. It provides over-the-air installation, testing, tracking and managing of Beta apps. In simple words, TestFlight acts as a link between the developer, the tester, and the Apple Developer Center.

How is it useful?

  • Distribution of the app over-the- air to Testers
  • Tracking and managing testing using TestFlight’s dashboard
  • Receiving feedback from testers to improve the app
  • To obtain reports about the device models, OS version used while testing the App
  • Automatically records any crashes the testers encounter and sends it to the Developer

This tutorial will walk you through integrating TestFlight into your own apps.

What do you need to start?

You have to have your certificates, app ID, and provisioning profiles in place before distributing your apps using Test Flight. Here’s the list of items you need:

  • A Developer ID to login to your developer account.
  • A Certificate for Distribution to export builds and distribute apps
  • An App ID
  • A Device UDID
  • Ad Hoc Provisioning Profile to distribute your app on testers devices
  • Sign your app with a valid ad hoc provisioning profile

These items will help you obtain an .ipa file that can be distributed for testing in iOS devices with UDIDs mentioned in the provisioning profile of the app.

Uploading your app for Beta Testing

Open up your project in Xcode, make sure you have a correct Bundle Identifier and that you’ve chosen the correct Distribution Certificate:

Choose Product\Archive from the top toolbar:

Once Xcode finishes archiving your project, click the shiny blue Submit to App Store… button:

Choose your development team

Hit Submit

Wait for your build to upload. Once done you will receive a “Submission Successful message”

Inviting Testers

pBot

 

The future of app testing in IoT lies in integrating app interaction with external hardware triggers. While devices such as phones, tablets and wearables may already seem ubiquitous, a networked array of entrenched systems and sensors commonly called the Internet of Things, could eventually race past all of them in its worldwide reach and number of applications and services.

Connectivity through the IoT is reliant on many different wireless standards. For example, to do anything at all, an IoT-enabled device might have to interface with Wi-Fi, Bluetooth, amongst others channels. For software makers, these potential issues with connectivity and infrastructure will inevitably shape the design of their applications.

Speaking of wireless connectivity technologies, NFC applications can now be tested with pCloudy’s new testing solution- pBot. Before explaining pBot, let’s talk about what Near Field Communication is all about.

NFC is a set of short-range wireless connectivity technologies that are perfect for transmitting small amounts of data with minimal setup time and power consumption. NFC applications include contactless transactions, data exchange and simplified setup of more complex technologies. NFC-enabled devices typically support three operating modes which are Reader/Writer, Peer to Peer and Card Emulation. This fuels contactless payments, exchange of business cards or digital pictures.

As the number of available NFC-enabled mobile phones and tablets increases, the market will see a growth in applications such as mobile payments, ticketing, smart posters, as well as access control, data sharing and additional services.

 

 

pCloudy’s pBot has made NFC testing flawless with its advanced functionalities. For instance, NFC tagged visiting card. The card data i.e., the contact information is being read by an app on mobile device. Here, pCloudy mobile app interface integrates robotic actions which triggers the robot to perform NFC action.
Smart Payment Terminal Testing with pCloudy pBot 

With pBot, smart payments are now made realistic through testing payment terminal for EMV certification. For instance, when a credit card swipe device needs to be tested with real credit cards, the pCloudy mobile app interface integrates robotic actions which triggers the robot to action on payment terminal.

Thus, app testing with pCloudy’s pBot is now made futuristic with distinctive robotic functions. App testing should include IoT specific test strategies, support SDLC under context, and have access to on-demand test teams with requisite specializations. Success depends on the ability to influence a dedicated infrastructure, cloud capabilities and a wide array of test tools.

As enterprises leverage smart systems that ‘sense’ the environment and execute programmed actions, IoT driven testing is crucial to strengthen IT initiatives with security, intelligence and flexibility.

 

Trends of 2016

 
2015 saw a great revolution in the mobile app testing industry with many new breakthroughs being achieved. The year witnessed an emphasis on modern mobile applications being compatible with various devices. However, modern mobile apps also need to deliver personalized and flawless user experience. This year there will be a huge advancement in the mobile application testing space with latest versions of mobile operating systems and rapid technological transformations. We list the top seven mobile app testing trends for this year.

 

Rise of cloud based App certification platforms

Mobile Device Clouds have become an integral part of Mobile App Dev cycle for many organizations. These services help developers and testers by providing access to a wide range of smartphones and tablets. This trends will pick up further this year with many new players entering this space. These services are becoming available at a very affordable price for customers.

We see a new trend where these device cloud platforms will transition to full fledged certification platforms.  Customers can get their Apps tested on multiple devices on parameters like behavior, performance, security etc. in completely automated way. All this using single click.

 

Agile and continuous delivery

Mobile Apps are becoming backbone of business for many organizations. In fact, trend of App only businesses are increasing rapidly. In such situations traditional models of development are a complete misfit. Delivery cycles are shorter and you can’t wait long to fix a customer feedback.

Agile Dev cycles, continuous delivery and deployments are becoming key to success of any Mobile App strategy. We see an increase in this trend this year as well.

Role of Test Automation

Continuing on earlier point, Agile Dev cycles, continuous delivery and deployments are the new necessities for success of Mobile Apps.

The only way to succeed with above approach is to automate as much as possible. We see a rise in trend where organizations are effectively defining their tests pyramids. As the pyramids suggests maximum automation should happen at Unit tests level followed by API level tests. Scope of monkey and UI tests are driven by stability of App UI.

Pyramid

 

Growth of Open Source

We have seen rise of open source tools in last couple of years. Test Automation tools like Selenium and Appium are giving commercials tools a run for their Money. As the maturity and community support for open source tools are increasing, more and more organizations are adopting open source tools.opensourceImproved Focus on Security

The requirement for comprehensive security and penetration testing is set to increase exponentially in 2016. People store sensitive data on their mobile phones like bank details, credit card details and other personal data which can be easily used for carrying out financial thefts. Thus, testers need to focus on renewed security by implementing comprehensive security.

 

Internet of Things

With convergence of cloud and IOT, we see a rise in consumer IOT Applications.

These applications require testing solution that go beyond traditional methodologies and integrate Software validation with smart hardware triggers and touch of Human Experience.

Recently, lot of interesting developments like Google launching project Brillo – which is based on Android – Gives us hope that industry will move towards standardization and this will provide a big boost to development of IOT validation systems.

 

IOT_1

 

 

Compatibility Of Your App

 
We have recently done a series of tests to help you find the compatibility of your app on various Android devices

  It’s not an obvious matter of fact that there would be a particular device that suits your app. Especially, when there are end number of mobile manufacturers are foraying into the Indian market lately. However, careful selection of devices can ensure wide coverage.

‘’Mobile phone manufacturing in the country may reach 500 million units in coming two years’’

 The success of your app depends on the compatibility of your app on various devices and platforms. Before you launch your App in the market, it’s extremely important to ensure that Apps runs on a wide range of devices your customers will possibly be using. Considering the number and variety of devices available in the market, it’s not possible to test the App on all the devices. However, careful selection of devices can ensure wide coverage.

In this context, we have done a through research to help you select the right device for testing. We have analyzed a wide range of data from the public domain, industry reports and our platform generated data to create this report for you.

Below are some key findings,

 

  1. Top Android versions in Indian Market

Jellybean (versions 4.1 to 4.3) is the most widely used Android versions (~50%) among Indian Smartphone users. A close second is kitKat(4.4) (~42%). Looking at the growth trend, soon it would acquire the no. 1 spot.3rd is Ice cream Sandwich (4.0) (~ 4%)

 

Top Android versions in Indian Market

2.Market share of Manufacturers in Indian Market

Market share of Manufacturers in Indian MarketNo one can beat the popularity of Samsung when it comes to Android phones, followed by the Indian manufacturers Micromax because of their low-cost phones. There are other companies like Intex and Lava who competes against each other in the same space. With most of the Chinese giants joining the race, this is going to be interesting

3.Top Android devices in Indian market (usage wise)

 We have been tracking device usage data on our platform since last year. Moreover, based on the feedbacks from various customers, we are able to give you the following data.

Clients Login Creds.xlsx Google Sheets

 

 

Choose the Right Testing Platform

 
As a mobile app maker, how sure are you about the success of your app? A small failure to recognize bugs can cost you thousands of dollars! A small mistake can turn you into a big failure among the users. Now, the question is, how to choose the best platform for testing.

Every mobile application is created differently from the other and the right platform to test can be the most important reason for your app’s success.

Right Testing Platform for Your App

 

Choosing the right platform among the various competing ones require a set of clear evaluation.

  • The nature of the targeted audience for your app. This will define the device matrix you should be targeting for your App Testing. Does that platform provide right device matrix for your testing needs?
  • Cloud based vs in-house setup – Does you testing process allow Apps to be allowed on outside cloud? Does your App have functionalities which work with in a secured network?
  • Type of Testing required for your App – Whether your current testing is manual or automated? Does your App require non-functional Testing?
  • Reliability and Scalability of the platform- Can it scale with your needs? Can the platform integrate with your existing tools and frameworks?
  • Return on Investment

 

Criterion

Description

Device Fragmentation

Can the platform handle you need of devices?

Availability

How critical for you instant availability of devices. Is you testing planned?

Automation

How much of testing is done using Automated scripts? Does the platform support the Automation tool that you are using or planning to use.

Type of Testing

What all functional features that you need to test? Does your App require non-functional Testing?

Extensibility ( integration with in-house frameworks)

Can the platform integrate with your in-house frameworks ( Automation, Test Management , Bug Management etc..)

DevOps

Can the platform support DevOps? Can it integrate with your build systems/dev IDEs or continuous integration systems.

Security

Can you upload your app on an external cloud? Does you App require interaction with your internal server?
Usage level and Cost

What is the usage pattern of your test and developing team and what is your budget?

 

Market Share: Andriod VS iOS

 

pCloudy provides the necessary tools for convenient, effective and immediate mobile app testing. Our device is based on cloud and it enables continuous development and testing on real devices. Our unique debugging feature recognizes potential errors that will significantly reduce costs and time. Our platform provides single-click access to end numbers of real Android and Ios devices.

To experience the best with your app, we have developed three different types of cloud environments for you.

Public Cloud

With pCloudy’s publicly accessed cloud, you can perform tests directly from your browser. You won’t get confused to choose between manual or automated because both are available in our public cloud environment. We allow our users to test on a comprehensive list of real IOS and Android devices. You can also test your app over various network conditions like 2G, 3G, 4G or Wi-Fi. You can either configure your own browser or choose from our wide range of pre-installed browsers.

Private Cloud

This option is similar to our public cloud environment, except it comes with additional benefits of personalized security and dedicated access. Here, we would provide you a host of devices in our enterprise grade data center and you can choose your own device. If you have a geographically distributed team, then they will have secured devices over a browser. We make sure that your data is safe on our platform, as we allow only authorized team members to access.

On-premise cloud

In this option, we provide you with the necessary hardware and give you the freedom to set up your own secure device lab. You will have complete control of your own on-premise lab.

In addition to have exactly the same features of our public cloud, on-premise model contains supplementary benefits. On-premise cloud gives you the freedom of plug-in with your existing set of devices and provides you access to a geographically distributed team. Manual and automated- both the testing techniques can be used and with a simple plug-in, you can access it from any rack. Also, there is no limit for the number of devices which can be linked!

At the end of the day, the developer has to choose the best platform for his app. But choosing the right one saves so much of hassles.

 

Test Your Mobile App on Different Devices

 
The Technology involved in mobile devices is changing rapidly. Mobile phones have literally personalized the choices in our lives, experts forecast that the future devices will be the remote controls of our lives.  The services or functions are run by apps in specified platforms. And each platform has its own set of parameters to run an app. Mobile phone or device manufacturers are going through a breathtaking pace of change over the years and keeps on innovating new ways of doing things!

 

app

 

Why Apps fail?

 

Why Apps fail?

 

 

 

Why Apps fail?

Above data clearly show that handling Device fragmentation is one of the biggest challenges for App developers. Android has more fragmentation issue compared to iOS. Because the number of mobile vendors, is comparatively higher. However, even iOS faces certain amount of fragmentation issue. As there are different software versions and devices. And different devices run different iOS versions.

 

                            iOS versions                                           iOS versions

Mobile browsers can be challenging too! There are end numbers of browsers like Safari, Opera, Goggle Chrome and Dolphin. And each one of them has different versions for different platforms!

 

“So, what’s the right choice? Buying every device available in the market?”

Not necessarily, right device matrix is the key to success.

You can choose one of the two approaches to arrive at your device matrix

Device diversity Approach

  • Decide the device matrix based on key parameters like OS versions, screen size/resolution, manufacturer/device family (Android), operator, CPU, and input method
  • Objective is to maximize the variety of devices

Market segment + Device popularity approach

  •  Choose devices with the highest market share
  •  Objective is to maximize market coverage

Once you have the right device matrix, Device Cloud is the best option to get quick access to your device matrix.

 

 

 

As a tester, you must consider the ever increasing number of physical devices. The most important implementations should be automation, quality assurance, security and device compatibility. Also, ensure that the software scripts cover the core functionality of the application, so that it can run across all the platforms.

 

Mobile App Testing Tips for IOS 9.x

 

iOS 9 and later provide users with the ability to enter power-saving modes.

 

As per Apple IOS 9.0 update ( source : https://developer.apple.com/library/ios/documentation/Performance/Conceptual/EnergyGuide-iOS/LowPowerMode.html)

 

“Users who wish to prolong their iPhone’s battery life can enable Low Power Mode under Settings > Battery.

Low Power Mode

 

Once enabled, Low Power Mode changes the battery indicator in the top right corner to yellow, reminding users that their device is running in a more efficient state.

 

Low Power Mode

 

In Low Power Mode, iOS conserves battery life by enacting certain energy-saving measures. For example, the system may:

 

  • Reduce CPU and GPU performance
  • Pause discretionary and background activities, including networking
  • Reduce screen brightness
  • Reduce the timeout for auto-locking the device
  • Disable Mail fetch
  • Disable motion effects
  • Disable animated wallpapers

 

The mode automatically disables when the battery level rises to a sufficient level again.

 

Impact on Apps

 

Your app should take additional steps to help the system save energy when Low Power Mode is active. For example, your app could reduce the use of animations, lower frame rates, stop location updates, disable syncs and backups, and so on.

 

What if your App is resource intensive, and user is trying to use the App when iPhone is in the low power mode? You App might crash. Regardless of the scenario, You need to make sure your app works and the best way to do that is to conduct mobile app testing on real devices. You need to put your App through rigorous testing on low power scenario on real devices.

pCloudy – On Boarding Document

 

Thank you very much for opting pCloudy.

We appreciate your business and welcome you to our long list of satisfied and much valued customers. Our success comes from the continuous faith in the excellence of our products and services, something we are committed to and would never sacrifice.

 

Our customer service, especially in the after sales phase, guarantees the satisfaction of our clients. In line with this strategy, we ask you to share with us your feedback at any time, be it positive or negative. There is always room for improvement, so if we can serve you better in anyway, please do inform us.

 

Introduction

 

This document is created to serve as a guide while you explore the pCloudy platform. It will help you understand how to use, to get quick help and whom to contact while starting off with pCloudy. Though this is not a complete help document, it will act as a quick reference to begin using the platform.

 

About pCloudy

 

pCloudy is a mobile application testing platform which will help you to test your apps on hundreds of real devices. You can remotely access real devices and carry out Manual and Automation Testing.

 

Quick Start

 

Registration

 

The platform has a secure login process to protect the apps you test. In order to use the platform you must setup your login credentials first.

 

Where do I do this?

 

Simply, enter your details at https://device.pcloudy.com/signup, after a short verification you will be ready to sign-in.

 

In case of any issues, drop an email to support@pcloudy.com

 

Sign-in

 

Once you’ve signed up, you can access the platform with the help of your registered Email ID and Password.

 

In case of any issues, drop an email to support@pcloudy.com

 

Note: If your workstation has touch screen feature, enable TouchScreenBrowserSettings

 

Where do we go from here?

 

Once you login, you will be exposed to an array of devices and platform features. You might get overwhelmed and lost, but don’t worry, we have you covered.

 

A typical pCloudy user will follow these steps for testing mobile apps using the platform.

 

Divided into five parts –

 

1. How to select right device from the platform?
2. How to manage apps on the platform?
3. How to start testing your apps on the selected devices?
4. How to run automation scripts on cloud-based devices?
5. Additional Features

 

1. How to select right device from the platform?

 

To select the right device on the cloud the platform provides various filters. These filters will help you to select devices based on the OS versions, OEMs, Screen Size, Network, or Device Location.

 

Mobile Device Testing

 

There are two modes to access the devices on the cloud –

 

1. Instant Access – This provides immediate access to the available devices at that moment. Just hit the ‘Connect’ button on any device displayed in the Instant Access page and you will be ready to use the device.

 

2. Book your Device – In some cases you might want to reserve a device for the future. You can book a device in advance to keep yourself prepared for testing. With careful planning, with the help of ‘Book your Device’ mode you can make sure the devices are available when you need them and save time.

 

To learn more, refer to these links:

 

Managing your credits

 

To use the devices you need to have enough credits in your account:

  • To view the remaining credits in your account refer to this link
  • To buy more credits, click this link

 

How to manage apps on the platform?

 

The platform provides secure limited disk space to store the apps on the platform. This space can be used to store app installation files (apk or ipa) or test data (image files, zip, etc).

 

Refer these links to know how to upload your app files to the platform:

 

Manual Testing of Mobile Apps

 

The dashboard provides you with quick and easy access to use the different features to test your mobile apps.

 

Device Information

 

1. Device Screen: You can use the device same as how you use a device physically. You can use swipe actions, zoom-in, zoom-out and various gestures to control the device.

2. Main Panel: This panel provides options to view device info, install/uninstall apps, change device settings, tools to debug apps and run automation, and more.

3. Quick Action Bar: Frequently used controls like taking Screenshots, changing device orientation, sending text to device, and more

4. Logs and Performance: Real time device logs and app performance are displayed

 

Features

Here’s a list of some important features to test your apps –

 

1. Functional Tests

You can install/uninstall apps on the devices, you can use various gestures on cloud based devices just like how you do testing on physical device, you can mock GPS location, take screenshots, and much more. Here are some links that will help you:

 

 

2. Performance Profiling

 

Performance profiling of Android Apps – You can monitor the CPU usage, memory usage, battery consumption, frame render count of the app in real-time while testing an app.

Performance on iOS Device – You can monitor the CPU usage & memory usage of the device in real-time during testing.

 

3. Debugging mobile apps

You can capture bug and crash information in the form of logs, screenshots, videos, and stack trace information while testing your apps on devices.

 

 

4. Test Mobile Web Apps

You can test your web apps or website on various browsers on various devices.

 

 

5. Network Virtualization Tool

The app you tested in your lab environment will not work the same way when you use it in an elevator, or in a basement, or while you are travelling on a highway. The Network Virtualization Tool will help you to emulate different network environments and test your apps.

 

 

6. Device Tunnel

You can connect and use a device with ADB just like the way you connect it physically with USB/Wireless ADB. This is used to control a device using ADB commands and debug apps.

 

 

7. Reports

 

The reports section will contain the complete details of all your testing sessions. It will hold the screenshots, logs, videos and the performance details of the testing.

 

 

8. Automation

 

You can run your automation scripts on multiple devices in parallel. The pCloudy platform supports several automation tools. Here are some links to help you –

 

 

Other than the reports generated from the automation tools, you can view additional testing reports stored on the platform as well – Automation Testing Reports. This will contain the videos, logs, and performance graphs of the devices on which Automation execution was run.

 

9. Integration with Continuous Integration tool – Jenkins

 

You can use CI tools like Jenkins in integration with the pCloudy platform. This integration will leverage your testing practices to a whole new level. You can deliver quality mobile apps continuously by automating the process of build integration using pCloudy plugin for Jenkins.

 

Team Admin

 

To effectively manage the devices, users, apps, or credits on the platform you can use Team Admin.
Refer to article – Team Admin

 

Contact

 

Find detailed pCloudy knowledge base articles from support@pcloudy.com
You can reach out to us – support@pcloudy.com or info@pcloudy.com