Vad är Spike Testing in Software Testing? Lär dig med exempel

⚡ Smart sammanfattning

Spiktestning utsätter en applikation för en plötslig, extrem belastningsökning och drar sedan tillbaka den lika abrupt. Målet är att ta reda på om systemet överlever chocken och, lika viktigt, om det återhämtar sig efteråt.

  • ⚡ Laddningsmönster: En kraftig ökning långt över normal trafik, hölls kort och togs sedan bort.
  • 🎯 Primärt mål: Fastställ om systemet misslyckas, och om det misslyckas på ett nätt och jämnt sätt.
  • 🔄 Återhämtningsfrågor: Att återgå till normala svarstider efter en topp är lika viktigt som att överleva den.
  • 📈 Realistiska utlösare: Flashförsäljning, biljettsläpp, viral trafik och schemalagda batchjobb.
  • 🛠️ Verktyg: JMeter och LoadRunner modellerar båda en omedelbar upprampning snarare än en gradvis.
  • 📊 Vad ska vi titta på: Felfrekvens, ködjup och tiden det tar att återgå till baslinjen.

Vad är spiktestning

Vad är Spike Testing?

Spike testning är en typ av mjukvarutestning där en mjukvaruapplikation testas med extrema ökningar och minskningar i trafikbelastning. Huvudsyftet med spiktestning är att utvärdera mjukvaruapplikationens beteende under plötsliga ökningar eller minskningar av användarbelastningen och bestämma återhämtningstiden efter en topp i användarbelastningen.

Spike Testing utförs för att uppskatta svagheterna i mjukvaruapplikationer.

Spike testning
Spike testning

Mål med spiktestning

Målet med Spike-testning är att se hur systemet reagerar på oväntad ökning och minskning av användarbelastningen. Inom mjukvaruteknik hjälper spiktestning att fastställa systemprestandan kommer att försämras när det uppstår en plötslig hög belastning.

Ett annat mål med Spike Testing är att bestämma återhämtningstiden. Mellan två på varandra följande toppar av användarbelastning behöver systemet lite tid för att stabilisera sig. Denna återhämtningstid bör vara så kort som möjligt.

Hur man gör Spike Testing

Här är de enkla stegen för att utföra Spike Testing:

Steg 1) Bestäm lastkapaciteten

Bestäm den maximala användarbelastningskapaciteten för ditt program.

Steg 2) Förbered testmiljön

Förbered testmiljön och konfigurera den för att registrera prestandaparametrar.

Steg 3) Definiera förväntad belastning

Applicera förväntad maximal belastning på din programvara med hjälp av en Verktyg för prestandatestning som du väljer.

Steg 4) Öka belastningen

Öka snabbt belastningen på systemet under en bestämd period.

Steg 5) Ställ tillbaka belastningen till Normal

Minska gradvis belastningen tillbaka till sin ursprungliga nivå.

Steg 6) Analysera resultaten

Analysera prestandagrafer och mätvärden som misslyckanden, tid, virtuella användare, etc.

Exempel på scenarier för spiktestning

  • När en e-handelsbutik lanserar specialerbjudanden med fantastiska rabatter som på Black Friday.
  • När en webbapplikation livestreamar ett favorit-TV-program.
  • När en flash-rea pågår på en daglig dealsida.
  • När visst innehåll på en webbplats blir viralt över Internet.
  • Ett nytt system släpps för produktion och flera användare vill komma åt systemet.
  • Ett strömavbrott kan göra att alla användare förlorar åtkomst till ett system. Efter att avbrottsproblemet lösts loggar alla användare sedan in på systemet samtidigt.

Återställningsscenarier på spikbelastningar

Tre huvudsakliga återställningsscenarier som kan konfigureras för att skydda mot spikar är:

  1. Använd molnplattformar som AWS, Azure för att dynamiskt öka serverkapaciteten i takt med användarbelastningen
  2. Tillåt inte applikationsåtkomst för vissa användare, så att systemet inte utsätts för tung belastning. Detta hindrar personer över den maximalt utformade belastningen från att komma in i systemet. På så sätt skyddar systemet från hotet om överbelastning.
  3. Webbplatsadministratören tillåter användare att gå med i systemet. Men med varning om att de kan möta långsam respons på grund av tung belastning. Detta kan resultera i en negativ effekt på systemets prestanda. Däremot kommer användaren att kunna arbeta med systemet.

Fördelar och nackdelar med spiktestning

Nedan är fördelarna och nackdelarna med Spike Testing:

Fördelar Nackdelar
Programvarans prestanda måste bibehållas till varje pris. Men när det finns en extrem ökning av belastningen på något system, finns det stora chanser att problemen uppstår. Spike Testing hjälper till att testa ett sådant scenario. Den enda nackdelen med Spike Testing är att det är en dyr testprocess. Så det behövde ställa in speciella testförhållanden. Men under den längre varaktigheten kommer det säkerligen att ge en positiv ROI.
I standardtestmetoden kanske de dåliga till värsta scenarierna inte åtgärdas. Att ignorera dem betyder dock inte att de aldrig kommer att inträffa. Därför bör varje programvara vara redo för sådana möjligheter. Ett sådant värsta scenario är belastning som kan bedömas och minimeras med hjälp av spiktestning.  

Spike testverktyg

1) JMeter

Ocuco-landskapet Apache JMeter är ett java spiktestverktyg med öppen källkod. Den är speciellt utformad för att ladda funktionellt testbeteende och mäta prestanda. Detta prestandatestverktyg kan användas för att analysera och mäta prestanda för webbapplikationer eller en mängd olika tjänster. Idag används det ofta för funktionstestet, databasservertest.

2) LoadRunner

LoadRunner är ett lasttestverktyg för Windows och Linux, som tillåter spiktestning av webb- och andra appar. Det hjälper till att bestämma prestandan och resultatet av applikationen även under tung belastning.

Hur detta test passar in i prestationstestfamiljen

Prestandatestning är ett paraplybegrepp. Varianterna nedan skiljer sig endast åt i formen av den applicerade belastningen och hur länge den hålls, vilket är anledningen till att de så ofta förväxlas med varandra.

Testtyp Lastmönster Fråga den svarar
Lasttestning Förväntad toppbelastning, kort varaktighet Uppfyller systemet sina mål under normal trafikbelastning?
Stresstestning Ökade utöver kapaciteten tills fel uppstod Var går det sönder, och fallerar det graciöst?
Spike testning Plötslig extrem ökning, sedan tillbakadragande Överlever och återhämtar den sig från en trafikchock?
Uthållighetstestning Normal belastning hålls i många timmar Försämras prestandan med tiden?
Blötläggningstestning Ihållande belastning under en längre period Finns det minnesläckor eller resursutmattning?
Stabilitetstestning Varierande belastning beroende på förhållanden Förblir systemet tillförlitligt även när förhållandena förändras?
Volymtestning Vanliga användare, mycket stor datamängd Klarar den sig av att databasen växer?

Uthållighets- och blötläggningstestning behandlas ofta som synonymer. Vanligtvis används de som: båda håller en ihållande belastning under en lång period. Där team skiljer dem åt fokuserar uthållighetstestning på om svarstiderna glider uppåt, medan soak-testning fokuserar på resursförbrukning som minne, filreferenser och anslutningspooler. Att köra en ger dig vanligtvis bevis för båda.

Viktiga mätvärden att fånga upp under testet

En prestandakörning är bara så bra som vad du spelar in medan den körs. Registrera dessa sex på server- och klientsidan och jämför dem sedan mot baslinjen snarare än mot en magkänsla.

metrisk Vad det säger dig Varningstecken
Genomsnittlig svarstid Typisk användarupplevelse Eventuell uppåtgående drift över banan
95:e percentilens svarstid Upplevelsen för de långsammaste användarna Långt över genomsnittet, vilket betyder inkonsekvens
genomströmning Hanterade förfrågningar per sekund Faller medan belastningen förblir konstant
Felhastighet Andel misslyckade eller tidsgränsade förfrågningar Varje höjning över det överenskomna tröskelvärdet
CPU- och minnesanvändning Serverresursutrymme Minne som klättrar och aldrig återvänder
Databasanslutningar och trådar Poolutmattning Antal som växer stadigt utan utgivning

Läs av medelvärdet och percentilen tillsammans. Ett genomsnitt på 800 ms med en 95:e percentil på 900 ms beskriver ett konsekvent system. Samma genomsnitt med en 95:e percentil på 9 sekunder innebär att en användare av tjugo har det dåligt, och genomsnittet döljer det.

Titta på formen, inte bara på värdet. I alla långvariga tester är en platt resurslinje ett godkänt resultat och en stigande är en läcka, även om det absoluta antalet fortfarande ligger bekvämt inom gränsen när körningen avslutas.

Spiktestning: Viktiga slutsatser

  • mjukvarutestning är en typ av mjukvarutestning där en mjukvaruapplikation testas med extrema ökningar och minskningar i trafikbelastning.
  • Rätt tillvägagångssätt för att göra spiktestning är att oväntat öka antalet användare följt av en omedelbar minskning av belastningen.
  • Den oväntade belastningen är affärens huvudattribut.
  • Exempel på verkliga scenarier för Spike-testning är – när en e-handelsbutik lanserar specialerbjudanden med fantastiska rabatter som på Black Friday. Alternativt, när en webbapplikation livestreamar ett favorit-TV-program.
  • JMeter är ett sådant användbart verktyg för att göra spiktestning.

Vanliga frågor

Stresstestning ökar belastningen gradvis tills systemet går sönder, för att hitta maxbelastningen. Spiktestning applicerar den extrema belastningen omedelbart, för att se om en plötslig stöt orsakar ett fel som en gradvis ramp inte skulle göra.

Ett system som håller sig uppe men aldrig återgår till normala svarstider har ändå svikit användarna som anländer efter topparna. Återställningstiden är det mått som återspeglar den verkliga affärspåverkan.

Basera det på en verklig händelse snarare än ett runt tal. Historisk trafik från en tidigare försäljning eller lansering, multiplicerad med den förväntade tillväxten sedan dess, ger ett försvarbart mål.

AI-modeller tränade på historisk trafik, marknadsföringskalendrar och externa signaler prognostiserar när trafiktoppar kommer att inträffa, vilket gör det möjligt för team att förskala infrastruktur istället för att reagera i efterhand.

Ja. AI-verktyg kan härleda toppprofiler från produktionsåtkomstloggar och reproducera den verkliga formen av tidigare ökningar snarare än en artificiell stegvis förändring.

Sammanfatta detta inlägg med: