Naar de inhoud

Browser-, API- en databasetijden juist koppelen

Een denkbeeldige lijstaanvraag verbindt meetgrenzen met een aanvraagkenmerk, zodat inbegrepen tijden niet dubbel worden geteld.

Philipp Reuter2 min leestijd
Stopwatch met rode wijzer naast een lange grijze voortgangsbalk met een kort rood deel.

Een traag scherm laat nog niet zien waar tijd verloren gaat. Voor gericht onderzoek moeten ontwikkeling en beheer dezelfde taak, dezelfde aanvraag en duidelijk benoemde meetgrenzen gebruiken.

Het volgende voorbeeld is volledig hypothetisch. Kenmerk req-17, alle tijden en de querystructuur zijn verzonnen. Er is geen klantsysteem gemeten.

Een concrete aanvraag afbakenen

Hier laadt een portaal een bestellijst met 20 regels. Deze veronderstelde meetwaarden horen bij de aanvraag:

Meetpunt

Veronderstelde duur

Wat wordt gemeten

Browser

2400 ms

Laden van de API-resource tot de volledige ontvangst van het antwoord

API

2300 ms

Verwerking van de aanvraag in de server

Databasetoegang

2100 ms

Som van databaseaanroepen die hier achtereenvolgens binnen de verwerking worden uitgevoerd

Databasetijd zit in servertijd, die weer in het ophalen van de resource zit. Optellen telt inbegrepen tijd dubbel. Bij parallelle aanroepen kan de som bovendien groter zijn dan de verstreken tijd.

Absolute starttijdstippen van browser en server zijn zonder passende tijdbasis niet zomaar van elkaar af te trekken. Gebruik duidelijk afgebakende tijdsduren en een navolgbare koppeling aan dezelfde aanvraag.

Het opvallende deel nader onderzoeken

Het verzonnen proces doet 21 databaseaanroepen: een lijstquery en daarna een detailquery per regel. Dat maakt de herhaalde toegang een concreet onderzoekspunt. Alleen een hoog aantal query’s zou die structuur niet bewijzen; hier is ze expliciet deel van het voorbeeld.

Onderzoek welke informatie de weergave werkelijk nodig heeft. Een begrensde gezamenlijke ophaalactie kan een mogelijke wijziging zijn. Ze moet dezelfde toegestane records opleveren. Daaruit volgt niet dat alle gegevens in een enorme query moeten worden opgehaald.

De browserwaarde eindigt bij ontvangst van de resource. Ze bewijst niet dat het scherm dan bruikbaar is. Blijft het geblokkeerd, dan vragen verwerking, weergave en andere resources om afzonderlijk onderzoek.

Onder vergelijkbare omstandigheden toetsen

Noteer softwareversie, taak, hoeveelheid gegevens, filters en rechtenbereik. Gelijktijdige belasting en cachestatus horen erbij. Een lege en een gevulde cache kunnen verschillende uitkomsten geven.

Herhaal het proces vóór en na de wijziging onder passende omstandigheden. Controleer resultaat en toegangsgrenzen naast de tijd. Eén uitzonderlijk snelle aanvraag bewijst geen algemene verbetering.

Technische meetwaarden vragen om gecontroleerde toegang; klantinhoud is voor deze notitie niet nodig. Het onderzoek moet een onderbouwde volgende wijziging met duidelijke omvang opleveren, geen algemeen oordeel over de snelheid van de hele applicatie.

Bronnen

Geschreven door

  • Philipp ReuterRedacteur softwarekwaliteitPhilipp Reuter schrijft bij ASES over softwaretests en de voorbereiding van nieuwe releases. Zijn artikelen gaan over foutanalyse, acceptatietests en het controleren van wijzigingen in bestaande applicaties.

ASES volgen

Verder lezen

Alle artikelen

Softwareontwikkeling met ASES

Maatwerksoftware, web- en mobiele apps