What to expect from the best testing tools for mobile apps
There are many tools today available for testing mobile apps. Some of them are specific for iOS or Android environments and others suitable for any kind of operating system, both for testing with real users and for automatic tests.
The testing process is one of the essential elements when a development team has to launch a new mobile app. It is important to test every aspect of the software to avoid any problems later. Unexpected crashes, errors in key features, usability failures… Any of these reasons can justify a negative opinion in an app store. There are some really powerful tools and platforms on the market today for sharing with others a beta version of an app for testing: the higher the number of people interacting, the easier it will be to detect the bugs.
These tests can be run by real users (the app's beta version is uploaded to a platform and the user downloads it and test it) and can also be automated. Automated tests, with well-defined requirements, allow to test an app's reliability without an excessive margin for error. This is a list of the best testing solutions:
1. TestFlight Beta Testing (iOS)
TestFlight is undoubtedly the testing tool most widely used by iOS developers. Not only for testing apps for mobile devices like iPhone or iPad, but also for other products such as Apple Watch, with its watchOS operating system, and Apple TV, with TVOS. The idea is that any person with an email account can be invited to test an app's beta version. It has a limit of 2,000 beta testers.
For any user to be able to test a beta version in TestFlight, it is first necessary to create a record for the app in iTunes Connect. There are few conditions for doing so, so developers can launch projects with no problems and run all the tests they want with internal and external users. For external users to be able to test a beta version, the developer needs to provide some information about the project:
- The product to be tested
- A description of the product (app)
- Service email
- Technical support URL (in case a problem arises)
- Marketing or sales service URL
External testers always have available the beta version during 60 days for downloading it to their devices. The most logical thing is for that period never to elapse, as the programmer is always launching successive test versions with minor changes in the app.
2. Crashlytics Beta (iOS and Android)
In February 2014, one year after it was purchased by Twitter, Crashlytics launched a tool for testing apps in both iOS and Android. The testing solution is called Beta. One of its most successful features among developers, and which Crashlytics strongly recommends, is its compatibility with most integrated development environments (IDEs) for iOS and Android professionals: Xcode, Android Studio, Eclipse…
In the case of iOS, users join the beta version testing through the UDID (Unique Device Identifier), the number used by Apple to identify each of its devices. With this identifier it is very easy to register each user who wants to become a beta tester. In the case of Android, all that is needed is to install the Beta application on the device and then download the new version and test it. The tool provides developers with a control panel where they can view the beta version usage process for each tester. In this way they know who downloads each new version, who is most active in testing the product, etc. In a way, Beta enables exhaustive control of their activity.
As a result of that activity, the developer can view on the Crashlytics Issues panel all the problems experienced by the testers when they use the software. Results in term of performance, unexpected crashes… all kinds of metrics.
3. Google Play Developers Console (Android)
Android app developers are well familiar with the Google Play console for developers. Since 2014, Google Play's API enables developers to manage all kinds of services for their apps, like managing the publication of their products in the store with no problems and all kinds of benefits related to this publication. For example, notifications by email, in-app notifications, optimization suggestions in the testing phase, revenue statistics, and exporting comments from some products to others.
If developers want to launch a non-free app or implement an e-commerce site in the app, they must have a commercial account in the Google Play console (the registration fee is 25 dollars.) For this type of customers, the Google data service has a cost.
Within this console, Android developers can register a beta or alpha version of their app, and there are some essential elements: to be able to take part in an app's testing they need a Google account. Following the launch of an alpha or beta APK for testing, the version may not be available for a few hours.
4. Ubertesters (iOS and Android)
Ubertesters offers both: a QA (Quality Assurance) management tool, and also a service of global “crowd testing” so you can get access to many real testers with real devices to actually test the mobile app under real-life conditions. This solution makes available to its customers what they call crowdtesters, professionals from around the world who help a company test its new products. They are really useful tests because in the end this type of users will later consume the product, under conditions very similar to those under which the app will be tested.
- Secure over-the-air build distribution to selected individuals or pre-determined groups.
- Real-time build management, including build access control.
- A/B testing groups.
- Full video recording feature to view the exact steps done by the tester
- Screenshot capturing and editing from within the tested app itself
- Crash reporting tool with video recording and stack trace.
- Test cases support
- QA team extension with skilled certified testers worldwide.
Ubertesters offers testers from over 100 countries and endless number of different mobile devices, with all possible operating system versions. The idea is for the feedback resulting from this international testing to be used to launch a product that is totally reliable. There are all kinds of tests: localization testing, functional testing, usability testing, interrupt testing, SDK testing... It is a good solution for ruling out serious errors in all the key elements of the product.
5. Robotium (Android)
Robotium is a development framework that enables automatic tests to be run for Android apps. In a way it is a software testing environment for mobile apps, like Selenium for web sites. The tests the developer has to write to run the automatic tests (specifically, unit tests) use Java as a programming language. Coding these tests is not easy and requires a lot of time. It usually requires application developers with extensive experience in this field.
Robotium is what is known as a testing blackbox tool: it does not need to access the product's source code to check that the features have no major problems, enabling a tester (in this case the developer) to see how a specific module of the application works with the input of a set of data, and examine the output of this set of data without having to see what is happening inside.
If you are interested in testing APIs, read this article.
Sign up to the BBVAOPEN4U newsletter and receive tips, tools and the most innovative events directly in your inbox.