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.

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?
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
- WebLADEN
- LoadComplete
- Apache JMeter
- LoadRunner
- Toestel
- LaadUI
- OpenSTA
- Rational Performance Tester
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.

