Let me start with an obvious statement: The whole segment of mobile apps and software is growing rapidly and localization, together with localization testing, is an important part of its successful growth. Making your apps available in multiple languages is de rigueur – a business imperative, and one made so much easier by the multilingual support and capabilities of just about any mobile operating system today (check out this infographic on smartphones and their localization).
A few friends of mine told me recently how fantastic a job it must be to do the testing of mobile devices. “You have all the cool devices in your lab, playing with them all the time, wow!” Well, they are partially right – it really is a fantastic job to help all the software companies bring their products to 100+ local markets. On the other hand, mobile devices possess many specialties which can be negligible in the world of desktop “dinosaurs”, but make the whole mobile world a bit unpredictable.
I have been thinking about the reasons why testing of mobile devices and applications is so challenging and here are my top five reasons. Can you think of more?
1. OS fragmentation
According to StatCounter, approximately 85% of computers use some version of Windows (XP or newer) in January 2013. 7% use OS X and the rest is all made up by Linux, Unix, FreeBSD, iOS, and others.
If you develop some piece of software and you want it to run under Windows, you just have to use some common techniques and your software is running on all Windows versions (forgive me, hardcore coders, for this over-simplification). This approach considerably simplifies the testing process.
The mobile sector is younger and much more fragmented, and so there are more key players here – 33% Android, 23% iOS, some 11% Symbian, Windows Phone somewhere around 3%, but there is no doubt Microsoft will increase its share.
Developers – if they want to cover most of the whole market – have to develop in multiple development environments, making the development process, including testing and localization testing, more complex.
2. Limited space for visual controls
Mouse control of the traditional computers is fast, exact and configurable. Finger control of the mobile devices is slower, clumsy and, sadly, you cannot do much with the size of your finger(s).
The User Interface has to reflect this fact, which also means you have limited space for localization specialties – you cannot resize as heavily as on a desktop. You have to apply different ways of making your text strings fit – for example by using abbreviations.
On the other hand – you can quickly reach the stage of “over-abbreviation”, where your target user would actually need to think about the meaning of the text, which is bad. The text needs to be straightforward; do not make your users think!.
3. Platform testing versus Operating System testing
On a desktop you usually do not care whether it is driven by an AMD or Intel CPU and whether the resolution is 1920×1080 or 1600×1200. And maybe even if you do care, you definitely do not care about the brand of the computer – it doesn’t matter if your users have a Dell, an HP, etc.
The situation with mobile devices is lot more complex. Say you are targeting just the Android market – but it does not matter. Producers of mobile devices usually add some “extra UI” to their Android implementation, they can pick whatever screen resolution they want, and they can add some super-hyper camera that makes their piece of hardware unique, maybe some navigation which can work with other systems than GPS…
All this means that you cannot be 100% sure that your software can work on any Android device. But this is not just an Android problem, even Windows Phone has now versions 7 and 8, which are not compatible, plus cheaper devices have only half the RAM and some apps just refuse to launch on such devices.
Another fact worth bearing in mind is that mobile operating systems are usually firmly connected to the hardware and you simply cannot install Android on a device that you purchased with Windows Phone and vice versa (well – there are cases where you can do that but these are definitely not supported and usually accompanied by multiple functional issues). It is even a bit difficult to move between versions of the same operating system – you can easily upgrade but downgrading can sometimes be not that easy.
4. Zero configurability
Most of us know that if your desktop computer does not suffice say for the latest games, you can just change your graphic card and hooray! You can add a TV tuner, a better soundcard, larger memory… But if you turn to the mobile segment – forget it. You can sell the device and buy a new, better one. The only thing you can sometimes do is to buy a bigger memory card or some Bluetooth devices (however – carrying pockets full of Bluetooth devices is not something I would consider “mobile”).
5. Virtualization, emulation
Desktop computers and their operating systems are with us for quite a few years and in the meantime the possibility of hosting multiple machines with different configurations on one physical piece of hardware improved dramatically. This is good for testing – you can have one powerful machine and deploy various systems on it in an easy way.
Mobile systems are not yet there – you have only the emulators at your disposal. And even though they are made directly by the owners of given mobile operating systems they still cannot be used to simulate 100% of the functionality of these mobile devices and in most cases you simply must involve at least a few physical devices to ensure that the software has been tested correctly and all features have been examined.
…what about costs? True, mobile devices are usually cheaper than desktops. But considering the fact that you need more of them to satisfy the project needs and to cover really everything, this advantage is clearly gone and definitely you are not saving anything. Still, mobile devices are now generally considered to be the future and the whole segment is developing at an unbelievable speed, not only devices as such but the overall ecosystem of mobile devices.
Who knows – maybe a year from now most of the points above will no longer be a challenge?