Wat is duurzaamheidstesten bij het testen van software? (met voorbeeld)

โšก Slimme samenvatting

Een duurtest voert een applicatie gedurende een langere periode uit onder een normale, verwachte belasting om te achterhalen of de prestaties in de loop van de tijd afnemen. Het is de test die defecten opspoort die bij een test van รฉรฉn uur onder belasting niet aan het licht komen.

  • ๐Ÿ•’ Langdurige belasting: De verwachte productiestop duurde uren of dagen in plaats van minuten.
  • ๐Ÿ“‰ Focus op degradatie: De vraag is of de reactietijden toenemen, niet of het doel eenmaal is bereikt.
  • ???? Algemene bevindingen: Geheugenlekken, uitputting van de verbindingspool en onbeperkte groei van het logboek of de cache.
  • ๐Ÿ“Š Monitoringset: Geheugen, CPU, reactietijd, doorvoer en databaseverbindingen gedurende de volledige testperiode.
  • ๏ธ tooling: Standaardtools sturen het dataverkeer aan, terwijl APM-tools de resourcecurves registreren.
  • โ€‹ Afweging: De resultaten zijn zeer waardevol, maar laten lang op zich wachten, waardoor de test niet altijd zo vaak uitgevoerd kan worden.

Wat is een duurtest?

Wat is een duurtest?

Uithoudingsvermogen testen is een niet-functioneel type softwaretest waarbij software wordt getest met hoge belasting gedurende een aanzienlijke hoeveelheid tijd om het gedrag van softwareapplicaties bij langdurig gebruik te evalueren. Het belangrijkste doel van duurtests is ervoor te zorgen dat de toepassing voldoende capabel is om langdurige belasting aan te kunnen zonder enige verslechtering van de responstijd.

Dit type testen wordt uitgevoerd in de laatste fase van de prestatieruncyclus. Duurtesten zijn een lang proces en duren soms wel een jaar. Dit kan het toepassen van externe belastingen omvatten, zoals internetverkeer of gebruikersacties. Dit maakt duurtesten anders load Testen, die meestal binnen een paar uur afgelopen is.

Uithoudingsvermogen betekent capaciteit, dus met andere woorden, je kunt uithoudingsvermogenstesten capaciteitstesten noemen.

Doelen van duurtesten

  • Het primaire doel van duurtesten is het controleren op geheugenlekken.
  • Om te ontdekken hoe het systeem presteert bij langdurig gebruik.
  • Om ervoor te zorgen dat na een lange periode de responstijd van het systeem gelijk of beter blijft dan bij aanvang van de test.
  • Om het aantal gebruikers en/of transacties te bepalen dat een bepaald systeem prestatiedoelstellingen zal ondersteunen en behalen.
  • Om de toekomstige belasting te beheersen, moeten we begrijpen hoeveel extra bronnen (zoals processorcapaciteit, schijfcapaciteit, geheugengebruik of netwerkbandbreedte) nodig zijn om het gebruik in de toekomst te ondersteunen.
  • Duurzaamheidstests worden over het algemeen uitgevoerd door het systeem te overbelasten of door bepaalde systeembronnen te verminderen en de gevolgen te evalueren.
  • Het wordt uitgevoerd om ervoor te zorgen dat er geen defecten of geheugenlekken optreden na wat als een relatief โ€œnormaleโ€ gebruiksperiode wordt beschouwd.

Waarop te letten tijdens duurtesten?

Uithoudingsvermogen testen

Bij duurtesten worden de volgende zaken getest.

  • Geheugenlekkage testenโ€“ Er worden controles uitgevoerd om te verifiรซren of er sprake is van geheugenlekken in de applicatie, waardoor het systeem of het besturingssysteem kan crashen
  • Testverbindingssluiting tussen de laag van het systeem โ€“ Als de verbinding tussen de lagen van het systeem niet succesvol wordt gesloten, kunnen sommige of alle modules van het systeem vastlopen.
  • Test databaseverbinding succesvol afgeslotenโ€“ Als de databaseverbinding niet succesvol wordt gesloten, kan dit leiden tot een systeemcrash
  • Reactietijd testen โ€“ Systeem wordt getest op de responstijd van het systeem naarmate de applicatie minder efficiรซnt wordt als gevolg van langdurig gebruik van het systeem.

Hoe voer je een duurtest uit?

Hieronder vindt u de basistestaanpak voor de Endurance Test

  • Testomgeving โ€“ Identificeer de hardware, software, het besturingssysteem dat nodig is voor de duurzaamheidstest, wijs rollen en verantwoordelijkheden toe binnen het team, etc. De omgeving moet gereed zijn voor de uitvoering van de test. U moet ook de algemene databaseproductiegrootte en jaarlijkse groei schatten. Dit is vereist, aangezien u moet testen hoe uw applicatie zal reageren na een jaar, twee of vijf.
  • Het maken van het testplan, scenario's โ€“ Gebaseerd op de aard van het testen โ€“ handmatig of geautomatiseerd of een combinatie van beide, Testgeval ontwerp, beoordelingen en uitvoering moeten worden gepland. Testen om het systeem te belasten, testen van breekpunten, enz. moeten ook deel uitmaken van het testplan. Testen om het systeem te belasten bepalen het breekpunt in de toepassing.
  • Testschatting โ€“ Geef een schatting van hoe lang het zal duren om de testfase te voltooien. Het moet worden geanalyseerd op basis van het aantal betrokken testers en het aantal benodigde testcycli.
  • Risico analyse - Het analyseren van het risico en het nemen van passende maatregelen ter preventie. Prioritering van testgevallen volgens de risicofactor en identificeer de onderstaande risico's en problemen die de tester tijdens de duurtest kan faseren.
  • Zullen de prestaties in de loop van de tijd consistent blijven?
  • Zijn er nog andere kleine problemen die nog niet zijn gedetecteerd?
  • Is er sprake van externe inmenging die niet is aangepakt?
  • Testschema โ€“ Bepaal het budget en de deliverables binnen de tijdsbestekken. Als Uithoudingsvermogen testen past gedurende een continue periode een enorme maar natuurlijke belasting van transacties toe op het systeem/de applicatie.

Voorbeeld van een uithoudingstest

Terwijl Stress testen brengt het geteste systeem tot het uiterste, Uithoudingsvermogen testen brengt de toepassing tot het uiterste na verloop van tijd.

De meest complexe problemen โ€“ zoals geheugenlekken, overbelasting van de databaseserver en een niet-reagerend systeem โ€“ doen zich bijvoorbeeld voor wanneer software gedurende langere tijd draait. Als u de duurtesten overslaat, is de kans dat u dergelijke defecten vรณรณr de implementatie opspoort, zeer klein.

Gereedschappen voor het testen van uithoudingsvermogen

Voordelen van uithoudingstesten

  • Het helpt bij het bepalen hoe de werklast het System Under Load aankan.
  • Biedt nauwkeurige gegevens die klanten kunnen gebruiken om hun infrastructuurbehoeften te valideren of te verbeteren.
  • Identificeert prestatieproblemen die kunnen optreden nadat een systeem gedurende langere tijd op een hoog niveau heeft gedraaid
  • Typische problemen worden geรฏdentificeerd in kleinere gerichte prestatietests, wat betekent dat het ervoor zorgt dat de applicatie beschikbaar blijft, zelfs als er in zeer korte tijd een enorme belasting is.
  • De duurtest wordt ook gebruikt om te controleren of er sprake is van prestatieverlies na een lange periode van uitvoering

Nadelen van uithoudingstesten

  • Het is vaak moeilijk om te bepalen hoeveel stress de moeite waard is om toe te passen.
  • Duurzaamheidstesten kunnen applicatie- en/of netwerkstoringen veroorzaken die tot aanzienlijke verstoringen kunnen leiden Test omgeving zijn niet geรฏsoleerd.
  • Permanent gegevensverlies of corruptie kan optreden door het systeem te overbelasten.
  • Het gebruik van hulpbronnen blijft zeer hoog nadat de stress is weggenomen.
  • Sommige applicatieonderdelen reageren niet.
  • Niet-afgehandelde uitzonderingen worden door de eindgebruiker waargenomen.

Hoe deze test past binnen de familie van prestatietests.

Prestatietesten is een overkoepelende term. De onderstaande varianten verschillen alleen in de vorm van de toegepaste belasting en de duur ervan, waardoor ze vaak met elkaar worden verward.

Testtype Belastingspatroon Vraag het beantwoordt
Load testen Verwachte piekbelasting, korte duur Voldoet het systeem aan de doelstellingen bij normale piekbelasting?
Stress testen Verhoogd tot boven de capaciteit tot het faalt Waar gaat het mis, en verloopt het falen op een elegante manier?
Spike-testen Plotselinge, extreme stijging, gevolgd door terugtrekking. Kan het een verkeersschok overleven en ervan herstellen?
Uithoudingsvermogen testen Normale belasting gedurende vele uren aangehouden Neemt de prestatie in de loop der tijd af?
Soak testen Langdurige belasting gedurende een langere periode Zijn er geheugenlekken of is er sprake van uitputting van de systeembronnen?
Stabiliteitstesten Variรซrende belasting onder verschillende omstandigheden Blijft het systeem betrouwbaar bij veranderende omstandigheden?
Volume testen Normale gebruikers, zeer grote hoeveelheden data Kan het de groei van de database aan?

Duurzaamheidstesten en weektesten worden vaak als synoniemen beschouwd. In de volksmond worden ze als volgt omschreven: beide tests houden een constante belasting gedurende een lange periode vol. Waar teams wel onderscheid maken tussen beide, richt duurtesten zich op de vraag of de responstijden toenemen, terwijl duurtesten zich richten op het resourceverbruik, zoals geheugen, bestandsdescriptors en verbindingspools. Het uitvoeren van รฉรฉn test levert meestal bewijs voor beide.

Belangrijke meetwaarden om vast te leggen tijdens de test

Een prestatietest is slechts zo goed als wat je vastlegt tijdens de uitvoering. Leg deze zes gegevens vast, zowel aan de server- als aan de clientzijde, en vergelijk ze vervolgens met de basislijn in plaats van af te gaan op je onderbuikgevoel.

metrisch Wat het je vertelt Waarschuwingsbord
Gemiddelde reactietijd Typische gebruikerservaring Elke opwaartse afwijking gedurende de run
95e percentiel reactietijd De ervaring van de traagste gebruikers Ver boven het gemiddelde, wat duidt op inconsistentie.
Doorvoer Verzoeken verwerkt per seconde Dalend terwijl de belasting constant blijft
Foutpercentage Aandeel van mislukte of verlopen aanvragen Elke stijging boven de overeengekomen drempelwaarde
CPU- en geheugengebruik Servercapaciteit Een herinnering die opstijgt en nooit meer terugkeert.
Databaseverbindingen en threads zwembaduitputting Aantallen die gestaag groeien zonder vrijgave

Lees het gemiddelde en het percentiel samen. Een gemiddelde van 800 ms met een 95e percentiel van 900 ms beschrijft een consistent systeem. Datzelfde gemiddelde met een 95e percentiel van 9 seconden betekent dat รฉรฉn op de twintig gebruikers een slechte ervaring heeft, en dat het gemiddelde dit verbergt.

Let op de vorm, niet alleen op de waarde. Bij elke langdurige test is een vlakke lijn voor de resources een teken van voldoende resultaat en een stijgende lijn een teken van een overschrijding, zelfs als het absolute aantal op het moment dat de test eindigt nog ruim binnen de limiet ligt.

Duurtesten: Belangrijkste conclusies

  • In Software EngineeringDuurtesten zijn een subset van belastingtesten.
  • Duurtesten zijn een lang proces en duren soms wel een jaar
  • Ter verificatie worden controles uitgevoerd
  • Geheugenlekkage testen
  • Reactietijd testen
  • Databaseverbinding testen, enz.

Veelgestelde vragen

Belastingstests verifiรซren of het systeem zijn doelstellingen haalt bij piekbelasting gedurende een korte periode. Duurtests houden het systeem urenlang onder normale belasting om te bepalen of die doelstellingen aan het einde van de test nog steeds gelden.

Elke aanhoudende stijgende trend in responstijd of resourcegebruik, zelfs als er geen drempelwaarde wordt overschreden. Het defect zit hem in de afwijking zelf, omdat deze uiteindelijk de limiet in de productieomgeving zal overschrijden.

Nadat de functionele en belastingstests zijn geslaagd, en vroeg genoeg om een โ€‹โ€‹eventueel ontdekt lek nog te verhelpen, is er geen tijd meer om actie te ondernemen als de tests de avond voor de release worden uitgevoerd.

Op AI gebaseerde monitoring detecteert het punt waarop een meetwaarde van trend verandert en correleert dit met implementaties of geplande taken, waardoor uren aan grafieken worden omgezet in een specifieke verdachte.

Het kan helpen bij het stellen van prioriteiten. Risicomodellen laten zien welke releases code bevatten die gevoelig is voor lekken, zodat volledige testruns gereserveerd worden voor de wijzigingen die daar het meest waarschijnlijk behoefte aan hebben.

Vat dit bericht samen met: