A recent mobile app survey found that a faulty app would lead a staggering 96% of users to write up a bad review, and that 44% of people would immediately delete the app. The results prove that consumers will not tolerate risky, low-quality apps that could potentially impact their phone’s normal activity.
What does this mean for the developers who are putting these apps out there? Surely they stand to lose not only their source of income, but also their reputation. So, this raises the question of why app developers don’t spend a little more time on the professional software testing of their app before it’s shipped to the general public.
In addition to the risk of alienating their first generation of users, developers also face a huge amount of competition from other app developers, and they won’t get a second chance to make that all-important first impression, should their app be faulty.
Be it a big brand, or the guy developing apps in his garage, it’s no longer good enough to maintain development processes that refuse to acknowledge a strong testing element. Without legitimate testing processes, developers can’t gain an edge over their competition. And as far as brands are concerned, a lack of testing and production of a poor-quality app can damage their brand’s reputation.
We are often told that the customer is king, and Google Play’s customer policy is no different. Customers can request a full refund within 15 minutes of downloading an app, with no questions asked. With 700,000 other apps in Google Play, can a developer really afford to miss his or her one chance of gaining customer loyalty? With all these barriers in place, the case for a thorough testing process to ensure you don’t fall at the first hurdle starts to become common sense.
Ensuring the right level of testing
One of the most crucial aspects for a developer is speed to market. But how do you strike a balance with the right level of testing? In exactly the same way as any other manufacturing process. Rigorous testing and inspection will in general not only produce a higher-quality product, but interestingly bring it more quickly to market as well.
With apps, as with any other product, speed to market is pointless if the product doesn’t work. The earlier you test, the earlier you find faults, and the earlier you fix the problem and ship to market.
The embryonic stage of an app is really the crucial time to engage the testing process. Building in a standard testing procedure at the start saves hours of work that need to be done later if the app is faulty. Also, with the increasing complexity of apps, the case for testing becomes more apparent.
Many developers, if not most, are great at development and producing a superb set of functionality, but they aren’t experts at testing—and why should they be?
In October 2012 at Apps World, the App Quality Alliance (AQuA) launched a new initiative: a Quality App Directory. It isn’t a shop and it doesn’t cost the developer to list his or her app, but to be included in the directory, the app must have gone through and passed a good QA process. What, you may ask, is “good”? And who can define that? And how can you use that to help improve your own app?
AQuA’s best-practice guidelines and testing criteria give an app developer a predefined set of tests that complement the functional testing that every good developer does as they go along. In essence, it defines for developers things that users may do to their app that they might not think to test for. There are some clear common errors that many people miss, purely through not thinking to test for them.
Add to this the increasing variety of platforms, from iOS, Android and Windows, through to Firefox, BlackBerry and Tizen. If a developer wants to ensure increased usability of the app, he or she not only has to incorporate a testing process that introduces quality from the outset, but must also ensure that the app is wholly consistent with the platform. A successful port to a new platform should involve adapting to the platform’s way of working with the UI, as well as the purely technical interfaces. This involves engaging in platform-specific testing and being consistent with the platform, and the app will automatically have an increased level of usability.
Testing for Apple and Google
Some developers regard Apple’s content policies and its technical requirements as unclear, and there can be some significant delay if the developers haven’t tested their app prior to submission. There are certainly no second chances with Apple, which runs a curated app store with a basic set of functionality tests that may not pick up on every fault and flaw in the app. Google may have a more open-door policy, enabling you to enter without testing, but if your app doesn’t work, users will get their refund and post a bad comment. If you are relying on advertising revenue, it is even more important that users carry on using the app, so good QA is a key factor in generating revenue.
In both cases, getting the level of testing right is key, and this is where AQuA’s Testing Criteria come into play. For Apple, it’s crucial that developers pass its entry functionality test, and with the help of a set of testing criteria, the risks of not gaining entry are greatly mitigated. As for Google, a fault-free app means not being discarded by millions of customers in favor of the next app in the list.
Lessons over the years
Each day sees more and more developers take their chances in an already overpopulated app market. With many brilliant ideas for apps available, one thing that sets the best developers apart is their ability to produce a true quality app: one that fits the customer’s needs and works well in its environment.
The scope and scale of the mobile app market, and the speed of comment and criticism of a poor app, mean that no developer can afford to ignore quality. Testing is the route to achieving this, and as the environment continues to change, with different devices coming out seemingly every day, so too must the developer’s attitude to testing.
What developers can really draw on is the experience of testers in the areas of software and hardware. Their experience really does count, and developers can stand tall on the shoulders of those testers who have been there and done that before. By using the experience of others, you may not necessarily end up being the hero, but you will definitely get the best job done.
Common, avoidable mistakes
Good QA can help you avoid some common pitfalls, such as the ones listed below. Don’t worry, there are ways to avoid them:
1. User interface inconsistency: Make sure menu options, button labels, “soft keys,” menus, etc. are consistent and clear.
2. Lack of clear graphics or text: Make sure all the text is readable, clear and not cut off by the edge of the screen or overlapping other screen items.
3. App browsing confusion: Although navigating through the app is obvious when you’ve been working on it for weeks or months, not everyone may find it so clear.
4. Language inconsistency and spelling errors: If you support multiple languages, make sure it is consistent and you don’t have the odd label in English hidden away. And use a spell checker!
6. Hidden features: Doing stuff behind the scenes without letting the user know will never win you any favors, even if your intentions are good.
7. App crashing: You would be surprised how many apps can be made to crash when even some simple things happen on the device. Memory cards, attachments and keyboards are common causes.
8. Help is not there: While it is obvious to some, other people may need to read help information, so providing help is a must.
9. Lack of information about network connections: Again, so many people don’t test the phone dropping out of coverage. If you miss it and the app dies when the connection drops, the user ends up rebooting their device. With new networks and more handovers between technologies, this is going to be a hot topic.
10. Screen orientation distortion: Surely everyone checks this one, right? Sadly, no. Distorted images when changing from portrait to landscape and vice versa still manage to be a common failing.
Martin Wrigley is the executive director of the App Quality Alliance.