Artikel

Testadvies

Het testen van mobiele apps op mobiele devices is een vak apart. Toen ik bij Medux begon aan een testproject voor de handscanners in het magazijn, viel me op hoe weinig er online te vinden is over deze specifieke tak van sport. Over het testen van webapplicaties is een overvloed aan informatie beschikbaar: van YouTube-tutorials tot diepgaande blogs. Maar zodra je je begeeft in de wereld van native mobiele apps en fysieke devices, wordt het ineens stil.

 Kun je testautomatisering wel toepassen op een handscanner of andere device met een specifieke app? Jazeker! In dit blogartikel deel ik de inzichten die ik heb opgedaan. Wat heb je nodig om te beginnen met het testen op mobiele devices? Wat is het verschil tussen het testen van mobiele webapplicaties versus native mobiele apps, en waarom is dat verschil zo belangrijk? Ik bespreek de voor- en nadelen van testen op echte apparaten versus emulators. En ik laat zien hoe je mobiele apps kunt testen met tools zoals Robot Framework en Appium. Want ook als je werkt met gespecialiseerde mobiele devices, zijn er wel degelijk mogelijkheden om te automatiseren.

Verschil tussen tests op een browser en op een mobiele applicatie

Bij het testen van software op mobiele devices is het belangrijk om onderscheid te maken tussen het testen van mobiele webapplicaties en het testen van native of hybride mobiele applicaties. Mobiele webapplicaties worden via de browser op een mobiel apparaat geopend en delen doorgaans dezelfde codebasis als de desktopversie van de website. Hierdoor kunnen automatische tests vaak worden hergebruikt; de applicatie is immers in essentie hetzelfde, alleen aangepast aan kleinere schermformaten en touch-bediening.  

Bij het testen van mobiele applicaties ligt dat anders. Deze apps zijn meestal geschreven in andere programmeertalen (zoals Swift voor iOS of Kotlin voor Android) en functioneren los van de browser. Het zijn zelfstandige programma’s die je niet zomaar op een desktop kunt draaien. Dit vraagt om een compleet andere testaanpak, met specifieke tools en emulators of fysieke devices om gedrag, performance, installatieprocessen en interactie met hardware zoals camera of gps te kunnen testen.  

"Waar mobiele webtests vaak een uitbreiding zijn van je reguliere teststrategie, vereist het testen van apps op mobiele devices een gespecialiseerde en meer device-georiënteerde aanpak."

Automatisch testen van mobiele devices: wat heb je nodig om te kunnen beginnen?

Testautomatisering op mobiele devices lijkt op web automatisering, maar vraagt om een paar extra stappen. Waar je bij web testen vaak al uit de voeten kunt met een browser en Selenium, heb je voor het testen van mobiele devices een ander soort opstelling nodig. Dit heb je nodig:  

  • De applicatie zelf. Je hebt het installatiebestand van de app nodig (bijvoorbeeld een .apk voor Android of een .ipa voor iOS). Zorg ervoor dat je toegang hebt tot de juiste, meest recente versie van de app, vaak kan je dit opvragen bij de ontwikkelaar. 
  • Een testdevice. Dit kan een fysiek apparaat zijn, zoals een smartphone of – in mijn geval – een handscanner die via een USB-kabel met je computer wordt verbonden.  
  • Een server. De devices worden bediend via de Appium server. De server maakt het mogelijk om de testsoftware te verbinden met de devices waarop getest wordt. 
  • Een driver. Je hebt software nodig die automatische interactie met het apparaat mogelijk maakt. In het geval van Android gebruik je bijvoorbeeld UIAutomator als stuurprogramma om testacties op het device uit te voeren. 

Testen op een fysieke device of emulator: wat kies je?

Emulators zijn softwarematige simulaties van mobiele apparaten op je computer. Ze bootsen het besturingssysteem en de hardware na, waardoor je verschillende devices en OS-versies kunt testen zonder fysieke apparaten. Ideaal voor snelle, schaalbare tests en integratie in CI/CD-pipelines. 

"Emulators bieden veel flexibiliteit en schaalbaarheid, zeker in grotere of complexere testomgevingen. "

 Voordelen van emulators: 

  • Geen fysieke apparaten nodig, dit bespaart ruimte en kosten. 
  • Snel schakelen tussen verschillende modellen en OS-versies. 
  • Simuleren van netwerkcondities (slechte wifi, geen verbinding, GPS-locaties, tijdzones). 
  • Automatisering in pipelines mogelijk zonder handmatige interventie. 

 

Nadelen van emulators: 

  • Vereist veel rekenkracht van je computer. 
  • Vaak trager en minder betrouwbaar dan de echte devices. 
  • Hardware functies zoals camera, bluetooth of sensoren zijn moeilijk te simuleren. 
  • Bij specialistische devices (zoals handscanners) voldoen emulators vaak niet. 

Fysieke apparaten zijn cruciaal als je wilt testen hoe de app écht functioneert in de praktijk, vooral bij hardware afhankelijke functies. Bij Medux testten we op exact dezelfde handscanners die ook in het magazijn gebruikt worden. Zo wisten we zeker dat onze tests realistisch waren en dat wat wij zien ook daadwerkelijk de gebruikerservaring weerspiegelt. 

Wanneer kies je wat?

Gebruik een emulator als…  Gebruik een fysiek device als… 
  • Je snel wilt schakelen tussen devices/versies 
  • Je test op specifieke hardware zoals handscanners 
  • Je tests wilt integreren in een CI/CD-pipeline 
  • Je app sterk afhankelijk is van sensoren, bluetooth, camera 
  • Je netwerkcondities wilt simuleren 
  • Je exacte gebruikerservaring wilt nabootsen 
  • Je geen grote verzameling fysieke apparaten hebt 
  • Je met één specifiek device werkt 

 In de praktijk zie je vaak een mix: dagelijks testen op emulators en periodieke validatie op echte devices voor maximale betrouwbaarheid. 

Mobiel testen met Robot Framework en Appium

Je hebt een applicatie nodig die jouw teststappen uitvoert – net zoals Selenium dat doet voor browsers – en in de wereld van mobiele apps is dat Appium. Appium fungeert als een brug tussen je testcode en het mobiele apparaat (fysiek of virtueel). Het ondersteunt bijna elke programmeertaal en werkt goed samen met Robot Framework, dat een uitgebreide AppiumLibrary biedt. 

Via Appium – dat als server draait – geef je testinstructies door, bijvoorbeeld: “vind deze knop en klik erop”. Alleen: je kunt in een app niet zomaar rechtsklikken om te inspecteren wat je ziet, zoals in HTML. Daarom gebruik je de Appium Inspector: die laat je de structuur achter het scherm zien, opgebouwd in XML. 

 Die XML-structuur is je gids tijdens het testen. Net zoals je in een website via HTML kunt navigeren naar knoppen of tekstvelden, kun je dat in apps via XML. Maar mobiel testen is minder vergevingsgezind. Teruggaan? Dat moet je expliciet in je script zetten. Direct naar een andere ‘pagina’? Vergeet het maar. 

 Met eenvoudige keywords zoals Open Application, Click Element en Wait Until Page Contains bouw je intuïtieve tests. Ook typische mobiele acties als swipe, scroll en long press zijn goed te automatiseren. Soms loop je tegen beperkingen aan, bijvoorbeeld bij het bedienen van externe apps (zoals de camera). Dan kun je aanvullende tools als Android Debug Bridge (ADB) gebruiken, al vraagt dat wel extra technische kennis. 

Het belangrijkste is echter de samenwerking met je developers en inzicht in het type app en device waarop je test. Met die basis en Appium als tussenlaag kun je met Robot Framework effectief, betrouwbaar en schaalbaar mobiele apps automatiseren. 

"Mobiel testen in een logistieke omgeving met gespecialiseerde devices, zoals handscanners, is misschien complex, maar zeker niet onmogelijk."

Conclusie

Goed mobiel testen vraagt meer dan alleen de juiste tools. Zorg voor inzicht in het type app dat je test (native of web), de devices waarop je test (fysiek of virtueel), en werk nauw samen met developers om de testbaarheid van de app te vergroten. Met die basis – en Appium als tussenlaag – kun je met Robot Framework effectief en schaalbaar mobiele apps testen. 

 

Heb je vragen over dit blogartikel of het onderwerp? Aarzel niet om contact met Bartosz op te nemen. 

 

 

 

Wil je ons nieuwste Paarsz magazine per post ontvangen? Laat dan je gegevens achter.

Ontwerp zonder titel (19)

Werken bij Bartosz?

Vincent Verhelst

Geïnteresseerd in Bartosz? Dan ga ik graag met jou in gesprek. We kunnen elkaar ontmoeten met een kop koffie bij ons op kantoor. Of tijdens ontbijt, lunch, borrel of diner op een plek die jou het beste uitkomt. Jij mag het zeggen.