NatureSpy: hardware simulatie in mobiele testautomatisering
NatureSpy is een non-profit uit het Verenigd Koninkrijk die natuurbehoud en technologie op een unieke manier combineert. Hun model is krachtig: de verkoop van hoogwaardige wildlife camera’s financiert direct hun conservatieprojecten. Met een team van biologen en meer dan tien jaar veldervaring zetten ze technologie in voor duurzame natuurbeleving en bescherming. Elke camera en app-functie is erop gericht om natuur toegankelijk te maken, zonder deze te verstoren.
Het project liep via Q42, een vaste klant van Polteq. Q42 ontwikkelt software voor NatureSpy en schakelde Polteq in om de kwaliteit van de mobiele apps te waarborgen. Onze twee testspecialisten draaiden volledig mee in het scrumteam, van refinements tot retro’s. Zo konden testscenario’s direct aansluiten op de ontwikkeling en werd kwaliteit een gedeelde verantwoordelijkheid binnen het team.
Uitdaging: mobile app testen zonder fysieke camera
De Android- en iOS-apps van NatureSpy maken het mogelijk om camera’s te koppelen en functies als motion detectie en een bird identifier te gebruiken. Omdat de apps afhankelijk zijn van fysieke camera’s, bleek handmatig testen al snel tijdrovend en foutgevoelig. De kernvraag: hoe maak je dit testproces schaalbaar, betrouwbaar en herhaalbaar, zonder altijd hardware nodig te hebben?
Hardware mocking centraal
Samen met de developers van Q42 werden mockcamera’s en mockscenario’s opgezet. Deze bootsen het koppelen en gebruik van een camera na, inclusief het teruggeven van testbeelden. Polteq integreerde deze mocks in het testframework en gebruikte ze om realistische scenario’s automatisch te doorlopen. Zo konden alle cruciale functies — van koppeling tot beeldverwerking — volledig geautomatiseerd getest worden, zonder afhankelijkheid van echte camera’s.

Data-driven testen met JSON-profielen
De kracht van de aanpak lag in het testdatadriven werken. Alle camera’s, gebruikersprofielen en events werden vastgelegd in JSON-bestanden, waardoor uiteenlopende scenario’s eenvoudig te configureren en herhalen waren. Zo konden we variëren met verschillende typen camera’s, accounts en koppelingssituaties, zonder de structuur van het framework te hoeven aanpassen.
Daarnaast werden JSON-bestanden gebruikt om de cameraviews te vullen met mockdata. Daarmee konden activity- en playback-events realistisch worden nagebootst, inclusief gesimuleerde beelden en video’s. Denk bijvoorbeeld aan een motion detection-event of het terugkijken van een opname, volledig zonder dat er een fysieke camera beschikbaar hoefde te zijn. Zo testten we niet alleen de functionele logica van de apps met realistische data, maar valideerden we ook de gebruikerservaring in de interface.
Elke test kon vervolgens in verschillende configuraties worden uitgevoerd door eenvoudigweg andere JSON-data te selecteren. Dit maakte het framework flexibel, schaalbaar en toekomstbestendig, én eenvoudig uitbreidbaar naar nieuwe scenario’s
Één set scenario’s, twee platforms
Voor zowel Android (Kotlin/Compose) als iOS (Swift/XCUI) werd een apart testframework opgezet, beide gebaseerd op Cucumber. De scenario’s zijn geschreven in Gherkin, zodat ook de business en product owner de testcases konden begrijpen. Dezelfde feature files werden gebruikt voor beide platforms. Beide frameworks zijn opgezet met het Page Object Model (POM), data-driven principes en BDD. Daarmee ontstond een uniforme en onderhoudbare manier van testen, die de samenwerking met developers vereenvoudigde en de efficiëntie verhoogde.
Regressie in de cloud, validatie met echt hardware
Alle automatische regressietests draaien via GitHub Actions op simulators, waardoor issues direct na elke codewijziging zichtbaar worden. Aanvullend testten we de apps op echte devices, zowel met als zonder gekoppelde camera’s. Zo werd de automation suite gevalideerd én kwamen belangrijke UI- en UX-issues aan het licht die je alleen handmatig ontdekt.
Voor dit project konden we gebruikmaken van de devices van Q42, waardoor er geen extra testlab nodig was. Wel is er altijd de mogelijkheid om gebruik te maken van het Polteq Mobile Testlab, waarin een breed scala aan fysieke toestellen beschikbaar is.
Resultaat: betrouwbaarheid en vertrouwen
Dankzij deze aanpak zijn de apps van NatureSpy aanzienlijk betrouwbaarder en toekomstbestendiger geworden. Nieuwe functies kunnen met vertrouwen worden uitgerold, terwijl gebruikers verzekerd zijn van stabiele apps die hun camera’s correct koppelen en natuurwaarnemingen betrouwbaar ondersteunen. Voor NatureSpy betekent dit dat hun
maatschappelijke missie — technologie inzetten voor natuurbehoud en verbinding met de natuur — sterker gefundeerd is dan ooit.
De volgende diensten zijn gebruikt voor deze case:
“De automatische UI test setup van Mats en Ibrahim voor Android en iOS integreert perfect in onze apps, is onderhoudbaar opgezet en kan makkelijk uitgebreid worden door slim gebruik van diverse tools en technieken. De samenwerking tussen het testteam en developers was goed en versterkt de algemene focus op kwaliteit van de app.”
Willem van Vliet, projectleider Q42