Hva er Spike-testing i programvaretesting? Lær med eksempel
⚡ Smart oppsummering
Spike Testing utsetter en applikasjon for en plutselig, ekstrem belastningsbølge og trekker den deretter tilbake like brått. Målet er å finne ut om systemet overlever sjokket, og like viktig, om det gjenoppretter seg etterpå.

Hva er Spike Testing?
Piggtesting er en type programvaretesting der en programvareapplikasjon testes med ekstreme økninger og reduksjoner i trafikkbelastning. Hovedformålet med topptesting er å evaluere oppførselen til programvareapplikasjonen under plutselig økning eller reduksjon i brukerbelastning og bestemme gjenopprettingstiden etter en økning i brukerbelastning.
Spike-testing utføres for å estimere svakhetene til programvareapplikasjoner.

Mål med spiketesting
Målet med Spike-testing er å se hvordan systemet reagerer på uventet økning og fall av brukerbelastningen. I Software Engineering hjelper Spike-testing å bestemme systemytelsen vil forringes når det er en plutselig høy belastning.
Et annet mål med Spike Testing er å bestemme restitusjonstiden. Mellom to påfølgende topper av brukerbelastning, trenger systemet litt tid på å stabilisere seg. Denne restitusjonstiden bør være så lav som mulig.
Hvordan gjøre Spike Testing
Her er de enkle trinnene for å utføre Spike-testing:
Trinn 1) Bestem lastekapasiteten
Bestem den maksimale brukerbelastningskapasiteten til programvareapplikasjonen.
Trinn 2) Forbered testmiljøet
Klargjør testmiljøet og konfigurer det til å registrere ytelsesparametere.
Trinn 3) Definer forventet belastning
Påfør forventet maksimal belastning på programvareapplikasjonen ved å bruke en Verktøy for ytelsestesting av ditt valg.
Trinn 4) Øk belastningen
Øk belastningen til systemet raskt i en bestemt periode.
Trinn 5) Sett Load tilbake til Normal
Reduser belastningen gradvis tilbake til opprinnelig nivå.
Trinn 6) Analyser resultatene
Analyser ytelsesgrafene og beregningene som feil, tid tatt, virtuelle brukere, etc.
Eksempler på piggtestscenarier
- Når en e-handelsbutikk lanserer spesialtilbud med gode rabatter som på Black Friday.
- Når en nettapplikasjon direktestrømmer et favoritt-TV-program.
- Når et flash-salg pågår på et nettsted med daglige tilbud.
- Når det bestemte innholdet på et nettsted blir viralt over Internett.
- Et nytt system er lansert for produksjon, og flere brukere ønsker å få tilgang til systemet.
- Et strømbrudd kan føre til at alle brukere mister tilgangen til et system. Etter at strømbruddet er løst, logger alle brukere på systemet samtidig.
Gjenopprettingsscenarioer på piggbelastninger
Tre hovedgjenopprettingsscenarier som kan konfigureres for å beskytte mot pigger er:
- Bruk skyplattformer som AWS, Azure for å dynamisk øke serverkapasiteten i takt med brukerbelastningen
- Ikke tillat applikasjonstilgang til noen brukere, slik at systemet ikke blir utsatt for tung belastning. Dette hindrer personer over den maksimale beregnede lasten fra å komme inn i systemet. Dermed beskytter systemet mot trusselen om en overdreven belastning.
- Nettstedets administrator lar brukere bli med i systemet. Men med advarsel om at de kan møte langsom respons på grunn av tung belastning. Dette kan føre til en negativ effekt på systemets ytelse. Imidlertid vil brukeren kunne jobbe med systemet.
Fordeler og ulemper med spiketesting
Nedenfor er fordelene og ulempene med Spike Testing:
| Fordeler | Ulemper |
|---|---|
| Ytelsen til programvaren må opprettholdes for enhver pris. Men når det er en ekstrem økning i belastningen til et system, er det store sjanser for problemene. Spike Testing hjelper til med å teste et slikt scenario. | Den eneste ulempen med Spike Testing er at det er en kostbar testprosess. Så det var nødvendig å sette opp spesielle testforhold. Men over lengre varighet vil det garantert gi en positiv avkastning. |
| I standard testmetode kan det hende de dårlige til verste tilfellene ikke tas opp. Men å ignorere dem betyr ikke at de aldri vil skje. Derfor bør hver programvare være klar for slike muligheter. Et slikt worst case-scenario er lasting som kan bedømmes og minimeres ved hjelp av piggtesting. |
Spike testverktøy
1) JMeter
Ocuco Apache JMeter er et java åpen kildekode spike testing verktøy. Den er spesielt designet for å laste funksjonell testatferd og måle ytelse. Dette ytelsestestverktøyet kan brukes til å analysere og måle ytelsen til nettapplikasjoner eller en rekke tjenester. I dag er det mye brukt for funksjonstesten, databaseservertesten.
2) Loadrunner
LoadRunner er et lasttestingsverktøy for Windows og Linux, som tillater spiketesting av web- og andre apper. Det hjelper å bestemme ytelsen og resultatet av påføringen selv under tung belastning.
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.
Spike-testing: Viktige konklusjoner
- programvaretesting er en type programvaretesting der en programvareapplikasjon testes med ekstreme økninger og reduksjoner i trafikkbelastning.
- Den riktige tilnærmingen til å utføre piggtesting er å uventet øke antallet brukere etterfulgt av en umiddelbar reduksjon i belastningen.
- Den uventede belastningen er hovedattributtet til avtalen.
- Eksempler på virkelige Spike-testscenarier er - når en e-handelsbutikk lanserer spesialtilbud med gode rabatter som på Black Friday. Alternativt, når en nettapplikasjon direktestrømmer et favoritt-TV-program.
- JMeter er et så nyttig verktøy for å gjøre piggtesting.
