As a developer, should you root your Android mobile test devices?
The pros and cons of rooting an Android mobile device for end-users have been a widely discussed topic on the web for a while now. It's undeniable that more advanced mobile users find root access as a must have feature on their devices as it opens the doors to have full control over them. For example, automation, customization and advanced privacy features are among the many reasons to subject a mobile device to this process. However, as a developer, is there much value on unleashing your Android mobile test devices?
Depending on the test procedure that you follow for each test cycle on the apps you develop, you should consider the impact that rooting your test device will have. It is not only the root feature itself that should be added as a new variable, but you should also keep in mind that depending on the rooting method there are some additional steps that are required which might add new variables. For example, the custom kernels that provide the root access.
It is true that in most cases having root access doesn't interfere with the application that is being tested. However, the main concern is that any instability that could appear on the device due to the newly installed kernel values or modifications done in the process and the chance that any of this unexpected behavior interferes with your testing. For instance, adding the possibility of misinterpreting said behavior as a coding error.
Some questions that pop up are:
- Can you afford the extra time to run a test on a non-rooted device to verify any emergent issue is not caused by the modifications required to root it?"
- Can you afford a second device to run tests on it? As turns out, adding root access to a test device isn't worth the trouble, after all, some of the strongest reasons for it (as privacy security and customization) are not too appealing to a device that is not "yours" and it’s probably stored in a drawer most of the time.
It is probably tied to an anonymous account which doesn't really collect data that could be called "personal" and is subject to factory resets and clean ups depending on the mobile device maintenance process. So, why would you root it anyway?
For example, a scenario in which root access can help is getting access to streaming your device screen live to a computer. This is where you can distribute said video as a demo to a client over the internet and it can be a good solution in case the APK can't be released to the client for any particular reason or the client doesn't have a testing device on their hands.
Other non-root applications allow you to show your device screen using updated screenshots in sequence. However, the time in-between screenshots can be painfully long to be able to make an appropriate presentation. Unfortunately, it looks like the occasions in which root access can prove its value are cornered to scenarios too specific to overweigh any possible hassle.
This is a situation where it is better to play it safe than sorry and it's advisable to have test devices as identical as possible to the target ones so rooting can turn more into a downside than an advantage on our development environment. Of course, there are always new tools and apps that can overrule this last statement. If you know of any "must have" apps for developers which they can take advantage of the root access, please go ahead and share in the comments below.
On the other hand, if your personal mobile device runs on Android and is not yet rooted, you should absolutely spare some time to read on the many topics online which discuss the advantages of having root access and it all depends on your main use of the mobile devices.
About the Author
Francisco de la Mora is a Computer Systems Engineer currently working at iTexico as Mobile Developer for Android & Titanium. He loves to customize his gadgets to find their true potential.