Testdienst helpt ontstressen

Het succes van een goede applicatie staat of valt met een goede performance. Toch wordt de performance in veel ontwikkelprojecten pas op het allerlaatste getest.

Bovendien zijn er bij late, geïmproviseerde tests vaak nauwelijks richtlijnen en benchmarks voorhanden, zodat men op zijn slechtst een onjuiste en op zijn best een globale indruk van de performance krijgt. Macaw Application Services professionaliseert het testen van performance met een nieuwe dienst en helpt daarmee de oplevering van applicaties te “ontstressen”.

Het testen van de performance is in veel projecten helaas nog steeds een ondergeschoven kindje. Het deelt die status met bijvoorbeeld documentatie. Hoewel het belang van documentatie ook vaak onderschat wordt, hebben we het bij performance over iets dat absoluut noodzakelijk is voor het slagen van een applicatie. Een applicatie gebouwd voor een groot aantal eindgebruikers is bij voorbaat mislukt als de performance beneden peil is.

In de praktijk zal er vaak nog extra effort worden gestoken in het opkrikken van de performance. Vaak blijkt dan ook dat met een aantal relatief kleine aanpassingen de performance aanzienlijk verbeterd kan worden. Maar een applicatie kan dan al in productie zijn en de eerste negatieve indrukken bij de gebruikers hebben achtergelaten.

Met het inzetten van de MAS Performance Testdienst kunnen dit soort scenario’s voorkomen worden. In alle fasen van het ontwikkelproces kan de Testdienst een rol spelen. In de beginfase kunnen performance requirements worden opgesteld. Als de eerste functies ontwikkeld zijn kan worden begonnen met het monitoren van de performance. In een later stadium kan de performance van de belangrijkste gebruikerspaden op de productie omgeving worden doorgemeten. Door de MAS Testdienst in te zetten, blijf je gedurende het hele traject bewust van het belang van een goede performance.

Wat is goede performance?

Maar wat is dat dan, een goede performance? Het uitgangspunt bij het meten van performance is steeds de basisresponstijd. Het gaat dan om de tijd die de applicatie in ideale omstandigheden nodig heeft op een handeling te reageren. Een vuistregel die wel gehanteerd wordt is: beneden de 5 seconden is goed, boven de 10 seconden is traag.

Maar de vraag of een responsetijd acceptabel is hangt natuurlijk ook af van de functionaliteit. Is een gebruiker door een webwinkel aan het browsen dan is 5 seconden voor iedere klik behoorlijk veel. Voor andere acties, zoals het overmaken van geld, is een langere responstijd acceptabel, ja is het zelfs verdacht als er binnen no time een scherm komt met de melding dat de transactie geslaagd is.
We hebben het hierbij steeds over responstijden waarin alle machines en netwerklijnen het verkeer ruimschoots aankunnen. Is dit niet het geval, zit er ergens een bottleneck, dan kunnen responsetijden enorm oplopen en kan, in het ergste geval, de applicatie zelfs uit de lucht gaan. Daarom moet, vóór een applicatie in productie wordt genomen, bekend zijn hoeveel verkeer er gegenereerd zal worden. Gegevens over gebruikersaantallen moeten gematched worden aan een bepaalde hardware configuratie. Met stress- of loadtest kan gemeten worden of de applicatie daaraan voldoet.

Stressen

Iedereen weet natuurlijk wat stressen is. Stressen is wat projectmanagers en andere leden van een team doen in de dagen kort voor een applicatie in productie moet worden genomen. Het is een periode waarin je geen slecht nieuws kunt gebruiken en waarin het ene slechte bericht na het andere lijkt binnen te komen. Opeens komt daar tussen alle hectiek ook nog eens het bericht door dat het geheugen volloopt als er tien mensen tegelijk van de applicatie gebruik maken.

Stressen is ook testersjargon voor het uitvoeren van een test waarmee een groot aantal simultane gebruikers wordt gesimuleerd. Met dergelijke tests meet je de grenzen van je systeem (stresstest) of meet je of de applicatie in staat is om het te verwachtte aantal gebruikers te verwerken (loadtest). Stressen is nodig om te testen hoe de applicatie zich gedraagt in omstandigheden die vergelijkbaar zijn met een werkelijke live situatie.

Airtrade Test Pilot

In de zomer van 2005 heeft er bij Airtrade een pilot plaatsgevonden. Airtrade, gevestigd in Haarlem, is één van de grootste reisondernemingen in Nederland. Het bedrijf levert vliegtickets, hotelaccommodatie, autohuur en andere reisproducten aan meer dan 900 reisbureaus in Nederland. Al deze zaken worden via een online informatie- en reserveringssysteem aan de reisbranche beschikbaar gesteld. Het gaat hier dan ook om een webapplicatie die een continue hoog verkeerspatroon kent.

In de pilot kwam aan het licht dat de standaard Microsoft-tool voor performance testen, de Application Center Test (ACT), in dit geval niet voldeed. ACT werkt goed bij het testen van browser-based applicaties terwijl de Travel Packager applicatie van Airtrade een zogenaamde ‘smart client’ applicatie is. Deze maakt gebruik van WinForms en webservices. Er is daarom gebruik gemaakt van een test tool die in staat is alle typen functionaliteit door te lichten. Deze tool, de Macaw Performance Analysis Tool (MPAT), is geïntegreerd met andere tools die bij Macaw standaard worden gebruikt (denk hierbij aan methoden voor project uitvoering, ontwikkelingsstandaarden en code conventies) en sluit daarom goed aan op de overige dienstverlening van Macaw.

Wat doet de MAS Testdienst?

Aan het begin van een project kan de MAS Testdienst helpen met het opstellen van requirements. Gebruikersaantallen moeten daarin “vertaald” worden naar specifieke prestaties van de machines waarop de applicatie draait. Niet in alle gevallen kunnen deze cijfers met 100% zekerheid worden vastgesteld, maar met het maken van een ‘educated guess’ en het inbouwen van ruime marges, kunnen wel requirements voor een verantwoorde inproductiename worden opgesteld.

Daarnaast kan de MAS Testdienst ingezet worden voor het monitoren van de performance van eindfuncties – waarvoor de hierboven genoemde MPAT kan worden gebruikt. De toegevoegde waarde van dit monitoren is dat ontwikkelaars al in een vroeg stadium op de hoogte zijn van de overall performance van de applicatie en onmiddellijk een signaal krijgen wanneer deze dramatisch verslechtert. In een goed-gemonitord project kom je niet helemaal aan het eind voor onaangename verrassingen te staan.

In de fase waarin de belangrijkste functionaliteit is afgebouwd en een productieomgeving is ingericht, kunnen vanuit de Testdienst de nodige tests worden uitgevoerd om vast te stellen of aan de requirements wordt voldaan.

De stress rond de oplevering zal wel nooit helemaal verdwijnen, maar wordt de MAS Testdienst ingezet, dan zijn projectmanagers in ieder geval vroeger op eventuele performance problemen geattendeerd en hebben ze hun maatregelen kunnen nemen vóór de echte stresstijd aanbreekt.

blog comments powered by Disqus
Maarten Wiese
Eric Kwerreveld
Antoni Dol
Dirk Zekveld
Maarten van den Dungen
Michel Heijman
Paul Steffens
Peter Roling
Annemarie Hendrikx
Karin van Oostrom
Maarten Sikkema
Rachelle Tunk
Niels de Groot
Mark de Haan
Frédérique Harmsze