Mobile testing

The Mobile App Testing Riddle

Developing mobile apps for market leaders such as Android and iOS presents a riddle for companies to solve.

Here’s the challenge: development departments have to learn to develop two totally different mobile Operating Systems in two different programming languages – Java and ObjectiveC or Swift.

To complicate things further, those mobile Apps require new user experience concepts – touch gestures, reduced screens sizes, mobile networks, etc. – which adds an additional learning curve for those established development departments.

Many companies simply don’t have the resources, time, or inclination to meet that challenge themselves. Fair enough. Instead, these companies choose to outsource their mobile app development to other enterprises that specialize in mobile app development.

As with all other outsourced products and services however, it is crucial to test the resulting apps thoroughly: a buggy or slow app will only damage your reputation, not the reputation of the outsourced partner.

In the end it is your name and brand in the app store – regardless of who actually build the app. So how does one solve the riddle and outsource for app development while guaranteeing the app’s strength as a brand contributor?

Testing In-House

With manual testing being so time consuming, it is beneficial to automate as much as possible. We know already that all modern mobile OS’ are secure – that means there is no possibility to gain access to an Android or an iOS app externally. This is fine for users as their devices are relatively safe from malware like Trojan horses, however that also means that test automation is not possible without some additional libraries. Of course you could jailbreak or root your device, but this is not the solution for most of the applications you want to test.

Using automated testing to test a mobile app requires the app to be instrumented. This means that a library has to be added to the app in order to allow test automation with Tosca Mobile+.

Remember when you outsourced your app development? In most cases you received back a final compiled app from your development partner – the same app you put into the app store after it passed your internal tests. Adding libraries requires additional work from the partner which may cause delay and in some cases, additional costs.

Using Tosca Mobile+ to Prepare Apps for Testing

With our new Service Pack 8.3.1 Release, Tosca Mobile+ delivers a tool to instrument almost any Android without the help of the development department.

Simply select the APK you want to test, either from your local drive or your device, and you can instrument your app and prepare it for test automation. This is also available as console application so that you can add it to your build process.

Of course there are some restrictions:
• Not every app can be instrumented – e.g. instrumented system apps like Google Chrome can’t be deployed (this is prevented by the mobile os).
• Stable control identifier will still have to be set by the developer.

What about iOS Apps?

It is not possible at the moment to do the same for already compiled iOS apps. The reason is mainly that the programming language ObjectiveC doesn’t allow for decompilation of the app in a way that we can add the libraries required. In addition, due to the far more restrictive app infrastructure (every app needs to be signed with a provisioning profile for the target devices), we are currently not able to repeat the same for iOS apps.

You will still need to get an instrumented version of your apps from your development partners.

Want to know more?

Click HERE for more information on testing your mobile apps with Tosca Testsuite Mobile+.