Category Page

Category:

App Testing during your Dev Cycle – Developer Tool to Access Real Devices on Cloud

January 17th, 2025 by

In today’s fast-paced development landscape, quality assurance is no longer the sole responsibility of QA teams. Developers and testers are increasingly working together as part of a DevOps-first approach, ensuring that quality is embedded throughout the development lifecycle. Nowhere is this collaboration more critical than in mobile app testing, where continuous iterations demand faster feedback and efficient testing strategies. 

To keep pace with this, developers need tools that provide real-time testing capabilities on real devices. This is where cloud-based solutions bridge the gap between development and quality, empowering teams to test and debug seamlessly. 

The Importance of App Testing in DevOps

In the world of DevOps, where speed and agility define success, continuous testing is a crucial pillar. App testing in DevOps goes beyond finding bugs; it plays an integral role in ensuring seamless collaboration, faster releases, and enhanced product quality. Here’s an in-depth look at why app testing is indispensable in DevOps. 

1. Enables Faster Feedback Loops

In DevOps, the objective is to deliver high-quality software quickly and continuously. Testing provides instant feedback on the quality of the code after every change, helping developers address issues early. This prevents defects from compounding and becoming costlier to fix later. 

Key Benefits: 

    • Developers receive immediate insights after each code check-in. 
    • Bugs are detected and fixed in real-time, avoiding production delays. 
    • Faster resolution times improve overall efficiency and team productivity. 

2. Ensures Continuous Integration and Delivery (CI/CD)

Continuous testing forms the backbone of CI/CD pipelines, ensuring that automated tests are executed with every build. This practice ensures that each integration of new code doesn’t break existing functionality. 

Key Benefits: 

    • Reduces the chances of last-minute surprises before deployment. 
    • Ensures new features and patches are stable before they are merged. 
    • Automates regression tests to validate large portions of the codebase efficiently. 

3. Supports Shift-Left and Shift-Right Testing Approaches

DevOps encourages a shift-left testing approach where testing is conducted early in the development lifecycle. Additionally, shift-right testing focuses on post-deployment monitoring to gather user feedback and ensure stability in production. 

Key Benefits: 

    • Early testing (shift-left) identifies issues before they become deeply embedded. 
    • Post-release testing (shift-right) enhances user experience and reliability in real-world environments. 
    • Combines pre-release and post-release insights to drive continuous improvement.

4. Reduces Time-to-Market

App testing in DevOps accelerates the release cycles by automating repetitive test cases and integrating them into the CI/CD process. Automated tests enable teams to quickly validate code changes and release builds faster. 

Key Benefits: 

    • Speeds up regression and performance testing. 
    • Allows frequent releases without compromising quality. 
    • Reduces bottlenecks in the testing process, helping teams meet tight timelines. 

 

5. Enhances Collaboration and Transparency

DevOps fosters a culture of collaboration between development, QA, and operations teams. Automated test reports and dashboards improve visibility, ensuring that all stakeholders are aware of the application’s health. 

Key Benefits: 

    • Improves cross-functional communication through shared dashboards. 
    • Helps developers, testers, and operations teams work in sync toward a common goal. 
    • Reduces miscommunication and silos by providing a single source of truth for quality metrics. 

6. Increases Test Coverage and Reliability

Manual testing is often limited by time and resources, while automated testing within a DevOps framework ensures comprehensive test coverage. This includes functional, performance, security, and compatibility tests. 

Key Benefits: 

    • Executes thousands of test cases across various environments. 
    • Validates edge cases, boundary conditions, and stress tests in parallel. 
    • Ensures that all areas of the application are consistently validated. 

7. Reduces Post-Release Defects

One of the goals of DevOps is to minimize post-release issues. Automated testing detects vulnerabilities and inconsistencies in pre-production stages, reducing the risk of defects in live environments. 

Key Benefits: 

    • Enhances customer satisfaction by reducing app crashes and bugs. 
    • Improves product stability, even after frequent updates. 
    • Reduces the costs associated with post-release hotfixes and patches. 

8. Enables Scalability of Testing Across Devices and Environments

For mobile app testing, DevOps workflows require testing across different devices, operating systems, and screen sizes. Cloud-based testing platforms ensure that teams can scale their testing efforts without maintaining physical device labs. 

Key Benefits: 

    • Provides access to hundreds of real devices for testing. 
    • Ensures compatibility across various OS versions and device models. 
    • Supports parallel testing, significantly reducing execution time. 

9. Facilitates Performance and Load Testing

In a DevOps environment, testing isn’t limited to functional validation. Performance and load testing are essential to ensure that the application can handle real-world usage patterns and peak traffic. 

Key Benefits: 

    • Identifies potential performance bottlenecks early. 
    • Ensures the application remains responsive under heavy user loads. 
    • Prevents service disruptions by validating server and API performance. 

10. Promotes Continuous Improvement

DevOps is centered around the concept of continuous improvement, and testing plays a key role in gathering insights for refinement. Test results, post-deployment feedback, and analytics help teams fine-tune their processes. 

Key Benefits: 

    • Provides actionable insights for improving the testing process. 
    • Helps in refining test cases based on past failures and new scenarios. 
    • Encourages experimentation and learning from each release cycle. 

Why App Testing is Critical in DevOps

Without continuous testing, DevOps practices cannot achieve their full potential. Here’s why app testing is a critical component in DevOps: 

    • Prevents regression issues with each code iteration. 
    • Improves release confidence, ensuring builds are stable and reliable. 
    • Optimizes workflows, enabling teams to focus on innovation rather than firefighting. 


By incorporating robust testing tools and strategies, teams can automate mundane tasks, improve coverage, and release high-quality software faster. Platforms like
Pcloudy empower teams by providing cloud-based device access, real-time debugging, and seamless integration with CI/CD pipelines. 

Challenges Faced by Developers

Despite advancements in DevOps, mobile app developers continue to face unique challenges when testing apps: 

 

  1. Access to a Variety of Devices and OS Versions

Developers need to test their apps on different device models, screen sizes, and operating system versions to ensure compatibility and performance. However, maintaining an in-house library of physical devices is expensive and difficult to manage due to: 

    • Frequent OS updates and new device launches. 
    • The need for both legacy and latest devices to cover all user scenarios. 
    • Limited access to rare or region-specific device models. 

This results in insufficient device coverage, leading to undetected bugs in production when users with different device configurations encounter issues. 

 

2. Need for Robust Debugging Capabilities on Real Devices

Even when organizations provide device clouds, developers often lack the level of control they need for comprehensive debugging. Many platforms only allow basic interactions, such as installing and uninstalling apps, without: 

    • Access to system-level logs and detailed runtime data. 
    • Support for issuing custom ADB (Android Debug Bridge) commands. 
    • Advanced capabilities like port forwarding and shell access for running diagnostic commands. 

Without robust debugging, identifying the root cause of complex issues becomes time-consuming, impacting development speed and overall productivity. 

 

  1. Access to Specific Device Models for Debugging Production Issues

When an issue is reported in production, developers need access to the exact device model and OS version where the bug occurred. Unfortunately, this is not always feasible due to: 

    • Limited physical devices in-house that may not match the reported configuration. 
    • Remote or distributed teams that cannot easily share physical devices. 
    • High costs and logistics associated with procuring new devices for debugging one-off issues. 

In such cases, developers often resort to inefficient workarounds or face delays in issue resolution, which can affect customer experience and app ratings. 

 

  1. Cumbersome Physical Device Setup

In many workspaces, developers juggle multiple mobile devices connected to their computers via USB cables. This setup often leads to: 

    • Tangled cables and overcrowded workspaces. 
    • Devices frequently disconnecting during testing. 
    • Lost time switching between different devices for testing and debugging. 


These inefficiencies slow down development cycles and create unnecessary frustration, especially when working on apps with frequent updates and tight release timelines.
 

Cloud-Based Solutions for Developers

To address the challenge of device access, many organizations have adopted device clouds that provide remote access to a library of real devices hosted in data centers. These platforms allow developers and testers to: 

    • Run tests on various device models and OS versions without managing physical devices. 
    • Scale their testing efforts without maintaining an expensive in-house device lab. 


However, most device clouds are designed primarily for QA teams and automated testing, offering limited support for hands-on debugging by developers. Key limitations include:
 

    • No direct integration with popular IDEs like Android Studio or Eclipse. 
    • Restricted access to ADB commands, making real-time debugging difficult. 
    • Limited file transfer options for testing specific scenarios. 


Due to these gaps, developers often still rely on physical devices, undermining the benefits of cloud-based solutions.
 

Introducing DeviceTunnel by Pcloudy

Pcloudy’s DeviceTunnel bridges the gap between device clouds and developer needs by enabling complete control of cloud-hosted devices directly from the developer’s local environment. 

How DeviceTunnel Works 

    • Connects to Pcloudy’s cloud servers over the internet. 
    • Appears to local tools like Android Studio or Eclipse as if it’s physically connected via USB. 
    • Developers can interact with the cloud-based device exactly as they would with a physical device. 

Capabilities of DeviceTunnel

Once connected, developers can perform a wide range of actions to debug and test their apps: 

    • Issue ADB Commands: Execute commands for debugging, shell creation, port forwarding, and retrieving system information. 
    • File Transfer: Push and pull files between the local system and cloud-based devices for testing various use cases. 
    • App Management: Install and uninstall applications seamlessly. 
    • Advanced Debugging: Add breakpoints, inspect variables, and analyze runtime metrics to identify performance bottlenecks and optimize the app. 
    • Run Tests Directly from the IDE: Execute tests within the development environment without needing to switch to external platforms or tools. 


For a step-by-step guide on connecting to cloud devices using DeviceTunnel, 
click here. 

Why DeviceTunnel is a Game-Changer

DeviceTunnel transforms cloud-based mobile app testing by providing developers with real-time, hands-on access to cloud-hosted devices. 

  1. Eliminates Physical Device Setup 

a. No need to maintain an in-house library of physical devices. 
b. Reduces clutter and time spent managing physical connections. 

2. Real-Time Debugging 
a. Debug apps on real devices as if they were connected locally. 
b. Identify and resolve issues faster with direct ADB access and advanced debugging features. 

3. Seamless Integration with IDEs 

a.Works seamlessly with Android Studio, Eclipse, and command-line tools. 

b. Enables uninterrupted workflows for faster development cycles. 

4.Improves Collaboration Across Teams 

a. QA and development teams can share device logs and testing results. 

b. Ensures smoother handoffs between testing and debugging stages. 

In an era where speed and quality are non-negotiable, DeviceTunnel helps teams bridge the gap between local development and cloud testing. By empowering developers with real-time device access, Pcloudy enables faster debugging, fewer production defects, and accelerated release cycles—ultimately enhancing the overall app experience. 

Automate with Selenium

pCloudy Plugin for Cordova

April 25th, 2018 by

Cordova

 

Cordova is an open source mobile app development framework which helps build cross-platform mobile applications that are highly scalable and agile. The use of common scripting languages such as CSS, HTML and JavaScript assists in developing a simple and organized Cordova framework, which makes it a popular framework among app developers.

 

Cordova Archtecture

 

Advantages

 

Let’s have a look at some of the advantages of creating apps on Cordova :

 

  • It is a hybrid script framework which uses standard web API’s for all well known operating platforms.
  • The Cordova application developers only need to know web development using HTML5, CSS3 and JavaScript.Cordova takes over the rest of the work to be done.
  • Using Cordova, a developer can create applications for operating systems like iOS, Android, BlackBerry and Windows Phone. The Cordova developer need not be an expert of either of the above mentioned operating system.
  • Cordova has edge over the others simply due to the coverage of the framework.

 

The Cordova project consists of three main things—a command line tool, access to hardware features, and the ability to support future features.

 

Need for Cordova plugin in pCloudy

 

pCloudy being a unified mobile app testing platform is used both by developers and testers. pCloudy offers DeviceTunnel feature for developers to connect to a real device on cloud and use the device as if it’s connected to their local USB. Currently the DeviceTunnel is possible through Android Studio/Eclipse and XCode plugins. Although developers could create builds perfectly using any of the IDEs on the platform, Cordova developers looked for a seamless way of creating apps on a command line tool.

 

As mentioned earlier, Cordova is a popular open source app development framework among developers and there was a need of command line DeviceTunnel Interface to pCloudy so that developers could build their Android or iOS apps and put it to test on a real device on pCloudy. Now, pCloudy real devices on cloud can be accessed by running few commands on the command line interface.

 

Let’s see how this works with Cordova.

 

Note: pCloudy command Line DeviceTunnel Interface is only available for Android devices on Public cloud. It is available for both Android and iOS on private and on-premise cloud.

 

Pre-requisites

 

  • JDK 8 and above.
  • android-sdk latest version.

 

Jar download path

 

http://pcloudy-content-distribution.s3.amazonaws.com/index.html?prefix=Android%20Device%20Tunnel/

 

This will be a one-time activity and need not be repeated again.

 

Steps to Run the Jar

 

Step 1: Run the DeviceTunnel jar by passing the cloud url, user name and api key

 

Example: java –jar pCloudy_DeviceTunnel.jar https://device.pcloudy.com test@pcloudy.com skdflj4tlko46lsa

 

Note: Mention the device tunnel jar path where you store the downloaded pCloudyDeviceTunnel.jar

 

Example: Here, the jar is saved in desktop so the path would be like

 

java –jar /Desktop/pCloudy_DeviceTunnel.jar https://device.pcloudy.com test@pcloudy.com skdflj4tlko46lsa

 

Cordova Plugins

 

Step 2: It will display a list of available devices in that cloud. Select any one device by mentioning the device number and press enter.

 

selct-any-device-press-enter

 

samsung grand quattro

 

Step 3: Enter the duration (in minutes) for which you want to book the device, then press enter.

 

enter id

 

Step 4: Selected device gets connected to your system.

 

get connected to your system

 

Step 5: Open another terminal and check if the device is connected or not

 

open another terminal

 

If the device list shows as unauthorized then copy the url displayed by the jar and paste it in the browser.

 

Device List

 

connect to a device

 

Step 6: Click on ok option on the device and check device list again in terminal.

 

Ok Option

 

Ok Option

 

Now device is connected to your system. You can use this device like a local device.

 

Now use the connected device in Cordova app Debugging. Build the cordova app for android.

 

run cordova android

 

Step 7: Cordova build process

 

cordova build process

 

Deploying to device

 

Step 8: After the successful build, check if the app gets installed on pcloudy device which you had connected to your system.

 

After Successful Build

 

Cordova app is installed on pcloudy device.

 

Step 9: You can debug this through chrome debugger.

 

Chrome Debugger

 

DevTools

 

pcloudy-devtools

 

Note: If you want to exit from the device tunnel jar, please type ‘EXIT/exit’.

 

exit

 

Conclusion

No matter if you are a developer or a tester, just sign up on pCloudy to make the most of your app testing.

Device Tunnel

February 9th, 2017 by

Device Tunnel

 

In the age of mobile apps, a typical developer’s cubicle can be imagined as place where a series of mobile devices are connected with several long USB cables that run into computers. While some developers furiously keep debugging their apps on their computers, there will be others who frequently keep plugging USB cables in and out of the mobile devices to test their apps on various devices.

 

That makes some of us wonder, doesn’t it? What’s the connection between mobile app developers and USB cables?

 

Well, when a developer connects a device to a computer, he will instinctively enable the ‘USB Debugging mode’. When the ‘USB Debugging Mode’ is enabled on an Android device, it opens up a bridge between the Android device and the computer. This bridge grants him a level of access from your computer to your device. What kind of access? This level of access that USB Debugging Mode grants is important when he needs system-level clearance, such as when coding or debugging an app. This mode, also called the Developer Mode, allows newly programmed apps to be copied via USB to the device for testing. Depending on the OS version and the installed utilities, the mode must be turned on to let developers gain access of the device. One such common utility is ADB.

 

What is ADB?

 

One of the most commonly used abbreviations in Android blogs and forums is “adb”. So, what is “adb”?

 

ADB, Android Debug Bridge, is a command-line utility included with Google’s Android SDK. It provides a wide variety of functions for managing your device. As stated in the Android developer site — “Android Debug Bridge (adb) is a versatile tool that lets you manage the state of an emulator instance or Android-powered device.” In simple words, ‘adb’ is a “bridge” through which developers can connect to an Android emulator or a device from a computer to resolve bugs in their applications. The bridge can be accessed via a command line interface from a computer, where the Android SDK is installed. This is done by connecting a device that runs the software through a PC, and feeding it terminal commands. ADB lets you modify your device (or device’s software) via a PC command line.

 

Using ADB with A locally connected devices

 

A simple client-server setup using your USB cable will help you establish an adb connection from a computer to an android device. Once this connection is established, you can send adb commands from your computer via USB to control your android device. Using ADB commands you can move content to and from your phone, install an uninstall apps, back-up and restore your software, run shell commands, run automation scripts and more.

 

But, it certainly raises questions like these:

 

  • We are moving to cloud-based devices, how will we be able to use adb connection with the devices on cloud?
  • Do I have to switch to local devices to if I have to debug my app?
  • Does this mean I cannot use adb bridge when I’m using devices on cloud?

 

Well, the answer is you can establish adb connection with cloud-based devices as well, and it is a much easier process compared to connecting your devices locally.

 

Using ADB with A Remotely connected device

 

Accessing ADB through pCloudy platform – Device Tunnel

 

pCloudy has introduced Device Tunnel, a new add-on to our real mobile device cloud. With Device Tunnel, you can connect and take full control of any Android device using Android Debug Bridge. It provides access to the cloud-based devices through the Android Studio or Eclipse IDE and the command-line tool that’s installed on your computer. What’s more? Many test automation frameworks and developer tools used for evaluation of the app and debugging can hold on to cloud-based devices as if locally connected by USB. For such tools, Device Tunnel acts as a “USB cable” connecting cloud-based device(s) to a local laptop or server. From the point of view of such tools, a cloud-based device appears physically attached. In reality, the Device Tunnel communicates with pCloudy’s servers over Ethernet (LAN or WAN) to reach the cloud-based device.

 

The Device Tunnel allows developers to gain more control over any cloud-based android device. Once a connection is established, the developers can perform the following actions:

 

  • Issue a number 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 on cloud-based devices
  • Debugging apps during development or testing by adding breakpoints, inspecting variables, analyzing runtime metrics to optimize your app and more

 

This comes with the added advantage of accessing and performing these actions on any Android device among of hundreds that are hosted on our Cloud. This ability will also help developers to debug apps and determine the causes behind issues or bugs that are device specific.

 

On the whole, the Device Tunnel will aid developers and testers who need quick access to diverse devices for brisk evaluation of app and debugging. It enables developers and testers to instantly connect to any device hosted on cloud and easily identify problems by running interactive debug sessions.

 

To know more on how to connect any device on pCloudy using Device Tunnel click here