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å.

  • 🕒 Vedvarende belastning: Forventet produksjonstrafikk holdt i timer eller dager i stedet for minutter.
  • 📉 Fokus på nedbrytning: Spørsmålet er om responstidene stiger, ikke om målet nås én gang.
  • ???? Vanlige funn: Minnelekkasjer, uttømming av tilkoblingsbasseng og ubegrenset logg- eller hurtigbuffervekst.
  • 📊 Overvåkingssett: Minne, CPU, responstid, gjennomstrømning og databasetilkoblinger på tvers av hele kjøringen.
  • 🛠️ verktøy: Standard lasteverktøy driver trafikken, mens APM-verktøy registrerer ressurskurvene.
  • 🇧🇷 Avveining: Resultatene er av høy verdi, men det tar lang tid å få tak i dem, noe som begrenser hvor ofte testen kan kjøres.

Hva er utholdenhetstesting

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

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

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.

Spørsmål og svar

Lasttesting bekrefter at systemet når målene sine ved toppbelastning over en kort periode. Utholdenhetstesting holder en normal belastning i flere timer for å avdekke om disse målene fortsatt holder ved slutten av perioden.

Enhver vedvarende oppadgående trend i responstid eller ressursbruk, selv om ingen terskel brytes. Feilen er selve avdriften, fordi den til slutt vil krysse grensen i produksjonen.

Etter at funksjonstesting og belastningstesting er bestått, og tidlig nok til at en oppdaget lekkasje fortsatt kan fikses. Å kjøre den kvelden før utgivelse gir ikke tid til å handle på resultatet.

AI-basert overvåking oppdager punktet der en måleenhet endrer trend og korrelerer den med distribusjoner eller planlagte jobber, noe som gjør timer med grafer til en spesifikk mistenkelig faktor.

Det kan hjelpe med prioritering. Risikomodeller fremhever hvilke som utgir kode som er utsatt for berøringslekkasje, slik at fulle kjøringer er reservert for endringene som mest sannsynlig trenger dem.

Oppsummer dette innlegget med: