Soak Test v softwaru: Význam a příklady
⚡ Chytré shrnutí
Soak Testing aplikuje na aplikaci trvalou, realistickou zátěž po delší dobu, aby odhalil problémy, které se objevují až s časem. Úniky paměti, vyčerpání připojení a pomalý výkon jsou vady, které má zachytit.

Co je Soak Testing?
Testování namáčení je typ nefunkčního testování, který se používá k měření výkonu softwarové aplikace při velkém objemu zátěže po delší dobu. Cílem testování Soak je zajistit, zda softwarová aplikace vydrží vysoký objem používání, a zkontrolovat, co by se stalo mimo její designová očekávání.
Obrázek níže znázorňuje testovací cyklus, který ukazuje, ve které fázi namáčení (Typ výkonnostního testu) se provádí v aplikaci.
Při tomto typu testování je v zásadě monitorováno využití paměti aplikací v systému. Testuje se na úrovni systému, aby se zjistilo, zda systém obstojí při velmi vysokém objemu používání, a aby se zjistilo, co by se stalo mimo jeho designová očekávání.
Proč provádět namáčení?
Systém se může chovat normálně, když je používán po dobu 2 hodin, ale když je stejný systém používán nepřetržitě po dobu 10 hodin nebo déle, pak může selhat nebo se chovat abnormálně/náhodně/může dojít k selhání. K předpovědi takového selhání se provádí Soak Testing.
Kdy provést namáčení?
Testování nasáknutí by mělo být provedeno v následujících scénářích: –
- Než je build nasazen na klienta, tj. před vydáním jakékoli aplikace na konkrétní platformu, musí projít úspěšnou sérií zátěžových testů při vysokých nebo ekvivalentních úrovních provozu. Poté provádí se zkouška namáčení. Pomáhá nám určit, jak spustit jakoukoli konkrétní aplikaci po delší dobu. Pokud se během období, tj. když je na Soak, objeví problémy jako úniky paměti/poškození paměti, měly by být okamžitě hlášeny.
- Nejlepší čas na testování nasákavosti je přes víkendy, protože aplikace musí být v provozu po dobu jednoho dne nebo noci. To zcela závisí na omezeních testovací situace. Soak testy jsou jedním z nejdůležitějších požadavků na shodu, který musí každá společnost velmi přísně dodržovat.
Strategie testování namáčení
Long Session Soak Testing je strategie, kdy je systém pod zátěží po delší dobu.
Jednoduchým příkladem je situace, kdy uživatel zůstává přihlášen do systému po mnoho hodin a provádí řadu obchodních transakcí. Tímto způsobem se vytvoří velké množství dat. Systém/databázový server může být hodně zatížen, což může vést k zastavení/selhání systému/databázového serveru.
V rámci Long Session Soak Testing se vícedenní (řekněme 30 dní) aktivity provádějí v omezeném časovém rámci (řekněme 2 dny). Počet transakcí v tomto omezeném časovém rámci by měl odpovídat nebo překročit počet transakcí za několik dní. Důraz by měl být kladen na počet zpracovaných transakcí. Nejdůležitější částí Soak Testingu je kontrola dostupné paměti v CPU a množství paměti, která bude využívána. Potřebujeme zaznamenat využití paměti na začátku a na konci testu propouštění. V případě potřeby pak využití paměti zařízeními jako např Java Virtuální stroje jsou také důležité a je třeba je sledovat.
Níže je uvedeno několik dalších kontrol, které musí každý uživatel/tester provést, než začne s testováním soak:
a) Monitorujte spotřebu prostředků databáze.
b) Monitorujte spotřebu zdrojů serveru (mimo využití CPU).
c) Soak test by měl probíhat s realistickou uživatelskou souběžností.
Charakteristika namáčení
Standardní zkušební metoda namáčení by měla mít následující vlastnosti: –
- Doba trvání většiny Soak Test je často určena časem, který je k dispozici.
- Jakákoli aplikace musí běžet bez přerušení, pokud vyžaduje delší dobu.
- Měl by zahrnovat všechny scénáře, na kterých se zúčastněné strany dohodnou.
- Většinou každý systém má pravidelné intervaly údržby a doba mezi těmito intervaly je klíčovým faktorem pro určení rozsahu Soak Testu.
Příklady testů namáčení
- V případě bankovní domény, kdy je velké množství dat od obchodníků, bude tester nepřetržitě zatěžovat systém po dobu 70 hodin až 150 hodin, aby zkontroloval, jak se aplikace během této doby načítání chová.
- Předpokládejme, že existuje 33,000 60 přihlášení, které je potřeba projít systémem, představuje to sedm a půl dne aktivity. V tomto případě může být do pátku večer kolem 70:6 zahájen XNUMX-XNUMX hodinový Soak Test, který může být dokončen do Monday ráno v 6 hodin ráno. Pouze s takovým testem bude možné pozorovat jakékoli zhoršení výkonu za kontrolovaných podmínek.
- V případě videoher, Mobilní aplikace aplikace atd. zahrnují ponechání hry nebo aplikace v běžícím stavu po delší dobu, v různých režimech provozu – jako je nečinnost, pozastavení na titulní obrazovce atd., aby se zjistilo, zda aplikace zvládne průběžně očekávanou zátěž .
Běžné problémy pozorované během testování namáčení
- Alokace paměti (úniky paměti, které by nakonec vyústily v krizi paměti nebo chyby zaokrouhlení, které se projeví až v průběhu času).
- Využití databázových prostředků (selhání při zavření databázových kurzorů za určitých podmínek, což by nakonec vedlo k zastavení celého systému).
- Může také vést ke snížení výkonu, tj. zajistit, aby doba odezvy po dlouhé době trvalé činnosti byla stejně dobrá jako na začátku testu.
- Selhání v uzavření spojení mezi vrstvami vícevrstvého systému za určitých okolností, které by mohlo zastavit některé nebo všechny moduly systému.
- Postupná degradace doby odezvy některých funkcí, protože interní datové struktury se během dlouhého testu stávají méně účinnými.
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.

