Testiranje stabilnosti u testiranju softvera

⚡ Pametni sažetak

Testiranje stabilnosti provjerava hoće li aplikacija pouzdano raditi kako se uvjeti mijenjaju, a ne samo pod jednim fiksnim opterećenjem. Otkriva padove, iscrpljivanje resursa i degradaciju do kojih kratki funkcionalni rad nikada ne dolazi.

  • 🏗️ Osnovna svrha: Potvrdite da sustav ostaje pouzdan pri različitim opterećenjima i duljem radu.
  • ⚠️ Izbjegnuti rizik: Netestirani sustavi ne uspijevaju u proizvodnji pod uvjetima koje nitko nije uvježbao.
  • 📊 osnovni Signals: Broj procesora, memorije, diska i niti tractretirano tijekom cijelog trajanja.
  • 🔄 Nefunkcionalno: Mjeri ponašanje pod stresom, a ne ispravnost karakteristika.
  • 🧪 Dizajn testa: Slučajevi ciljaju na trajno opterećenje procesora, pritisak na memoriju i ponovljene transakcije.
  • 📈 Izvješćivanje: Grafikoni trenda važniji su od pojedinačnih očitanja, jer je pomak nedostatak.

Testiranje stabilnosti u testiranju softvera

Što je ispitivanje stabilnosti?

Ispitivanje stabilnosti je vrsta nefunkcionalnog testiranja softvera koja se provodi radi mjerenja učinkovitosti i sposobnosti softverske aplikacije da kontinuirano funkcionira tijekom dugog vremenskog razdoblja. Svrha testiranja stabilnosti je provjera ruši li se softverska aplikacija ili pada tijekom normalne upotrebe u bilo kojem trenutku korištenjem punog opsega upotrebe.

Testiranje stabilnosti provodi se kako bi se provjerila učinkovitost razvijenog proizvoda izvan normalnog operativnog kapaciteta, često do granične točke. Veći je značaj rukovanje pogreškama, pouzdanost softvera, robusnost i skalabilnost proizvoda pod velikim opterećenjem umjesto provjere ponašanja sustava u normalnim okolnostima.

Testiranje stabilnosti procjenjuje probleme stabilnosti. Ovo testiranje primarno je namijenjeno maksimalnom opterećivanju softverske komponente. To je nefunkcionalna tehnika.

Ispitivanje stabilnosti
Ispitivanje stabilnosti

Ispitivanje stabilnosti također se naziva opterećenjem ili ispitivanje izdržljivosti.

Rizici ako sustav koji se testira nije podvrgnut testu stabilnosti

Za aplikaciju koja se testira u koju je uveden veliki broj korisnika i aplikacije koje moraju raditi mjesecima bez ponovnog pokretanja, vjerojatno će se pojaviti niz problema:

Može se suočiti s mogućom greškom,

  • sustav usporava
  • sustav naiđe na probleme u funkcionalnosti
  • sustav pokazuje ožičeno ponašanje
  • sustav se potpuno ruši

U softverskom inženjerstvu, Ispitivanje stabilnosti obično uključuje vježbanje sustava s teškim korisnicima (virtualno) i mjerenje parametara performansi kako bi se provjerilo može li sustav podnijeti predviđeno opterećenje.

Zašto testirati stabilnost

Ova vrsta testiranja pomaže korisnicima da razumiju načine na koje će sustav raditi u stvarnim situacijama.

Stoga vam testiranje stabilnosti omogućuje provjeru,

  • Pružite povjerenje u stabilnost vašeg sustava koji se testira.
  • Provjerite može li vaš sustav obraditi velike programe.
  • Pratite učinkovitost svog sustava.
  • Ispitajte stabilnost sustava pod stresom.

Igra važnu ulogu u razvoju proizvoda jer se koristi za određivanje ograničenja softverskog proizvoda koji se testira prije nego što se pusti u promet ili područja za dodatna poboljšanja prije nego što proizvod počne s radom ili u proizvodnji.

Vrlo čest primjer tehnike ispitivanja stabilnosti je

Online Shmeljping Portals: Testiranje stabilnosti će provjeriti kako će se web stranica ponašati kada –

  • Velika količina podataka unesena u vrijeme najveće potrošnje
  • Broj pogodaka u određeno vrijeme
  • Problem s učitavanjem stranice u isto vrijeme
  • Ponašanje sustava
  • Responzivnost sustava i još mnogo toga dolazi ispod Ispitivanje stabilnosti

Još jedan primjer

A CPU test je popularan oblik testa stabilnosti pod Ispitivanje performansi tehnika. Ovaj test provjerava stabilnost procesora i također prati njegovu izvedbu kako se radno opterećenje procesora povećava.

Kako napraviti testiranje stabilnosti

  • Kako bismo odredili opseg i cilj testiranja, moramo osigurati da se aplikacijski poslužitelj(i) ne sruše tijekom izvođenja testa opterećenja.
  • Da biste utvrdili poslovne probleme, provjerite performanse sustava i opterećenje prema perspektivi krajnjeg korisnika.
  • Da biste dodijelili različite odgovornosti i uloge kao što je -Izrada plana testiranja, Testni slučaj dizajn, pregled testnog slučaja, izvođenje testa itd.
  • Kako bi se osigurala isporuka testa unutar navedenog vremena
  • Kako bi se osiguralo ispravno Testiranje opterećenja alati i iskusni tim je prisutan za isto.
  • Mjerenje rizika i troškova uključuje testiranje. Ovo će odrediti trošak svakog izvršenja u smislu korištenja CPU-a i memorije.
  • Odredite Mana trackralj i izvještavanje i njihova odgovarajuća kartaping sa zahtjevima.

Testni slučaj za testiranje stabilnosti performansi procesora

  • Za provjeru gornje granice sustava.
  • Kako se sustav ruši ili oporavlja.
  • Ukupan broj dovršenih transakcija po zahtjevu.
  • Bez obzira ostaje li odgovor na transakciju stabilan ili se povećava tijekom vremena.
  • Kako se sustav ponaša pod velikim opterećenjem.
  • Njegov odgovor i ponašanje pod teškim opterećenjem.

Izvješća o ispitivanju stabilnosti

Tijekom izvođenja testa prikuplja se i mjeri nekoliko statistika; ti se brojevi analiziraju kako bi se generiralo izvješće i identificirali mogući problemi s izvedbom.

Primjeri statistike prikupljene tijekom testiranja su:

  • Vremena odgovora na transakcije: Prosječno vrijeme potrebno je za obavljanje transakcija tijekom testa. Ova će statistika procijeniti je li izvedba poslužitelja unutar prihvatljivih minimalnih i maksimalnih vremenskih razdoblja izvedbe transakcija definiranih za sustav. Ove informacije će procijeniti vrijeme potrebno za obradu zahtjeva od strane web poslužitelja i poslano aplikacijskom poslužitelju, koji u u većini slučajeva uputit će zahtjev poslužitelju baze podataka.
  • Pogoci u sekundi: Broj pogodaka korisnika na poslužitelju. Ova statistika pomaže u određivanju broja opterećenja koje generiraju korisnici, s obzirom na broj pogodaka.
  • Propusnost: Količina protoka na web poslužitelju tijekom testa koja se mjeri u bajtovima. Propusnost znači količinu podataka koju su korisnici primili od poslužitelja u bilo kojem trenutku. Ova statistika pomaže u procjeni količine opterećenja koju generiraju korisnici.
  • Transakcija po sekundi: Ovo je ukupan broj dovršenih transakcija (i uspješnih i neuspješnih) izvedenih tijekom testa. Ova statistika pomaže provjeriti stvarno opterećenje sustava transakcijama.
  • CPU: Postotak iskorištenja procesora tijekom testa.
  • Memorija: Upotreba memorije tijekom testa.
  • Disk: iskorištenje diskovnog prostora potrošenog tijekom testa.

Osnove ispitivanja stabilnosti

Ispitivanje stabilnosti spada pod testiranje performansi – tehniku ​​koja se provodi radi provjere nekih atributa kvalitete softvera kao što su stabilnost, pouzdanost i dostupnost.

Ovo se testiranje koristi za određivanje brzine rada sustava ili podsustava pod određenim radnim opterećenjem.

Testiranje izvedbe ima mnogo vrsta, a jedno je od njih testiranje stabilnosti.

  • Ispitivanje napona: To je vrsta testiranja koja provjerava robusnost sustava izvan kapaciteta sustava.
  • Ispitivanje šiljaka: Koristi se za provjeru ponašanja sustava trenutnim povećanjem opterećenja sustava. Cilj je provjeriti u kojoj će točki sustav imati problema s performansama ili će proći.
  • Testiranje skalabilnosti: Koristi se za provjeru sposobnosti sustava. Koliko će se sustav učinkovito ponašati u rastućim potrebama, promjeni veličine i volumena.
  • Testiranje volumena: To je nefunkcionalna tehnika testiranja gdje se softver koji se testira podvrgava ogromnoj količini podataka, a ponašanje sustava se provjerava i verificira u skladu s tim.
  • Ispitivanje opterećenja ili stabilnosti: (već spomenuto gore)

Alati za ispitivanje stabilnosti

Neki od alata za testiranje performansi su:

  • WebLOAD
  • LoadRunner
  • apaš JMeter
  • NeoOpterećenje
  • CloudTest
  • Loadstorm
  • LoadUI
  • WAPT
  • LoadImpact
  • utovarivač
  • Httperf
  • OpenSTA

Kako se ovaj test uklapa u obitelj testiranja performansi

Ispitivanje performansi je krovni pojam. Varijante u nastavku razlikuju se samo po obliku primijenjenog opterećenja i trajanju njegovog održavanja, zbog čega se tako često miješaju.

Vrsta ispitivanja Uzorak opterećenja Pitanje na koje odgovara
Ispitivanje opterećenja Očekivano vršno opterećenje, kratko trajanje Ostvaruje li sustav svoje ciljeve pod normalnim vršnim prometom?
Ispitivanje napona Povećano preko kapaciteta do kvara Gdje se lomi i otkazuje li graciozno?
Ispitivanje šiljaka Iznenadni ekstremni porast, a zatim povlačenje Preživljava li i oporavlja li se od prometnog šoka?
Ispitivanje izdržljivosti Normalno opterećenje održavano mnogo sati Smanjuje li se performansa s vremenom?
Ispitivanje namakanjem Trajno opterećenje tijekom duljeg razdoblja Ima li curenja memorije ili iscrpljivanja resursa?
Ispitivanje stabilnosti Promjenjivo opterećenje u različitim uvjetima Ostaje li sustav pouzdan kako se uvjeti mijenjaju?
Ispitivanje volumena Obični korisnici, vrlo velika količina podataka Snalazi li se s rastom baze podataka?

Ispitivanje izdržljivosti i ispitivanje namakanjem često se tretiraju kao sinonimi. U uobičajenoj upotrebi su: oba drže kontinuirano opterećenje dulje vrijeme. Tamo gdje ih timovi razlikuju, testiranje izdržljivosti fokusira se na to povećava li se vrijeme odziva, dok se testiranje soak-a fokusira na potrošnju resursa kao što su memorija, ručke datoteka i skupovi veza. Pokretanje jednog obično daje dokaze za oboje.

Ključne metrike koje treba pratiti tijekom testiranja

Izvođenje testa performansi je onoliko dobro koliko i ono što snimite dok se izvršava. Snimite ovih šest na strani poslužitelja i klijenta, a zatim ih usporedite s osnovnom linijom, a ne s intuicijom.

metrički Što vam govori Znak upozorenja
Prosječno vrijeme odziva Tipično korisničko iskustvo Bilo kakvo pomicanje prema gore preko staze
Vrijeme odgovora 95. percentila Iskustvo najsporijih korisnika Daleko iznad prosjeka, što znači nedosljednost
propusnost Zahtjevi obrađeni u sekundi Pad dok opterećenje ostaje konstantno
Stopa pogreške Udio neuspjelih ili isteklih zahtjeva Svaki porast iznad dogovorenog praga
Korištenje CPU-a i memorije Prostor za resurse poslužitelja Sjećanje koje se penje i nikad se ne vraća
Veze i niti baze podataka Iscrpljenost bazena Brojevi koji stalno rastu bez otpuštanja

Pročitajte prosjek i percentil zajedno. Prosjek od 800 ms s 95. percentilom od 900 ms opisuje konzistentan sustav. Isti prosjek s 95. percentilom od 9 sekundi znači da se jedan korisnik od dvadeset loše provodi, a prosjek to skriva.

Pazite na oblik, ne samo na vrijednost. U bilo kojem dugotrajnom testu, ravna linija resursa je prolaz, a rastuća je curenje, čak i kada je apsolutni broj još uvijek udobno unutar ograničenja u trenutku završetka testa.

Pitanja i odgovori

Testiranje opterećenja provjerava ponašanje na definiranom vrhuncu tijekom kratkog razdoblja. Testiranje stabilnosti provodi se u različitim uvjetima puno dulje, tražeći degradaciju, a ne prolaz ili pad u odnosu na cilj.

Dovoljno dugo da se pojave problemi sa sporom izgradnjom, obično 8 do 72 sata. Sve ispod sat vremena rijetko ukazuje na curenje memorije ili skup veza koji se postupno prazni.

Curenje resursa, nezatvorene veze s bazom podataka, neograničene predmemorije i niti koje se stvaraju, ali nikada ne objavljuju. Sve četiri izgledaju ispravno u kratkom roku, a ne uspijevaju kada je izvođenje dovoljno dugo.

Detekcija anomalija temeljena na umjetnoj inteligenciji uočava trenutak promjene nagiba krivulje resursa, što je daleko ranije nego što bi se oglasio alarm s fiksnim pragom i daleko pouzdanije od čitanja grafova okom.

Da. Modeli obučeni na prošlim incidentima i promjenama koda ističu module koji najvjerojatnije cure resurse, omogućujući timovima da se usredotoče na dugotrajne testove tamo gdje će se isplatiti.

Sažmite ovu objavu uz: