what is scalability testing
Uvod u ispitivanje skalabilnosti:
Ispitivanje skalabilnosti je nefunkcionalna testna metodologija u kojoj se izvedba aplikacije mjeri u smislu njene sposobnosti da poveća ili smanji broj korisničkih zahtjeva ili drugih takvih atributa mjere uspješnosti.
Ispitivanje skalabilnosti može se provesti na razini hardvera, softvera ili baze podataka.
Parametri koji se koriste za ovo testiranje razlikuju se od jedne aplikacije do druge, za web stranicu to može biti broj korisnika, uporaba CPU-a, upotreba mreže, dok bi za web poslužitelj to bio broj obrađenih zahtjeva.
Ovaj vodič će vam dati cjelovit pregled programa Ispitivanje skalabilnosti zajedno sa svojim atributima i raznim koracima koji su uključeni u izvođenje testa s praktičnim primjerima kako bi vam omogućili da koncept razumijete na bolji način.
Što ćete naučiti:
- Ispitivanje skalabilnosti vs ispitivanje opterećenja
- Atributi ispitivanja skalabilnosti
- Koraci za testiranje skalabilnosti aplikacije
- Zaključak
- Preporučena literatura
Ispitivanje skalabilnosti vs ispitivanje opterećenja
Ispitivanje opterećenja mjeri aplikaciju koja se ispituje pod najvećim opterećenjem pri kojem bi se sustav srušio. Glavna svrha ispitivanja opterećenja je identificiranje vršne točke nakon koje korisnici ne bi mogli koristiti sustav.
Opterećenje i skalabilnost podliježu metodologiji ispitivanja izvedbe.
Skalabilnost se razlikuje od testiranja opterećenja po tome što test skalabilnosti mjeri sustav na minimalnom i maksimalnom opterećenju na svim razinama, uključujući razinu softvera, hardvera i baze podataka. Kada se utvrdi maksimalno opterećenje, programeri moraju na odgovarajući način odgovoriti kako bi osigurali skalabilnost sustava nakon određenog opterećenja.
Primjer: Ako ispitivanjem skalabilnosti utvrdi da je maksimalno opterećenje 10.000 korisnika, da bi sustav mogao biti skalabilan, programeri trebaju poduzeti mjere na čimbenike kao što su smanjenje vremena odziva nakon što se dosegne ograničenje od 10.000 korisnika ili povećanje veličine RAM-a kako bi se prilagodili rastućim korisničkim podacima.
Ispitivanje opterećenja uključuje stavljanje maksimalnog opterećenja na razvijene aplikacije odjednom, dok ispitivanje skalabilnosti uključuje postupno povećanje opterećenja tijekom određenog vremenskog perioda.
Testiranje učitavanja određuje točku na kojoj se aplikacija ruši, dok skalabilnost pokušava prepoznati razlog pada aplikacije i poduzeti korake za rješavanje problema.
Ukratko, testiranje učitavanja pomaže u prepoznavanju problema s performansama, dok testiranje skalabilnosti pomaže utvrditi može li se sustav povećavati do sve većeg broja korisnika.
Atributi ispitivanja skalabilnosti
Atributi testa skalabilnosti definiraju mjere izvedbe na temelju kojih će se ovo ispitivanje provesti.
Slijede neki od uobičajenih atributa:
razlika između agilnog i slapskog testiranja
1) Vrijeme odziva:
- Vrijeme odgovora je vrijeme između korisničkog zahtjeva i odgovora aplikacije. Ovo se testiranje vrši radi utvrđivanja vremena odziva poslužitelja pod minimalnim opterećenjem, pragovim opterećenjem i maksimalnim opterećenjem kako bi se utvrdilo mjesto na kojem bi se aplikacija prekinula.
- Vrijeme odgovora može se povećati ili smanjiti na temelju različitog korisničkog opterećenja aplikacije. U idealnom slučaju, vrijeme odziva aplikacije smanjivalo bi se kako se opterećenje korisnika povećava.
- Aplikacija se može smatrati skalabilnom ako može pružiti isto vrijeme odziva za različite razine korisničkog opterećenja.
- U slučaju klasteriziranih okruženja gdje se opterećenje aplikacije raspoređuje na više komponenata poslužitelja, ispitivanje skalabilnosti mora izmjeriti do koje mjere uravnoteživač opterećenja raspoređuje opterećenje između više poslužitelja. To će osigurati da jedan poslužitelj ne bude preopterećen zahtjevima, dok drugi poslužitelj ne radi, čekajući da zahtjev uđe.
- Vrijeme odziva svake poslužiteljske komponente mora se pažljivo izmjeriti ako je aplikacija hostirana u klasteriziranom okruženju, a testiranje skalabilnosti mora osigurati da vrijeme odziva svake poslužiteljske komponente mora biti isto bez obzira na količinu opterećenja na svakom poslužitelju.
- Primjer: Vrijeme odgovora može se izmjeriti kao vrijeme u kojemu korisnik u web-preglednik unosi URL do vremena do kojeg web-stranica treba za učitavanje sadržaja. Što je manje vremena odziva, veća bi bila izvedba aplikacije.
2) Propusnost:
- Propusnost je mjera broja zahtjeva koje je aplikacija obradila u jedinici vremena.
- Ishod protoka može se razlikovati od jedne do druge aplikacije. Ako se radi o web aplikaciji, protok se mjeri u smislu broja obrađenih zahtjeva korisnika u jedinici vremena i ako je riječ o bazi podataka. protok se mjeri u smislu broja upita obrađenih u jedinici vremena.
- Smatra se da je aplikacija skalabilna ako može pružiti istu propusnost za različite razine opterećenja internih aplikacija, hardvera i baze podataka.
3) Upotreba procesora:
- Upotreba CPU-a je mjera upotrebe CPU-a za izvršavanje zadatka pomoću aplikacije. Korištenje CPU-a obično se mjeri u jedinicama MegaHertz.
- U idealnom slučaju, što je kôd aplikacije optimiziran, opažat će se upotreba CPU-a.
- Da bi se to postiglo, mnoge organizacije koriste standardne prakse programiranja kako bi smanjile upotrebu CPU-a.
- Primjer: Uklanjanje mrtvog koda u aplikaciji i smanjivanje upotrebe Threada. Metode mirovanja jedna su od najboljih praksi programiranja za smanjenje upotrebe CPU-a.
4) Korištenje memorije:
- Korištenje memorije mjera je memorije koju aplikacija troši za izvršavanje zadatka.
- U idealnom slučaju, memorija se mjeri u bajtovima (MegaBytes, GigaBytes ili Tera Bytes) koje razvijeni program koristi za pristup memoriji slučajnog pristupa (RAM).
- Korištenje memorije aplikacije može se smanjiti slijedeći najbolje prakse programiranja.
- Primjeri najboljih praksi programiranja bili bi ne korištenje suvišnih petlji, smanjivanje pogodaka u bazu podataka, upotreba predmemorije, optimizacija upotrebe SQL upita itd. Smatra se da je aplikacija skalabilna ako minimalizira upotrebu memorije na maksimalni mogući opseg.
- Primjer: Ako prostora za pohranu određenog broja korisnika ostane bez memorije, tada će programer biti prisiljen dodati dodatnu pohranu baze podataka kako bi nadoknadio gubitak podataka.
5) Korištenje mreže:
- Korištenje mreže je količina propusnosti koju potroši aplikacija koja se testira.
- Cilj upotrebe mreže je smanjiti zagušenje mreže. Korištenje mreže mjeri se u terminima primljenih bajtova u sekundi, primljenih okvira u sekundi, primljenih i poslanih segmenata u sekundi itd.
- Tehnike programiranja poput upotrebe tehnika kompresije mogu pomoći u smanjenju zagušenja i smanjenju upotrebe mreže. Smatra se da je aplikacija skalabilna ako može raditi s minimalnim zagušenjima mreže i pružiti visoku izvedbu aplikacije.
- Primjer: Umjesto da slijedi mehanizam reda za obradu korisničkih zahtjeva, programer može napisati kod za obradu korisničkih zahtjeva kada i kada zahtjev stigne u bazu podataka.
Osim ovih parametara, postoji još nekoliko manje korištenih parametara kao što su vrijeme odgovora na zahtjev poslužitelja, vrijeme izvršavanja zadatka, vrijeme transakcije, vrijeme učitavanja web stranice, vrijeme dohvaćanja odgovora iz baze podataka, vrijeme ponovnog pokretanja, vrijeme ispisa, vrijeme sesije, prijelaz zaslona , transakcije u sekundi, pogoci u sekundi, zahtjevi u sekundi itd.
Atributi za ispitivanje skalabilnosti mogu se razlikovati od jedne do druge aplikacije, jer mjera izvedbe za web aplikacije ne mora biti ista kao ona radne površine ili aplikacije klijent-poslužitelj.
Koraci za testiranje skalabilnosti aplikacije
Glavna prednost izvođenja ovog testiranja na aplikaciji je razumijevanje ponašanja korisnika kada se dostigne maksimalno opterećenje i načina za njegovo rješavanje.
Također, ovo testiranje omogućuje testerima da prepoznaju degradaciju na strani poslužitelja i vrijeme odziva s obzirom na opterećenje korisnika aplikacije. Kao rezultat, ovo testiranje preferira se u nekoliko organizacija širom svijeta.
Slijedi popis koraka za testiranje skalabilnosti aplikacije:
- Stvorite ponovljive scenarije ispitivanja za svaki od atributa ispitivanja skalabilnosti.
- Testirajte aplikaciju na različite razine opterećenja kao što su mala, srednja i velika opterećenja i provjerite ponašanje aplikacije.
- Stvorite testno okruženje koje je dovoljno stabilno da podnese čitav ciklus testiranja skalabilnosti.
- Konfigurirajte hardver potreban za provođenje ovog testiranja.
- Definirajte skup virtualnih korisnika za provjeru ponašanja aplikacije pod različitim opterećenjem korisnika.
- Ponovite scenarije ispitivanja za više korisnika pod različitim uvjetima internih aplikacija, hardvera i promjena baze podataka.
- U slučaju klasteriziranog okruženja, provjerite valja li uravnoteživač opterećenja usmjerava korisničke zahtjeve na više poslužitelja kako bi se osiguralo da nijedan poslužitelj nije preopterećen nizom zahtjeva.
- Izvršite testne scenarije u testnom okruženju.
- Analizirajte generirana izvješća i provjerite područja poboljšanja, ako ih ima.
Zaključak
U suštini,
=> Ispitivanje skalabilnosti je nefunkcionalna metodologija ispitivanja za provjeru može li se aplikacija povećati ili smanjiti na različite atribute. Atributi korišteni za ovo testiranje razlikovat će se od jedne aplikacije do druge.
=> Glavni cilj ovog ispitivanja je utvrditi kada se aplikacija počinje razgrađivati pri maksimalnom opterećenju i poduzeti odgovarajuće korake kako bi se osiguralo da razvijena aplikacija bude dovoljno skalabilna da prilagodi promjenama u internim aplikacijama, softveru, hardveru i također bazi podataka promjene u budućnosti.
=> Ako se ovo ispitivanje izvede pravilno, u razvijenim aplikacijama mogu se otkriti glavne pogreške u pogledu performansi softvera, hardvera i baze podataka.
=> Glavni nedostatak ovog testiranja bilo bi ograničenje pohrane podataka, s ograničenjima na veličinu baze podataka i međuspremnik. Također, ograničenja propusnosti mreže mogu biti prepreka testiranju skalabilnosti.
=> Proces testiranja skalabilnosti razlikuje se od organizacije do organizacije jer će se atributi testa skalabilnosti jedne aplikacije razlikovati od ostalih aplikacija.
Preporučena literatura
- Ispitivanje opterećenja pomoću HP LoadRunner vodiča
- Ispitivanje performansi vs ispitivanje opterećenja vs testiranje naprezanja (razlika)
- Razlika između testiranja radne površine, klijentskog poslužitelja i web testiranja
- Ispitivanje opterećenja, stresa i performansi web aplikacija pomoću WAPT-a
- Najbolji alati za testiranje softvera 2021. [Alati za automatizaciju ispitivanja kvalitete]
- Vodič za ispitivanje sigurnosti web aplikacija
- Testiranje aplikacija - u osnove testiranja softvera!
- Instalirajte svoju aplikaciju na uređaj i započnite testiranje iz Eclipsea