Couple Up! Love Show Story
Native Games Studio is een indie game-ontwikkelaar die gespecialiseerd is in mobiele interactieve verhaalspellen. Opgericht in 2020 met een team van drie personen, is het uitgegroeid tot een kleine studio die Couple Up! – een simulatie van een liefdesrealityshow voor iOS- en Android-spelers – heeft uitgebracht.
Alle klantenGame Testing
We hebben de backend van de mobiele game Couple Up! getest door middel van load testing, auditing van serverconfiguraties en een diepgaande beoordeling van de API-codebase. Onze deskundige suggesties zullen hen helpen knelpunten op te lossen en ononderbroken ervaringen te bieden voor een groot aantal spelers.
Meer wetenPrestatietesten
We hebben onze klant geholpen bij het identificeren van testgevallen die ervoor zorgden dat de server moeite had om te reageren en dit met aanzienlijke vertraging deed. We hebben verschillende verbeterpunten geschetst – van het aanpassen van databaseconfiguraties tot het migreren naar een andere architectuur en het verbeteren van de kwaliteit van de API-code.
Meer wetenUitdaging
Native Games Studio wendde zich tot QAwerk om de uitdagingen van een groeiend gebruikersbestand aan te pakken. Ze wilden ervoor zorgen dat de game Couple Up! niet traag of crashend zou zijn onder een aanzienlijk toegenomen toestroom van spelers.
Dit is wat er van ons werd verwacht:
- Load Testing. We moesten verschillende API-endpoints testen, waarbij we geleidelijk serververzoeken verhoogden en de responstijd van de server bijhielden. Load testing helpt de operationele capaciteit en het breekpunt van de app te identificeren en de nodige aanpassingen te maken voordat gebruikers negatieve problemen ervaren.
- Server Configuration Audit. Onze taak was om hun Hetzner serverconfiguraties te onderzoeken, zoals het controleren op netwerkknelpunten, nginx-configuratie, auditing van Docker-containers, kernel- en service-instellingen. Dit deel werd uitgevoerd door onze DevOps-engineer.
- Code Review. We werden ook gevraagd de servercode te beoordelen en verbeterpunten aan te wijzen. We hebben deze getoetst aan criteria zoals codekwaliteit, foutafhandeling, caching en testbaarheid. Aangezien de code een REST API was, gebouwd met Flask, werd deze beoordeeld door onze senior Python-ontwikkelaar.
Voordat we met het project begonnen, hebben we het Couple Up!-team een inschatting van onze inspanningen gegeven om duidelijkheid en transparantie in onze samenwerking te brengen. We vroegen hen ook om de gaten in de API-documentatie aan te vullen, zodat we een nauwkeurig beeld hadden van de onderliggende infrastructuur.
Oplossing
Loadtesten
We hebben één GET- en drie POST API-aanroepen getest om hun prestaties onder wisselende belastingsomstandigheden te meten. Loadtesten wordt meestal gedaan met behulp van een tool die simuleert hoeveel verschillende gebruikers tegelijkertijd met uw app interageren of een sequentiële toename in de vraag van de app. Onze QA-ingenieurs kozen Apache JMeter omdat het een betrouwbare open-source tool is, speciaal ontworpen om loadtesten snel maar effectief te maken.
Een probleem waar we tegenaan liepen, was een onjuiste beschrijving van API-headers. Deze laatste zijn essentieel bij API-testen omdat ze metadata bevatten over het API-verzoek en de respons. Ze helpen de API ook om uw verzoek te begrijpen en de exacte informatie in het gewenste formaat op te halen.
Dit probleem hebben we opgelost door een script te schrijven waarmee we de verzoeken in JMeter correct konden beschrijven. Na analyse van het systeem, de verwachte en piekbelasting, hebben we de respectievelijke testgegevenparameters ingesteld.
Hier zijn de testgevallen die we hebben gebruikt:
- Voeg 1 thread (gebruiker) toe in 1 sec
- Voeg 100 threads (gebruikers) toe in 1 sec
- Voeg 1000 threads (gebruikers) toe in 10 sec
- Voeg 10000 threads (gebruikers) toe in 1000 sec
We hebben de prestaties van de server gemeten in termen van responstijden over tijd, actieve threads over tijd en foutpercentages van interne serverfouten.
Serverconfiguratie-audit
Onze audit van de serverconfiguratie was gericht op het identificeren van mogelijkheden voor het verbeteren van de serverprestaties. Aangezien mongod-processen de belangrijkste CPU- en RAM-belasting op de server veroorzaken, moet hun werk worden geoptimaliseerd.
We hebben het Couple Up! Team voorzien van een lijst met exacte configuraties die moesten worden ingesteld. We hebben bijvoorbeeld uiteengezet hoe Linux kernelinstellingen, zoals max map count, swappiness, dirty_ratio, max aantal wachtende verbindingen, lokale poortbereik en diverse andere, aangepast kunnen worden in relatie tot de verwachte belasting van 50K verbindingen.
Om de CPU- en RAM-belasting te verminderen, adviseerden we onze klant om te controleren hoe queries worden gevormd en langzame queries te optimaliseren en queries van hetzelfde type te paralleliseren. We stelden ook voor om regelmatig bevraagde velden te indexeren en opnieuw te indexeren, en dit tijdig te doen. Met de juiste indexeringsstrategie kunt u uw databaseprestaties aanzienlijk verbeteren.
Daarnaast hebben we aangegeven welke standaardconfiguraties gewijzigd moesten worden en hoe.
Codereview
Het QAwerk-team heeft een uitgebreide codereview uitgevoerd en Couple Up! voorzien van snelle en kosteneffectieve actiepunten, evenals belangrijke architecturale wijzigingen voor betere prestaties en schaalbaarheid op lange termijn.
We hebben de gebieden die refactoring nodig hadden belicht om de ontwikkelaars van Couple Up! te helpen de code in de toekomst zonder problemen te onderhouden, nieuwe bedrijfslogica toe te voegen en te schalen. We merkten de noodzaak op van unit- en integratietests, omdat deze refactoring en uitbreiding van de codebase gemakkelijker zullen maken.
Ook hebben we aanbevolen de foutafhandeling te verbeteren, zodat de foutmeldingen informatief waren en altijd de juiste statuscodes toonden. Dit zou het debuggen en testen vereenvoudigen en helpen bij het standaardiseren van de communicatie van de app met de API.
Juiste caching kan de prestaties aanzienlijk verbeteren voor een fractie van de kosten vergeleken met migreren naar Amazon. Daarom hebben we onze klant aangeboden om caching te implementeren.
Last but certainly not least is de CI/CD-pipeline. In geval van geplande frequente releases is CI/CD essentieel voor het opsporen van bugs voordat updates worden uitgerold en voor het versnellen van de levering van nieuwe functionaliteiten aan gebruikers. Dus CI/CD-setup stond ook op de lijst van onze aanbevelingen.
Bugs Gevonden
Onze load testing-resultaten toonden aan dat de server moeite had met het verwerken van een scherpe toename van het aantal gebruikers in korte tijd, wat resulteerde in systeembalans, lange responstijden en interne serverfouten.

Werkelijk resultaat: Bij het toevoegen van 1000 gebruikers in 10 seconden duurt de verwerking van de meeste API-verzoeken langer dan 3 seconden, met uitschieters tot 27 seconden.
Verwacht resultaat: De responstijd van de server mag niet langer dan 3 seconden zijn, ongeacht de uitgevoerde testcase.

Werkelijk resultaat: Bij het toevoegen van 10.000 gebruikers in 1000 seconden hebben de meeste API-verzoeken normale responstijden, maar we zien terugkerende pieken die soms oplopen tot boven de 6 seconden.
Verwacht resultaat: Er mogen geen drastische pieken in de responstijden van de server zijn; de lijngrafiek moet neigen naar nul op de as voor responstijden.

Werkelijk resultaat: Het prestatie testrapport toont aan dat 20% van de serververzoeken in het geval van 1000 gebruikers die in 10 seconden worden toegevoegd, de statuscode 500, een interne serverfout, teruggeven.
Verwacht resultaat: Het foutenpercentage van de server moet neigen naar 0% om verlies van de voortgang van spelers te voorkomen en een meeslepende ervaring te garanderen.
Resultaat
QAwerk heeft Couple Up! een gedetailleerd load testing-rapport en een stapsgewijs actieplan verstrekt om de serverprestaties te verbeteren en het aantal fouten te verminderen. We hebben onze aanbevelingen bewust opgesplitst in snelle oplossingen en grote architecturale veranderingen. Snelle oplossingen zijn eenvoudig en kosteneffectief te implementeren en bieden directe prestatievoordelen. Daarentegen zou de vernieuwde cloudarchitectuur helpen om de belasting automatisch te balanceren en gegevens dichter bij de doelgroep op te slaan, waardoor latentie wordt verminderd en andere prestatieproblemen worden geëlimineerd.
Aangezien we managed services leveren, ontving het Couple Up!-team gedetailleerde feedback en deskundig advies van drie specialisten – onze QA-ingenieur, Python-ontwikkelaar en DevOps-engineer. De inzichten die we deelden, zullen Native Games Studio helpen de game Couple Up! voor te bereiden op de groeiende gebruikersbasis en nieuwe games te ontwikkelen met de juiste architectuur vanaf het begin.
Kan uw app plotselinge verkeerspieken aan?
Laten we pratenHulpmiddelen
QAwerk Team Commentaren
Alexander
QA-ingenieur
Ik heb API load testing uitgevoerd voor de geselecteerde verzoeken met behulp van JMeter, een van de meest stabiele en kwalitatieve tools hiervoor. Ik heb mijn expertise op het gebied van load testing uitgebreid door nieuwe typen metrieken te gebruiken en nauw samen te werken met ontwikkelaars om het probleem met headers op te lossen.
Anton
Developer
Ik heb de code review van het project uitgevoerd. Mijn grootste zorg was dat de veelgebruikte softwareontwerppatronen en principes voor codekwaliteit niet werden gevolgd, wat het onderhoud en de implementatie van nieuwe functies bemoeilijkte. De beste oplossing zou zijn om de code te herschrijven en de taak toe te wijzen aan een ontwikkelaar die goed thuis is in Python.

Gerelateerd op de Blog
Top tools voor het testen van de prestaties van mobiele apps
Ontwikkelaars zien app performance testing vaak als een noodzakelijk kwaad. Het is ongetwijfeld een ingewikkeld, tijdrovend en kostbaar proces. Maar waarom is mobiele performance testing zo cruciaal? Deze vraag doet me denken aan mijn favoriete citaat van Ian Molyneaux: “Als ...
Lees meer
Praktische tips voor prestatietests: wat u moet weten?
Vandaag de dag is de functionaliteit van een product ongetwijfeld een belangrijk en integraal onderdeel van het testproces. Maar er zijn ook reactietijd, betrouwbaarheid, bronnengebruik en schaalbaarheid die er...
Lees meerOnder de indruk?
Huur ons inAndere casestudy's
Unfold
We hebben deze crashende storymaker getransformeerd tot een volwaardig contentcreatieplatform, dat nu een miljard gebruikers heeft en is overgenomen door SquareSpace
Magic Mountain
We hebben de nummer 1 sociale fitnessapp van het VK in staat gesteld om van een MVP naar een Premium-aanbod te gaan, en hun abonnementen groeien dagelijks
Logo Maker Shop
Hielp Logo & Brand Story Design App succesvol te debuteren op Google Play en bereikte snel 10.000 installaties
