Are Tests Run on Rooted Devices Reliable?

Sometimes, the OS that comes built into an Apple or Android device can seem like it’s actively preventing you from doing what you want. And, to some extent, that’s true—Apple only lets you download the apps that are in the App Store because there are some actions that they want to prevent you from taking.

As an end user, this often seems capricious and arbitrary. As a tester, it feels similar: why shouldn’t you be allowed to make the necessary changes and additions to the phone’s functionality to make end-to-end testing easier?

This is an issue that software developers have run into for years when it came to testing mobile applications—and it’s increasingly something the telco testers have to content with as well. Why?

Because some automation solutions effectively require that you make use of mobile devices that have been modified to allow changes to the OS, i.e. devices that have been rooted or jailbreaked. The question, then, is whether tests run under these circumstances can still provide testers with the information they need to verify service.

What Is Rooting/Jailbreaking?

Okay, let’s back up a second so that we can define our terms. Though rooting and jailbreaking are, in fact, two distinct processes, they both involve removing hardware restrictions from Android or iOS devices.

When you’re removing those restrictions on an iPhone, it’s referred to as jailbreaking, which a reference to the use of “chroot jails” to isolate processes in Unix. The end result is that you have elevated permissions and can suddenly run applications that wouldn’t have been available to you otherwise.

Most functionality (like calling and running built-in apps) is maintained, but some security featured won’t run anymore and the OS won’t be able to update consistently.

Rooting, which is the equivalent process on Android, actually takes you one step further: it doesn’t just elevate your permissions—it gives you root access to the Android sub-system.

From there, you can actually modify the OS arbitrarily (which isn’t possible on a jailbreaked iOS device), which ostensibly elevates the risk that you’ll “brick” the device (i.e. make it unusable) with any change that you make.

Why Jailbreak?

For software testers, rooting and jailbreaking have historically presented added freedom to create a test environment that suits their needs. LinkedIn’s test-butler, for example, which is designed to stabilize emulated Android devices for a cleaner test environment, can actually be run on rooted Android devices.

This means that testers can ostensibly take better control over their test environments (without worrying about crash and ANR pop-ups, WiFi radio going to sleep, animations, etc.), without dealing with any of the downsides of running tests on emulated devices.

When it comes to the telco domain, the rationale is usually similar: testers want to automate their conformance tests, say, and the solutions they’re considering offer up rooted devices as a way to do this efficiently and cleanly at scale.

Unfortunately, this tactic introduces a whole host of risks into the testing process. Let’s say you’re attempting to verify that native Android applications run correctly on your network: you have a suite of test cases in your library that run through the functionality of the app step by step, from logging in to performing some application-specific tasks and logging back out.

Because the OS on the rooted device doesn’t actually correspond to the OS being used by end users, the results of your test will be inconclusive. If a particular test fails, you’ll be at a loss to ascertain whether the root cause is a problem in your network, the device out-of-the-box, or the way the rooted device has been altered.

Because rooted devices don’t receive the periodic updates that get sent out to devices that haven’t been altered in this way, tests run on rooted devices are essentially tests on obsolete technology.

This is a tradeoff that many testers wind up taking (since the odds of any individual software update having a huge impact on, say, network connectivity aren’t that high), but it certainly does add risk for testers.

After all, subtle changes in the device can begin to have an outsized impact as they accumulate—especially as standards for latency get more and more stringent.

Rooted vs. Out-of-the-Box

Okay, we’ve gone over some of the reasons why you might want to test on a rooted device, as well as some of the risks that that might entail. From our perspective, these risks make testing on rooted devices a less-than-attractive option.

Out-of-the-box iOS and Android devices, by contrast, help you to virtually eliminate the risks that we described above by ensuring that your test environment resembles real network usage conditions as closely as possible.

Since they’ll receive regular software updates like a subscriber’s phone would, you won’t have to worry about testing on outdated phones. Likewise, because you haven’t changed the OS at all, when you find a bug you can uncover the root cause much more easily, since you know that it’s either an issue with the device itself or your network.

But if you’re under pressure to automate your tests, you might be wondering whether out-of-the-box devices actually present a viable alternative. After all, isn’t the whole point of rooting or jailbreaking a device to empower testers to run code that makes it easier to automate application tests, acceptance tests, conformance tests, etc.?

Even if they’re not 100% reliable, couldn’t you utilize them as part of your broader testing flow? Well, sure—but these days it’s possible to control out-of-the-box devices with an external interface in order to run through test cases automatically.

In this way, you can automate test cases without having to gain root access to the devices’ operating systems, meaning that you can automate without incurring any of the risks we discussed above.

This type of solution will scale just as easily as testing with rooted devices (if not even more easily), since you can automatically run through test cases without manual intervention—potentially resulting in more accurate, and thus more value-additive, test automation.

At the end of the day, the best way to make sure you’re testing the real thing—i.e. a device that’s 100% representative of the technology that your subscribers are actually using—is to avoid hacking your devices to install an invasive testing app.

Search

Interested in our Products ?

Scroll to Top
Segron logo black blue

Senior SaaS System Administrator

Technical Skills :
  • Oversee the sysadmin related tasks in our SaaS infrastructure (partially cloud based, partially bare metal)
  • Daily operation and maintenance of the system
  • Analysing and resolving incidents
  • Follow and help improving the incident and change management procedures
  • Design procedures for system troubleshooting and maintenance
  • Incorporating base OS updates and security patches
  • Ensure that systems are safe and secure against cybersecurity threats by raising change requests where potential threat is possible
  • Performing SW updates for the Segron SaaS SW stack (distributed architecture with clusters)
  • Configuring solutions like reverse proxy, firewalls, etc.
  • Building tools to automate procedures & reduce occurrences of errors and improve customer experience
  • Tutoring & coaching newcomers & less senior experts in the team
  • Interworking with the architects and IT admins of Segron to have the SaaS procedures inline with the Segron processes
Non-technical skills:
  • We are looking for a self-motivated, self-improving individual with a highly independent mindset and open and straightforward technical communication to help us to improve and maintain our cloud infrastructure of our powerful end-to-end testing solution ATF (Automated Testing Framework)
  • 3+ years hands-on experience with operation and monitoring of cloud / linux systems
  • 3+ years of hands-on experience with network devops elements: configuring routers, switches, networks
  • Hands-on experience with running live systems with infrastructure as a code mode of operation
  • Specific knowledge which brings direct advantage: Docker, Docker Compose, Grafana, Prometheus, Ansible, Debian Linux OS administration, Security
  • Experience in building and maintaining distributed systems (incl. redundancy, resiliency, load-balancing) is welcome
  • Excellent knowledge of English
Location :
  • Place of work: Bratislava (partially home office possible)
  • Rate: from 30 EUR/hour (possible higher rate, depends on experience)
Segron logo - The Next Generation of Active Testing
Segron logo black blue

CI/CD Senior Developer

Technical Skills :
  • A senior role with a proven expertise in software development, cloud computing, DevOps, and CI/CD
  • Experience in planning, designing, and overseeing the CI/CD strategy and architecture on the level of organization
  • Ability to tailor testing strategies which define and follow the best practices, standards, and policies for the software delivery process
  • Hands-on experience in creating and managing CI/CD pipelines and workflows (PaaC)
  • Ability to evaluate and recommend the best tools, technologies, and methodologies for the CI/CD implementation
  • Prior hands-on experience working with different CI/CD toolsets (Jenkins, Bitbucket, GitLab, artifactory, Ansible ..)
  • Proficient with DevOps tools API automation capabilities
  • Proficient with Atlassian Tools (BitBucket, Jira, Confluence) and agile SW development methodologies
  • Familiar with cloud patterns and best practices
  • Familiar with web performance best practices
  • Comfortable working in cloud DevOps ecosystem
  • Comfortable working with Linux platforms
  • Initial working experience in SW development is an advantage.
Non-technical skills:
  • Effective communication with technical as well and business stakeholders
  • Self-motivating, self-improving mindset
  • Ownership of relevant industry certificates is a plus
Location :
  • Location: Bratislava, Slovakia (with hybrid flexibility)
  • Rate: from 30 EUR/hour (possible higher rate, depends on experience)
Segron logo - The Next Generation of Active Testing
Segron logo black blue

Test Automation Engineer

Job description, responsibilities:

Hardware Testing: Conduct verification and testing of hardware during the HW/SW products
assembly process.
Technical Support: Provide technical assistance during testing activities and troubleshoot any
hardware issues that arise. Support to internal teams and customers by managing priorities and
meeting deadlines.
Equipment Maintenance: Configure and maintain SEGRON laboratory and customer equipment.
Logistics Support: Handle hardware ordering and logistics.
Troubleshooting: Analyze and resolve SEGRON product issues through effective problem-solving.
Ability to troubleshoot and resolve issues that arise during the integration process.
Collaboration: Work with the SEGRON Development Team on product or software issues and assist
the Project Team with planned activities.
Root Cause Analysis: Investigate production errors to identify underlying causes.
Software Deployment: Implement software updates and fixes.
Team Collaboration: Ability to work collaboratively in a team environment, especially in serving global
customers.

Requirements/ Skills:

Networking knowledge: Understanding TCP/IP networks and LAN/WAN configurations. Routing and
switching and related protocols strongly desired.
Hardware Proficiency: Understanding of hardware components, including servers, routers, and
peripherals, to ensure proper assembly and integration. Experience in data centers is a plus.
Travel Abilities: Willing to travel for customer on-site support for hardware installations, migrations,
upgrades, troubleshooting, etc. (few times a year, 3-5 days)
Hand Tools: Proficiency in using hand tools like screwdrivers, pliers, crimpers, and punches for
assembling and disassembling components.
Operating Systems: Knowledge of Linux and Windows. VM experience (Hyper-V, VMWare, Oracle
Virtual Box, Proxmox etc.)
Tools Proficiency: Basic understanding of Ansible.
Telecommunications Experience: Previous experience in the telecom sector is a plus.
Education: Degree in Computer Science/Engineering or equivalent work experience.
Experience: At least 2 years of relevant work experience preferred. A strong desire to continuously
improve skills and knowledge in hardware and software integration, with an openness to feedback and
new ideas. Key is openminded person willing to learn fast in great team.
Communication Skills: Effective oral and written Eng

Others:

• Full time job (employment)
• Onsite work during onboarding period, then it can be 3 days onsite, 2 days home office
Offered salary: from 2000 Euro (depends on seniority and skills level)
Variety of financial benefits
Place of work: Bratislava

Segron logo - The Next Generation of Active Testing
Segron logo black blue

Senior Python Developer

Technical Skills :

  • A solid, experienced SW developer with at least 10 years of experience in active SW development in different programming paradigms
  • Minimum 5 years of professional Python development experience
  • Master or college degree from Computer Science, Mathematics or STEM domain
  • Well educated in design and programming patterns that increase software’s efficiency and readability.
  • Very good analytical and problem solving skills.
  • At least three skills out of the following 4 skills are requested:
    • Microservices based architectures (Docker containers)
    • Linux
    • Ansible
    • Robot  Framework
  • Comfortable with sysadmin and DevOps skills (Ansible, YML files, Network Programming, IP protocols, designing and developing proxy servers for different protocols – example: streaming, integrating and compiling third party libraries on Linux (Debian))
  • Proficient with Atlassian Tools (BitBucket, Jira, Confluence) thorough understanding of Git and version control best practices
  • Familiar with cloud patterns and best practices
  • Familiar with web performance best practices

Non-technical skills:

  • Ability to work under pressure
  • Ability to abstract and explain your work
  • Strong understanding of Agile development process and experience working in an agile team
  • Strong communication skills with both technical and non-technical stakeholders
Location :
  • Bratislava, Slovakia (with hybrid flexibility)
  • Rate: from 35 EUR/hour (possible higher rate, but depends on experience)
Segron logo - The Next Generation of Active Testing