Soak Test i programvara: Betydelse och exempel
โก Smart sammanfattning
Soak Testing tillรคmpar en ihรฅllande, realistisk belastning pรฅ en applikation under en lรคngre period fรถr att avslรถja problem som bara uppstรฅr med tiden. Minneslรคckor, anslutningsutmattning och drift i lรฅngsam prestanda รคr de defekter som den รคr utformad fรถr att upptรคcka.

Vad รคr Soak Testing?
Blรถtlรคggningstestning รคr en typ av icke-funktionell testning som anvรคnds fรถr att mรคta prestanda fรถr en mjukvaruapplikation under en enorm belastning under en lรคngre tidsperiod. Mรฅlet med Soak-testning รคr att sรคkerstรคlla om mjukvaruapplikationen hรฅller hรถg anvรคndningsvolym och att kontrollera vad som skulle hรคnda utanfรถr dess designfรถrvรคntningar.
Bilden nedan visar en testcykel som visar i vilket skede blรถtlรคggningstestningen (Typ av prestandatest) utfรถrs pรฅ en applikation.
I denna typ av testning รคr det som i princip รถvervakas minnesutnyttjandet av en applikation i ett system. Det testar pรฅ systemnivรฅ fรถr att ta reda pรฅ om systemet kommer att klara en mycket hรถg anvรคndningsvolym och fรถr att se vad som skulle hรคnda utanfรถr dess designfรถrvรคntningar.
Varfรถr gรถr man blรถtlรคggningstestning?
Ett system kan bete sig normalt nรคr det anvรคnds i 2 timmar, men nรคr samma system anvรคnds kontinuerligt i 10 timmar eller mer รคn sรฅ kan det misslyckas eller bete sig onormalt/slumpmรคssigt/det kan krascha. Fรถr att fรถrutsรคga ett sรฅdant misslyckande utfรถrs blรถtlรคggningstestning.
Nรคr ska man gรถra blรถtlรคggningstestning?
Blรถtlรคggningstestning bรถr gรถras i fรถljande scenarier: โ
- Innan den byggda distribueras till klienten, dvs innan nรฅgon applikation slรคpps pรฅ en specifik plattform, mรฅste den genomgรฅ en framgรฅngsrik serie belastningstester pรฅ hรถga eller likvรคrdiga trafiknivรฅer. Dรคrefter blรถtlรคggningstestning utfรถrs. Det hjรคlper oss att avgรถra hur man kรถr en viss applikation under en lรคngre period. Om problem som minneslรคckor/minneskorruption upptรคcks under perioden, dvs nรคr den รคr pรฅ Soak, bรถr det omedelbart rapporteras.
- Den bรคsta tiden att gรถra ett blรถtlรคggningstest รคr under helgerna eftersom en applikation mรฅste vara igรฅng sรฅ lรคnge som รถver en dag eller natt. Det beror helt pรฅ testsituationens begrรคnsningar. Blรถtlรคggningstester รคr ett av de viktigaste efterlevnadskraven som mรฅste fรถljas mycket strikt av varje fรถretag.
Blรถtlรคggningsteststrategi
Long Session Soak Testing รคr en strategi dรคr ett system รคr under belastning under en lรคngre tid.
Ett enkelt exempel รคr dรคr anvรคndaren fรถrblir inloggad i ett system i mรฅnga timmar och utfรถr ett antal affรคrstransaktioner. Pรฅ sรฅ sรคtt skapas mycket data. Det kan vara mycket belastning pรฅ systemet/databasservern vilket kan resultera i att systemet/databasservern stannar/kraschar.
Under Long Session Soak Testing utfรถrs flera dagars (sรคg 30 dagar) aktiviteter inom en begrรคnsad tidsram (sรคg 2 dagar). Antalet transaktioner inom denna begrรคnsade tidsram bรถr matcha eller รถvertrรคffa flera dagars transaktioner. Fokus bรถr ligga pรฅ antalet transaktioner som behandlas. Den viktigaste delen av Soak Testing รคr att kontrollera det tillgรคngliga minnet i CPU:n och mรคngden minne som kommer att anvรคndas. Vi mรฅste registrera minnesanvรคndningen i bรถrjan och slutet av ett blรถtlรคggningstest. Om det behรถvs, dรฅ minnesanvรคndningen av faciliteter som t.ex Java Virtuella maskiner รคr ocksรฅ viktiga och mรฅste รถvervakas.
Nedan finns nรฅgra fler kontroller som behรถver gรถras av alla anvรคndare/testare innan de bรถrjar med Soak Testing:
a) รvervaka databasresursfรถrbrukningen.
b) รvervaka serverresursfรถrbrukningen (ex CPU-anvรคndning).
c) Blรถtlรคggningstestet bรถr kรถras med realistisk anvรคndarsamverkan.
Egenskaper fรถr blรถtlรคggningstestning
En standardmetod fรถr blรถtlรคggningstestning bรถr ha fรถljande egenskaper: โ
- Varaktigheten av de flesta Soak Tester bestรคms ofta av den tillgรคngliga tiden.
- Alla program mรฅste kรถras utan avbrott om de krรคver en lรคngre tidsperiod.
- Den bรถr tรคcka alla scenarier som intressenterna kommit รถverens om.
- Fรถr det mesta varje system har en regelbunden underhรฅllsperiod och tiden mellan sรฅdana perioder รคr en nyckelfaktor fรถr att bestรคmma omfattningen av ett blรถtlรคggningstest.
Exempel pรฅ blรถtlรคggningstestning
- Nรคr det gรคller bankdomรคner nรคr det finns en stor mรคngd data frรฅn handlare, kommer testaren att belasta systemet kontinuerligt i 70 timmar till 150 timmar fรถr att kontrollera hur applikationen beter sig under denna laddningsperiod.
- Anta att det finns 33,000 60 inloggningar som mรฅste fรถras genom systemet, det representerar sju och en halv dag av aktivitet. I det hรคr fallet kan ett 70-6 timmars blรถtlรคggningstest pรฅbรถrjas senast fredag โโkvรคll runt kl. XNUMX som kan slutfรถras av Monday morgon klockan 6. Endast med ett sรฅdant test kommer det att vara mรถjligt att observera eventuell fรถrsรคmring av prestanda under kontrollerade fรถrhรฅllanden.
- Nรคr det gรคller videospel, Mobil applikationer etc. innebรคr att spelet eller applikationen ska vara igรฅng under en lรคngre tidsperiod, i olika driftlรคgen - sรฅsom tomgรฅng, paus pรฅ titelskรคrmen och sรฅ vidare fรถr att ta reda pรฅ om en applikation kan hantera den kontinuerligt fรถrvรคntade belastningen .
Vanliga problem som observerats under blรถtlรคggningstestning
- Minnesallokering (minneslรคckor som sรฅ smรฅningom skulle resultera i en minneskris eller avrundningsfel som bara visar sig รถver tiden).
- Databasresursutnyttjande (misslyckande med att stรคnga databasmarkรถrer under vissa fรถrhรฅllanden som sรฅ smรฅningom skulle resultera i att hela systemet stannar).
- Det kan ocksรฅ leda till prestationsfรถrsรคmring, dvs att sรคkerstรคlla att svarstiden efter en lรฅng period av ihรฅllande aktivitet รคr lika bra som den var i bรถrjan av testet.
- Misslyckande med att stรคnga anslutningar mellan nivรฅer i ett system med flera nivรฅer under vissa omstรคndigheter, vilket kan stoppa nรฅgra eller alla moduler i systemet.
- Den gradvisa fรถrsรคmringen av en svarstid fรถr vissa funktioner eftersom interna datastrukturer blir mindre effektiva under ett lรฅngt test.
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.

