Što je Spike Testing u testiranju softvera? Učite s primjerom

⚡ Pametni sažetak

Testiranje udarnih opterećenja podvrgava aplikaciju iznenadnom, ekstremnom porastu opterećenja, a zatim ga jednako naglo uklanja. Cilj je saznati hoće li sustav preživjeti udar i, što je jednako važno, hoće li se nakon toga oporaviti.

  • ⚡ Uzorak učitavanja: Nagli porast daleko iznad normalnog prometa, kratko zadržan, a zatim nestao.
  • 🎯 Primarni cilj: Utvrdite je li sustav u kvaru i je li to slučaj na graciozan način.
  • 🔄 Oporavak je važan: Povratak normalnom vremenu odziva nakon vrhunca jednako je važan kao i njegovo preživljavanje.
  • 📈 Realni okidači: Bljeskalica prodaje, izdavanje ulaznica, viralni promet i zakazani serijski poslovi.
  • 🛠️ alat: JMeter i LoadRunner modeliraju trenutno povećanje, a ne postupno.
  • 📊 Što gledati: Stopa pogrešaka, dubina reda čekanja i vrijeme potrebno za povratak na početnu vrijednost.

Što je Spike testiranje

Što je Spike testiranje?

Ispitivanje šiljaka je vrsta testiranja softvera u kojem se softverska aplikacija testira s ekstremnim povećanjem i smanjenjem opterećenja prometa. Glavna svrha testiranja skokova je procijeniti ponašanje softverske aplikacije pod naglim povećanjem ili smanjenjem korisničkog opterećenja i odrediti vrijeme oporavka nakon skoka korisničkog opterećenja.

Spike Testiranje se provodi za procjenu slabosti softverskih aplikacija.

Ispitivanje šiljaka
Ispitivanje šiljaka

Ciljevi testiranja šiljaka

Cilj Spike testiranja je vidjeti kako sustav reagira na neočekivani porast i pad korisničkog opterećenja. U softverskom inženjerstvu Spike testiranje pomaže odrediti hoće li se performanse sustava pogoršati kada dođe do iznenadnog velikog opterećenja.

Drugi cilj Spike testiranja je odrediti vrijeme oporavka. Između dva uzastopna skoka korisničkog opterećenja, sustavu treba neko vrijeme da se stabilizira. Vrijeme oporavka treba biti što kraće.

Kako napraviti Spike testiranje

Evo jednostavnih koraka za izvođenje Spike testiranja:

Korak 1) Odredite nosivost

Odredite maksimalni kapacitet korisničkog opterećenja vaše softverske aplikacije.

Korak 2) Pripremite testno okruženje

Pripremite okruženje za testiranje i konfigurirajte ga za snimanje parametara izvedbe.

Korak 3) Definirajte očekivano opterećenje

Primijenite očekivano maksimalno opterećenje na svoju softversku aplikaciju pomoću a Alat za testiranje performansi po vašem izboru.

Korak 4) Povećajte opterećenje

Brzo povećajte opterećenje sustava tijekom određenog razdoblja.

Korak 5) Vratite opterećenje na Normalno

Postupno smanjite opterećenje na prvobitnu razinu.

Korak 6) Analizirajte rezultate

Analizirajte grafikone izvedbe i metrike kao što su kvarovi, potrošeno vrijeme, virtualni korisnici itd.

Primjeri scenarija testiranja skokova

  • Kada eCommerce trgovina pokreće posebne ponude s velikim popustima, kao što je Crni petak.
  • Kada web aplikacija uživo prenosi omiljeni TV program.
  • Kada je u tijeku brza rasprodaja na stranici s dnevnim ponudama.
  • Kada određeni sadržaj stranice postane viralan preko interneta.
  • Novi sustav je pušten u proizvodnju i više korisnika želi pristupiti sustavu.
  • Nestanak struje može uzrokovati da svi korisnici izgube pristup sustavu. Nakon što je problem s prekidom rada riješen, svi se korisnici istovremeno ponovno prijavljuju na sustav.

Scenariji oporavka kod šiljastih opterećenja

Tri glavna scenarija oporavka koji se mogu konfigurirati za zaštitu od skokova su:

  1. Koristite platforme u oblaku kao što su AWS, Azure za dinamičko povećanje kapaciteta poslužitelja u tandemu s opterećenjem korisnika
  2. Nemojte dopustiti pristup aplikaciji nekim korisnicima, kako se sustav ne bi suočio s velikim opterećenjem. Time se sprječava ulazak osoba iznad maksimalno projektiranog opterećenja u sustav. Na taj način štiti sustav od prijetnje prekomjernim opterećenjem.
  3. Administrator stranice omogućuje korisnicima da se pridruže sustavu. Međutim, uz upozorenje da bi se mogli suočiti sa sporim odgovorom zbog velikog opterećenja. To može rezultirati negativnim učinkom na rad sustava. Međutim, korisnik će moći raditi sa sustavom.

Prednosti i nedostaci testiranja šiljaka

Ispod su prednosti i nedostaci Spike testiranja:

Prednosti Nedostaci
Učinkovitost softvera mora se održati pod svaku cijenu. Međutim, kada postoji ekstremno povećanje opterećenja bilo kojeg sustava, postoje velike šanse za probleme. Spike Testing pomaže u testiranju takvog scenarija. Jedini nedostatak Spike testiranja je taj što je to skup proces testiranja. Dakle, bilo je potrebno postaviti posebne uvjete testiranja. Međutim, tijekom duljeg trajanja sigurno će dati pozitivan ROI.
U standardnoj metodi testiranja, scenariji od lošeg do najgoreg slučaja možda neće biti razmatrani. Međutim, njihovo ignoriranje ne znači da se nikada neće dogoditi. Stoga bi svaki softver trebao biti spreman na takve mogućnosti. Jedan od takvih najgorih scenarija je opterećenje koje se može procijeniti i minimizirati uz pomoć spike testa.  

Alati za testiranje šiljaka

1) JMeter

The Apache JMeter je java alat za testiranje otvorenog koda. Posebno je dizajniran za učitavanje ponašanja funkcionalnog testa i mjerenje performansi. Ovaj alat za testiranje performansi može se koristiti za analizu i mjerenje performansi web aplikacije ili raznih usluga. Danas se naširoko koristi za funkcionalni test, test poslužitelja baze podataka.

2) LoadRunner

LoadRunner je alat za testiranje opterećenja za Windows i Linux, koji omogućuje naglo testiranje weba i drugih aplikacija. Pomaže odrediti učinkovitost i rezultat primjene čak i pod velikim opterećenjem.

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.

Testiranje šiljaka: Ključne informacije

  • testiranje softvera je vrsta testiranja softvera u kojem se softverska aplikacija testira s ekstremnim povećanjem i smanjenjem opterećenja prometa.
  • Ispravan pristup testiranju skokova je neočekivano povećanje broja korisnika nakon čega slijedi trenutno smanjenje opterećenja.
  • Neočekivani teret glavni je atribut posla.
  • Primjeri scenarija Spike testiranja u stvarnom životu su - kada e-trgovina pokreće posebne ponude s velikim popustima, kao što je Crni petak. Alternativno, kada web aplikacija uživo prenosi omiljeni TV program.
  • JMeter jedan je od takvih korisnih alata za testiranje šiljaka.

Pitanja i odgovori

Testiranje opterećenja postupno povećava opterećenje dok se sustav ne slomi, kako bi se pronašla gornja granica. Testiranje šiljaka primjenjuje ekstremno opterećenje trenutno, kako bi se vidjelo uzrokuje li iznenadni udar kvar koji postupno povećanje ne bi.

Sustav koji ostaje aktivan, ali se nikada ne vraća na normalno vrijeme odziva, ipak je iznevjerio korisnike koji su stigli nakon vrhunca. Vrijeme oporavka je metrika koja odražava stvarni utjecaj na poslovanje.

Temeljite ga na stvarnom događaju, a ne na okruglom broju. Povijesni promet iz prošle prodaje ili lansiranja, pomnožen s očekivanim rastom od tada, daje obranjiv cilj.

Modeli umjetne inteligencije obučeni na temelju povijesnog prometa, marketinških kalendara i vanjskih signala predviđaju kada će doći do porasta prometa, što timovima omogućuje unaprijed skaliranje infrastrukture umjesto naknadnog reagiranja.

Da. Alati umjetne inteligencije mogu izvući profile skokova iz zapisnika o pristupu proizvodnji, reproducirajući pravi oblik prošlih skokova, a ne umjetnu promjenu koraka.

Sažmite ovu objavu uz: