Stabilitetstest i softwaretest

โšก Smart opsummering

Stabilitetstest kontrollerer, om en applikation fortsรฆtter med at fungere pรฅlideligt, nรฅr forholdene รฆndrer sig, i stedet for kun under รฉn fast belastning. Det afslรธrer nedbrud, ressourceudtรธmning og forringelse, som en kort funktionel kรธrsel aldrig nรฅr.

  • ๐Ÿ—๏ธ Kerneformรฅl: Bekrรฆft, at systemet forbliver pรฅlideligt under varierende belastning og langvarig drift.
  • โš ๏ธ Risiko undgรฅet: Utestede systemer fejler i produktionen under forhold, som ingen har รธvet sig pรฅ.
  • ๐Ÿ“Š Primรฆr Signals: CPU-, hukommelses-, disk- og trรฅdantal tracked over hele varigheden.
  • ๐Ÿ”„ Ikke-funktionel: Den mรฅler adfรฆrd under stress snarere end korrektheden af โ€‹โ€‹โ€‹โ€‹trรฆk.
  • ๐Ÿงช Testdesign: Sager er rettet mod vedvarende CPU-belastning, hukommelsespres og gentagne transaktioner.
  • ๐Ÿ“ˆ Rapportering: Trendgrafer er vigtigere end enkeltstรฅende aflรฆsninger, fordi drift er defekten.

Stabilitetstest i softwaretest

Hvad er stabilitetstest?

Stabilitetstest er en type ikke-funktionel softwaretest udfรธrt for at mรฅle effektiviteten og evnen af โ€‹โ€‹en softwareapplikation til kontinuerligt at fungere over en lang periode. Formรฅlet med stabilitetstestning er at kontrollere, om softwareapplikationen gรฅr ned eller fejler ved normal brug pรฅ et hvilket som helst tidspunkt ved at udรธve hele dets anvendelsesomrรฅde.

Stabilitetstest udfรธres for at kontrollere effektiviteten af โ€‹โ€‹et udviklet produkt ud over normal driftskapacitet, ofte til et brudpunkt. Der er stรธrre betydning for fejlhรฅndtering, softwarepรฅlidelighed, robusthed og skalerbarhed af et produkt under tung belastning frem for at kontrollere systemets adfรฆrd under normale omstรฆndigheder.

Stabilitetstest vurderer stabilitetsproblemer. Denne test er primรฆrt beregnet til at stresse softwarekomponenten maksimalt. Det er en ikke-funktionel teknik.

Stabilitetstest
Stabilitetstest

Stabilitetstest omtales ogsรฅ som en belastning eller udholdenhedstest.

Risici, hvis systemet under test ikke har gennemgรฅet stabilitetstest

For en applikation under test, hvor et stort antal brugere introduceres, og applikationer, der skal kรธre i flere mรฅneder uden at genstarte, vil der sandsynligvis opstรฅ en rรฆkke problemer:

Den mulige fejl kan konfronteres,

  • systemet bremser
  • systemet stรธder pรฅ funktionsproblemer
  • systemet viser kablet adfรฆrd
  • systemet gรฅr helt ned

I Software Engineering, Stabilitetstest involverer typisk trรฆning af systemet med tunge brugere (virtuel) og mรฅling af ydeevneparametrene for at verificere, om systemet kan understรธtte den forventede belastning.

Hvorfor udfรธrer stabilitetstest

Denne form for test hjรฆlper brugerne med at forstรฅ, hvordan systemet vil fungere i virkelige situationer.

Derfor giver stabilitetstest dig mulighed for at kontrollere,

  • Giv tillid til stabiliteten af โ€‹โ€‹dit system, der testes.
  • Sรธrg for, at dit system kan hรฅndtere store programmer.
  • Overvรฅg effektiviteten af โ€‹โ€‹dit system.
  • Test systemets stabilitet under stress.

Det spiller en vigtig rolle i produktudvikling, da det bruges til at bestemme begrรฆnsningerne for et softwareprodukt, der testes, fรธr det frigives, eller omrรฅder med flere forbedringer, fรธr produktet gรฅr live eller i produktion.

Et meget almindeligt eksempel pรฅ stabilitetstestteknik er

Online SHopping Portals: Stabilitetstest vil kontrollere, hvordan hjemmesiden vil opfรธre sig, nรฅr โ€“

  • Hรธj mรฆngde data indtastet pรฅ spidsbelastningstidspunktet
  • Antal hits pรฅ et bestemt bestemt tidspunkt
  • Problem med sideindlรฆsning pรฅ samme tid
  • Systemets opfรธrsel
  • Systemets lydhรธrhed og mange flere kommer under Stabilitetstest

Et andet eksempel

A CPU test er en populรฆr form for stabilitetstest under Test af ydeevne teknik. Denne test kontrollerer processorstabilitet og overvรฅger ogsรฅ dens ydeevne, nรฅr processorens arbejdsbyrde รธges.

Sรฅdan laver du stabilitetstest

  • For at bestemme omfanget og formรฅlet med testen skal vi sikre, at applikationsserveren(e) ikke gรฅr ned under belastningstesten.
  • For at bestemme forretningsproblemerne skal du kontrollere systemets ydeevne og belastning i henhold til slutbrugerens perspektiv.
  • For at tildele de forskellige ansvarsomrรฅder og roller som -Oprettelse af testplan, Test sag design, Test case review, Test udfรธrelse mv.
  • For at sikre, at testen leverer inden for den angivne tid
  • For at sikre korrekt Load Testing vรฆrktรธjer og erfaringsteam er til stede for det samme.
  • At mรฅle risikoen og omkostningerne ved testen. Dette vil bestemme omkostningerne ved hver udfรธrelse i form af CPU-udnyttelse og hukommelse.
  • Bestem Defekt trackonge og rapportering og deres rette kortping med kravene.

Testcase for stabilitetstest for CPU-ydelse

  • For at verificere den รธvre grรฆnse for systemet.
  • Hvordan systemet gรฅr ned eller genopretter.
  • Et samlet antal gennemfรธrte transaktioner pr. anmodning.
  • Hvorvidt transaktionssvaret forbliver stabilt eller stiger over tid.
  • Hvordan systemet opfรธrer sig under hรฅrd belastning.
  • Dens reaktion og adfรฆrd under tung belastning.

Testrapporter til stabilitetstestning

Adskillige statistikker indsamles og mรฅles under testudfรธrelser; disse tal analyseres for at generere en rapport og identificere mulige prรฆstationsproblemer.

Eksempler pรฅ statistik indsamlet under test er:

  • Transaktionssvartider: Den gennemsnitlige tid det tager at udfรธre transaktioner under testen. Denne statistik vil evaluere, om serverens ydeevne er inden for de acceptable minimums- og maksimumsperioder for transaktionsydelse, der er defineret for systemet. Disse oplysninger vil evaluere den tid, det tager at behandle anmodningen af โ€‹โ€‹webserveren og sendes til applikationsserveren, som i de fleste tilfรฆlde vil fremsรฆtte en anmodning til en databaseserver.
  • Hits per sekund: Antallet af hits lavet pรฅ serveren af โ€‹โ€‹brugere. Disse statistikker gavner til at bestemme antallet af belastning, som brugere genererer med hensyn til et antal hits.
  • gennemlรธb: Mรฆngden af โ€‹โ€‹gennemlรธb pรฅ webserveren under testen, som mรฅles i bytes. Gennemlรธb betyder mรฆngden af โ€‹โ€‹data, som brugerne modtog fra serveren pรฅ et givet tidspunkt. Denne statistik hjรฆlper med at evaluere mรฆngden af โ€‹โ€‹belastning, som brugerne genererer.
  • Transaktion pr. sekund: Disse er det samlede antal gennemfรธrte transaktioner (bรฅde vellykkede og mislykkede) udfรธrt under en test. Denne statistik hjรฆlper med at kontrollere den faktiske transaktionsbelastning pรฅ systemet.
  • CPU: CPU procentudnyttelse brugt under en test.
  • Hukommelse: Hukommelsesbrug under en test.
  • Disk: udnyttelse af diskplads brugt under en test.

Grundlรฆggende om stabilitetstest

Stabilitetstest kommer under Performance Testing โ€“ en teknik, der udfรธres for at kontrollere nogle af softwarens kvalitetsegenskaber som stabilitet, pรฅlidelighed og tilgรฆngelighed.

Denne test bruges til at bestemme, hvor hurtigt et system eller undersystem klarer sig under en bestemt arbejdsbelastning.

Ydelsestest har mange typer, og stabilitetstest er en af โ€‹โ€‹dem.

  • Stresstest: Det er en testtype, som kontrollerer systemets robusthed ud over systemets kapacitet.
  • Spike test: Det bruges til at kontrollere et systems adfรฆrd ved at รธge en belastning af et system รธjeblikkeligt. Mรฅlet er at kontrollere, pรฅ hvilket tidspunkt systemet vil have problemer med ydeevnen, eller det vil bestรฅ.
  • Skalerbarhedstest: Det bruges til at kontrollere et systems muligheder. Hvor effektivt systemet vil opfรธre sig i stigende behov, รฆndring i stรธrrelse og รฆndring i volumen.
  • Volumen test: Det er en ikke-funktionel testteknik, hvor software, der testes, udsรฆttes for en enorm mรฆngde data, og et systems opfรธrsel kontrolleres og verificeres i overensstemmelse hermed.
  • Belastnings- eller stabilitetstest: (allerede diskuteret ovenfor)

Vรฆrktรธjer til stabilitetstest

Nogle af vรฆrktรธjerne til prรฆstationstest er som โ€“

  • WebLOAD
  • LoadRunner
  • Apache JMeter
  • NeoLoad
  • CloudTest
  • Laststorm
  • LoadUI
  • WAPT
  • LoadImpact
  • Lรฆsser
  • Httperf
  • OpenSTA

Hvordan denne test passer til prรฆstationstestfamilien

Ydelsestest er en paraplybetegnelse. Varianterne nedenfor adskiller sig kun i formen af โ€‹โ€‹den pรฅfรธrte belastning og den varighed, den holdes i, hvilket er grunden til, at de sรฅ ofte forveksles med hinanden.

Testtype Indlรฆsningsmรธnster Spรธrgsmรฅl det besvarer
Belastningstest Forventet spidsbelastning, kort varighed Opfylder systemet sine mรฅl under normal spidsbelastning?
Stresstest ร˜get ud over kapaciteten indtil fejl Hvor knรฆkker den, og fejler den yndefuldt?
Spike test Pludselig ekstrem stigning, derefter tilbagetrรฆkning Overlever og kommer den sig efter et trafikchok?
Udholdenhedstest Normal belastning holdt i mange timer Forringes ydeevnen over tid?
Soak-test Vedvarende belastning over en lรฆngere periode Er der hukommelseslรฆkager eller ressourceudtรธmning?
Stabilitetstest Varierende belastning under forskellige forhold Forbliver systemet pรฅlideligt, nรฅr forholdene รฆndrer sig?
Volumentest Normale brugere, meget stor datamรฆngde Klarer den sig, nรฅr databasen vokser?

Holdbarheds- og gennemvรฆdningstestning behandles ofte som synonymer. I almindelig brug er de: begge holder en vedvarende belastning i en lang periode. Hvor teams adskiller dem, fokuserer udholdenhedstest pรฅ, om svartiderne stiger, mens soak-test fokuserer pรฅ ressourceforbrug sรฅsom hukommelse, filhandles og forbindelsespuljer. At kรธre en giver dig normalt bevis for begge.

Nรธglemรฅlinger, der skal registreres under testen

En performancekรธrsel er kun sรฅ god som det, du optager, mens den udfรธres. Registrer disse seks pรฅ server- og klientsiden, og sammenlign dem derefter med baseline i stedet for med en mavefornemmelse.

metric Hvad den fortรฆller dig Advarselsskilt
Gennemsnitlig svartid Typisk brugeroplevelse Enhver opadgรฅende drift pรฅ tvรฆrs af lรธbet
95. percentil responstid Oplevelsen for de langsomste brugere Langt over gennemsnittet, hvilket betyder inkonsekvens
gennemlรธb Anmodninger behandlet pr. sekund Fald mens belastningen forbliver konstant
Fejlrate Andel af mislykkede eller timeout-forespรธrgsler Enhver stigning over den aftalte tรฆrskel
CPU- og hukommelsesforbrug Serverressource headroom Hukommelse der klatrer og aldrig vender tilbage
Databaseforbindelser og trรฅde Udmattelse af poolen Antal der vokser stรธt uden frigivelse

Lรฆs gennemsnittet og percentilen sammen. Et gennemsnit pรฅ 800 ms med en 95. percentil pรฅ 900 ms beskriver et konsistent system. Det samme gennemsnit med en 95. percentil pรฅ 9 sekunder betyder, at รฉn ud af tyve brugere har det dรฅrligt, og gennemsnittet skjuler det.

Se pรฅ formen, ikke kun vรฆrdien. I enhver langvarig test er en flad ressourcelinje et bestรฅet resultat, og en stigende er en lรฆkage, selv nรฅr det absolutte tal stadig er komfortabelt inden for grรฆnsen i det รธjeblik, kรธrslen slutter.

Ofte Stillede Spรธrgsmรฅl

Belastningstestning kontrollerer adfรฆrd ved en defineret top i en kort periode. Stabilitetstestning kรธrer pรฅ tvรฆrs af forskellige forhold i langt lรฆngere tid og leder efter forringelse snarere end efter bestรฅet eller fejlet i forhold til et mรฅl.

Lรฆnge nok til at langsomt opbyggende problemer kan opstรฅ, typisk 8 til 72 timer. Alt under en time giver sjรฆldent anledning til en hukommelseslรฆkage eller en forbindelsespulje, der gradvist drรฆnes.

Ressourcelรฆkager, ikke-lukkede databaseforbindelser, ubegrรฆnsede cacher og trรฅde, der oprettes, men aldrig frigives. Alle fire ser sunde ud pรฅ kort sigt og fejler, nรฅr kรธrslen er lang nok.

AI-baseret anomalidetektion registrerer det รธjeblik, en ressourcekurve รฆndrer hรฆldning, hvilket er langt tidligere end en alarm med fast tรฆrskel ville udlรธse, og langt mere pรฅlideligt end at aflรฆse grafer med รธjnene.

Ja. Modeller, der er trรฆnet pรฅ tidligere hรฆndelser og kode-churn, fremhรฆver de moduler, der har stรธrst sandsynlighed for at lรฆkke ressourcer, hvilket giver teams mulighed for at mรฅlrette langvarige tests, hvor de vil betale sig.

Opsummer dette indlรฆg med: