You’ve written your mobile app. It’s deployed to an app store. But how much time did you spend improving the quality of your app?
Mobile users have a low tolerance for faults. 79 percent of mobile users will only retry an app once or twice if it fails to work the first time. The quality of your mobile app will go a long way to determining the success of your app. Low-quality apps suffer from issues such as frequent crashes, poor performance and excessive battery usage. These quality issues can be identified and addressed with a quality management testing program.
The best quality-testing cycle supports continuous delivery for mobile apps. In this cycle:
The developer checks in a code update to a mobile app by uploading it to a repository.
Automated testing services are used to check the quality of the app.
Manual mobile testing is performed using test cases that are ad hoc or scripted.
After the app is released to the app store, post-release testing is performed to monitor how the app is being used and to send feedback to the developer in the event of an error.
Let’s take a look at some of the technologies that can be used to aid the following four best practices in this quality-testing cycle
1. Automate functional testing
IBM offers automated mobile app functional testing in both Rational Test Workbench V8.5 and Worklight Studio V6. Mobile app testers and developers can use this feature to record a series of interactions with a mobile app. Each of these interactions (every swipe, button press and text entry) is recorded to generate a test script. This script can be run to re-create this series of steps on the mobile device. The script can be edited to modify the sequence of steps, add or remove steps and change the parameters used in each step. The script can even be recorded on one mobile device and played back on another.
Unlike many script generation tools, the script created here is written in natural language that non-IT users can understand. This makes it easy for anybody to read and modify the test scripts.
2. Virtualize interactions with systems
Mobile application testing involves more than just testing the front-end of your mobile app. You also need to test the enterprise services that the mobile app uses. The service virtualization capability of IBM Rational Test Workbench adds a proxy between the mobile app code and the code on the servers that it invokes. This proxy is used to generate a simulation of the interaction between the app and the server. This simulation can be used as a stand-in when testing the mobile app, so you don’t have to access the real production system. Testing with a simulated server is faster, reduces costs and allows you to make changes to the server that could not be tolerated in a real production environment.
3. Capture defects with manual testing
Manual testing involves a tester performing a series of tests and reporting any defects encountered. In many cases, these defects are returned and closed by developers simply because the developer cannot re-create the problem.
This is where IBM Mobile Quality Assurance comes in. This cloud-based service, currently in beta, runs on Codename: BlueMix and provides a number of mobile quality assets. To use it, developers download an SDK and integrate it with their mobile app to create embedded intelligence. The in-app bug-reporting feature of Mobile Quality Assurance allows any user to report a bug found in a mobile app simply by shaking the mobile device. This puts the mobile device into a bug-reporting mode. The tester can take a screenshot of the mobile app in its current state, annotate the screenshot with explanations of what is happening and then submit the defect. The defect is recorded with this information, in addition to the logs generated from the tester’s interaction with the app and information about the device (such as OS version and battery level). The developer can then use all of this information to understand and fix the defect.
4. Use app ratings to determine user sentiment
Even when an app is delivered into an app store, testing does not need to stop. App store reviews provide valuable information about the quality of your mobile app. If an app has a handful of reviews, it’s easy for a tester to read these and quickly determine user sentiment. But what about an app that has hundreds, or even thousands, of reviews?
The sentiment analysis feature of Mobile Quality Assurance provides an analytics tool to assess user sentiment. Mobile Quality Assurance retrieves all the text from the app store reviews of a given app and runs analytics against 140 key words (such as fast, slow, crash, and freeze). These analytics are combined into 10 attributes based on these key words (such as the perception of app performance and the perception of the elegance of the app), and these attributes are factored into a final score. The key words, attributes and final score help you to identify where the quality issues in your app are. In addition, Mobile Quality Assurance can analyze competing apps in the same category as your app, providing each of these apps with a similar score so you can compare the quality of your app with the competition.
Have you used any of these technologies to improve the quality of your mobile apps? Are there any others that you’d recommend? Let me know in the comments or connect with me on Twitter.
IBM Redbooks Project Leader, Information Developer