Anshuman Chatterjee | Posted on | 2 min Read

Explore Full Power of pCloudy

 
pCloudy understands that businesses need their apps to be rolled out faster than before, without bugs, crashes, functionality issues, UI glitches, memory drainage and well, everything wrong with every app you uninstalled on your phone within minutes of using them.

 

We simplify testing. More importantly, this platform will equip, enable and guide you to provide single-click access solutions to the battling issues that can easily drive a developer nuts. This platform allows you to test real Android and IOS devices directly from your browser using real Mobile Devices to click-and-perform Manual and Automated Testing for maximum coverage.

 

Here are the most frequently used App Testing Use Cases you might be interested in.

Manual App Testing

Automated Testing

Responsive Testing of Mobile Web

Next Gen Mobile App Testing

Continuous Integration

Integrate your own Tools

Android App Testing

 

If you are anything like me, you’d agree that the armor of present day mobile phone technology has a few chinks on it. Nothing is worse than applications draining the battery resources of your mobile device faster than you can fill it back up. The sunnier side of course, is that you can create teachable moments for your kids better by hiding their phone chargers and watch the colors drain from their faces.

Studies show that battery life is a top priority for smartphone buyers. In fact, just recently, an IDC survey showed that 56% of Android buyers, 49% of iPhone buyers and 53% of Windows Phone buyers said that battery life was a key reason when they bought their particular device.

It is rare to find mobile app testing tools that assure proper usage of resource by the mobile app as, included in the overall test plan and strategy.

It’s rather a tedious and long process for conventional mobile app testing methods and as such, Let us talk about how resource consumption as an app takes top priority, because nothing stops a user to uninstall their resource draining apps from their phone. Also we’ll talk about how developers and testers efficiently test mobile apps for Android applications.

 

Android App Testing

Figure 1: IDC Survey

 

Why battery testing is important:

 

Thousands of new mobile apps are being launched every day. And these apps have gone beyond just utilities, games and shopping apps, nowadays, apps need to be integrated into self-driving cars, digital assistants, wearable devices etc. Billions of users need to install apps that are not only compatible with their varying devices, but also provide quality experience of the app so that it doesn’t prompt the user to uninstall it and move to an alternate app.

When you get worried about potential battery abuse, its fair economics to identify the markers that can cause increased consumption of energy by the mobile application. Critical are the functionality, usability, performance and security to make sure that the app does what it was meant to do, seamlessly. The growing need for perfect enterprise and consumer apps and the continuous need to upgrade the application to match it with what the consumer exactly wants is a job that creates high pressure for developers and testers alike, who are responsible to delivering them.

We would get deep into the best practices and tactics that should be kept in mind while testing for battery drain in your mobile app in a later blog post. For now, let us look at how developers can test for battery consumption during Android App Testing.

 

How to test battery consumption for mobile apps:

 

So far there hasn’t come a good automation method to test app battery drain. So testing Real Mobile Devices meets many requirements for efficiency in the process. Let us check out a few parameters to test battery drainage due to mobile apps.

 

  • Battery test flow

    This will vary based on the functionalities of the applications. But overall the below approach or points should be considered while testing for battery consumption.

    • Check the status of the battery before the test begins
    • Enable the location services for the application if app supports
    • Start the data sync of the application if app supports
    • Start the streaming service of the application if app supports
    • Check if the application send/receive the data when in the background
    • Check if the application send analytics to its server
    • Observe the battery consumption while doing above supported features by your application.

This will give us an idea as what is the battery consumption by the application.

 

  • Testing as end user

It is very critical to test the environment needs of the app from a real user perspective. Environments like device types, operating system, background popular apps installed and running, network conditions (WiFi, 2G, 3G, 4G, Roaming) as well as diverse set of devices with different battery states, brings DevOps teams as close as they can come to end users.

 

  • Android App Testing across varying devices

Android is guilty of OS fragmentation due to its open approach to OEM vendors. Different devices have varying battery capacity and each loses its battery chemistry over time, negatively impacting performance and battery hours. This is why we must check the battery consumption for the mobile app on variety of mobile devices. The best practice is to use multiple devices from device labs/ device clouds.

 

Different tools available in the market.

 

Android’s built in Battery App

Your Android Mobile Phone has a ubiquitous battery testing resource, as it comes preinstalled on all Android mobile devices. Android’s native battery analyzer, for example, (Settings> Device> Battery) is built into Android’s OS and helps analyze each app and let you know which are the ones draining the most fuel.

 

Commercial Battery Saving Apps

There are a few commercial Android Battery Analyzers which are available for free in the market, like:

 

GSam Battery Monitor can reset testing cycles as you go, which means there is no need for draining and recharging the battery like in android’s native battery app, and monitor app power usage without having to wait to get an information reset.

 

Clean Master on another hand, lets you know through its notification feature as and when an app is causing the phone’s battery/CPU to drain, which gives instant information on any CPU overuse.

Android App testing

 

pCloudy platform for Testing Battery Drain

pCloudy platform allows comprehensive features for Android App Testing. Moreover, Using pCloudy’s platform, one can monitor the battery consumption by the application. additionally, the user can also monitor memory, CPU and data consumption by the application.

The user can do the complete functional app testing on the application by touching all the critical/non-critical paths in the application. The pCloudy platform provides the necessary data for the work flow.

 

Performance Metrics

 

Conclusion

Google has said that this year their focus is on the ‘vitals’ of mobile phones, battery being one of the critical four. It’s always best to use varying angles of attack to test your app’s battery usage. And the only way to do that right now is to cover as many mobile device variants in the market and test against them.

 

To check battery consumption during Android App Testing Click Here.

 

Get 180 Device Testing Minutes Free




App Testing

If recent past has been any indication, then it is a certainty there are growing expectations from Testers and Developers alike, to take quality head on, as a joint feature. More so in the Mobile App Testing projects where changes are required faster than ever.

 

As part of DevOps practices, it’s has become imperative for developers to run as many tests as possible with every code check-in. These tests could be automated functional, API or Unit Tests. Some of the popular tools to used by Developers to create their tests are Espresso, XCTest and Appium.

 

Following are some the Challenges faced by developers:

  • Developers need access of right set of devices across different versions to be able to run their tests.
  • Debugging capability on those devices so that they can fix issues quickly.
  • Access to a specific model of devices to debug production issues.

Try taking a look at a typical developer’s cubicle and you will see a series of mobile devices connected with several long USB cables running into computers. It does get frustrating to see others furiously plugging USB cables in and out of the mobile devices for App Testing on various devices.

 

Many of the organizations are shifting to device cloud to provide their teams access of right Mobile Devices. Device cloud are solving the need of test teams but provide limited debugging capabilities and hence not preferred by Developers.

 

To directly address need of Developers, pCloudy recently introduced DeviceTunnel, which fully allows developers to take complete control of the device in cloud. This unique solution provides access of cloud devices through the Android Studio or Eclipse IDE and the command line tool installed in your computer.

 

It works as if Device is connected directly to your computer through a USB cable. From the point of view of tools like Android Studio or Eclipse, a cloud-based device appears physically attached. In reality, the Device Tunnel communicates with pCloudy’s servers over Internet.

 

App Testing

Access devices directly from your terminal

 

Once a connection is established, the developers can perform the following actions on these devices:

  • Issuing a range of ADB commands for debugging, shell creations, port forwarding, and viewing general information about any cloud-based Android device
  • Copying and pushing files to connected cloud-based devices
  • Installing and uninstalling applications
  • Debugging apps during development or testing by adding breakpoints, inspecting variables, analyzing run-time metrics to optimize your app and more
  • Run their tests on the device directly from their IDE

To know more on how to connect any device on pCloudy using Device Tunnel Click Here.

It is undeniable that developers and testers need quicker access to diverse devices for the brisk evaluation of app and debugging. Device Tunnel enables both sets of engineers to instantly connect to any device hosted on cloud and run faster debug sessions and thereby, maximize the quality of their build cycles.

How Does Facebook Test its Apps?

 
Using REAL mobile devices.

You must be like “Noooo…, really?” with a sarcastic look on your face.

Well, Facebook using real devices for testing is actually not surprising at all. But, what is really surprising is that there are several mobile app development companies who still do NOT use real devices for testing. Isn’t it enough to test mobile applications on simulators or emulators? Definitely No! If it were, then Facebook would not have invested on its expansive state-of-the-art Mobile Device Lab in Prineville, OR.

Facebook’s journey to the data centre started off with their first setup – The Sled model. The Sled model had drawbacks like inconsistent Wi-Fi connectivity which led them to build the second version named – The Gondola. The Gondola had a lot of issues with tangled USB Cables so they built – The Slatwall. The Slatwall took up an entire room, and we were able to deploy 240 devices, but to accommodate 2,000 phones they need to scale to nine of these rooms, this wouldn’t work. So they decided to move the mobile device lab into a data centre in Oregon.

Currently, the lab in Oregon hosts 60 custom-built racks, each of which holds 32 devices. Four Linux-based OCP Leopard servers are used to test Android apps, while eight Mac Minis are used for iOS apps. Each OCP Leopard server is connected to eight Android devices, and each Mac Mini is connected to four iPhones. Almost 2,000 devices can be run simultaneously for testing new iOS and Android versions of Facebook, Instagram, Messenger and Whatsapp. Each rack also has its own Wi-Fi signal and an EMI enclosure to keep the Wi-Fi local to its rack, according to a post by Facebook developer Antoine Reversat. This not just ensures that Facebook apps functions properly on new and old devices, but also in various network conditions.
 

Why does Facebook require a Mobile Device Lab?

Facebook has a growing 1.6 billion users worldwide. There are tens of thousands of different mobile devices in the market, and Facebook wants its apps to run seamlessly on all of them. Taking into account the variation in hardware, mobile operating system, aspect ratios, and network condition of these mobile devices is an increasingly complex operation.

Additionally, the developers at Facebook make thousands of code changes every week on each mobile platform. This means they also need to be aware of the performance implications of a code change on both high-end and typical devices, as well as on a variety of operating systems. “Given the code intricacies of the Facebook app, we could inadvertently introduce regressions that take up more data, memory or battery usage”, writes Reversat in a blog post. It is crucial to ensure new versions of Facebook’s apps don’t crash or run into performance problems when engineers make updates.

The Rack based Mobile Device Lab is a system built to maintain and improve the development speed while minimising the number of regressions in dimensions of performance, such as speed, data usage, battery consumption, and memory footprint. “In practice, performance issues can be detected in either a lab environment or the real world. Both environments have pros and cons. In the lab, it is difficult to build a controlled environment to reasonably mimic the real world, so catching most perf issues and predicting perf wins before they make it out into the wild is harder. Data that’s gathered in the real world is truer than data gathered in the lab, but the signals can be very noisy. This can make it more difficult to fix a problem or more difficult to figure out the root cause of an issue. It is also less desirable because it requires data collection from user devices. We have worked hard on building tools for lab environments with a belief that such a system can catch most issues, if not all of them, and provide a significant benefit.” writes Zheng Mi, an Engineering Manager at Facebook

The lab is also integrated with configuration management tool named “Chef”, developed by Facebook to deal with the management of hundreds of thousands of servers is used to monitor and maintain a consistent device state during the tests.

The lab also houses the social network’s one of the most ambitious artificial intelligence projects: the Big Sur. It is Facebook’s most advanced Open Rack-compatible hardware specifically designed for AI computing at large scale. Leveraging NVIDIA’s Tesla Accelerated Computing Platform, Big Sur is twice as fast as its previous generation, which means you can train twice as fast and explore networks twice as large.

When Facebook can assemble its own fleet of devices for testing purposes, why can’t you? Want to own a mobile device lab like Facebook’s? pCloudy can help you.

Plugin for Android Studio

 

An Overview

pCloudy has released a plugin for Android Studio which provides you access to the platform for performing manual and automation testing of mobile apps from within Android Studio IDE.

For Manual Testing

Now you can build and upload your Android Apps to pCloudy devices directly from your Android Studio project workspace.

For Automation Testing

If you are using Appium as automation tool and have created your Automation scripts as a project in Android Studio, you can run the scripts directly on pCloudy devices.

Prerequisites

1. An account in pCloudy with enough credits.
2. An API Access key for authentication with pCloudy.com
3. Chrome Browser on local machine
4. Android Studio IDE
5. Android Studio pCloudy plugin

Preparation

Reference the JAR files to Eclipse
Make a note the API Username and API Access Key

How to Install the Plugin

1. Download the Android Studio plugin for pCloudy
2. Open your Android Studio > go to Setting icon of Android Studio > Select Plugins > All available plugins are shown which can be filtered with the help of Show feature as per requirement.
3. Click on Install plugin from disk > Browse and select location of your downloaded Android Studio plugin of pCloudy
4. Click on OK
5. Now, you can see that pCloudy plugin has been successfully integrated to Android Studio.

Select pcloudy plugin and click on OK to proceed. Here, we are going to install pCloudy plugin for Android Studio from local disk. Click on Install plugin from disk
install-plugin-from-disk

pCloudy plugin for Android Studio has been integrated successfully.

pcloudy-plugin-over-android-studio

Click on pCloudy plugin icon shown on Android Studio. pCloudy Login page opens. Enter your Username and Access Key and click on Login. Your login credentials are verified. Click on OK to proceed.
pcloudy-plugin-over-android-studio

Note: This is one-time task. Credentials will be valid until you logout.
Now, you are ready to use the Android Studio Plugin for pCloudy.
Manual Functional Testing of App

After successful login, upload your app screen appears. Workspace page helps you to select application path of your local machine.
successfully-authenticated

Cloud Drive page lets you to select app from the list and click on Next to proceed.
upload-your-app

Local Drive lets you to upload your app from your local machine to perform testing.
upload-a-project-file

Mobile Browser enables you to use mobile browser for testing.
use-mobile-browser-for-testing

After selecting app, the next step is choosing a device. Select and Connect to devices page provides you list of devices which can be filtered by using filter parameters (Android/iOS, Manufacturer, and OS version). Select duration of your testing. The device will get booked for selected time duration.

When you click on Next, you get a message “Please wait while we open the pCloudy Platform on your default browser for Manual Testing. Please advised that…”
select-and-connect-to-devices

Just after few seconds, you will be redirected to the connected device page over pCloudy to perform manual functional testing of your app on selected device.
briefing

Automation Testing of App

Similarly, the first step towards performing automation testing is selecting an app from workspace/cloud drive/local drive or use mobile browser.
my-application

Select your desired device; select duration of automation testing. You can filter devices displaying devices by using filter options (Android/iOS, Manufacturer, and OS version). Click onNext to proceed.
choose-devices

Note: Here, you can select multiple devices as well.

Finally, you get corresponding pseudo code for performing Automation testing of app. You can copy this pseudo code to clipboard and use it within your Automation script…
paste-the-code-and-proceed

You will need the pCloudy java connector jar file for the above code to work. The pCloudy-java-conector.jar contains the API wrappers, classes & methods to use the pCloudy RestfulAPIs (without knowing how to call rest webservices from java). The gson.jar is a well known, opensource google library. You should add the pCloudy-java-connector.jar in its build path as a reference within your java project containing appium scripts.

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