Výukový program testování výkonu

Testování zatížení

Co je testování výkonu?

Testování výkonu je proces testování softwaru používaný k testování rychlosti, doby odezvy, stability, spolehlivosti, škálovatelnosti a využití zdrojů softwarové aplikace při určité zátěži. Hlavním účelem testování výkonu je identifikovat a odstranit úzká místa výkonu v softwarové aplikaci. Je to podmnožina výkonnostního inženýrství a je také známá jako "Testování výkonu".

Testování výkonu se zaměřuje na kontrolu softwarových programů

  • Rychlost – Určuje, zda aplikace reaguje rychle
  • Škálovatelnost – Určuje maximální uživatelskou zátěž, kterou softwarová aplikace zvládne.
  • Stabilita – Určuje, zda je aplikace stabilní při různém zatížení

Proč provádět testování výkonu?

Funkce a funkce podporované softwarovým systémem nejsou jediným problémem. Na výkonu softwarové aplikace, jako je její doba odezvy, spolehlivost, využití zdrojů a škálovatelnost, záleží. Cílem testování výkonu není najít chyby, ale odstranit úzká místa výkonu.

Testování výkonu se provádí s cílem poskytnout zúčastněným stranám informace o jejich aplikaci týkající se rychlosti, stability a škálovatelnosti. Ještě důležitější je, že testování výkonnosti odhaluje, co je třeba zlepšit, než se produkt dostane na trh. Bez testování výkonu bude software pravděpodobně trpět problémy, jako jsou: pomalý běh, zatímco jej používá několik uživatelů současně, nekonzistence mezi různými operačními systémy a špatná použitelnost.

Testování výkonu

Testování výkonu určí, zda jejich software splňuje požadavky na rychlost, škálovatelnost a stabilitu při očekávané zátěži. Aplikace odeslané na trh se špatnými metrikami výkonu kvůli neexistujícímu nebo špatnému testování výkonu pravděpodobně získají špatnou pověst a nesplní očekávané prodejní cíle.

Takže, kritické aplikace jako jsou vesmírné startovací programy nebo záchranná lékařská zařízení by měla být testována, aby bylo zajištěno, že budou fungovat po dlouhou dobu bez odchylek.

Podle Dunn & Bradstreet zažívá 59 % společností z Fortune 500 odhadem 1.6 hodiny prostojů každý týden. Vzhledem k tomu, že průměrná společnost z Fortune 500 s minimálně 10,000 56 zaměstnanci platí 896,000 USD za hodinu, pracovní část nákladů na prostoje pro takovou organizaci by činila 46 XNUMX USD týdně, což by znamenalo více než XNUMX milionů USD ročně.

Jen a 5minutový výpadek webu Google.com (19-Aug-13) bude podle odhadů stát vyhledávacího giganta tolik jako $ 545,000.

Odhaduje se, že společnosti ztratily hodnotu prodeje 1100 XNUMX $ za sekundu kvůli nedávné Amazon Výpadek webové služby.

Testování výkonu je proto důležité. Abychom vám s tímto procesem pomohli, podívejte se na tento seznam nástroje pro testování výkonu.

Typy výkonnostních testů

V testování softwaru existuje primárně šest typů testování výkonu, které jsou vysvětleny níže.

  • Zátěžové testy - kontroluje schopnost aplikace fungovat při očekávaném zatížení uživatele. Cílem je identifikovat úzká hrdla výkonu před spuštěním softwarové aplikace.
  • Stresové testování - zahrnuje testování aplikace při extrémní zátěži, abyste viděli, jak zvládá vysoký provoz nebo zpracování dat. Cílem je identifikovat bod zlomu aplikace.
  • Testování odolnosti - se provádí, aby se zajistilo, že software zvládne očekávanou zátěž po dlouhou dobu.
  • Špičkový test - testuje reakci softwaru na náhlé velké skoky v zátěži generované uživateli.
  • Testování objemu – V části Testování objemu velké č. z. Data jsou uložena v databázi a je sledováno celkové chování softwarového systému. Cílem je zkontrolovat výkon softwarové aplikace při různých objemech databáze.
  • Testování škálovatelnosti – Cílem testování škálovatelnosti je určit efektivitu softwarové aplikace při „rozšiřování“ za účelem podpory zvýšení uživatelské zátěže. Pomáhá plánovat rozšíření kapacity vašeho softwarového systému.

Běžné problémy s výkonem

Většina problémů s výkonem se točí kolem rychlosti, doby odezvy, doby načítání a špatné škálovatelnosti. Rychlost je často jedním z nejdůležitějších atributů aplikace. Pomalu běžící aplikace ztratí potenciální uživatele. Testování výkonu zajišťuje, že aplikace běží dostatečně rychle, aby udržela pozornost a zájem uživatele. Podívejte se na následující seznam běžných problémů s výkonem a všimněte si, že rychlost je u mnoha z nich společným faktorem:

  • Dlouhá doba načítání - Doba načítání je obvykle počáteční doba potřebná ke spuštění aplikace. To by mělo být obecně omezeno na minimum. Zatímco některé aplikace nelze načíst za méně než minutu, doba načítání by měla být pokud možno pod několika sekundami.
  • Špatná doba odezvy - Doba odezvy je doba, která uplyne od okamžiku, kdy uživatel vloží data do aplikace, do okamžiku, kdy aplikace odešle na tento vstup odezvu. Obecně by to mělo být velmi rychlé. Pokud uživatel musí čekat příliš dlouho, ztrácí zájem.
  • Špatná škálovatelnost - Softwarový produkt trpí špatnou škálovatelností, když nezvládne očekávaný počet uživatelů nebo když nepojme dostatečně široký okruh uživatelů. Testování zatížení by mělo být zajištěno, že aplikace zvládne předpokládaný počet uživatelů.
  • Překážky – Úzká místa jsou překážky v systému, které snižují celkový výkon systému. Překážkou nastává, když chyby kódování nebo problémy s hardwarem způsobí snížení propustnosti při určité zátěži. Překážky jsou často způsobeny jednou chybnou částí kódu. Klíčem k vyřešení problému s úzkým hrdlem je najít část kódu způsobující zpomalení a pokusit se ji tam opravit. Překážky se obecně řeší buď opravou špatně běžících procesů, nebo přidáním dalšího hardwaru. Nějaký běžné překážky výkonu jsou
    • Využití procesoru
    • Využití paměti
    • Využití sítě
    • Operating Omezení systému
    • Využití disku

Jak provést testování výkonu

Metodika přijatá pro testování výkonu se může značně lišit, ale cíl testů výkonu zůstává stejný. Může pomoci prokázat, že váš softwarový systém splňuje určitá předem definovaná výkonnostní kritéria. Nebo může pomoci porovnat výkon dvou softwarových systémů. Může také pomoci identifikovat části vašeho softwarového systému, které snižují jeho výkon.

Níže je uveden obecný postup, jak provádět testování výkonu

Proces testování výkonu
Proces testování výkonu

Krok 1) Identifikujte své testovací prostředí

Poznejte své fyzické testovací prostředí, produkční prostředí a jaké testovací nástroje jsou k dispozici. Než začnete s procesem testování, pochopte podrobnosti o konfiguraci hardwaru, softwaru a sítě použité během testování. Pomůže testerům vytvářet efektivnější testy. Pomůže také identifikovat možné problémy, se kterými se mohou testeři setkat během procedur testování výkonu.

Krok 2) Identifikujte kritéria přijatelnosti výkonu

To zahrnuje cíle a omezení propustnosti, doby odezvy a alokace zdrojů. Je také nutné identifikovat kritéria úspěšnosti projektu mimo tyto cíle a omezení. Testeři by měli být oprávněni stanovit výkonnostní kritéria a cíle, protože specifikace projektu často nebudou obsahovat dostatečně širokou škálu výkonnostních benchmarků. Někdy nemusí být vůbec žádné. Pokud je to možné, nalezení podobné aplikace pro srovnání je dobrý způsob, jak stanovit výkonnostní cíle.

Krok 3) Naplánujte a navrhněte testy výkonu

Zjistěte, jak se bude použití pravděpodobně lišit mezi koncovými uživateli, a identifikujte klíčové scénáře, které otestujete pro všechny možné případy použití. Je nutné simulovat různé koncové uživatele, naplánovat data testů výkonu a nastínit, jaké metriky budou shromažďovány.

Krok 4) Konfigurace testovacího prostředí

Před spuštěním připravte testovací prostředí. Uspořádejte také nástroje a další zdroje.

Krok 5) Implementujte návrh testu

Vytvořte testy výkonu podle návrhu testu.

Krok 6) Spusťte testy

Proveďte a sledujte testy.

Krok 7) Analyzujte, vylaďte a znovu otestujte

Konsolidujte, analyzujte a sdílejte výsledky testů. Poté dolaďte a znovu otestujte, zda došlo ke zlepšení nebo snížení výkonu. Vzhledem k tomu, že vylepšení se s každým opakovaným testem obecně zmenšují, přestaňte, když je zúžení způsobeno CPU. Pak můžete zvážit možnost zvýšení výkonu procesoru.

Metriky testování výkonu: Sledované parametry

Mezi základní parametry sledované při testování výkonu patří:

metriky testování výkonu

  • Využití procesoru – množství času, který procesor stráví prováděním ne-nečinných vláken.
  • Využití paměti - množství fyzické paměti dostupné pro procesy v počítači.
  • Čas disku - dobu, po kterou je disk zaneprázdněn prováděním požadavku na čtení nebo zápis.
  • Šířka pásma - ukazuje počet bitů za sekundu použitý síťovým rozhraním.
  • Soukromé bajty – počet bajtů, které proces přidělil, které nelze sdílet s jinými procesy. Ty se používají k měření úniků paměti a využití.
  • Zavázaná paměť – množství použité virtuální paměti.
  • Stránky paměti za sekundu – počet stránek zapsaných nebo přečtených z disku za účelem vyřešení chyb pevných stránek. Chyby pevné stránky jsou, když je kód, který není z aktuální pracovní sady, vyvolán odjinud a načten z disku.
  • Chyby stránky/sekundu – celková rychlost, jakou jsou chybové stránky zpracovávány procesorem. K tomu opět dochází, když proces vyžaduje kód mimo svou pracovní sadu.
  • CPU přerušení za sekundu – je prům. počet hardwarových přerušení, která procesor každou sekundu přijme a zpracuje.
  • Délka diskové fronty – je prům. žádný. požadavků na čtení a zápis ve frontě pro vybraný disk během vzorkovacího intervalu.
  • Délka síťové výstupní fronty – délka výstupní fronty paketů v paketech. Cokoli více než dva znamená zpoždění a je třeba zastavit zúžení.
  • Celkový počet bajtů sítě za sekundu – rychlost, kterou jsou bajty odesílány a přijímány na rozhraní, včetně rámcových znaků.
  • Doba odezvy - čas od okamžiku, kdy uživatel zadá požadavek, do obdržení prvního znaku odpovědi.
  • Propustnost - rychlost, kterou počítač nebo síť přijímá za sekundu.
  • Množství sdružených připojení – počet uživatelských požadavků, které jsou splněny sdruženými připojeními. Čím více požadavků splňují připojení ve fondu, tím lepší bude výkon.
  • Maximální počet aktivních relací – maximální počet relací, které mohou být aktivní najednou.
  • Poměry zásahů – To souvisí s počtem SQL příkazy, které jsou zpracovávány daty uloženými v mezipaměti namísto drahých I/O operací. Toto je dobré místo, kde začít při řešení problémů s úzkým hrdlem.
  • Počet zásahů za sekundu – ne. návštěv na webovém serveru během každé sekundy zátěžového testu.
  • Rollback segment – množství dat, které lze kdykoli vrátit zpět.
  • Zámky databáze - zamykání tabulek a databází je potřeba sledovat a pečlivě ladit.
  • Nejlepší čekání - jsou monitorovány, aby se zjistilo, jaké čekací doby lze zkrátit při práci s tím, jak rychle jsou data načítána z paměti
  • Počet vláken - Stav aplikací lze měřit pomocí čísla ne. z vláken, která jsou spuštěna a aktuálně aktivní.
  • Odvoz odpadu - Souvisí to s vracením nevyužité paměti zpět do systému. Sběr odpadu je třeba sledovat z hlediska účinnosti.

Příklad testovacích případů testování výkonu

  • Testovací případ 01: Ověřte, že doba odezvy není delší než 4 sekundy, když na web přistupuje současně 1000 uživatelů.
  • Testovací případ 02: Ověřte, že doba odezvy aplikace pod zatížením je v přijatelném rozsahu, když je připojení k síti pomalé
  • Testovací případ 03: Zkontrolujte maximální počet uživatelů, které aplikace zvládne, než dojde k jejímu zhroucení.
  • Testovací případ 04: Zkontrolujte dobu provádění databáze, když je současně čteno/zapisováno 500 záznamů.
  • Testovací případ 05: Zkontrolujte využití procesoru a paměti aplikací a databázovým serverem v podmínkách špičkového zatížení
  • Testovací případ 06: Ověřte dobu odezvy aplikace při nízké, normální, střední a vysoké zátěži.

Během skutečného provádění testu výkonu jsou vágní pojmy jako přijatelný rozsah, velké zatížení atd. nahrazeny konkrétními čísly. Výkonoví inženýři nastavili tato čísla podle obchodních požadavků a technického prostředí aplikace.

Nástroje pro testování výkonu

Na trhu je k dispozici široká škála nástrojů pro testování výkonu. Nástroj, který si vyberete pro testování, bude záviset na mnoha faktorech, jako jsou typy podporovaného protokolu, cena licence, hardwarové požadavky, podpora platformy atd. Níže je uveden seznam běžně používaných testovacích nástrojů.

  • HP LoadRunner - je dnes nejoblíbenějším nástrojem pro testování výkonu na trhu. Tento nástroj je schopen simulovat stovky tisíc uživatelů a zatěžovat aplikace v reálném životě a určit jejich chování při očekávané zátěži. Loadrunner obsahuje virtuální generátor uživatelů, který simuluje akce živých lidských uživatelů.
  • Jmetr – jeden z předních nástrojů používaných pro zátěžové testování webových a aplikačních serverů.

Nejčastější dotazy

Testování výkonu se vždy provádí pouze pro systémy založené na klient-server. To znamená, že žádná aplikace, která není architektura založená na klient-server, nesmí vyžadovat testování výkonu.

Například, Microsoft Kalkulačka není založena na klient-server ani na ní běží více uživatelů; proto není kandidátem na testování výkonnosti.

Zkouška výkonu

Je důležité pochopit rozdíl mezi testováním výkonu a inženýrstvím výkonu. Níže je sdíleno porozumění:

Testování výkonu je disciplína, která se zabývá testování a podávání zpráv aktuální výkon softwarové aplikace při různých parametrech.

Výkonové inženýrství je proces, kterým je software testován a laděn se záměrem dosáhnout požadovaného výkonu. Tento proces se zaměřuje na optimalizaci nejdůležitější vlastnosti výkonu aplikace, tj. uživatelské zkušenosti.

Historicky byly testování a ladění výrazně oddělené a často si konkurující oblasti. V posledních několika letech však několik kapes testerů a vývojářů nezávisle spolupracovalo na vytvoření ladicích týmů. Protože se tyto týmy setkaly s významným úspěchem, uchytil se koncept propojení testování výkonu s laděním výkonu a nyní tomu říkáme výkonové inženýrství.

Proč investovat do čističky vzduchu?

In Softwarové inženýrství, Před uvedením jakéhokoli softwarového produktu na trh je nezbytné testování výkonu. Zajišťuje spokojenost zákazníků a chrání investici investora před selháním produktu. Náklady na testování výkonu jsou obvykle více než kompenzovány zvýšenou spokojeností, loajalitou a udržením zákazníků.