Hva er STRESS-testing i programvaretesting?

Stresstesting

Stresstesting er en type programvaretesting som verifiserer stabiliteten og påliteligheten til programvareapplikasjonen. Målet med stresstesting er å måle programvare på robusthet og feilhåndteringsevner under ekstremt tunge belastningsforhold og å sikre at programvaren ikke krasjer under vanskelige situasjoner. Den tester til og med utover normale driftspunkter og evaluerer hvordan programvaren fungerer under ekstreme forhold.

stresstesting bilde

I programvareteknikk er stresstesting også kjent som Utholdenhetstesting. Under stresstesting blir AUT stresset i en kort periode for å kjenne dens tåleevne. En mest fremtredende bruk av stresstesting er å bestemme grensen der systemet eller programvaren eller maskinvaren bryter. Den sjekker også om systemet viser effektiv feilhåndtering under ekstreme forhold.

Applikasjonen som testes vil bli stresset når 5 GB data kopieres fra nettsiden og limes inn i notisblokk. Notisblokk er under stress og gir 'Ikke svart' feilmelding.

Hva er STRESS-testing i programvaretesting: Verktøy, behov og typer

Behov for stresstesting

Vurder følgende sanntidseksempler der vi kan oppdage bruken av stresstesting-

  • I løpet av festivaltiden kan et nettsted for netthandel være vitne til en økning i trafikken, eller når det annonserer et salg.
  • Når en blogg blir omtalt i en ledende avis, opplever den en plutselig økning i trafikken.

Det er viktig å utføre stresstesting for å imøtekomme slike unormale trafikkøkninger. Unnlatelse av å imøtekomme denne plutselige trafikken kan føre til tap av inntekter og omdømme.

Stresstesting er også ekstremt verdifull av følgende grunner:

  • For å sjekke om systemet fungerer under unormale forhold.
  • Viser riktig feilmelding når systemet er under stress.
  • Systemfeil under ekstreme forhold kan føre til enorme inntektstap
  • Det er bedre å være forberedt på ekstreme forhold ved å utføre stresstesting.

Mål for stresstesting

Målet med stresstesting er å analysere oppførselen til systemet etter en feil. For at stresstesting skal lykkes, bør et system vise en passende feilmelding mens det er under ekstreme forhold.

For å utføre stresstesting kan det noen ganger brukes massive datasett som kan gå tapt under stresstesting. Testere bør ikke miste disse sikkerhetsrelaterte dataene mens de utfører stresstesting.

Hovedformålet med stresstesting er å sikre at systemet kommer seg etter feil som kalles som utvinnbarhet.

Belastningstesting vs stresstesting

Last testing vs Stress testing bilde

Load Testing Stresstesting
Load Testing er å teste systemets oppførsel under normale arbeidsbelastningsforhold, og det er bare å teste eller simulere med den faktiske arbeidsbelastningen Stresstesting er å teste systemets oppførsel under ekstreme forhold og utføres til systemet feiler.
Lasttesting bryter ikke systemet stresstesting prøver å bryte systemet ved å teste med overveldende data eller ressurser.

Typer stresstesting

Følgende er typene stresstesting og forklares som følger:

Distribuert stresstesting:

Typer stresstesting

I distribuerte klient-server-systemer utføres testing på tvers av alle klienter fra serveren. Stressserverens rolle er å distribuere et sett med stresstester til alle stressklienter og spore statusen til klienten. Etter at klienten kontakter serveren, legger serveren til navnet på klienten og begynner å sende data for testing.

I mellomtiden sender klientmaskiner signal eller hjerteslag om at den er koblet til serveren. Hvis serveren ikke mottar noen signaler fra klientmaskinen, må den undersøkes nærmere for feilsøking. Fra figuren kan en server koble seg til de 2 klientene (Client1 og Client2), men den kan ikke sende eller motta et signal fra klient 3 og 4.

Nattløp er det beste alternativet for å kjøre disse stresstestscenarioene. Store serverfarmer trenger en mer effektiv metode for å fastslå hvilke datamaskiner som har hatt stressfeil som må undersøkes.

Applikasjonsstresstesting:

Denne testingen konsentrerer seg om å finne defekter relatert til datalåsing og blokkering, nettverksproblemer og ytelsesflaskehalser i en applikasjon.

Transaksjonell stresstesting:

Den utfører stresstesting på en eller flere transaksjoner mellom to eller flere applikasjoner. Den brukes til å finjustere og optimalisere systemet.

Systemisk stresstesting:

Dette er integrert stresstesting som kan testes på tvers av flere systemer som kjører på samme server. Den brukes til å finne defekter der én applikasjonsdata blokkerer en annen applikasjon.

Utforskende stresstesting:

Dette er en av typene stresstesting som brukes til å teste systemet med uvanlige parametere eller forhold som neppe vil oppstå i et reelt scenario. Den brukes til å finne defekter i uventede scenarier som

  1. Et stort antall brukere logget på samtidig
  2. Hvis en virusskanner startet i alle maskiner samtidig
  3. Hvis databasen har gått offline når den åpnes fra et nettsted,
  4. Når et stort datavolum settes inn i databasen samtidig

Hvordan gjøre stresstesting?

Stresstesting kan gjøres i 5 hovedtrinn:

Trinn 1) Planlegging av stresstesten: Her samler du systemdataene, analyserer systemet, definerer stresstestmålene

Trinn 2) Lag automatiseringsskript: I denne fasen lager du automatiseringsskriptene for stresstesting, genererer testdataene for stressscenarioene.

Trinn 3) Utføring av skript: På dette stadiet kjører du automatiseringsskriptene for stresstesting og lagrer stressresultatene.

Trinn 4) Resultatanalyse: I dette stadiet analyserer du stresstestresultatene og identifiserer flaskehalser.

Trinn 5) Tweaking og optimalisering: I dette stadiet finjusterer du systemet, endrer konfigurasjoner, optimerer koden med målet å møte ønsket referanseindeks.

Til slutt kjører du hele syklusen igjen for å finne ut at justeringene har gitt de ønskede resultatene. For eksempel er det ikke uvanlig å måtte tre til 3 sykluser av stresstestprosessen for å oppnå ytelsesmålene

Anbefalt verktøy for stresstesting

Loadrunner

LoadRunner fra HP er et mye brukt verktøy for belastningstesting. Lastetestresultater formet av Loadrunner regnes som en målestokk.

Jmeter

Jmeter er et testverktøy for åpen kildekode. Det er en ren Java søknad for stress og Ytelsestesting. Jmeter er ment å dekke typer tester som belastning, funksjon, stress osv. Den trenger JDK 5 eller høyere for å fungere.

Stresstester

Dette verktøyet gir omfattende analyse av nettapplikasjonsytelsen, gir resultater i grafisk format, og det er ekstremt enkelt å bruke. Ingen skripting på høyt nivå er nødvendig og gir god avkastning på investeringen.

Neo laste

Dette er et populært verktøy tilgjengelig på markedet for å teste nettet og Mobil applikasjoner. Dette verktøyet kan simulere tusenvis av brukere for å evaluere applikasjonsytelsen under belastning og analysere responstidene. Den støtter også skyintegrert – ytelse, belastning og stresstesting. Den er enkel å bruke, kostnadseffektiv og gir god skalerbarhet.

Beregninger for stresstesting

Beregninger hjelper til med å evaluere et systems ytelse og generelt studert på slutten av stresstesten. Vanlig brukte beregninger er -

Måling av skalerbarhet og ytelse

  • Sider per sekund: Måler hvor mange sider som er forespurt / sekund
  • Gjennomstrømning: Basic Metric – Responsdatastørrelse/sekund
  • Runder: Antall ganger testscenarier har blitt planlagt Versus Antall ganger en klient har utført

Søknadssvar

  • Trefftid: Gjennomsnittlig tid for å hente et bilde eller en side
  • Tid til første byte: Det tar tid å returnere den første byten med data eller informasjon
  • Sidetid: Det tar tid å hente all informasjon på en side

svikt

  • Mislykkede tilkoblinger: Antall mislykkede tilkoblinger nektet av klienten (Svak Signal)
  • Mislykkede runder: Antall runder det blir mislykket
  • Mislykkede treff: Antall mislykkede forsøk gjort av systemet (ødelagte lenker eller usette bilder)

Konklusjon

Stresstestens mål er å sjekke systemet under ekstreme forhold. Den overvåker systemressurser som minne, prosessor, nettverk etc., og sjekker systemets evne til å gjenopprette normal status. Den sjekker om systemet viser riktige feilmeldinger under stress.

Eksempel på stresstesting

  1. Nettsted for netthandel annonserer et festivalsalg
  2. Nyhetsnettsted på tidspunktet for noen store begivenheter
  3. Utdanningsstyrets resultatnettside
  4. Sosiale nettverkssider eller blogger, apper osv