Stresstestning är en av de typer av mjukvarutestning som utvärderar systemets tillförlitlighet och stabilitet under förhållanden där gränserna för normal drift överskrids. Stresstestning är särskilt nödvändig för "kritisk" programvara, men används även för annan programvara. Vanligtvis är stresstester bättre för att upptäcka uthållighet, tillgänglighet och undantagshantering av ett system under hög belastning än vad som anses vara korrekt beteende under normala förhållanden.
Termen "stresstestning" används ofta som en synonym för " belastningstestning " såväl som " prestandatestning ", vilket är felaktigt, eftersom dessa typer av tester svarar på olika affärsfrågor och använder olika metoder .
I allmänhet är stresstestmetoden baserad på registrering och analys av applikationsprestandaindikatorer under belastningar som är betydligt högre än förväntat vid underhållsstadiet, och syftar till att bestämma applikationens uthållighet eller stabilitet i händelse av en explosion av aktivitet i dess användning.
Behovet av stresstester dikteras av följande faktorer:
De huvudsakliga tillämpningsområdena för stresstester:
Stresstestning, liksom belastningstestning , kan också användas för att regelbundet utvärdera prestandaförändringar för att få ytterligare analys av dynamiken i förändringar i systembeteende under en lång period.
Stresstestning kan tillämpas både på fristående applikationer och på distribuerade system med en klient-server-arkitektur. Det enklaste exemplet på att stresstesta en fristående applikation är att öppna en 50 MB fil med Notepad, som ingår i Windows. Villkor för applikationsstresstestning utformas vanligtvis baserat på de kritiska affärsprocesserna för dess funktionalitet, fastställda under kravutvecklings- och riskanalysstadiet av prestationsteamet .
Generellt sett kan en linjärt ökad förväntad belastning användas som villkor för stresstestning.
När det gäller att testa multi-link distribuerade system , är det nödvändigt att ta hänsyn till inte bara den faktiska volymen av lasten, som består av många element, utan också deras proportioner i den totala volymen.
Exempel 1:
Webbtjänsten är designad för att bearbeta och visa användarskapade sidor, som var och en kan bestå av ren text och dynamiska kontroller. Det är känt att en användare skapar 1 sida per dag, som innehåller i genomsnitt 1000 tecken text och ett formulär. Det är också känt att systemet tar emot 1 begäran om att visa källsidan per minut. Samtidigt är sidvisningshastigheten en kritisk affärsprocess. Med hjälp av beteendemodellen för användare som använder systemet som beskrivs ovan är det lätt att modellera en förändring i belastningens dynamik när de ökar. Ett stresstest baserat på en sådan belastningsmodell tar inte upp de risker som är förknippade med att systemet inte längre kommer att uppfylla prestandakraven när scenariot för dess användning förändras. Till exempel kan sidvisningshastigheten minskas avsevärt om användare lägger till dussintals formulär i stället för ett. |
Användningen av oproportionerlig belastning i stresstester kan också användas för att identifiera flaskhalsar i enskilda systemkomponenter.
Kapacitetstestning är ett av de viktigaste områdena inom stresstester när det gäller affärsutveckling och det svåraste att genomföra och analysera. Kapacitetstestning utförs för att fastställa systemets säkerhetsmarginal samtidigt som prestandakraven uppfylls.
Vid modellering av belastningen för att testa systemets kapacitet beaktas både den aktuella belastningen i form av antalet och proportionerna av förfrågningar som samtidigt kommer in i systemet och den förväntade i framtiden.
Exempel 2:
Webbtjänsten är utformad för att visa data för registrerade användare i .docx-format. Utvecklingsbolaget är på väg att publicera möjligheten att visa data i .pdf-format, medan det förväntas att nuvarande användare kommer att fortsätta arbeta med det gamla formatet, och nya kommer att använda .pdf-formatet. Vid modellering av belastningen på system under kapacitetstestning tas inte bara hänsyn till det aktuella scenariot för dess användning (visar data i .docx), utan även det förväntade användningsfallet i framtiden (några av användarna arbetar samtidigt med systemet använder .docx och vissa använder .pdf) |
Utdata från ett applikations- eller systemkapacitetstest är en uppsättning av maximalt tillåtna systembelastningsegenskaper under vilka applikationen eller systemet uppfyller de prestandakrav som utvecklats och dokumenterats under arkitekturdesignfasen.