what is scalability testing
Úvod do testovania škálovateľnosti:
Scalability Testing je nefunkčná testovacia metodika, pri ktorej sa výkon aplikácie meria z hľadiska jej schopnosti zväčšiť alebo zmenšiť počet požiadaviek používateľov alebo iných atribútov merania výkonu.
java programovacie otázky a odpovede na písomný test
Testovanie škálovateľnosti je možné vykonať na hardvérovej, softvérovej alebo databázovej úrovni.
Parametre použité pri tomto testovaní sa líšia od aplikácie k aplikácii, pre webovú stránku to môže byť počet používateľov, využitie procesora, využitie siete, zatiaľ čo pre webový server by to bol počet spracovaných požiadaviek.
Tento tutoriál vám poskytne kompletný prehľad o Testovanie škálovateľnosti spolu s jeho atribútmi a rôznymi krokmi pri vykonávaní testu s praktickými príkladmi, ktoré vám umožnia lepšie porozumieť konceptu.
Čo sa dozviete:
- Testovanie škálovateľnosti vs Testovanie zaťaženia
- Atribúty testovania škálovateľnosti
- Kroky na otestovanie rozšíriteľnosti aplikácie
- Záver
- Odporúčané čítanie
Testovanie škálovateľnosti vs Testovanie zaťaženia
Testovanie záťaže meria testovanú aplikáciu pri maximálnom zaťažení, pri ktorom by došlo k zlyhaniu systému. Hlavným účelom záťažového testovania je identifikovať špičkový bod, po ktorom by používatelia neboli schopní systém používať.
implementácia algoritmu najkratšej cesty dijkstra v jave
Zaťaženie aj škálovateľnosť spadajú pod metodiku testovania výkonu.
Škálovateľnosť sa líši od testovania zaťaženia v tom, že test škálovateľnosti meria systém pri minimálnom a maximálnom zaťažení na všetkých úrovniach vrátane úrovní softvéru, hardvéru a databázy. Po zistení maximálneho zaťaženia musia vývojári primerane reagovať, aby sa zabezpečilo, že systém bude po konkrétnom načítaní škálovateľný.
Príklad: Ak testovanie škálovateľnosti určí, že maximálne zaťaženie je 10 000 používateľov, musia byť vývojári systému schopní škálovať tak, aby prijali opatrenia na faktoroch, ako je zníženie času odozvy po dosiahnutí limitu 10 000 používateľov alebo zväčšenie veľkosti pamäte RAM, aby sa prispôsobili rastúcim údajom používateľov.
Testovanie zaťaženia spočíva v maximálnom zaťažení vyvinutých aplikácií naraz, zatiaľ čo testovanie škálovateľnosti zahŕňa postupné zvyšovanie zaťaženia v priebehu určitého časového obdobia.
Testovanie záťaže určuje bod, v ktorom dôjde k zlyhaniu aplikácie, zatiaľ čo škálovateľnosť sa pokúsi zistiť príčinu zlyhania aplikácie a podniknúť kroky na vyriešenie problému.
Stručne povedané, testovanie záťaže pomáha identifikovať problémy s výkonom, zatiaľ čo testovanie škálovateľnosti pomáha zistiť, či sa systém dokáže škálovať na rastúci počet používateľov.
Atribúty testovania škálovateľnosti
Atribúty testu škálovateľnosti definujú meradlá výkonu, na základe ktorých sa bude toto testovanie vykonávať.
Nasleduje niekoľko bežných atribútov:
1) Čas odozvy:
- Čas odozvy je čas medzi požiadavkou používateľa a odpoveďou aplikácie. Toto testovanie sa vykonáva na identifikáciu času odozvy servera pri minimálnom, prahovom a maximálnom zaťažení na identifikáciu bodu, v ktorom by sa aplikácia prerušila.
- Čas odozvy sa môže zvyšovať alebo znižovať na základe rôzneho zaťaženia používateľa aplikáciou. V ideálnom prípade by sa čas odozvy aplikácie znížil s rastúcim zaťažením používateľa.
- Aplikáciu možno považovať za škálovateľnú, ak dokáže poskytnúť rovnakú dobu odozvy pre rôzne úrovne zaťaženia používateľa.
- V prípade klastrovaných prostredí, kde je zaťaženie aplikácie distribuované medzi viaceré komponenty servera, musí testovanie škálovateľnosti merať mieru, do akej nástroj na vyrovnávanie zaťaženia distribuuje zaťaženie medzi viac serverov. Tým sa zabezpečí, že jeden server nebude preťažený požiadavkami, zatiaľ čo druhý server bude nečinne čakať na žiadosť.
- Ak je aplikácia hostená v klastrovanom prostredí, musí sa starostlivo merať čas odozvy každého serverového komponentu a testovanie škálovateľnosti musí zabezpečiť, aby čas odozvy každého serverového komponentu musel byť rovnaký bez ohľadu na množstvo záťaže umiestnenej na každom serveri.
- Príklad: Čas odozvy možno merať ako čas, v ktorom používateľ zadá adresu URL vo webovom prehliadači, do času, do ktorého trvá načítanie obsahu webovou stránkou. Čím kratší bude čas odozvy, tým vyšší bude výkon aplikácie.
2) Výkon:
- Priepustnosť je miera počtu požiadaviek spracovaných aplikáciou za jednotkový čas.
- Výsledok priepustnosti sa môže v jednotlivých aplikáciách líšiť. Ak sa jedná o webovú aplikáciu, priepustnosť sa meria z hľadiska počtu požiadaviek používateľa spracovaných za jednotku času a ak ide o databázu. priepustnosť sa meria ako počet dotazov spracovaných za jednotku času.
- Aplikácia sa považuje za škálovateľnú, ak dokáže poskytovať rovnakú priepustnosť pre rôzne úrovne zaťaženia interných aplikácií, hardvéru a databázy.
3) Využitie procesora:
- Využitie CPU je miera využitia CPU na vykonanie úlohy aplikáciou. Využitie procesora sa zvyčajne meria v jednotkách MegaHertz.
- V ideálnom prípade platí, že čím optimalizovanejší je aplikačný kód, tým menej bude pozorované využitie CPU.
- Aby sa to dosiahlo, mnoho organizácií používa štandardné programovacie postupy na minimalizáciu využitia CPU.
- Príklad: Odstránenie mŕtveho kódu v aplikácii a minimalizácia použitia vlákna. Metódy spánku sú jedným z najlepších programovacích postupov na minimalizáciu využitia CPU.
4) Využitie pamäte:
- Využitie pamäte je miera pamäte spotrebovanej na vykonanie úlohy aplikáciou.
- V ideálnom prípade sa pamäť meria v bajtoch (MegaBytes, GigaBytes alebo Tera Bytes), ktoré vyvinutá aplikácia používa na prístup do pamäte RAM (Random Access Memory).
- Využitie pamäte aplikáciou je možné minimalizovať dodržiavaním najlepších programovacích postupov.
- Príklady najlepších programovacích postupov by mohli byť nepoužívanie nadbytočných slučiek, znižovanie počtu zásahov do databázy, použitie medzipamäte, optimalizácia použitia dotazov SQL atď. Aplikácia sa považuje za škálovateľnú, ak minimalizuje využitie pamäte na v maximálnom možnom rozsahu.
- Príklad: Ak sa v úložnom priestore dostupnom pre zadaný počet používateľov vyčerpá pamäť, bude vývojár nútený pridať ďalšie úložisko databázy, aby vyrovnal stratu údajov.
5) Využitie siete:
- Využitie siete je množstvo šírky pásma spotrebované testovanou aplikáciou.
- Cieľom používania siete je znížiť preťaženie siete. Využitie siete sa meria ako počet bajtov prijatých za sekundu, rámcov prijatých za sekundu, segmentov prijatých a odoslaných za sekundu atď.
- Programovacie techniky, ako napríklad použitie kompresných techník, môžu pomôcť znížiť preťaženie a minimalizovať využitie siete. Aplikácia sa považuje za škálovateľnú, ak dokáže pracovať s minimálnym preťažením siete a poskytovať vysoký výkon aplikácie.
- Príklad: Namiesto sledovania mechanizmu radenia na spracovanie požiadaviek používateľov môže vývojár napísať kód na spracovanie žiadostí používateľov, keď a keď žiadosť dorazí do databázy.
Kromě těchto parametrů existuje několik dalších méně používaných parametrů, jako je čas odezvy na požadavek serveru, čas provedení úlohy, čas transakce, čas načtení webové stránky, čas načítania odpovede z databázy, čas reštartu, čas tlače, čas relácie, prechod obrazovky. , transakcie za sekundu, prístupy za sekundu, požiadavky za sekundu atď.
Atribúty testovania škálovateľnosti sa môžu u jednotlivých aplikácií líšiť, pretože miera výkonu webových aplikácií nemusí byť rovnaká ako v prípade desktopovej alebo klientsko-serverovej aplikácie.
Kroky na otestovanie rozšíriteľnosti aplikácie
Hlavnou výhodou vykonania tohto testovania na aplikácii je pochopenie správania používateľa pri dosiahnutí maximálneho zaťaženia a spôsoby jeho riešenia.
Toto testovanie taktiež umožňuje testerom identifikovať degradáciu a čas odozvy na strane servera s ohľadom na zaťaženie používateľa aplikácie. Vo výsledku je toto testovanie preferované v niekoľkých organizáciách po celom svete.
Nižšie je uvedený zoznam krokov na otestovanie škálovateľnosti aplikácie:
- Vytvorte opakovateľné testovacie scenáre pre každý z atribútov testovania škálovateľnosti.
- Vyskúšajte aplikáciu na rôzne úrovne zaťaženia, ako napríklad nízke, stredné a vysoké zaťaženie, a overte chovanie aplikácie.
- Vytvorte testovacie prostredie, ktoré je dostatočne stabilné, aby vydržalo celý testovací cyklus škálovateľnosti.
- Nakonfigurujte hardvér potrebný na vykonanie tohto testovania.
- Definujte skupinu virtuálnych používateľov na overenie správania aplikácie pri rôznom zaťažení používateľov.
- Opakujte testovacie scenáre pre viacerých používateľov za rôznych podmienok zmien interných aplikácií, hardvéru a databázy.
- V prípade klastrovaného prostredia overte, či nástroj na vyrovnávanie zaťaženia smeruje požiadavky používateľov na viac serverov, aby ste sa uistili, že žiadny server nie je preťažený sériou požiadaviek.
- Vykonajte testovacie scenáre v testovacom prostredí.
- Analyzujte vygenerované správy a overte oblasti zlepšenia, ak existujú.
Záver
Stručne,
=> Testovanie škálovateľnosti je nefunkčná testovacia metodika na overenie, či sa aplikácia môže zväčšiť alebo zmenšiť na rôzne atribúty. Atribúty použité pri tomto testovaní sa budú u jednotlivých aplikácií líšiť.
=> Hlavným cieľom tohto testovania je určiť, kedy sa aplikácia začne zhoršovať pri maximálnom zaťažení, a podniknúť príslušné kroky na zabezpečenie toho, aby vyvinutá aplikácia bola dostatočne škálovateľná na to, aby sa prispôsobila zmenám interných aplikácií, softvéru, hardvéru a tiež databázy zmeny v budúcnosti.
=> Ak sa toto testovanie vykoná správne, vo vyvinutých aplikáciách je možné odhaliť hlavné chyby týkajúce sa výkonu softvéru, hardvéru a databázy.
java, ako vytvoriť rad
=> Hlavnou nevýhodou tohto testovania by bolo jeho obmedzenie ukladania dát s obmedzeniami na veľkosť databázy a medzipamäť. Tiež obmedzenia šírky pásma siete môžu byť prekážkou v testovaní škálovateľnosti.
=> Proces testovania škálovateľnosti sa líši od jednej organizácie k druhej, pretože atribúty testu škálovateľnosti jednej aplikácie sa budú líšiť od ostatných aplikácií.
Odporúčané čítanie
- Testovanie záťaže s výukovými programami HP LoadRunner
- Výkonové testovanie vs záťažové testovanie vs záťažové testovanie (rozdiel)
- Rozdiel medzi počítačom, klientskym serverom a webom
- Testovanie záťaže, stresu a výkonu webových aplikácií pomocou WAPT
- Najlepšie nástroje na testovanie softvéru 2021 [QA Test Automation Tools]
- Sprievodca testovaním bezpečnosti webových aplikácií
- Testovanie aplikácií - do základov testovania softvéru!
- Inštalácia aplikácie na zariadenie a spustenie testovania z Eclipse