Van 0 naar 1.000.000 gebruikers in één release: Wie is de Mol app
Wie is de Mol? is een instituut binnen Nederland. Naast de miljoenen wekelijkse televisiekijkers, wordt de show door een miljoen appgebruikers meegespeeld op zowel iOS als Android telefoons. Met deze app vergroot AVROTROS de betrokkenheid bij Wie is de Mol?. Polteq testte de nieuwe, door Q42 ontwikkelde, app.
Grote uitdagingen
De eerste testuitdaging voor Polteq lag in het grote aantal verwachte gebruikers. Direct na de lancering van de app, en vóór de eerste uitzending, maken veel mensen een account aan en nodigen ze vrienden uit om samen het verdenkingsspel te spelen. Daarom moest de nieuwe app direct een enorme piekbelasting aankunnen.
Een tweede uitdaging was dat tijdens de ontwikkeling van de app het verloop van de spelshow nog onbekend was. Hierdoor moesten alle mogelijke scenario’s zowel in de app als in de backend worden getest.
De derde grote uitdaging was het ‘first time right’-principe: de app kent slechts één release bij de start van het seizoen. Na de release moest alles meteen vlekkeloos draaien voor miljoenen gebruikers.
Ten slotte moest de app ook realtime data leveren, zoals statistieken voor de landelijke molverdenkingen ten behoeve van het praatprogramma Moltalk.
Polteq is trots op de vlekkeloos draaiende app, die bij aanvang van het seizoen een nummer 1 positie behaalde in de lijst met meest gedownloade apps.
Technische test achtergrond
Al jarenlang behoort Wie is de Mol? (WIDM) tot de best bekeken programma’s op televisie, en al die tijd kunnen kijkers thuis meespelen met de bijbehorende app. In 2023 is besloten om de app opnieuw te laten bouwen, zowel qua frontend als backend. Polteq heeft deze vernieuwde app uitvoerig getest, waarbij wij de rol van de Mol op ons namen en probeerden om de app te saboteren.
Voor deze nieuwe app heeft AVROTROS de digitale agency Q42 de opdracht gegeven om een moderne app te bouwen met een strakke uitstraling en een grote stabiliteit. Bovendien moest de app toekomstbestendig zijn en een groeiend aantal gebruikers aankunnen. Zowel de iOS- als Android-apps werden volledig opnieuw ontwikkeld, evenals de gehele backend die nodig was voor onder andere registraties en puntenberekeningen. Dit alles moest worden gerealiseerd binnen een strakke deadline, aangezien de app perfect moest functioneren voordat hij in de app stores zou verschijnen en nog belangrijker: voordat de eerste aflevering op televisie zou worden uitgezonden. Dit vereiste een strakke planning en veel, heel veel testen.
Om dit project tot een succes te maken, bestond het dreamteam uit de product owner en designer van AVROTROS, twee Android-developers, twee iOS-developers en twee backend developers van Q42. Vanuit Polteq zijn we gestart met twee testers, één voor de native apps en één voor de performance testen van de backend.
Uitgebreide backend testen
Er zijn performance- en stresstests uitgevoerd, zowel op de backend om bottlenecks te identificeren als in combinatie met het gebruik van de app om het gedrag van de app tijdens piekbelasting te testen. De kernvraag van de performance test was: kan de backend van de app, inclusief de API en database, de verwachte load van gebruikers aan? Om dit te testen zijn de verwachte aantallen verder uitgewerkt in drie afleveringen met elk hun eigen loadtestscripts en loadprofielen. Elke episode vertegenwoordigde een piekmoment in het WIDM-seizoen: a. aflevering één, b. aflevering X, c. finale. Voor elke episode werden de benodigde API end points verzameld in een script en vervolgens stapsgewijs onder load gezet.
Deze stappen waren:
- Baseline (validatie load profielen inrichting)
- Increment (onder load zetten backend)
- Piek (echte load test) met 1.000.000 gebruikers
- Stress test (wanneer gaat backend onderuit)
Om de benodigde load te kunnen simuleren, is in de Google Cloud-omgeving een groep virtuele machines gecreëerd. Deze machines zijn volledig zelf ingericht om de load te genereren zonder zelf te bezwijken onder de druk.
Een tweede uitdaging was dat het API bestond uit gRPC-end points in plaats van de standaard REST HTTP-end points. Dit protocol vereiste een overstap van JMeter naar de K6-performance tooling.
Een derde uitdaging lag in het delen van testdata zoals registraties, authenticatietokens, pools en join-tokens. Op elke virtuele machine draaide Docker met Redis om lijsten met testgegevens op te slaan en op te halen. Een leuke extra uitdaging was dat het aantal pools en de hoeveelheid deelnemers in een pool de gewenste statistieken moesten volgen.
Een vierde uitdaging was dat de gehele backend opnieuw is opgebouwd met nieuwe end points, waardoor de belasting van voorgaande jaren niet kon dienen als voorbeeld voor het maken van loadprofielen.
De performancetest is parallel aan de ontwikkeling van de app en backend uitgevoerd, zodat de eerste tests zo vroeg mogelijk konden worden uitgevoerd en er genoeg tijd was om te begrijpen hoe het systeem zich onder belasting gedraagt, en om alle benodigde tests uit te voeren.
In totaal zijn er meer dan vijftig loadtests uitgevoerd, ook in combinatie met de Android- en iOS-app, om het gedrag bij verwachte belasting tot 1.000.000 gebruikers tijdens de verschillende episodes te valideren en advies te geven over welke opschaling nodig is om de load te kunnen opvangen.
Volledige flexibiliteit, want niets is wat het lijkt!
Voor de gebruikersacceptatietests heeft Polteq templates geschreven waarmee elk mogelijk scenario kan worden getest door slechts enkele aanpassingen aan de instellingen door te voeren. Dankzij deze templates is de test-suite net zo dynamisch als het programma zelf en kan door iedereen worden gebruikt.
In tegenstelling tot de deelnemers die onverwacht terugkeren na af te zijn gevallen, kreeg de vernieuwde app geen tweede kans. Bij de lancering moest de app meteen 100% goed functioneren; er is geen ruimte voor updates gedurende het seizoen. Om ervoor te zorgen dat de app daadwerkelijk goed zou werken op de telefoons van de gebruikers, heeft Polteq een grondige device analyse uitgevoerd om een beeld te krijgen van de toestellen die door alle gebruikers van de WIDM-app worden gebruikt. Op basis hiervan hebben we een mobiel testlab samengesteld om te testen met een representatieve selectie van de gebruikersbase.
Gedurende de ontwikkeling van het project hield het volledige team wekelijks testsessies met deze apparaten in de hand, waarbij we delen of volledige seizoenen speelden. Bij elke iteratie werd extra functionaliteit toegevoegd, waarbij extra aandacht werd besteed aan deze toevoegingen. Naarmate de app steeds complexer werd, maakten we steeds vaker gebruik van scenario’s om ervoor te zorgen dat elk aspect van de app werd getest gedurende zijn seizoen doorloop. Met de naderende deadline heeft Polteq bovendien geholpen door op te schalen en vier extra mobile testers in te zetten om extra seizoen doorlopen te testen. Op deze manier kon Polteq de developers ondersteunen door werk uit handen te nemen zonder dat dit ten koste ging van de kwaliteit.
Al met al heeft Polteq kunnen bijdragen aan het succes van de app middels:
- Native app testen
- Mobiel testlab
- Device analyse API testen
- Performance testen
- Security review
- Gebruikers Acceptatie Testen
Polteq is in staat is om een mobile app op alle aspecten van het proces te testen!
De volgende diensten zijn gebruikt voor deze case:
“Wat een fantastisch begin van het nieuwe WIDM seizoen met de compleet vernieuwde WIDM app. Een vlekkeloze start met een record aantal spelers voor de eerste aflevering.”
Finus Tromp – hoofd interactieve Media AVROTROS