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.

  • 🕒 Trvalé zatížení: Očekávaný provoz v produkční sféře je zadržován hodiny nebo dny, nikoli minuty.
  • 📉 Zaměření na degradaci: Otázkou je, zda se doba odezvy prodlužuje, nikoli zda je cíle jednou dosaženo.
  • 💧 Časté nálezy: Nevracení paměti, vyčerpání fondu připojení a neomezený růst protokolů nebo mezipaměti.
  • 📊 Monitorovací sada: Paměť, CPU, doba odezvy, propustnost a databázová připojení v celém běhu.
  • 🛠️ Nástroje: Standardní nástroje pro načítání řídí provoz, zatímco nástroje APM zaznamenávají křivky zdrojů.
  • 🇧🇷 Kompromis: Výsledky jsou sice cenné, ale jejich získání je pomalé, což omezuje četnost provádění testu.

Co je to vytrvalostní testování

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

Testování odolnosti

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

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.

Nejčastější dotazy

Zátěžové testování ověřuje, zda systém splňuje své cíle při špičkovém zatížení během krátkého běhu. Vytrvalostní testování udržuje normální zatížení po dobu několika hodin, aby se zjistilo, zda tyto cíle stále platí na konci běhu.

Jakýkoli trvalý vzestupný trend v době odezvy nebo využití zdrojů, i když není překročena žádná prahová hodnota. Vadou je samotný posun, protože nakonec v produkčním prostředí překročí limit.

Po úspěšném provedení funkčního a zátěžového testování a dostatečně brzy, aby bylo možné zjištěnou netěsnost ještě opravit. Spuštění testu noc před vydáním nenechává čas reagovat na výsledek.

Monitorování založené na umělé inteligenci detekuje bod, ve kterém metrika mění trend, a koreluje ho s nasazením nebo naplánovanými úlohami, čímž promění hodiny grafů v konkrétního podezřelého.

Může to pomoci s prioritizací. Modely rizik zvýrazňují, která vydání kódu náchylného k úniku dotykového ovládání, takže plná spuštění jsou rezervována pro změny, které je s největší pravděpodobností budou potřebovat.

Shrňte tento příspěvek takto: