15 augustus 2007

Het belang van stresstesten

Stresstesten, een ander woord voor loadtesten, is een goede manier om te kijken hoe een applicatie reageert op hoge druk. Hierdoor kunnen fouten worden opgespoord die alleen optreden wanneer de druk op de applicatie hoog is. Bovendien kan met de verkregen informatie de performance van de applicatie worden verbeterd.
Het verkrijgen van deze informatie kan van groot belang zijn wanneer men een webapplicatie heeft die op een bepaald moment door veel gebruikers tegelijk wordt geraadpleegd. Door een realistische situatie te creƫren is er makkelijker achter te komen waar eventuele knelpunten zitten. Ook is het hierdoor mogelijk om productieproblemen te reproduceren die alleen voorkomen wanneer de 'load' zwaar is.

Het opnemen van de scripts kan vrij snel gebeuren. Het technische probleem zit hem in het hergebruiken van het opgenomen script. Het script is in eerste instantie opgenomen zoals een gebruiker met de applicatie werkt. Wanneer deze vervolgens gedraaid wordt, worden alle gegevens gebruikt die tijdens de opname waren ingevuld. Dit geeft natuurlijk problemen wanneer men met actuele of dynamische data wil werken, zoals het inloggen onder een andere gebruikersnaam.
Om bijvoorbeeld te zorgen dat het script gedraaid wordt met andere inloggegevens, moet het script aangepast worden. Hiervoor moeten requests en responses van webpagina's ondervangen worden en eventuele variabelen door een ontwikkelaar worden aangepast, zoals gebruikersnaam en wachtwoord. Een lastige klus; maar wanneer het eenmaal werkt kan er telkens opnieuw mee worden gedraaid.

Resultaten tonen of de scripts goed hebben gedraaid. Het is ook mogelijk om meerdere gebruikers tegelijk op het systeem te simuleren: zo kan er een situatie worden gesimuleerd waarin bijvoorbeeld meer dan tweehonderd gebruikers tegelijk een aanvraag indienen.
Uit de analyse kan wezenlijke informatie worden gehaald, zoals welk onderdeel veel tijd kost of waar het vaak mis gaat. Hiermee kan de applicatie gerichter worden aangepast en telkens opnieuw getest. Met een dergelijke werkwijze wordt de kwaliteit van de applicatie aanzienlijk verhoogd; bovendien kan het gedrag van de applicatie in een productieomgeving voortaan veel beter worden voorspeld. Het belang van stresstesten kan dan ook niet worden onderschat.