Mobiele apparaten zijn hard op weg om de computer voorbij te streven als favoriet applicatieplatform. In 2012 zijn er 412 miljoen mobiele telefoons die toegang hebben tot internet, tegenover 139 miljoen computers. Alleen al in de Verenigde Staten zullen organisaties 11,6 miljard dollar aan mobiele apparatuur uitgeven. Het testen van applicaties voor mobiele apparaten is echter niet eenvoudig, maar wel een must om mobiel gebruik tot een succes te maken.
Ontwikkelaars maken applicaties die mobiel bankieren of het versturen van location-based advertenties mogelijk maken. Het commerciële succes van deze applicaties hangt af van het snel en kostenefficiënt werken op verschillende handhelds en netwerken. Het testen van mobiele apparaten zorgt voor een uitbreiding in de markt. De ingewikkelde hardware- en software-omgevingen maken het testen van applicaties voor mobiele apparaten echter moeilijker dan het testen van applicaties die ontworpen zijn voor computers.
Hardware complexiteit
Bij computers hebben testers maar één centraal verwerkingsplatform waarop de applicatietests gedaan worden. De meeste andere hardwarecomponenten, zoals disk drives, grafische processors en netwerkadapters, zijn grondig getest op de juiste integratie met besturingssystemen en leveren doorgaans weinig problemen op.
Leveranciers van mobiele apparaten onderscheiden zich door het aanbieden van veel verschillende handsets, waarbij ieder apparaat unieke configuraties bevat die een onvoorspelbaar effect op de prestatie van de applicaties kunnen hebben. Handsets beschikken over een breed scala aan processors met diverse snelheden en met wisselende geheugencapaciteit. Verder hebben ze diverse schermgroottes in verschillende resolutie en afbeeldingen.
Handsets bevatten momenteel meer verschillende hardware die ook snel wordt gewijzigd, vergeleken met computers. Hieronder vallen onder andere Wi-Fi, Bluetooth, een camera en steeds vaker een gps-ontvanger. In sommige gevallen heeft het apparaat zelfs een accelerometer die de beweging van het mobiele apparaat detecteert. Veel mobiele apparaten hebben meerdere digitale signaalprocessors (één voor gesproken communicatie, en andere voor audio, video en beeld), evenals verschillende inputapparatuur zoals touch-screens en toetsenborden. De verschillende combinaties reageren allemaal anders op elkaar en op het besturingssysteem. Dit kan compatibiliteits- en capaciteitsproblemen veroorzaken.
Versplinterde markt
De markt voor besturingssystemen voor handhelds is versplinterd en verandert sneller dan die van computers. Amper vijf jaar geleden was Palm het meest gebruikte besturingssysteem voor mobiele apparaten. Op dit moment worden ze voorbij gestreefd door onder andere de iPhone OS. Dit betekent dat testers op de hoogte moeten zijn van de tools die gebruikt worden voor de continu veranderende besturingssystemen.
Applicaties moeten, om in aanmerking te komen voor certificering, worden getest op aansluiting met branche- en leverancierspecifieke standaarden. Al deze extra testvoorschriften vergroten de complexiteit, kosten en tijd die nodig zijn om een goede prestatie te garanderen.
De investeringen worden echter niet voor niets gedaan. Applicaties die het testproces goed doorlopen, komen sneller op de markt omdat er minder werk is later in het ontwikkelingsproces. Studies wijzen uit dat het vinden en oplossen van fouten na productie tot 200 keer duurder kan zijn dan tijdens een testprocedure. Goed testen helpt ook bij het vergroten van het scala aan apparaten, leveranciers en besturingssystemen waarop de applicatie kan draaien.
Gebruik van emulatoren
Ideaal gezien wordt het testen van mobiele applicaties gedaan met het apparaat dat later daadwerkelijk in gebruik wordt genomen, zodat iedere mogelijke interactie tussen hardware- en software-elementen, evenals het netwerk, kan worden getest in een nauwkeurige omgeving.
Het testen van alle apparaten is echter te ingewikkeld en te kostbaar. Emulatoren, software die de prestatie van een apparaat nabootst, zijn eenvoudiger te verkrijgen en goedkoper dan monsters van apparaten. Emulatoren zijn wellicht minder nauwkeurig dan de echte hardware, maar zijn kostenefficiënt als ze op de juiste manier worden gebruikt. Het gebruik van emulatoren tijdens de beginfase van de ontwikkeling is daarom aan te raden.
Testen in de beginfase van de ontwikkeling zorgt ervoor dat problemen vroeg in het proces worden gevonden. Hierdoor wordt er minder tijd en geld besteed aan het herschrijven van software. Het is aan te raden om te testen op nauwkeurige maar duurdere fysieke apparaten voor de acceptatie van gebruikers. Het testen van features die interageren met hardware en netwerken wordt bij voorkeur gedaan met de fysieke apparaten, omdat verborgen gebreken op deze manier het best gevonden worden.
Testprocessen
Veel organisaties die mobiele applicaties ontwikkelen zijn goed op de hoogte van de laatste technologische ontwikkelingen. Organisaties zijn vaak echter minder goed geïnformeerd over de noodzaak van goede ontwikkelings- en testprocessen. Dit betekent dat verborgen prestatieproblemen de applicaties kunnen verzwakken, ongeacht hoe aantrekkelijk ze zijn voor consumenten.
In zulke organisaties rapporteert de testgroep aan de ontwikkelaars, waardoor de onafhankelijkheid verdwijnt die nodig is voor een goede test.
Omdat ze veelal snel op de markt moeten komen, worden de meeste mobiele applicaties ontwikkeld door middel van RAD (rapid application development), waarin verschillende versies van de software snel worden ontwikkeld, beoordeeld worden door eindgebruikers en vervolgens aangepast op basis van hun feedback. Deze snelle cyclus maakt het bijna onmogelijk om te beoordelen wat de gevolgen van de veranderingen zijn voor de prestatie, stabiliteit of beveiliging. Daarom is het aan te raden gebruik te maken van een ‘V' of aangepaste V-vorm methodologie waarin wordt getest na het ontwikkelen van alle afzonderlijke codes. Hierdoor worden problemen in een vroeg stadium opgelost voordat de units met grote applicatiemodules worden gecombineerd en worden geëvalueerd door gebruikers.
Testscripts
Het ontwikkelen van mobiele applicaties betekent dat er veranderingen komen in de wijze van het bouwen van scripts voor de gebruikersinterface, functionele- en standaard controletests.
Gebruikersinterfacescripts moeten gebaseerd zijn op specificatie-eisen die zijn aangereikt door klanten. Voorbeelden hiervan zijn beschrijvingen van hoe pagina's eruit zouden moeten zien op de verschillende platforms, een toelichting op hoe User Interface-componenten worden gebruikt op verschillende apparaten, beschrijvingen van apparaatspecifieke interacties zoals het gebruik van softkeys en benodigde toetsenacties die niet direct voor de hand liggen.
Functionele testscripts moeten worden ontwikkeld op basis van systeem- of specificatie-eisen die worden aangereikt door de klant. Hieronder vallen elementen zoals input- en outputparameters, criteria betreffende menu-selectie en beschrijvingen van andere activiteiten die uniek zijn in de mobiele omgeving, zoals inkomende gesprekken.
Bij het bouwen van scripts moeten testers zich bewust zijn van certificeringsnormen die zijn ontwikkeld door providers maar zeker ook door leveranciers en complete bedrijfstakken. Een aantal van de meest belangrijke zijn aangesloten bij de Open Mobile Alliance (OMA), wiens regels alle grote handsetleveranciers naleven. Hieronder vallen gebieden als het beheer van digitale rechten, content provisioning en device management.
Andreas Golze, Head of Testing Continental Europe Cognizant
Jamo Solutions, gebaseerd in Belgie, heeft met success een test omgeving ontwikkeld die toelaat om mobiele applicaties automatisch te testen. Die verkort aanzienlijk de test fase gezien een mobiele applicatie op verschillende versies van het mobiele operating system moet getest worden en op verschillende hardware modellen. Belangrijk is om mininaal een mobiele applicatie te testen op ‘snelle’ smart phones en op ’trage’ smart phones. Zoals terecht wordt aangegeven, vervangt de emulator niet het echte apparaat. Niet alleen de snelheid is van belang, vooral het feit dat een emulator geen telefoon gesprekken of SMS of andere boodachappen kan ontvangen. Het onderbreken van een applicatie door een binnenkomend telefoongesprek kan alleen getest worden op een echt device.