Co je nefunkční testování?
- 7 min
V části Spouštění funkčních testů v Azure Pipelines jste do kanálu přidali testy uživatelského rozhraní Selenium. Testy uživatelského rozhraní jsou formou funkčního testování. V této části prozkoumáte druhy nefunkčních testů, které můžete spustit v potrubí.
Tým nejprve definuje nefunkční testy. Mluví o některých typech těchto testů. Pak se rozhodnou pro test nefunkčních vlastností, který přidají do jejich pipeline.
Jak se nefunkční testy porovnávají s funkčními testy?
Ve spuštění funkčních testů v Azure Pipelines jsme definovali funkční testy a nefunkční testy.
Stručně řečeno, funkční testy ověřují, že každá funkce softwaru dělá to, co by měla. Jinými slovy funkční testy ověřují funkčnost aplikace.
Nefunkční testy kontrolují nefunkční aspekty aplikace, jako je výkon a spolehlivost. Na systémech, které nejsou aplikacemi, jako jsou komponenty infrastruktury, můžete také spouštět nefunkční testy. Jedním z příkladů nefunkčního testu je určení, kolik lidí se může současně přihlásit k aplikaci, aniž by to způsobilo problém, například pomalejší doby odezvy.
Na webu Space Game může jako příklad funkční test ověřit, že se tabulka výsledků zobrazuje správně a že zobrazuje správné záznamy, když uživatel vybere filtr. Nefunkční test může ověřit, že filtrování tabulky výsledků skončí za méně než jednu sekundu, a to i v případě, že se mnoho uživatelů připojí k webu najednou.
Nefunkční testování vždy testuje něco, co je měřitelné. Cílem je produkt vylepšit. Můžete to udělat například vylepšením toho, jak efektivně aplikace využívá prostředky, nebo zlepšením doby odezvy, když ji mnoho zákazníků současně používá. Tady jsou některé otázky, na které můžou odpovědět nefunkční testy:
- Jak aplikace funguje za normálních okolností?
- Jak aplikace funguje, když se současně přihlašuje mnoho uživatelů?
- Jak je aplikace zabezpečená?
Jaké druhy nefunkčních testů můžu spustit?
Existuje mnoho druhů nefunkčních testů. Mnoho z nich se hodí do široké kategorie testování výkonu a testování zabezpečení.
Testování výkonu
Cílem testování výkonu je zlepšit rychlost, škálovatelnost a stabilitu aplikace. Testování rychlosti určuje, jak rychle aplikace reaguje. Testování škálovatelnosti určuje maximální zatížení uživatele, které může aplikace zpracovat. Testování stability určuje, jestli aplikace zůstává stabilní pod různými zatíženími. Dva běžné typy testů výkonnosti jsou zátěžové testy a zátěžové testy.
Zátěžové testování
Zátěžové testy určují výkon aplikace při realistických zatíženích. Zátěžové testy můžou například určit, jak dobře aplikace funguje na horním limitu smlouvy o úrovni služeb (SLA). Zátěžové testování v podstatě určuje chování aplikace, když ho současně potřebuje více uživatelů.
Uživatelé nemusí být nutně lidé. Například zátěžový test pro software tiskárny může aplikaci odeslat velké objemy dat. Zátěžový test poštovního serveru může simulovat tisíce souběžných uživatelů.
Zátěžové testování je také dobrým způsobem, jak odhalit problémy, které existují pouze v případě, že aplikace pracuje na svých limitech. To je tehdy, když se mohou objevit problémy, jako je přetečení vyrovnávací paměti a úniky paměti.
V tomto modulu použijete Apache JMeter k provádění zátěžových testů. Použijete sadu simulovaných uživatelů, kteří přistupují k webu současně.
Zátěžové testování
Zátěžové testy určují stabilitu a odolnost aplikace při náročných zatíženích. Zatížení přesahuje to, co je určeno pro aplikaci. Zátěžové testy určují, jestli se aplikace při těchto zatíženích spadne. Pokud aplikace selže, zátěžový test zkontroluje, že selže kontrolovaně. Přiměřené selhání může například vydat odpovídající, informativní chybovou zprávu.
Běžné jsou scénáře, ve kterých musí aplikace pracovat s neobvykle velkým zatížením. Například v případě, že vaše video bude virální, budete chtít vědět, jak dobře můžou servery zvládnout dodatečné zatížení. Dalším typickým scénářem je vysoký provoz na nákupních webech během svátků.
Testování zabezpečení
Testování zabezpečení zajišťuje, že aplikace jsou bez zranitelností, hrozeb a rizik. Důkladné testování zabezpečení najde všechny možné mezery a nedostatky systému, které by mohly způsobit porušení informací nebo ztrátu výnosů.
Existuje mnoho typů testování zabezpečení. Dva z nich jsou penetrační testování a testování dodržování předpisů.
Penetrační testování
Penetrační testování nebo penetrační testování je typ testování zabezpečení, který testuje nezabezpečené oblasti aplikace. Konkrétně testuje ohrožení zabezpečení, která by útočník mohl zneužít. Autorizovaný, simulovaný kybernetický útok je obvykle součástí penetračního testování.
Testování dodržování předpisů
Testování dodržování předpisů určuje, jestli aplikace vyhovuje určité sadě požadavků uvnitř společnosti nebo mimo ni. Například zdravotnické organizace obvykle potřebují dodržovat zákon HIPAA (Health Insurance Portability and Accountability Act of 1996), který poskytuje ochranu osobních údajů a bezpečnostní ustanovení pro ochranu lékařských informací.
Organizace může mít také vlastní požadavky na zabezpečení. Software musí být testováno, aby se zajistilo, že splňuje tyto požadavky. Například v systémech Linux musí být výchozí maska uživatele 027 nebo více omezující. Test zabezpečení musí prokázat splnění tohoto požadavku.
Plán
Ve zbývající části tohoto modulu nastavíte prostředí Azure DevOps, seznámíte se s plánováním zátěžových testů pomocí Apache JMeter a spustíte zátěžové testy v Azure Pipelines.