Co je testování odolnosti v testování softwaru? (s příkladem)
⚡ Chytré shrnutí
Testování odolnosti spouští aplikaci při normální očekávané zátěži po delší dobu, aby se zjistilo, zda se výkon v průběhu času snižuje. Je to test, který zachycuje vady, kterých se hodinový zátěžový běh nedotkne.
Co je Testování odolnosti?
Testování odolnosti je nefunkční typ testování softwaru, kdy je software testován s vysokou zátěží prodlouženou po značnou dobu, aby se vyhodnotilo chování softwarové aplikace při trvalém používání. Hlavním účelem testování odolnosti je zajistit, aby aplikace byla dostatečně schopná zvládnout delší zátěž bez jakéhokoli zhoršení doby odezvy.
Tento typ testování se provádí v poslední fázi cyklu výkonu. Testování odolnosti je dlouhý proces a někdy trvá dokonce až rok. To může zahrnovat použití externích zátěží, jako je internetový provoz nebo akce uživatele. Tím se testování odolnosti liší od Testování zatížení, která obvykle končí za pár hodin nebo tak nějak.
Vytrvalost znamená kapacitu, takže jinými slovy, můžete Endurance Testing nazvat jako Capacity Testing.
Cíle testování vytrvalosti
- Primárním cílem testování Endurance je kontrola úniků paměti.
- Chcete-li zjistit, jak systém funguje při trvalém používání.
- Aby bylo zajištěno, že po dlouhé době zůstane doba odezvy systému stejná nebo lepší než na začátku testu.
- K určení počtu uživatelů a/nebo transakcí bude daný systém podporovat a splňovat výkonnostní cíle.
- Abychom mohli spravovat budoucí zatížení, musíme pochopit, kolik dalších zdrojů (jako je kapacita procesoru, kapacita disku, využití paměti nebo šířka pásma sítě) je nezbytných k podpoře využití v budoucnu.
- Testování odolnosti se obecně provádí buď přetížením systému, nebo snížením určitých systémových zdrojů a vyhodnocením důsledků.
- Provádí se, aby se zajistilo, že nedojde k defektům nebo únikům paměti po období, které je považováno za relativně „normální“ dobu používání.
Co sledovat při vytrvalostních testech
Při testování odolnosti se testují následující věci.
- Test úniku paměti– Provádí se kontroly, aby se ověřilo, zda v aplikaci nedochází k úniku paměti, který může způsobit zhroucení systému nebo operačního systému
- Otestujte uzavření spojení mezi vrstvou systému – Pokud není spojení mezi vrstvami systému úspěšně uzavřeno, může dojít k zablokování některých nebo všech modulů systému.
- Testování připojení k databázi bylo úspěšně ukončeno– Pokud není připojení k databázi úspěšně ukončeno, může dojít ke zhroucení systému
- Doba odezvy testu – Systém je testován na dobu odezvy systému, protože aplikace se stává méně efektivní v důsledku dlouhodobého používání systému.
Jak provádět vytrvalostní testy
Níže je uveden základní testovací přístup pro Endurance Test
- Testovací prostředí – Identifikujte hardware, software, operační systém, který vyžaduje testování odolnosti, přiřazení rolí a odpovědností v rámci týmu atd. Prostředí by mělo být připraveno před provedením testu. Musíte také odhadnout běžnou velikost produkce databáze a roční růst. To je vyžadováno, protože musíte vyzkoušet, jak bude vaše aplikace reagovat po roce, dvou nebo pěti.
- Vytvoření plánu testování, scénářů – Na základě povahy testování – manuální nebo automatizace nebo kombinace obojího, Testovací případ návrh, revize a provedení by měly být naplánovány. Součástí plánu testování by mělo být také testování za účelem namáhání systému, testování bodu zlomu atd. Testování zátěže systému určuje bod zlomu v aplikaci.
- Odhad testu – Uveďte odhad, jak dlouho bude trvat dokončení testovací fáze. Mělo by být analyzováno na základě počtu zúčastněných testerů a počtu požadovaných testovacích cyklů.
- Analýza rizik - Analýza rizik a přijetí vhodných opatření pro prevenci. Stanovení priority testovacích případů podle rizikového faktoru a identifikace níže uvedených rizik a problémů, které tester může rozfázovat během testu odolnosti.
- Zůstane výkon konzistentní v průběhu času?
- Existují další drobné problémy, které dosud nebyly zjištěny?
- Existuje vnější rušení, které nebylo řešeno?
- Rozvrh zkoušek – Stanovte rozpočet, výstupy v rámci časových rámců. Tak jako Testování odolnosti aplikuje obrovské, ale přirozené uspořádání transakcí na systém/aplikaci po nepřetržité časové období.
Příklad testování odolnosti
Zatímco Stresové testování dovede testovaný systém na jeho limity, Testování odolnosti dovede aplikaci na její limit přesčas.
Například k nejsložitějším problémům – únikům paměti, využití databázového serveru a nereagujícímu systému – dochází, když software běží delší dobu. Pokud vynecháte testy odolnosti, vaše šance na odhalení takových vad před nasazením jsou poměrně nízké.
Nástroje pro testování odolnosti
- WebLOAD
- Načítání dokončeno
- Apache JMeter
- LoadRunner
- Appvance
- LoadUI
- OpenSTA
- Rational Performance Tester
Výhody testování odolnosti
- Pomáhá při určování toho, jak může zátěž zvládnout systém pod zatížením.
- Poskytuje přesná data, která může zákazník použít k ověření nebo vylepšení svých infrastrukturních potřeb.
- Identifikuje problémy s výkonem, které mohou nastat poté, co systém delší dobu běžel na vysoké úrovni
- Typické problémy jsou identifikovány v menších cílených testech výkonu, což znamená, že aplikace zůstane dostupná i při velkém zatížení ve velmi krátkém čase.
- Test odolnosti se také používá ke kontrole, zda nedochází po dlouhé době provádění ke snížení výkonu
Nevýhody vytrvalostního testování
- Často je těžké definovat, kolik stresu stojí za to aplikovat.
- Testování odolnosti by mohlo způsobit selhání aplikace a/nebo sítě, což může mít za následek významné narušení Testovací prostředí nejsou izolované.
- Přetížením systému může dojít k trvalé ztrátě nebo poškození dat.
- Využití zdrojů zůstává po odstranění stresu velmi vysoké.
- Některé součásti aplikace nereagují.
- Neošetřené výjimky sleduje koncový uživatel.
Jak tento test zapadá do rodiny testů výkonu
Testování výkonu je zastřešující pojem. Níže uvedené varianty se liší pouze tvarem aplikovaného zatížení a dobou, po kterou je zatížení udržováno, a proto se tak často zaměňují.
| Typ zkoušky | Vzor zatížení | Otázka to odpovídá |
|---|---|---|
| Zátěžové testování | Očekávané špičkové zatížení, krátké trvání | Splňuje systém své cíle za normálního dopravního špičkového provozu? |
| Stresové testování | Zvýšení nad kapacitu až do selhání | Kde se to zlomí a selže to elegantně? |
| Špičkový test | Náhlý extrémní nárůst, poté stažení | Přežije a zotaví se z dopravního šoku? |
| Testování odolnosti | Normální zatížení udržované po mnoho hodin | Snižuje se výkon v průběhu času? |
| Zkouška namáčením | Trvalé zatížení po delší dobu | Dochází k únikům paměti nebo vyčerpání zdrojů? |
| Testování stability | Různé zatížení v různých podmínkách | Zůstává systém spolehlivý i při změně podmínek? |
| Testování objemu | Běžní uživatelé, velmi velký objem dat | Zvládá to růst databáze? |
Zkoušky životnosti a namáčení se často považují za synonyma. Běžně se používá: oba udržují trvalou zátěž po dlouhou dobu. Tam, kde je týmy rozlišují, se testování odolnosti zaměřuje na to, zda se doba odezvy zvyšuje, zatímco testování soak se zaměřuje na spotřebu zdrojů, jako je paměť, popisovače souborů a fondy připojení. Spuštění jednoho obvykle poskytne důkazy pro oba.
Klíčové metriky k zachycení během testu
Výkonnostní běh je jen tak dobrý, jako to, co zaznamenáte během jeho provádění. Zaznamenejte těchto šest na straně serveru a klienta a poté je porovnejte s výchozím stavem, nikoli s intuicí.
| metrický | Co vám to říká | Výstražné znamení |
|---|---|---|
| Průměrná doba odezvy | Typická uživatelská zkušenost | Jakýkoli vzestupný posun napříč běhounem |
| Doba odezvy 95. percentilu | Zkušenosti nejpomalejších uživatelů | Daleko nad průměrem, což znamená nekonzistentnost |
| Propustnost | Počet zpracovaných požadavků za sekundu | Pád při konstantním zatížení |
| Míra chyb | Podíl neúspěšných nebo vypršelých požadavků | Jakýkoli nárůst nad dohodnutý limit |
| Využití CPU a paměti | Volný prostor pro serverové zdroje | Vzpomínka, která stoupá a už se nikdy nevrací |
| Databázová připojení a vlákna | Vyčerpání bazénu | Počty, které stabilně rostou bez uvolnění |
Přečtěte si průměr a percentil společně. Průměr 800 ms s 95. percentilem 900 ms popisuje konzistentní systém. Stejný průměr s 95. percentilem 9 sekund znamená, že jeden uživatel z dvaceti má špatné časy a průměr to skrývá.
Sledujte tvar, nejen hodnotu. V jakémkoli dlouhodobém testu je plochá křivka zdroje úspěšná a stoupající křivka je únik, a to i v případě, že absolutní číslo je v okamžiku konce běhu stále pohodlně uvnitř limitu.
Testování vytrvalosti: Klíčové poznatky
- In Softwarové inženýrství, Testování odolnosti je podmnožinou zátěžového testování.
- Testování odolnosti je dlouhý proces a někdy trvá až rok
- K ověření se provádějí kontroly
- Test úniku paměti
- Doba odezvy testu
- Test připojení k databázi atd.


