App en usability tests voor je eigen mobiele app

Native mobiele app

Native mobiele app af: tijd voor usability testing

Zodra je app klaar is, is de volgende stap app testing. De app wordt getest op functionaliteit, gebruiksvriendelijkheid (usability) en compatibiliteit met verschillende apparaten en besturingssystemen.

De meeste programmeurs willen, na de ontwikkeling van hun applicatie en het bepalen van het uiteindelijke design, de applicatie natuurlijk zo snel mogelijk beschikbaar maken. Maar voordat je je software aanbiedt in de App Store, moet je eerst controleren of deze geschikt is voor verschillende omgevingen. Gangbare methodes hiervoor zijn bijvoorbeeld performance-, compatibility- en usability-tests. Deze en andere testmethodes vallen samen onder de noemer ‘mobile application-testing’ (of in het kort ‘mobile app-testing’). Verschillende app testing-tools kunnen je hierbij helpen.


Waarom is mobile app-testing belangrijk

Waarom is mobile app-testing belangrijk?

Om te zorgen dat een app succesvol is, moet deze niet alleen een overtuigende content hebben en goed op de markt worden gebracht, maar vooral ook vlekkeloos werken en gebruiksvriendelijk zijn. Daarom zijn fundamentele tests voor de release van een applicatie essentieel, of het nu gaat om een mobiele app of een desktopapplicatie.

Het testen van apps wordt echter steeds lastiger: de aanpassing aan de verschillende toestellen neemt bij (native) mobiele apps vaak beduidend meer tijd in beslag dan bij andere software. In de beginjaren van de ontwikkeling van apps was het veel eenvoudiger om deze aanpassingen te doen, omdat er maar relatief weinig verschillende soorten smartphones waren. Inmiddels is er een groot aantal mobiele toestellen op de markt met zeer veel verschillende eigenschappen. De hardware van de meeste modellen smartphones en tablets verschilt en de geïnstalleerde componenten, zoals de processor (CPU), het werkgeheugen (RAM), de beeldschermafmetingen en -resolutie zijn bepalend voor de weergave van een applicatie.

Naast de hardware speelt ook de software van mobiele toestellen een rol. Vooral de verschillende besturingssystemen van een platform beïnvloeden de weergave van een app. Met oudere besturingssystemen kan het gebruik van een app moeilijk zijn wanneer niet alle updates zijn geïnstalleerd – en het aantal verouderde versies van Android en iOS dat in gebruik is, mag niet worden onderschat. De grote hoeveelheid besturingssystemen wordt vooral duidelijk als je kijkt naar de verschillende Android-versies die in gebruik zijn: al met al wordt er meer gebruikgemaakt van oudere versies van het besturingssysteem van Google dan van de actuele versie. Dit komt ook doordat veel Android-producenten updates niet of pas laat beschikbaar stellen. Bij iOS worden de nieuwe versies van het besturingssysteem wel sneller geleverd voor iPhones en iPads, maar erg oude toestellen krijgen geen updates meer van Apple, waardoor op sommige Apple-devices ook oudere iOS-versies zitten.

De diversiteit aan hardware en software van mobiele toestellen wordt fragmentatie genoemd en vormt een grote uitdaging voor de kwaliteitsborging van de app. Op dit punt speelt mobile app-testing een rol: hiermee wordt gecontroleerd of een applicatie wel kan werken onder de verschillende condities en zo ja, of er zich problemen voordoen bij het gebruiken van de app. Het detecteren en oplossen van zulke problemen is noodzakelijk voor een optimale gebruikerservaring voor zoveel mogelijk users. Want alleen als een app een goede performance en gebruiksvriendelijkheid biedt op zoveel mogelijk mobiele toestellen, heeft deze de grootst mogelijke reikwijdte.


Hoe test je een app

Hoe test je een app?

App testing is niet altijd hetzelfde: over het algemeen zijn er verschillende manieren om de kwaliteitsborging aan te pakken. Twee centrale vragen zijn hierbij 1) wie de kwaliteit van de applicatie moet controleren (handmatige of geautomatiseerde tests) en 2) hoe de test wordt uitgevoerd (tests direct op het apparaat of via een simulator of emulator).


Handmatige vs. geautomatiseerde app tests

Handmatige app tests (uitgevoerd door users)

Handmatig testen is de klassieke variant van mobile app-testing; hierbij controleren mensen de applicatie. Omdat het testen van apps zeer veel tijd kost (vooral bij Android-apps), kan het ontwikkelaarsteam dit meestal niet zelf doen. Daarom wordt er vaak gewerkt met proefpersonen. Er wordt een groep (liefst van representatieve omvang) samengesteld die de app gebruikt volgens een vooropgesteld testscenario en deze daarna beoordeelt. Het testen met externe testpersonen heeft als voordeel dat zij geen voorkennis hebben over de werking van de applicatie en dus bij het beoordelen het oordeel van potentiële gebruikers het dichtst benaderen.

Bij handmatige mobile app-testing is ook crowdtesting een optie. Crowdtesting services bieden een poule testers, zodat de app door een specifieke doelgroep kan worden getest op hun eigen toestellen. Crowdtesting vindt dus niet plaats in een speciale testomgeving, maar in de natuurlijke omgeving van de gebruikers, wat de waarde van de testresultaten kan verhogen. Voor iOS-apps (en watchOS- en tvOS-apps) kun je de crowdtests zelf organiseren en maximaal 2000 deelnemers uitnodigen met behulp van de zogenaamde TestFlight Beta Testing. Ook Google biedt softwareontwikkelaars verschillende opties voor privé en publieke bètatests van Android-apps aan.

Geautomatiseerde app tests (uitgevoerd door app testing-tools)

In tegenstelling tot handmatige tests, worden geautomatiseerde controles vooral uitgevoerd wanneer bepaalde processen continu en onder verschillende voorwaarden moeten worden getest. Voor geautomatiseerde app tests wordt speciale software gebruikt. Het grote voordeel is de tijdbesparing; testprocedures kunnen programma’s uitvoeren in een fractie van de tijd die een menselijke gebruiker ervoor nodig heeft. De automatisering is echter niet geschikt voor alle soorten tests.

Fysieke mobiele toestellen vs. simulator/emulator

Test op fysieke mobiele toestellen

Het testen van de app op mobiele toestellen is ideaal om te begrijpen hoe een app werkt in combinatie met speciale soft- en hardware. Dit is echter behoorlijk duur en tijdrovend, omdat je een grote hoeveelheid smartphones en tablets nodig hebt voor uitgebreide tests en op elk apparaat afzonderlijk de werking van de app steeds opnieuw moet testen. Dit kan het eenvoudigst worden gerealiseerd met behulp van diverse leveranciers van mobile app-testing, waarbij je toegang krijgt tot een scala aan verschillende mobiele toestellen (vaak ‘device lab’ of ‘test lab’ genoemd) waarmee je je app kunt testen.

Test via emulator/simulator

Emulators en simulators zijn programma’s die bepaalde toestellen imiteren en waarop applicaties virtueel kunnen worden getest. De resultaten van deze tests zijn echter niet altijd 100% betrouwbaar, omdat niet alle gebruikersinteracties realistisch kunnen worden gesimuleerd. Bovendien moeten sommige tests alsnog op fysieke toestellen worden uitgevoerd, omdat de simulatie deze niet kan uitvoeren.

Simulators en emulators kunnen de tests op de fysieke toestellen weliswaar niet vervangen, maar vormen een goede aanvulling. Ze zijn vooral geschikt voor geautomatiseerde app tests. Met behulp van deze programma’s is het mogelijk om snel de functionaliteit van een applicatie met verschillende soft- en hardware te testen. Veel emulators en simulators zijn bovendien gratis verkrijgbaar, bijvoorbeeld als onderdeel van Android Studio en Apple Xcode.


Verschillende testgebieden van app testing

Verschillende testgebieden van app testing

Naast de verschillende methodes om een app te testen, zijn er ook verschillende testgebieden. De volgende vier soorten app testing vormen slechts een selectie, maar zijn voor het controleren van een mobiele app essentieel. Naast de tests die in deze paragraaf worden genoemd, bestaan ook nog security testing, localization testing en andere testsoorten en -gebieden.


Functionality testing

Met de functionality test kun je controleren of de app echt werkt zoals jij dat wilt. Tot slot worden alle app-elementen gecontroleerd op de juiste werking: elke functie, elk scherm en elke button wordt getest. Functionality testing gaat over de volgende kernvragen:

  • Kan de app eenvoudig worden geïnstalleerd en gedeïnstalleerd?
  • Functioneren alle app-elementen zoals bedoeld?
  • Werkt de app storingvrij door als hij wordt geminimaliseerd?
  • Crasht de app?
  • Ontvangt de user een relevante foutmelding als er zich fouten voordoen?

Behalve de app zelf moet je ook de werking van de applicatie in bepaalde situaties controleren:

  • Kunnen andere applicaties en functies van het toestel probleemloos worden uitgevoerd als de app is geminimaliseerd?
  • Minimaliseert de app automatisch als er wordt gebeld?
  • Worden sms’jes en andere berichten ontvangen en opgeslagen als de app in gebruik is?

Usability test

Met de app usability-test controleer je hoe gebruiksvriendelijk de bediening van de app is. Een geautomatiseerde test is dus geen optie: alleen gebruikers kunnen per slot van rekening inschatten hoe goed of slecht een app kan worden bediend. Ook het gebruik van een emulator of simulator is bij een usability test meestal niet zinvol: alleen als een applicatie praktisch wordt gebruikt, wordt duidelijk hoe de bediening, zoals swiping, scrolling en het gebruik van buttons, aanvoelt en hoe snel de app reageert. Andere aspecten die worden getest bij usability testing zijn:

  • Spreekt de bediening van de app grotendeels voor zich? Worden complexe functies uitgelegd?
  • Zijn de app-elementen zo geplaatst dat de user de belangrijkste functies eenvoudig kan vinden?
  • Is de plaatsing van de app-elementen en de lay-out van de gebruikersinterface logisch en gemakkelijk te begrijpen?
  • Zitten de buttons op de juiste plek en zijn ze groot genoeg? Houd er rekening mee dat er ook users zijn met dikkere vingers.
  • Zijn teksten duidelijk geschreven, is de formattering van de tekst goed leesbaar en niet te groot of te klein?

Usability testing moet problemen bij het gebruik van de app en tekortkomingen in de lay-out aan het licht brengen. Om overtuigende uitkomsten te krijgen, is het zaak om de usability test uit te voeren met voldoende proefpersonen. Het is ook handig als de testgebruikers (ten minste het grootste deel van hen) personen uit je doelgroep zijn. Zo kunnen het gebruik en de structuur van de lay-out direct geoptimaliseerd worden voor de doelgroep. Met de hieruit voortkomende verbeteringen kunnen programmeurs een optimale gebruikerservaring aan users bieden.


Compatibility test

De compatibiliteit van een app met de hardware en software van mobiele toestellen moet worden gecontroleerd. Wat betreft de hardware moet bijvoorbeeld de weergave van de applicatie op verschillende displays worden getest. Omdat er verschillende beeldschermafmetingen en -resoluties zijn, ontstaan er relatief snel weergave- en aanpassingsfouten, in het bijzonder wanneer er niet meerdere lay-outs van de applicatie zijn gemaakt voor de verschillende beeldschermformaten. Behalve het displayformaat, variëren ook de CPU en RAM van toestel tot toestel. Houd hierbij in gedachten dat oudere mobiele toestellen geen zeldzaamheid vormen. Als je app niet alleen geschikt is voor actuele modellen, maar ook op oudere smartphones en tablets acceptabel werkt, vergroot je daarmee automatisch de reikwijdte van je app.

Ten aanzien van de software van toestellen wordt een probleemloze weergave van de app met verschillende besturingssystemen gecontroleerd. Vooral bij een Android-app is een test van het gebruik op verschillende versies van het besturingssysteem belangrijk, omdat er veel meer verschillende versies van dit platform zijn en gebruikt worden dan bij iOS van Apple.

Met compatibility testing kunnen programmeurs testen welke hardware- en softwareversies meteen problemen opleveren bij een soepele weergave van de app. Wanneer de eisen aan de componenten van een toestel zeer hoog zijn, is het zinvol om een reductie van bepaalde systeemeisen te overwegen, omdat je doelgroep anders aanmerkelijk zou slinken.


Performance test

Performance tests controleren hoeveel systeembronnen worden verbruikt bij intensief gebruik van de app. Loopt de app gedurende lange tijd ook nog soepel of doen er zich onderbrekingen voor? Daarnaast wordt getest of de accu niet te veel wordt belast en of het apparaat niet oververhit raakt na een bepaalde gebruikstijd. Net als bij compatibiliteitstests wordt ook de prestatie van de applicatie onder bepaalde omstandigheden gecontroleerd, bijvoorbeeld of de weergave van de app verandert als er nog maar weinig geheugencapaciteit beschikbaar is of als de accu bijna leeg is. Performance testing moet aan het licht brengen in hoeverre bepaalde situaties negatief uitwerken op de prestaties van de app.

Als een of meerdere componenten bewust zwaar worden belast, wordt gesproken van een loadtest of stresstest. Een voorbeeld hiervan is de server-stresstest, waarbij de werking van de app wordt getest terwijl de server van de applicatie zwaar wordt belast. Als een applicatie een internetverbinding vereist, moet er uit een netwerk-loadtest blijken wat de gevolgen van een zwakke internetverbinding zijn voor de werking van de app. Stresstests moeten uitwijzen hoe zwaar bepaalde componenten kunnen worden belast voordat de prestaties duidelijk verminderen.


Mobiele app testing-tools

Mobiele app testing-tools

De bovengenoemde tests hoeven niet allemaal handmatig te worden uitgevoerd. Diverse testing tools vereenvoudigen vele aspecten van app testing aanzienlijk. Omdat onze meerdelige serie over het ontwikkelen van een app voor iOS en Android gaat, bespreken wij hier app testing-tools die beschikbaar zijn voor beide platforms.


Appium

Appium is een cross-platform opensourceprogramma voor testautomatisering dat gratis kan worden gedownload. Met de tool kunnen niet alleen native Android- en iOS-apps worden getest, maar hij ondersteunt voor deze beide platforms ook de testautomatisering van hybride apps en web-apps.

Appium maakt gebruik van dezelfde programmeerinterface voor zowel iOS als Android; zo kan een geschreven code eenvoudig worden hergebruikt. De tests kunnen op fysieke toestellen, emulators en simulators worden uitgevoerd. Appium is een zeer nuttige software voor het uitvoeren van geautomatiseerde app tests, hoewel het programma wel een bepaalde mate van deskundigheid vereist van de gebruiker.


Calabash

Een ander programma voor testautomatisering is Calabash, dat eveneens gratis verkrijgbaar is. In tegenstelling tot Appium kan het echter ook worden gebruikt door users zonder kennis van programmeren, maar daardoor is het functieaanbod wel duidelijk beperkter. Calabash biedt vooral app-functionaliteitstests aan die zowel op fysieke toestellen als op een simulator kunnen worden uitgevoerd. Het testing framework is ontwikkeld door de softwarefirma Xamarin, die met de Xamarin Test Cloud een app testing-platform aanbiedt dat nog veel professioneler is, maar waarvoor je ook moet betalen.


TestFairy

Op de website van TestFairy kun je je app uploaden en mensen uitnodigen voor de app test. Zij kunnen de applicatie vervolgens downloaden en gebruiken. Met TestFairy kan je zelf een crowdtest organiseren. De tool beschikt over een error reporting-functie en kan een video-opname maken van het gebruik van de app. TestFairy is beschikbaar als gratis versie en in een betaalde enterprise-versie.


Ubertesters

Ubertesters

Ubertesters is een platform dat je helpt bij de bèta testing van je app. Je hebt de volledige controle over de tests en ontvangt uitgebreide reportages. Op het platform kun je eenvoudig in een team samenwerken, programmeerfouten relatief gemakkelijk opsporen met diverse tools, verschillende testversies van een app maken en testen, en crowdtests uitvoeren (bijvoorbeeld in de vorm van functionality en usability tests). Ubertesters wordt aangeboden in verschillende pakketten, elk met verschillende functies, waarvan het pakket met de minste features gratis is.


Door app testing ontdekte fouten in de app herstellen

Door app testing ontdekte fouten in de app herstellen

Als een emulator fouten ontdekt, moet je die eerst met het fysieke apparaat controleren voordat je begint met het oplossen van de fout. Niet alle problemen die emulators vaststellen bij een app treden ook op bij het daadwerkelijke gebruik van de applicatie. Wanneer tijdens het gebruik van de app op het mobiele toestel nog altijd fouten optreden, wordt het tijd om actie te ondernemen. Maar hoe weet je wat de oorzaak van een fout is? Een exacte foutdiagnose levert het testen van apps niet op. Sommige app testing-tools kunnen je verder helpen, maar vaak zul je de problemen en storingen van de app zelf moeten analyseren. Normaal gesproken zijn ze een gevolg van een foute programmering of van het feit dat bepaalde componenten aan het toestel niet 100% compatibel zijn met de applicatie.

Als je de reden van de fout in de applicatie uiteindelijk hebt gevonden, moet je inschatten hoe belangrijk het is om het probleem op te lossen en in hoeverre dat überhaupt binnen je mogelijkheden ligt zonder dat de functionaliteit van de app daaronder lijdt. Algemene programmeerfouten mogen in de eindversie van de app natuurlijk niet meer voorkomen – alle basisfuncties (zoals de navigatie of de afbeelding van de app-content) moeten altijd goed functioneren.

De beslissing om al dan niet een fout te corrigeren, wordt een stuk lastiger als de oorzaak niet is te wijten aan een programmeerfout, maar aan een probleem met bepaalde soft- of hardware. Dat gaat meestal over achterhaalde besturingssystemen of oude danwel slecht presterende componenten van mobiele toestellen die de werking van een of meerdere app-functies vertragen of helemaal verhinderen. In zo’n geval zul je aan het eind van de app testing de resultaten nauwgezet moeten analyseren: welk hard- of software-element zou verantwoordelijk kunnen zijn voor het feit dat de functie niet naar behoren wordt uitgevoerd? Hierbij helpt vaak alleen de trial-and-error-aanpak.


Hoe hoog mogen de eisen zijn

Hoe hoog mogen de eisen zijn die worden gesteld aan hard- en software?

Je vergroot absoluut de reikwijdte van je app als je hem zo maakt, dat hij ook op veel oudere toestellen werkt. De hoeveelheid type toestellen waaraan de app zich kan aanpassen is natuurlijk wel beperkt. CPU-intensieve applicaties bijvoorbeeld, waarvan de functie een sterkere processor en/of veel werkgeheugen nodig heeft, kunnen soms niet optimaal worden voorbereid op oudere hardware. Een ander voorbeeld: als een applicatie een krachtige internetverbinding vereist, moet de app niet tegen elke prijs aan een gebruikssituatie worden aangepast waarin alleen een zwakke internetverbinding beschikbaar is.

Sommige applicaties vereisen nou eenmaal bepaalde technische omstandigheden. Zo vragen sommige applicaties om een bepaalde beeldschermafmeting. Een ander voorbeeld is de YouTube-app die alleen functioneert als de transmissiesnelheid voldoende is; en toch is het een van de meest gedownloade applicaties ooit. Aanpassingen en reducties van de functionaliteit ten gunste van een grotere reikwijdte van de app moet je alleen dan doorvoeren als de app-functionaliteit daardoor niet sterker wordt gereduceerd dan je wilt.


App testing is noodzakelijk voor de kwaliteitsborging

Samenvatting: app testing is noodzakelijk voor de kwaliteitsborging

Uitvoerig testen van je app is de laatste stap in de app-ontwikkeling. Het is arbeidsintensief, maar loont in alle opzichten de moeite: mobile app-testing draagt er idealiter aan bij dat zo veel mogelijk users jouw applicatie optimaal kunnen gebruiken. Het is belangrijk om een goede balans te vinden tussen het testen met fysieke toestellen en met emulators en/of simulators.

Als je je app nauwgezet hebt getest en geen onopgeloste fouten of tegenstrijdigheden hebt vastgesteld, of die problemen zo goed mogelijk hebt opgelost, dan is het zover: je hebt je app-idee succesvol geïmplementeerd en de applicatie kan eindelijk worden gelanceerd in de app store. Er wachten je nu echter ook nog enkele taken:

Enerzijds moet je sommige van de uitgevoerde tests regelmatig herhalen. Een regelmatige controle garandeert dat de app ook in de toekomst soepel blijft werken en dat de users de app zo goed mogelijk kunnen gebruiken. Vooral de compatibility en performance tests van de app moeten steeds weer worden uitgevoerd.

Anderzijds kost het instellen van de applicatie in de app stores van Apple en Google ook heel wat inspanning. Eerst moet je je aanmelden in de stores voor de distributie van de app. In een ander deel van onze serie artikelen behandelen we de registratie bij de Google Play Store. Daarnaast kun je na de publicatie van je app ook nog de ranking van de applicatie in de Google Play Store verbeteren.

  • Gecertificeerde veiligheid

    Gecertificeerde veiligheid
  • Beste hostingbedrijf

    Beste hostingbedrijf
  • MKB Best Choice

    MKB Best Choice
  • Professionele support

    Professionele support
  • Hosted in Germany

    Hosted in Germany