Automatisch testen van een mobiele app op wel 100 apparaten tegelijk

Joost

Geschreven door Joost Saanen op 12-1-2017
4 minuten leestijd

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.

aws device farm

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:

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.

Joost

Joost Saanen

Gepassioneerde all-rounder met brede interesses; van serverbeheer en cloudhosting tot (UI)design en (web)development. Hardloopt en schrijft het liefst tegelijk.