Android O Release

 

Latest Android Version

The development world bumped into a new surprise by announcement of developer release of latest Android version: Android O. The makers have made everyone curious about its christening, wondering which sweet it has been named after (Oreo, rumour has it). On the developers front however, it seems to be a good time to assess this developer preview and its included features that might have implications on the apps on your phone and their quality, as well the future it holds for us.

So let us lay out the key details and focus on the challenges or opportunities that developers will run into due to the changes in the OS features and application development environment.

 
Latest Android Version

Picturecourtesy: Greenbot

Why is the Migration Necessary?

With major share of the market with Android M and L, i.e. 60 percent, fragmentation is still in growth within the Android landscape. During most Android OS changes, a few basic fixes make the app compatible with the newer version. However, its API changes and several features make changes to the appearance and functioning of the existing apps. It can result in unstable applications and confusion among the users. This means that there are not only more devices and OS combinations in the market to test against, but also that from both supported test cases and features, there should be different branches that combine the test suites with a device/OS combination and a supported capability.

 

Sneak Peek into the New Features of latest android version – Android O and the Challenges to Testing:

The first release of Android O is just for devs to get a sneak peek into their bag of tricks behind the show and the help needed for that transition. E.g. adding extra layers of security options to prevent malware entry into your phone. Of course there will be more UX and UI based improvements in the beta releases. Let’s take a brief look at their features and the challenges they present to Testing.

  • Revamped Settings and Changes in UI: This feature is one of the most outward change in the preview. That means new icon, condensed and summarized organization, which makes the navigating app superior and pleasant. There are several other similar organizational and in a many places functional changes in UI including lock-screen shortcuts, icon badges, picture in picture feature etc.

However, this immediately opens a range of visual test automation scenarios that will need insights into different resolutions and themes to assure the new animated look, movement or adaptation as required.

 
Android O

Picture Courtesy: Greenbot

  • More Control over Notification Channels: Changes again in the Notification shade for UI improvement, with more icons in the status bar, a cooler shade and a bit more subtle yet stronger control over its notification channels by Notification Grouping. I.e. option to choose for notification from people in your contacts and more manageable system and processes alerts.

This means, more testing to be added to support the granular notifications, the configuration traits of the device and network environment related testing.

 
Notification Channels

Picture Courtesy: Greenbot

Enhanced Auto-fill: So far, other than Chrome, no other system has made the process so seamless, making jumps between password managers or switching to special keyboards. Android O’s brand new auto-fill API lets you support specific needs like password management, without having to launch the app in parallel, making the process a lot damn faster.

This also means that each app will have external requirements like password management and testers would need to understand which apps can serve as auto-fill for their app under test, and then test against them.

 
Autofill

Picture Courtesy: Greenbot

  • Better Control over Battery Power and App Background Resources: Android O is changing the way how the OS functions in the background by enforcing more limits on app resource usage in order to save battery and how frequently background apps can retrieve your current location, and implicit broadcasts.

That means, more new tests and branches of these tests need to be added in order to assure correctly that the limitations apply based on the location constraints set by the developers and other limits that are supported.

 
Battery

Picture Courtesy: Greenbot

To Wit!

We just touched on a few immediate implications of the new latest Android version – Android O release for developer and testers, who need to be ready to usher in a not just a new set of challenges and branches of testing, but also prepare themselves for early versions that are to be launched soon. To know more on the specifics of migration to Android O, you can go to the official Android Documentation at their website.

Nilesh Tarale | Posted on | 2 min Read

How to create a world class Mobile Testing Lab?

 

It can be a big challenge to build a large scale Mobile Testing Lab from scratch. Look around you and you will see that with every single day, companies in adding mobile apps in their business strategy and with it the mobile app dev and testing market is becoming increasingly competitive, dynamic and fast paced. Older testing methods are becoming obsolete and the utter multiplicity of mobile platforms, devices and networks have made it important for any company to choose the right solution (Mobile Testing Lab) in order to strengthen themselves in the market.

While creating a testing program for these mobile applications can seem like a relentless chore and a massive undertaking, it doesn’t really have to be. Here are a few considerations to choose the right lab strategy for testing your mobile apps.

 

Key Considerations:

 

• Compatibility of Device OS, Screens and OEMs: The sheer number of different device variants, OS versions and screen resolutions form a large set of factors even though each of them are significant in their own rights. In 2012 there were about 4,000 Android device models on sale. 2015 saw about 24,093 distinct Android devices. Question is, can the lab I choose, cover maximum number of devices and come close to 100 percent of my end users’ device base?

 

mobile labs

 

• Device Control Infrastructure: After you select your target devices, it is also key to look at the other parts of a reliable architecture of your hardware. Regardless of the technology to be used in building the device lab, one needs servers to control and take care of managing devices and execute tests. Moreover, it is crucial for these servers to collect, process and store results of the tests seamlessly and without interruption.

 

mobile testing lab

 

A snapshot of Infrastructure needed to create a Mobile Device Lab

 

mobile testing lab

 

Facebook Device Lab Infrastructure

 

Click Here to know about pCloudy Device Cloud Infrastructure

 

• Wi-Fi Infrastructure: This is another very crucial area that is often ignored when creating large-scale test lab. As the number of device in a WiFi network adds up, so do problems when all these devices transferring data at the same time. Most WiFi access points are not designed for this kind of bandwidth and you are bound to see different types of timeouts on server responses.

 

• Importance of Automated Testing: The very obvious benefit of automation of testing of mobile devices on the cloud is that through this one can carry out tests on a wider range of OS and devices in a much shorter time and with lesser life-cycle management investment. This not only significantly reduce QA spending, it also expands coverage and speeds up the resolution of issues. You can use a single script and apply the same on different devices and operating systems.

 

Integration with CI/CD pipeline:

 

Today, almost all organizations have mobile apps and for some, the mobile app is their only way of interacting with customers. With this increasing emphasis on mobile, the pressure to routinely update mobile apps means embracing Continuous Integration (CI) and Continuous Delivery (CD) methodologies. Any Mobile Labs has to support the CI/CD process.

 

5 Tips to build a successful lab:

 

1. Using Real Devices
2. Tackling Multiple Devices
3. Using a Secure Mobile Device Testing Cloud
4. Automation Strategy
5. Increase Lab efficiency by integrating with your existing tool ecosystem

 

1. Using Real Devices: Some Devs/testers are using emulation technology for compatibility testing. However, it has been proven beyond doubt that testing on emulators is often not reliable. Real devices help you and your team to find real bugs in your App before customers do. It is only way to have a confident App release and increase the chances of success of your test lab.

 

2. Tackling Multiple Devices: With thousands of different devices, it can be a bit overwhelming when building a mobile testing lab that encompasses the coverage of testing in all of them. Luckily, the major mobile operating systems use logical screen sizes which are mapped to physical screen, hence, the representative devices will get the necessary coverage. The test strategy is not to test absolutely everything, but to test the crucial elements that are most represented in the popular devices in the market, and add or subtract devices as they come in and out.

 

3. Using a Secure Mobile Device Testing Cloud: Using a secure cloud is vital to enterprises, especially if they aren’t located under the same roof. Testing real devices for everything can become really costly and time consuming. Using a testing cloud keeps your budget in check, reduced project cost and thus helps achieve high return on investment. Be it public cloud for small businesses, or large enterprise projects that demand a private cloud infrastructure, high performance and security are essentials to have complete control over the cloud.

 

4. Automation Strategy: Creating Regression Automation suites once Application is ready is a passé. Agile methodology and CI/CD process demands automation creation in parallel to development. Automation strategy should be built keeping above aspect in mind.

 

Here is a depiction of what the automation process should look like.

 

Mobile Labs

 

As part of Automation Strategy, Mobile Testing Lab should provide the capability to allow automation run on multiple devices in parallel.

 

5. Increase Lab efficiency by integrating with your existing tool ecosystem: A lab is as good as how well can it be integrated within existing ecosystem. Can it integrate with your Test Management system or can it log bugs automatically after a failure? Can it integrate with your build management tool for CI process? Here is a depiction of how “Test Tools” fit in the larger ecosystem.

 

Mobile Testing Lab

 

Conclusion: A well thought strategy for setting up of Mobile Testing Lab is a necessity for every organization undertaking Mobility projects. In current times, organizations have plethora of choice related to setting up of Mobile Testing Lab. They can choose to setup an In-house lab or use a private-hosted service or use a cost effective Public Cloud lab.

 

Would you like to know more about Lab options with pCloudy? Click Here

Anshuman Chatterjee | Posted on | 2 min Read

Why Mobile App Automation Testing?

Testing of Mobile Apps in quite cumbersome because of sheer magnitude of testing required on variety of devices. Moreover, Mobile Apps require changes faster than other kind of Applications (Web or Desktop). That’s the reason, more and more organizations have started realizing the need of using automation testing over manual testing as much as possible.

 

Mobile App Automation Testing can be a massive undertaking, and if unaware, one can end up complicating the process by selecting a bad tool. With a major trending shift to open-source mobile test automation tools, there have been a plethora of tools available in most open-source software markets.

 

So how do you know which are the best software testing tool available in the market? Which tools will give you the most efficient solution to fulfill your enterprise’s need for speed and integration? Will manual testing suffice your app testing needs?

 

This blog post is to help you quickly choose which open-source test automation tool will be right for your automation testing

 

Benchmarks for selecting the right tool

You would need a set of criteria to fulfil when assessing your selection of the right open-source automation tool. Here are a crucial few questions to ask:

 

  • Do you have the required skilled resource for automation tasks?
  • Is there ease of script development to support agile processes and shorter iteration cycles?
  • Does the tool support cross team collaboration for seamless use by QA and Dev?
  • Can it match app platform with test development language?
  • Will it have performance capabilities gaps while testing?
  • Will it support both real devices and emulators?
  • Does the app support multiple platforms — Mobile and Web?
  • Does it have multi device execution capability
  • How easily can it integrated with external Device cloud platforms?

 

Best Open-Source Mobile Testing Frameworks to use:

To take the final call, testers must have a strong awareness of the tool’s strong and weak aspects, what it can do and what it cannot, and find a balance between cost and benefit.

 

These are top highly adopted open source test automation frameworks available in the market. Each of these frameworks are backed by different communities due to their unique offerings to the target audiences and relevant platforms. The overall benefits are that they cover a wide range of devices. However, for technical clarity it’s important to know the pros and cons of the framework based on your mobile and web testing needs:

 

1. Appium: Widely adopted, it is the leading open-source test framework for mobile app (Android, iOS) test automation.

 

Pros:

  • Best suited for QA teams to test the functionality of mobile web, native and mobile hybrid apps across iOS and Android.
  • Its reports are limited from debugging and fast feedback loop.
  • Supports development tools using any WebDriver compatible language including Java, C#, Ruby etc.
  • Cross Browser Support and cross platform capabilities

 

Con: It is less suitable for performing and developing unit testing.

 

2. Calabash: It is a Behavior-driven development (BDD) test framework based on Ruby development language.

 

Pros:

  • Has a large community support
  • Cross platform development support (Android and iOS)
  • Provides solid reports and insights to QA and Dev teams
  • Easy path to both develop and test features in parallel
  • Simple and easy-to-read test statements

Con: It is not friendly to languages other than Ruby.

3. Espresso & XCTest UI: Both are very similar tools as they were designed for the target users. Espresso for Android and XCTest for iOS are fully maintained by Google and Apple, assuring the latest features for respective platforms.

Pros:

  • Latest feature integrations assure lead in market curve for developers and testers
  • Easy to develop techniques including test recorders
  • Support both types of unit testing and functional UI

Con: Both are app context only, which means limited ability to test for user condition scenarios

4. Selendroid: An open source automation framework which drives off the UI of android native, hybrid and mobile web application. A powerful testing tool that can be used on emulators and real devices. And because it still reuses the existing infrastructure for web, you can write tests using the Selenium 2 client APIs.

 

Pros:

  • Can interact with multiple Android devices and simulators simultaneously
  • Can simulate human actions like touch, swipe, drag etc. on devices
  • Supports development tools using any WebDriver compatible language including Java, C#, Ruby etc.

 

5. Robotium: Widely adopted open source Android test Automation framework.

 

Pros:

  • Easy to write powerful test scenarios
  • Full support for native and hybrid Android Apps
  • Easy to use recorder
  • Handles multiple Android routines automatically

 

6. EarlGrey: EarlGrey is a native iOS UI automation test framework that enables you to write clear, concise tests. It integrates with Xcode’s Test Navigator so you can run tests directly from Xcode or the command line.

 

Pros:

  • Works directly from XCode
  • Full support for native and hybrid Android Apps
  • Synchronization features which automatically synchronizes with the UI and network requests.

 

mobile app automation testing

 

Would you like to know how to use Automation Testing on Real Devices with pCloudy? Click Here

Suyash Dubey | Posted on | 2 min Read

pCloudy’s Data Center

 

Ever had apps on your phone which suddenly crashed it and you couldn’t figure it out?

In today’s age, If you have a smartphone that needs to get you through most of the day, be it work or play, you must have experienced frustrating bugs on that app that is either slowing down the phone or stops you from using it when you need the most. So you uninstall it and be done with it. Try asking any app developer or tester what it is like to test usability of the app in thousands of devices across screens, operating systems and the carriers.

This is where pCloudy comes-in. A one stop solution for Developers and Testers to certify their App across variety of devices.

How does pCloudy work?

pCloudy has found an incredibly simple way of allowing users to remotely test their apps on different real and physical devices by using just a modern web browser. Alternatively, users can access the devices directly from their IDEs like (Android + Eclipse studio).

Device Data Center

Behind the scenes:

Use of Physical devices: Mobile App Testing is most effectively when done on a real physical device. That’s the reason, pCloudy currently has 500 + Android and iOS device (real device, no emulators) across various manufacturers and versions.

Data-center-2[A Device Rack in the Data center which contains pCloudy Hardware and set of devices]

Kind of hardware involved: pCloudy has a customized hardware setup, which runs the software to allow communication with real mobile devices. All the mobile devices are connected to the hardware using USB cables.

Network Setup for Devices: All the devices have a Wi-Fi connection. To ensure uninterrupted connectivity to the devices, all the racks are installed with dedicated Wi-Fi controllers and Wi-Fi access points. The Wi-Fi access points are deigned for interference mitigation and Noise (SINR) improvement. Besides, many of the devices also have real SIM cards.

pCloudy Device Data Center[Data Center: All the above is located in a secure, 24×7 operated data center]

When it comes to certification of Apps, one of the biggest concern for Users while using a solution like pCloudy is security and safety of their Data.

Why we decided Data Security was Critical?

It was important for our customers to feel safe about their Apps and data that they upload on pCloudy servers. Many a time these are not-yet-released app and related data. Today pCloudy is working with Global enterprises who are extremely concerned about safety of their Data.

Security of Data Center: A major component of the entire pCloudy offering is the data centers where physical mobile devices are connected. These devices are then made accessible through cloud via the web browser to the customers. pCloudy has hosted their cloud in a data center which meets all the global standards, including compliance with SSAE­16 (SOC­2) and ISO 270001 standard. pCloudy has 99.982% uptime commitment on the DC infrastructure which is measured quarterly, a failover redundancy mode for equipment’s setup and everything that does not get in the way of a creating an uninterruptible, stable working mobile network environment for the apps, round the clock, 24X7.

Secured Cloud Drive: Data uploaded by user (Apps/Test Data) is Stored in secured folder on our server in DC. User space is protected by username and password. Data is further protected by a layer of encryption. No access to user data by pCloudy admin.

Device Clean up: Device gets cleaned up automatically after each use. As soon user releases a device, user installed Apps get uninstalled, data uploaded get deleted and device gets powered cycle.

XCUITest for iOS Apps

 

UI testing for iOS app is a way to validate & interact with the real UI of the app. This testing process will check if UI elements are designed and implemented the way it should be by interacting the UI elements by tapping, swiping, scrolling and verifying the behavior. For iOS version 9.3.5 and above, Apple has introduced XCUITest by deprecating instruments with UI Automator making it mandatory to use XCUITest for iOS automation.

 

Xcode has XCUITest framework integrated allows to easily develop UI tests for user’s interaction with the application. Implementation of UI tests for iOS apps with XCUITest is same as unit tests in XCTest.

 

pCloudy supports both XCUITest for iOS version 9.3.5 & above and instruments for lower version. DesiredCapabilities like automationName, usePrebuiltWDA, acceptAlerts are required to run the automation scripts in pCloudy platform.

 

1) Creating IPA file using xcode for testing

a. In General tab, Select Provisioning profile in Signing(Debug) and Signing(Release)

 

test-munk-demo

 

b. Select Provisioning Profile

 

XCUITest

 

c. Archive the build

 

archieve-build

 

d. Export the build

 

export-the-build

 

e. Choose Development Team ID

 

development-team-id

 

f. Choose to export for all compatible devices

 

Choose-to-export-for-all-compatible-devices

 

testmunkdemo

 

g. Select the appropriate location to save

 

select-appropriate-location-to-save

 

Now you have properly signed to run automation in pCloudy platform.

 

2) Running Automation Script @ pCloudy

 

a. Login and upload ipa file

 

login

 

b. Upload the App to cloud drive post login

 

upload-the-app-to-cloud-drive

 

c. Create XCUITest project in Eclipse or Android Studio.

 

The following capabilities need to be set after creating AppiumDriver object to run XCUITest above v9.3

 

XCUITest-Project

 

Also you can download Sample Project from below link-
http://pcloudy-content-distribution.s3.amazonaws.com/index.html?prefix=Sample Appium Projects/java/

 

d. Select any number of iOS devices for test run

 

ios-devices

 

e. Click Live view for Online Streaming of Test automation

 

appium-native

 

live-view

 

f. View the Reports

 

Consolidated Report:

 

consolidated-report

 

Single Device Report:

 

single-device-report