Hva er utholdenhetstesting i programvaretesting? (med eksempel)
⚡ Smart oppsummering
Utholdenhetstesting kjører et program under normal forventet belastning over en lengre periode for å avdekke om ytelsen forringes over tid. Det er testen som fanger opp feilene en times belastning ikke kan nå.
Hva er utholdenhetstesting?
Utholdenhetstesting er en ikke-funksjonell type programvaretesting der en programvare testes med høy belastning over en betydelig tidsperiode for å evaluere oppførselen til programvareapplikasjonen under vedvarende bruk. Hovedformålet med utholdenhetstesting er å sikre at applikasjonen er i stand til å håndtere forlenget belastning uten forringelse av responstiden.
Denne typen testing utføres i siste fase av ytelseskjøringssyklusen. Utholdenhetstesting er en lang prosess og varer noen ganger i opptil ett år. Dette kan inkludere bruk av eksterne belastninger som Internett-trafikk eller brukerhandlinger. Dette gjør at utholdenhetstesting skiller seg fra Load Testing, som vanligvis slutter om et par timer eller så.
Utholdenhet betyr kapasitet, så med andre ord kan du betegne utholdenhetstesting som kapasitetstesting.
Mål for utholdenhetstesting
- Hovedmålet med utholdenhetstesting er å se etter minnelekkasjer.
- For å finne ut hvordan systemet fungerer under vedvarende bruk.
- For å sikre at etter en lang periode vil systemets responstid forbli den samme eller bedre enn starten av testen.
- For å bestemme antall brukere og/eller transaksjoner vil et gitt system støtte og oppfylle ytelsesmålene.
- For å håndtere fremtidige belastninger, må vi forstå hvor mange ekstra ressurser (som prosessorkapasitet, diskkapasitet, minnebruk eller nettverksbåndbredde) som er nødvendig for å støtte bruk i fremtiden.
- Utholdenhetstesting utføres vanligvis ved enten å overbelaste systemet eller ved å redusere visse systemressurser og evaluere konsekvensene.
- Det utføres for å sikre at defekter eller minnelekkasjer ikke oppstår etter det som anses å være en relativt "normal" bruksperiode.
Hva man skal overvåke i utholdenhetstesting
I utholdenhetstesting blir følgende ting testet.
- Test minnelekkasje– Kontroller utføres for å verifisere om det er noen minnelekkasje i applikasjonen, noe som kan forårsake krasj i systemet eller OS
- Test koblingen mellom laget av systemet – Hvis forbindelsen mellom lagene i systemet ikke lukkes, kan det stoppe noen eller alle modulene i systemet.
- Test databasetilkoblingen ble lukket– Hvis databasetilkoblingen ikke lukkes, kan det føre til systemkrasj
- Test responstid – Systemet testes for responstiden til systemet ettersom applikasjonen blir mindre effektiv som følge av langvarig bruk av systemet.
Slik utfører du utholdenhetstesting
Nedenfor er den grunnleggende testmetoden for utholdenhetstesten
- Testmiljø – Identifiser maskinvaren, programvaren, operativsystemet som kreves for utholdenhetstestingen, tildeling av roller og ansvar i teamet osv. Miljøet bør være klart før testen utføres. Du må også estimere felles databaseproduksjonsstørrelse og årlig vekst. Dette er påkrevd, så du må teste hvordan søknaden din vil svare etter et år, to eller fem.
- Opprette testplanen, scenarier – Basert på testingens natur – manuell eller automatisering eller kombinasjon av begge, Testsak design, vurderinger og utførelse bør planlegges. Testing for å stresse systemet, bruddpunkttesting osv. bør også være en del av testplanen. Testing for å stresse systemet bestemmer bruddpunktet i applikasjonen.
- Testestimat – Gi estimat av hvor lang tid det vil ta å fullføre testfasen. Den bør analyseres på grunnlag av et antall involverte testere og antall testsykluser som kreves.
- Risikoanalyse – Analysere risikoen og iverksette passende tiltak for forebygging. Prioritering av testtilfeller i henhold til risikofaktoren og identifiser risiko- og problemstillingen nedenfor som testeren kan fase under utholdenhetstesten.
- Vil ytelsen forbli konsistent over tid?
- Er det andre mindre problemer som ennå ikke er oppdaget?
- Er det ekstern interferens som ikke ble adressert?
- Testplan – Bestem budsjettet, leveranser innenfor tidsrammene. Som Utholdenhetstesting bruker en enorm, men naturlig belastningsordning av transaksjoner til systemet/applikasjonen i en sammenhengende periode.
Eksempel på utholdenhetstesting
Samtidig som Stresstesting tar det testede systemet til sine grenser, Utholdenhetstesting tar søknaden til det ytterste over tid.
For eksempel oppstår de mest komplekse problemene – minnelekkasjer, utnyttelse av databaseserveren og et system som ikke reagerer – når programvare kjører over lengre tid. Hvis du hopper over utholdenhetstestene, er sjansene dine for å oppdage slike feil før utrulling ganske lave.
Utholdenhetstestverktøy
- WebLOAD
- Lastingen er fullført
- Apache JMeter
- Loadrunner
- Appvance
- LoadUI
- OpenSTA
- Rational Performance Tester
Fordeler med utholdenhetstesting
- Det hjelper med å bestemme hvordan arbeidsbelastningen kan håndtere systemet under belastning.
- Gir nøyaktige data som kunden kan bruke til å validere eller forbedre deres infrastrukturbehov.
- Identifiserer ytelsesproblemer som kan oppstå etter at et system har kjørt på et høyt nivå over lengre tid
- Typiske problemer blir identifisert i mindre målrettede ytelsestester, noe som betyr at det sikrer at applikasjonen forblir tilgjengelig selv når det er stor belastning på svært kort tid.
- Utholdenhetstesten brukes også til å sjekke om det er noen ytelsesforringelse etter en lang periode med utførelse
Ulemper med utholdenhetstesting
- Det er ofte vanskelig å definere hvor mye stress som er verdt å bruke.
- Utholdenhetstesting kan forårsake applikasjons- og/eller nettverksfeil som kan resultere i betydelige forstyrrelser hvis Test miljø er ikke isolert.
- Permanent tap av data eller korrupsjon kan oppstå ved å overbelaste systemet.
- Ressursutnyttelsen forblir svært høy etter at stresset er fjernet.
- Noen applikasjonskomponenter svarer ikke.
- Ubehandlede unntak observeres av sluttbrukeren.
Hvordan denne testen passer inn i ytelsestestingfamilien
Ytelsestesting er en paraplybetegnelse. Variantene nedenfor skiller seg bare i formen på den påførte belastningen og varigheten den holdes i, og det er derfor de så ofte forveksles med hverandre.
| Testtype | Lastemønster | Spørsmål den svarer |
|---|---|---|
| Lasttesting | Forventet toppbelastning, kort varighet | Oppfyller systemet målene sine under normal trafikktopp? |
| Stresstesting | Økte utover kapasiteten inntil feil | Hvor ryker den, og svikter den grasiøst? |
| Piggtesting | Plutselig ekstrem bølge, deretter tilbaketrekning | Overlever og kommer den seg etter et trafikksjokk? |
| Utholdenhetstesting | Normal belastning holdt i mange timer | Forringes ytelsen over tid? |
| Bløtleggingstesting | Vedvarende belastning over lengre tid | Er det minnelekkasjer eller ressursutmattelse? |
| Stabilitetstesting | Varierende belastning underveis | Forblir systemet pålitelig selv om forholdene endrer seg? |
| Volumtesting | Vanlige brukere, veldig stort datavolum | Takler den når databasen vokser? |
Utholdenhetstesting og gjennomvåtningstesting blir ofte behandlet som synonymer. Vanligvis brukes de slik: begge holder en vedvarende belastning over lengre tid. Der team skiller dem fra hverandre, fokuserer utholdenhetstesting på om responstidene stiger, mens soak-testing fokuserer på ressursforbruk som minne, filhåndtak og tilkoblingspooler. Å kjøre én gir deg vanligvis bevis for begge.
Viktige målinger å fange opp under testen
En ytelsesbasert kjøring er bare så god som det du registrerer mens den kjører. Registrer disse seks på server- og klientsiden, og sammenlign dem deretter med grunnlinjen i stedet for mot en magefølelse.
| Metric | Hva det forteller deg | Advarselsskilt |
|---|---|---|
| Gjennomsnittlig responstid | Typisk brukeropplevelse | Enhver oppadgående drift over løypa |
| 95. persentil responstid | Opplevelsen til de tregeste brukerne | Langt over gjennomsnittet, noe som betyr inkonsekvens |
| gjennomstrømming | Forespørsler behandlet per sekund | Faller mens belastningen forblir konstant |
| Feilrate | Andel mislykkede eller tidsavbrutt forespørsler | Enhver økning over den avtalte terskelen |
| CPU- og minnebruk | Serverressurskapasitet | Minne som klatrer og aldri kommer tilbake |
| Databasetilkoblinger og tråder | Utmattelse av bassenget | Antall som vokser jevnt uten utgivelse |
Les gjennomsnittet og persentilen sammen. Et gjennomsnitt på 800 ms med en 95. persentil på 900 ms beskriver et konsistent system. Det samme gjennomsnittet med en 95. persentil på 9 sekunder betyr at én av tjue brukere har det dårlig, og gjennomsnittet skjuler det.
Se på formen, ikke bare verdien. I enhver langvarig test er en flat ressurslinje et bestått resultat og en stigende en er en lekkasje, selv når det absolutte tallet fortsatt er komfortabelt innenfor grensen i det øyeblikket kjøringen avsluttes.
Utholdenhetstesting: Viktige konklusjoner
- In Engineering programvare, Utholdenhetstesting er en undergruppe av belastningstesting.
- Utholdenhetstesting er en lang prosess og varer noen ganger i opptil ett år
- Det gjøres kontroller for å verifisere
- Test minnelekkasje
- Test responstid
- Test databaseforbindelse osv.


