Geschreven door Joost Saanen op 12-1-2017
Tegenwoordig zijn er miljoenen apps beschikbaar in de app store en google play. Door dit enorme aanbod is er veel concurrentie tussen apps onderling. Dat wil ook zeggen dat gebruikers kunnen kiezen uit legio apps die bijna allemaal hetzelfde doen — en deze gebruikers zullen ook snel switchen wanneer een app niet precies doet wat ze willen. Wat voor soort device er ook gebruikt wordt (Android, iPhone of tablet), het is belangrijk dat de app goed werkt en dat de gebruiker er meteen een goed gevoel bij heeft. Je wilt bijvoorbeeld niet dat de app na een aantal klikken crasht of fouten (bugs) vertoond. Het gevolg van bugs in een app kan zijn dat gebruikers afhaken en op zoek gaan naar een alternatief. Dit is spijtig. Want zoals voor veel dingen geldt: je hebt maar één eerste kans.
Kijk je naar bedrijfskritische apps, dan zijn de gevolgen van bugs nog groter. Denk hierbij aan een situatie waar een app helemaal niet werkt, waardoor het bedrijfsproces ernstig verstoord wordt.
Maar hoe beperk je dit soort problemen tot een minimum?
Het belangrijkste is door het toevoegen van (geautomatiseerde) software testen tijdens het ontwikkelproces. Tijdens het ontwikkelen worden deze testen voortdurend uitgevoerd, zodat een developer weet dat alle functionaliteiten blijven werken wanneer hij bezig is met het aanpassen van de programmeercode.
Maar dit geeft nog niet de zekerheid dat de app ook op alle apparaten gaat werken.
Voordat een app gesubmit wordt naar een store, wil je eigenlijk dat deze op alle apparaten getest is. Het is praktisch onmogelijk om al deze devices in je inventaris te hebben. Afgezien daarvan, is het handmatig testen op al deze verschillende devices een enorm tijdrovende klus. En tijd kost geld. Ook is handmatig testen is een menselijke taak en waar mensen zijn… worden fouten gemaakt.
Een niet goed of onvolledig geteste app in de app store of google play is uit den boze!
Testen op een iOS of Android simulator kan helpen, maar de ervaring leert dat dit vaak niet voldoende is. Een app die werkt in een simulator kan ander gedrag vertonen op het echte device.
Automatische testen op echte apparaten is hiervoor een oplossing. En nee, dit zijn geen simulators.

Automatisch testen in de cloud
Zoals ik al eerder schreef is Amazon een grote speler op het gebied van hosting. Amazon AWS biedt veel verschillende soorten diensten aan. Eerder schreven we al eens een artikel over het maken van backups met Amazon S3. Maar sinds 2015 heeft Amazon een nieuwe service beschikbaar gesteld die erg waardevol kan zijn tijdens het ontwikkelproces van een app: AWS Device Farm
Heb je expertise nodig op het gebied van hosten met Amazon AWS, neem dan contact met ons op.
AWS Device Farm
AWS Device Farm is een service waarmee je een gebouwde app kan testen op verschillende echte apparaten. De twee belangrijkste mogelijkheden die AWS Device Farm biedt zijn:
1. Remote toegang tot devices.
De meeste bekende smartphones en tablets (iOS en Android) worden ondersteund. Op deze manier kan er altijd handmatig worden getest op zo’n 50 verschillende mobiele telefoons of tablets. Ook kan dit worden gebruikt voor het realtime debuggen van een probleem dat zich op één specifiek apparaat (bijv. ASUS Nexus 7 - 2nd Gen met Android 5.0) voordoet. Ideaal!
2. Automatisch testen
Hier wordt bedoeld het automatisch testen van een app op verschillende devices. In AWS Devicefarm worden er verschillende testframeworks ondersteunt. Enkele voorbeelden: Appium Java, JUnit, Calabash, UIAutomation en XCTest. Gebruik je deze frameworks tijdens bij het development-proces, dan zul je dezelfde testen ook bij AWS Device Farm kunnen gebruiken.
Maar een app mag alleen gereleased worden of in de store geplaatst worden wanneer alle testen slagen, toch? Wanneer deze stap wordt toegevoegd aan het release-proces van een app, zal de app bijvoorbeeld eerst op 50 verschillende devices worden getest, alvorens deze gemarkeerd wordt als ‘klaar voor release’. Stel Samsung brengt een nieuw type smartphone uit, dan hoeft deze alleen maar aan de lijst te worden toegevoegd en wordt de app dus op 51 devices getest. Je bent dan ook verzekerd dat de app gaat werken op de nieuwe telefoon.
Wanneer een test faalt kun je een uitgebreide error-log bekijken. Ook zijn er screenshots gemaakt en zijn er zelfs video’s te bekijken van de tests.
AWS Device Farm is tot op dit moment de meest simpele, gebruiksvriendelijke maar ook meest uitgebreide cloudoplossing op het gebied van device testing.
Toch zijn er ook andere alternatieven op de markt die in sommige gevallen ook de moeite waard zijn:
- Firebase Test Lab van Google (deze heeft helaas alleen support voor Android),
- Xamarin Test Cloud (Voornamelijk microsoft-based en geen mogelijkheid tot remote login).
Conclusie
Kabisa heeft ervaring met het testen van apps in de cloud en maakt hierbij veelvuldig gebruik van AWS Devicefarm. Wij kunnen ook ondersteunen in automatische test-oplossingen wanneer we de app niet zelf hebben ontwikkeld. We noemen dit ook wel TaaS (Testing as a Service). Kortom, mogelijkheden ten over!
Automatisch test op echte devices is een must voor iedere serieuze app. Op deze manier ben je verzekerd van een app die werkt op honderden verschillende devices. Dus zoek je een partij die je kan helpen bij het verbeteren van de algemene kwaliteit van een app? Of het nou een native Android, native iOS, hybride app of een webapplicatie is, neem contact met ons op en wij helpen je graag verder.
Vragen?
Heb je vragen naar aanleiding van dit artikel? Neem gerust contact met ons op!
(of stuur een bericht)+31 495 430 798
Joost Saanenstuur bericht