Co je STRESS testování v testování softwaru?
⚡ Chytré shrnutí
Zátěžové testování posouvá aplikaci za hranice jejích běžných provozních limitů, aby se našel bod zlomu, potvrdilo se, že selhání jsou zpracovávána elegantně, a prokázalo se, že se systém po odstranění extrémní zátěže bez problémů zotaví.
Co je zátěžové testování?
Stresové testování je typ testování softwaru, který ověřuje stabilitu a spolehlivost softwarové aplikace. Cílem zátěžového testování je změřit software z hlediska jeho robustnosti a schopností zpracovávat chyby za extrémně vysokého zatížení a zajistit, aby software nehavaroval v kritických situacích. Záměrně testuje i mimo běžné provozní body a vyhodnocuje, jak se software chová v extrémních podmínkách.
V rámci zátěžového testování je testovaná aplikace (AUT) po krátkou dobu zatěžována, aby se zjistila její odolnost. Nejvýznamnějším využitím zátěžového testování je určení limitu, při kterém systém, software nebo hardware selže. Také se ověřuje, zda systém prokazuje efektivní správu chyb po překročení tohoto limitu.
In Softwarové inženýrstvíZátěžové testování je často uváděno vedle Testování odolnosti, ale tyto dva se liší: Zátěžové testování aplikuje abnormálně vysoké zatížení v krátkém intervalu, aby se našel bod zlomu, zatímco vytrvalostní (namáčecí) testování udržuje mírné zatížení po dobu několika hodin, aby se odhalila postupná degradace.
Níže uvedený snímek obrazovky ukazuje velký blok dat kopírovaný z webové stránky.
Testovaná aplikace je zatížena, když je zkopírováno 5 GB dat z webové stránky a vloženo do programu Poznámkový blok. Poznámkový blok je nyní zatížen a vrací chybovou zprávu „Neodpovídá“, přesně jak ukazuje následující snímek obrazovky.
Stejný princip se škáluje přímo na serverové systémy.
Potřeba zátěžového testování
Zvažte následující příklady z reálného času, kde je použití zátěžového testování zřejmé:
- Během festivalu internetový obchodping web může zaznamenat nárůst návštěvnosti nebo když oznámí výprodej.
- Když se v předních novinách zmíní blog, zažije náhlý nárůst návštěvnosti.
Je nezbytné provést zátěžové testování, aby se zohlednily takové abnormální nárůsty návštěvnosti. Nezvládnutí tohoto náhlého nárůstu návštěvnosti může vést ke ztrátě příjmů a reputace.
Zátěžové testování je také mimořádně cenné z následujících důvodů:
- Kontroluje, zda systém funguje za abnormálních podmínek.
- Potvrzuje, že se při zátěži systému zobrazí příslušná chybová zpráva.
- Selhání systému za extrémních podmínek by mohlo vést k obrovské ztrátě příjmů.
- Je lepší být připraven na extrémní podmínky provedením zátěžového testování předem.
V následující části je uvedeno, co musí úspěšný zátěžový test prokázat.
Cíle zátěžového testování
Cílem zátěžového testování je analyzovat chování systému po selhání. Aby bylo zátěžové testování úspěšné, měl by systém v extrémních podmínkách zobrazovat odpovídající chybovou zprávu.
K provádění zátěžového testování se někdy používají rozsáhlé datové sady, které mohou být při selhání systému ztraceny. Testeři by měli zajistit, aby se tato bezpečnostní data během zátěžového testování neztratila.
Hlavním účelem zátěžového testování je zajistit, aby se systém po selhání zotavil, což je vlastnost zvaná obnovitelnost. Testování zotavení poté podrobně ověří postup obnovy.
Zátěžové testování vs. stresové testování
Obě techniky patří k Testování výkonu rodiny, takže je snadné je zaměnit. Níže uvedený diagram porovnává oba profily zatížení.
| Testování zatížení | Stresové testování |
|---|---|
| Testování zatížení testuje chování systému za normálních podmínek pracovní zátěže; simuluje skutečnou očekávanou pracovní zátěž. | Stresové testování testuje chování systému za extrémních podmínek a provádí se až do jeho selhání. |
| Zátěžové testování systém nenaruší. | Zátěžové testování se záměrně snaží systém narušit zahlcením daty nebo jeho nedostatkem zdrojů. |
Související profily zahrnují Špičkový test (náhlý krátký výbuch), Objemové testování (velké množství dat spíše než mnoho uživatelů) a Testování škálovatelnosti (růstový prostor).
Typy zátěžového testování
Následuje popis typů zátěžových testů, vysvětlených jeden po druhém.
Distribuované zátěžové testování
V distribuovaných systémech klient-server se testování provádí na všech klientech daného serveru. Úlohou zátěžového serveru je distribuovat sadu zátěžových testů všem zátěžovým klientům a… track stav každého klienta. Poté, co klient kontaktuje server, server přidá jméno klienta a začne odesílat data pro testování. Obrázek níže ukazuje, jak se zátěžový server dostane k některým klientům, ale k jiným ne.
Mezitím klientské počítače odesílají signál neboli prezenční signál, který potvrzuje, že jsou stále připojeny k serveru. Pokud server nepřijímá žádný signál z klientského počítače, je třeba tento počítač dále prozkoumat kvůli ladění. Na obrázku se server může připojit ke 2 klientům (Klient1 a Klient2), ale nemůže odesílat ani přijímat signál od Klienta 3 a Klienta 4.
Pro tyto scénáře zátěžového testování je nejlepší volbou noční testování. Velké serverové farmy potřebují efektivnější metodu pro určení, které počítače měly zátěžové selhání, která je třeba prošetřit.
Zátěžové testování aplikací
Toto testování se zaměřuje na hledání defektů souvisejících s uzamykáním a blokováním dat, problémy se sítí a úzkými hrdly výkonu v jedné aplikaci.
Transakční stresové testování
Provádí zátěžové testování jedné nebo více transakcí mezi dvěma nebo více aplikacemi. Používá se k doladění a optimalizaci systému.
Systémové zátěžové testování
Jedná se o integrované zátěžové testování, které lze spustit na více systémech sdílejících stejný server. Používá se k nalezení závad, kdy jedna aplikace blokuje data jiné aplikace.
Průzkumné zátěžové testování
Toto je typ zátěžového testování používaného k testování systému s neobvyklými parametry nebo podmínkami, které se v reálném scénáři pravděpodobně nevyskytnou. Používá se k nalezení závad v neočekávaných situacích, jako například:
- Velký počet uživatelů se přihlásil současně.
- Antivirový program spouštěný na všech počítačích současně.
- Databáze, která se během přístupu z webové stránky odpojí od sítě.
- Velké množství dat vkládaných do databáze současně.
Ať už se použije jakákoli varianta, pořadí provádění zůstává stejné.
Jak provést zátěžové testování?
Proces zátěžového testování lze provést v 5 hlavních krocích:
- Krok 1) Plánování zátěžového testu: Zde shromažďujete systémová data, analyzujete systém a definujete cíle zátěžového testu.
- Krok 2) Vytvořte automatizační skripty: V této fázi vytvoříte skripty pro automatizaci zátěžového testování a vygenerujete testovací data pro zátěžové scénáře.
- Krok 3) Spuštění skriptu: V této fázi spustíte automatizované skripty pro zátěžové testování a uložíte výsledky zátěžového testování.
- Krok 4) Analýza výsledků: V této fázi analyzujete výsledky zátěžového testu a identifikujete úzká hrdla.
- Krok 5) Úpravy a optimalizace: V této fázi doladíte systém, změníte konfigurace a optimalizujete kód s cílem splnit požadovaný benchmark.
Nakonec celý cyklus znovu spusťte, abyste zjistili, zda úpravy přinesly požadované výsledky. Například není neobvyklé, že před dosažením cílů výkonu jsou potřeba 3 až 4 cykly procesu zátěžového testování, takže skripty se obvykle udržují souběžně s regrese apartmá.
Doporučené nástroje pro zátěžové testování
Čtyři níže uvedené nástroje pokrývají většinu potřeb, od podnikových balíčků až po bezplatnou open-source variantu.
LoadRunner
LoadRunner je široce používaný nástroj pro zátěžové testování, nyní prodávaný společností OpenText v edicích Professional, Enterprise a Cloud po přechodu z HP na Micro Focus OpenTextVýsledky zátěžových testů generovaných programem LoadRunner jsou považovány za benchmark.
JMeter
Apache JMeter je open-source testovací nástroj. Je to čistě Java aplikace pro zátěžové a výkonnostní testování a je určena k pokrytí typů testů, jako jsou zátěžové, funkční a stresové. Aktuální verze 5.6.x Apache JMeter vyžadovat Java 8 nebo novější, s Java 17 doporučeno.
Zátěžový tester
Tento nástroj poskytuje rozsáhlou analýzu výkonu webových aplikací, prezentuje výsledky v grafickém formátu a je snadno použitelný. Není vyžadováno žádné skriptování na vysoké úrovni, což udržuje návratnost investic na nízké úrovni.tracvhodné pro menší týmy.
NeoZatížení
NeoZatížení, nyní součástí Tricentis portfolio, je oblíbený nástroj pro testování webových a Mobilních aplikacíDokáže simulovat tisíce uživatelů, aby vyhodnotil výkon aplikací při zátěži a analyzoval doby odezvy. Podporuje také cloudově integrované výkonnostní, zátěžové a stresové testování a je dobře škálovatelný.
Další možnosti jsou uvedeny v průvodci nástroje pro testování výkonu; ať už je vybrána kterákoli možnost, její výstup má nějaký význam pouze ve vztahu k níže uvedeným metrikám.
Metriky pro zátěžové testování
Metriky pomáhají při hodnocení výkonu systému a obvykle se zkoumají na konci zátěžového testu. Běžně používané metriky jsou seskupeny do tří skupin.
Měření škálovatelnosti a výkonu
- Stránky za sekundu: Měří, kolik stránek bylo vyžádáno za sekundu.
- Propustnost: Základní metrika – velikost dat odezvy za sekundu.
- Kola: Počet plánovaných testovacích scénářů oproti počtu jejich spuštění klientem.
Odpověď aplikace
- Čas zásahu: Průměrná doba načtení obrázku nebo stránky.
- Čas do prvního bajtu: Čas potřebný k vrácení prvního bajtu dat nebo informací.
- Čas zobrazení stránky: Čas potřebný k načtení všech informací na stránce.
Poruchy
- Neúspěšná připojení: Počet neúspěšných připojení odmítnutých klientem (slabý signál).
- Neúspěšná kola: Počet neúspěšných kol.
- Neúspěšné zásahy: Počet neúspěšných pokusů systému (nefunkční odkazy nebo neviditelné obrázky).
Závěrečná část uvádí situace, které nejčastěji ospravedlňují provedení zátěžového testu.
Příklady zátěžového testování
Zátěžové testování si zaslouží své místo vždy, když se očekává, že nějaká událost posune provoz výrazně nad denní hranici:
- Internetový obchod oznamující festivalový výprodej.
- Zpravodajský web v době významné události.
- Školská rada zveřejňuje výsledky zkoušek.
- Sociální sítě, blogy a mobilní aplikace během virálního momentu.
V každém případě test monitoruje zdroje, jako je paměť, procesor a síť, kontroluje, zda se při zátěži zobrazují příslušné chybové zprávy, a následně potvrzuje, že se systém vrátí do normálního stavu. Zapadá do životní cyklus testování softwaru jako nefunkční kontrola vedle Testování systému a širší soubor typy testování softwaru.

.png)
.png)

