Vad är STRESS-testning i mjukvarutestning?
⚡ Smart sammanfattning
Stresstestning pressar en applikation bortom dess normala driftsgränser för att hitta brytpunkten, bekräfta att fel hanteras smidigt och bevisa att systemet återställer sig smidigt när den extrema belastningen har avlägsnats.
Vad är stresstestning?
Stresstestning är en typ av mjukvarutestning som verifierar stabiliteten och tillförlitligheten hos en mjukvaruapplikation. Målet med stresstestning är att mäta programvarans robusthet och felhanteringsförmåga under extremt tunga belastningsförhållanden, och att säkerställa att programvaran inte kraschar i nödsituationer. Den testar medvetet bortom normala driftspunkter och utvärderar hur programvaran beter sig under extrema förhållanden.
Under stresstestning stressas den testade applikationen (AUT) under en kort tidsperiod för att fastställa dess motståndskraft. Den mest framträdande användningen av stresstestning är att fastställa gränsen där systemet, programvaran eller hårdvaran går sönder. Det kontrollerar också om systemet uppvisar effektiv felhantering när den gränsen har passerats.
In MjukvaruutvecklingStresstestning listas ofta bredvid Uthållighetstestning, men de två skiljer sig åt: Stresstestning applicerar en onormalt hög belastning i en kort period för att hitta brottpunkten, medan uthållighetstestning (blötläggning) håller en måttlig belastning i timmar för att exponera gradvis försämring.
Skärmdumpen nedan visar ett stort datablock som kopieras från en webbsida.
Applikationen som testas stressas när 5 GB data kopieras från webbplatsen och klistras in i Anteckningar. Anteckningar stressas nu och returnerar felmeddelandet "Svarar inte", precis som nästa skärmdump visar.
Samma princip skalas direkt till serversidessystem.
Behov av stresstest
Tänk på följande exempel i realtid där användningen av stresstestning blir uppenbar:
- Under festivalen, en webbutikping webbplatsen kan uppleva en trafikökning, eller när den tillkännager en rea.
- När en blogg nämns i en ledande tidning upplever den en plötslig ökning av trafiken.
Det är absolut nödvändigt att utföra stresstester för att hantera sådana onormala trafiktoppar. Underlåtenhet att hantera denna plötsliga trafik kan leda till förlust av intäkter och rykte.
Stresstestning är också oerhört värdefull av följande skäl:
- Den kontrollerar om systemet fungerar under onormala förhållanden.
- Det bekräftar att ett lämpligt felmeddelande visas när systemet är under stress.
- Systemfel under extrema förhållanden kan leda till enorma intäktsförluster.
- Det är bättre att vara förberedd på extrema förhållanden genom att utföra stresstester i förväg.
Nästa avsnitt beskriver vad ett lyckat stresstest måste bevisa.
Mål för stresstestning
Målet med stresstestning är att analysera systemets beteende efter ett fel. För att stresstestning ska lyckas bör ett system visa ett lämpligt felmeddelande under extrema förhållanden.
För att utföra stresstester används ibland massiva datamängder, och dessa data kan gå förlorade när systemet slutar fungera. Testare bör se till att dessa säkerhetsrelaterade data inte går förlorade under stresstester.
Huvudsyftet med stresstestning är att säkerställa att systemet återhämtar sig efter ett fel, en egenskap som kallas återställningsförmåga. Återhämtningstestning verifierar sedan återställningsproceduren i detalj.
Belastningstestning kontra stresstestning
Båda teknikerna tillhör Prestandatester familj, så de är lätta att förväxla. Diagrammet nedan jämför de två lastprofilerna.
| Lasttestning | Stresstestning |
|---|---|
| Lasttestning testar systemets beteende under normala arbetsbelastningsförhållanden; den simulerar den faktiska förväntade arbetsbelastningen. | Stresstestning testar systemets beteende under extrema förhållanden och utförs tills systemet slutar fungera. |
| Lasttestning orsakar inte sönderfall i systemet. | Stresstestning försöker medvetet förstöra systemet genom att överbelasta det med data eller genom att utestänga det från resurser. |
Relaterade profiler inkluderar Spike testning (en plötslig kort utbrott), Volymtestning (stor mängd data snarare än många användare) och Skalbarhetstestning (tillväxtutrymme).
Typer av stresstester
Följande är typerna av stresstestning, förklarade en i taget.
Distribuerad stresstestning
I distribuerade klient-server-system utförs testning över alla klienter från servern. Stressserverns roll är att distribuera en uppsättning stresstester till alla stressklienter och att track statusen för varje klient. Efter att en klient kontaktar servern lägger servern till klientens namn och börjar skicka data för testning. Figuren nedan visar hur stressservern når vissa klienter men inte andra.
Samtidigt skickar klientmaskiner en signal, eller ett hjärtslag, som bekräftar att de fortfarande är anslutna till servern. Om servern inte tar emot någon signal från en klientmaskin måste den maskinen undersökas ytterligare för felsökning. I figuren kan servern ansluta till två klienter (klient1 och klient2), men den kan inte skicka eller ta emot en signal från klient 3 och klient 4.
En körning över natten är det bästa alternativet för dessa stresstestscenarier. Stora serverfarmar behöver en effektivare metod för att avgöra vilka datorer som har haft stressfel som behöver undersökas.
Applikationsstresstestning
Denna testning koncentrerar sig på att hitta fel relaterade till datalåsning och blockering, nätverksproblem och prestandaflaskhalsar i en enda applikation.
Transaktionell stresstestning
Den utför stresstester på en eller flera transaktioner mellan två eller flera applikationer. Den används för finjustering och optimering av systemet.
Systemisk stresstestning
Detta är integrerade stresstester som kan köras på flera system som delar samma server. Det används för att hitta fel där en applikation blockerar data från en annan applikation.
Explorativ stresstestning
Detta är den typ av stresstestning som används för att testa systemet med ovanliga parametrar eller förhållanden som sannolikt inte uppstår i ett verkligt scenario. Det används för att hitta defekter i oväntade situationer som:
- Ett stort antal användare loggade in samtidigt.
- En virusskanner startar på alla maskiner samtidigt.
- En databas som går offline medan den nås från en webbplats.
- En stor mängd data som matas in i databasen samtidigt.
Oavsett vilken variant som gäller förblir exekveringssekvensen densamma.
Hur gör man stresstester?
Stresstestprocessen kan utföras i fem huvudsteg:
- Steg 1) Planera stresstestet: Här samlar du in systemdata, analyserar systemet och definierar målen för stresstestet.
- Steg 2) Skapa automatiseringsskript: I den här fasen skapar du automatiseringsskript för stresstestning och genererar testdata för stresscenarierna.
- Steg 3) Skriptkörning: I det här steget kör du automatiseringsskripten för stresstestning och lagrar stressresultaten.
- Steg 4) Resultatanalys: I det här steget analyserar du stresstestresultaten och identifierar flaskhalsar.
- Steg 5) Justering och optimering: I det här steget finjusterar du systemet, ändrar konfigurationer och optimerar koden med målet att uppnå önskat riktmärke.
Slutligen kör du hela cykeln igen för att avgöra om justeringarna har gett önskat resultat. Det är till exempel inte ovanligt att behöva 3 till 4 cykler av stresstestprocessen innan prestandamålen uppnås, så skripten underhålls normalt parallellt med regression på.
Verktyg rekommenderade för stresstestning
De fyra verktygen nedan täcker de flesta behov, från företagspaket till ett gratis alternativ med öppen källkod.
LoadRunner
LoadRunner är ett vanligt förekommande verktyg för belastningstestning, som nu säljs av OpenText i Professional-, Enterprise- och Cloud-utgåvorna efter att ha gått från HP till Micro Focus till OpenTextResultat från belastningstester som produceras av LoadRunner behandlas som ett riktmärke.
JMeter
Apache JMeter är ett testverktyg med öppen källkod. Det är en renodlad Java applikation för stress- och prestandatestning, och den är avsedd att täcka testtyper som belastning, funktion och stress. Nuvarande 5.6.x-versioner av Apache JMeter kräver Java 8 eller senare, med Java 17 rekommenderade.
Stresstestare
Det här verktyget ger omfattande analyser av webbapplikationers prestanda, presenterar resultat i grafiskt format och är enkelt att använda. Inget högnivåskript krävs, vilket håller avkastningen på investeringen på en lägre nivå.traclämplig för mindre team.
NeoLadda
NeoLadda, nu en del av Tricentis portfolio, är ett populärt verktyg för att testa webb och Mobila applikationerDen kan simulera tusentals användare för att utvärdera applikationers prestanda under belastning och analysera svarstider. Den stöder även molnintegrerade prestanda-, belastnings- och stresstester, och den skalar bra.
Fler alternativ listas i guiden till verktyg för prestandatestning; oavsett vilket som väljs, betyder dess utdata endast något mot mätvärdena nedan.
Mätvärden för stresstestning
Mätvärden hjälper till att utvärdera ett systems prestanda och studeras vanligtvis i slutet av stresstestet. Vanligt förekommande mätvärden grupperas i tre familjer.
Mätning av skalbarhet och prestanda
- Sidor per sekund: Mäter hur många sidor som har begärts per sekund.
- genomströmning: Ett grundläggande mått – svarsdatastorlek per sekund.
- Rundor: Antalet gånger testscenarier har planerats kontra antalet gånger en klient har kört dem.
Ansökningssvar
- Träfftid: Genomsnittlig tid för att hämta en bild eller en sida.
- Tid till första byte: Tid det tar att returnera den första byten med data eller information.
- Sidtid: Tid det tar att hämta all information på en sida.
misslyckanden
- Misslyckade anslutningar: Antal misslyckade anslutningar som nekats av klienten (svag signal).
- Misslyckade rundor: Antal misslyckade rundor.
- Misslyckade träffar: Antal misslyckade försök av systemet (trasiga länkar eller osedda bilder).
I det avslutande avsnittet listas de situationer som oftast motiverar ett stresstest.
Exempel på stresstestning
Stresstestning förtjänar sin plats när en händelse förväntas driva trafiken långt bortom den dagliga baslinjen:
- En e-handelswebbplats som tillkännager en festivalrea.
- En nyhetssajt vid tidpunkten för en större händelse.
- En utbildningsnämnd publicerar provresultaten.
- Sociala nätverkssajter, bloggar och mobilappar under ett viralt ögonblick.
I varje fall övervakar testet resurser som minne, processor och nätverk, kontrollerar att lämpliga felmeddelanden visas under stress och bekräftar att systemet återgår till det normala efteråt. Det passar in i livscykel för mjukvarutestning som en icke-funktionell kontroll vid sidan av Kravhantering och den bredare uppsättningen av typer av mjukvarutestning.

.png)
.png)

