Nefunkční testování se týká testování softwaru, které se provádí za účelem testování nefunkčních aspektů softwarové aplikace.
Existuje mnoho různých typů nefunkčního testování a některé typy testování softwaru lze považovat za funkční i nefunkční testování zároveň.
Nefunkční testování je nezbytné, protože hodnotí základní uživatelská kritéria, jako je výkon a použitelnost, a ověřuje, zda software funguje podle očekávání i mimo základní funkce.
V tomto článku se budeme zabývat definicí a charakteristikou nefunkčního testování, typy nefunkčního testování, přístupy k nefunkčnímu testování a testovacími nástroji, které vám mohou pomoci optimalizovat a zlepšit vlastní procesy nefunkčního testování.
Co je nefunkční testování?
Nefunkční testování je jakýkoli typ testování softwaru, při kterém se testují nefunkční aspekty sestavení softwaru.
Mezi příklady nefunkčního testování patří testování zaměřené na posouzení kapacity, výkonu, použitelnosti, obnovitelnosti a přenositelnosti.
Ověření kvality a stavu každého z těchto nefunkčních kritérií je stejně důležité jako ověření funkcí softwaru, ale tyto parametry se při standardním funkčním testování netestují.
Nefunkční testování v podstatě znamená testování toho, „jak“ funkce softwaru fungují, a nikoli testování toho, „zda“ fungují.
1. Kdy potřebujete nefunkční testování?
Nefunkční testování se provádí ve fázi testování systému při testování softwaru poté, co proběhlo testování jednotek a integrační testování.
Během testování systému budou testeři provádět funkční i nefunkční testování, přičemž začnou funkčním testováním.
Jakmile testeři zjistí, že software funguje podle očekávání, provedou nefunkční testování, aby posoudili, zda splňuje i nefunkční parametry.
Obvykle je nutné provést funkční testování před nefunkčním testováním, protože není možné testovat spolehlivost nebo výkon funkcí, které vůbec nefungují. Nefunkční testování je jednou z posledních fází testování softwaru před uživatelským akceptačním testováním a finálním vydáním produktu.
2. Když nepotřebujete nefunkční testování
Vždy je důležité testovat nefunkční aspekty softwaru, pokud již nebyly otestovány a shledány jako vyhovující.
I když jste nefunkční testování softwaru provedli již dříve, může být nutné nefunkční parametry otestovat znovu, například pokud byly do softwaru přidány nové funkce nebo pokud byly v kódu provedeny změny, které by mohly ovlivnit výkon a spolehlivost.
Cíle nefunkčního testování
Cílem nefunkčního testování je ověřit, zda produkt splňuje očekávání uživatelů, a optimalizovat produkt před jeho vydáním.
Může také pomoci vývojářům a testerům lépe porozumět softwaru a využít tyto znalosti při budoucích optimalizacích.
1. Kontrola kvality
Nefunkční testování se zaměřuje na testování faktorů, které ovlivňují použitelnost, spolehlivost, udržovatelnost, přenositelnost a efektivitu produktu.
Testování těchto prvků zajišťuje, že produkt, který je uveden na trh, je dostatečně kvalitní a splňuje očekávání uživatelů, pokud jde o výkon, dobu načítání a uživatelskou kapacitu.
2. Řízení rizik
Nefunkční testování také snižuje riziko a náklady spojené s uvedením produktu na trh tím, že maximalizuje šance týmu na uvedení uspokojivého produktu.
Kontrolou nefunkčních parametrů sestaveného softwaru je možné snížit náklady na uvolnění produktu, protože se sníží potřeba dalšího vývoje a pozdějších změn softwaru.
3. Optimalizace
Nefunkční testování pomáhá testerům a vývojářům optimalizovat sestavení softwaru a optimalizovat výkon během instalace, nastavení, spuštění a používání.
Nefunkční testování můžete využít také k optimalizaci způsobu řízení a monitorování sestavování softwaru.
4. Sběr dat
Nefunkční testování umožňuje testerům shromažďovat a vytvářet měření a metriky, které mohou testovací týmy využít pro interní výzkum a vývoj.
Data získaná z nefunkčního testování můžete využít k pochopení toho, jak váš produkt funguje a jak jej můžete pro uživatele efektivněji optimalizovat.
5. Zvyšování znalostí
Nefunkční testování zlepšuje a rozšiřuje znalosti testovacího týmu o chování produktu a technologiích, které využívá.
Nejenže to pomáhá testovacím týmům lépe porozumět softwaru, na kterém pracují, ale může to také poskytnout užitečné znalosti, které pomohou testerům lépe porozumět budoucím sestavením.
Kdo se podílí na nefunkčním testování?
Nefunkční testování obvykle provádějí testeři v prostředí QA, ale někdy mohou nefunkční testování provádět i vývojáři během vývoje.
Testování systému téměř vždy provádějí testeři a v této fázi testování probíhá většina nefunkčních testů.
Pokud nefunkční testy selžou, testeři vrátí software vývojářům, aby před dalším testováním opravili chyby ve výkonu.
Výhody nefunkčního testování
Provádění nefunkčního testování přináší mnoho výhod a nefunkční testování je základním krokem při testování systému.
Bez nefunkčního testování by testovací týmy nebyly schopny ověřit, zda software skutečně splňuje požadavky klienta nebo zda splňuje požadavky stanovené v plánu vývoje softwaru.
1. Zlepšení výkonu softwaru
Nefunkční testování může testerům a vývojářům pomoci zlepšit celkový výkon softwarových aplikací. Nefunkční testy identifikují oblasti, kde je výkonnost softwaru nedostatečná, například pokud jde o rychlost načítání nebo kapacitu zpracování, a podněcují softwarové týmy, aby provedly změny k odstranění těchto nedostatků.
Tím je zajištěno, že softwarové týmy uvolňují software pro veřejnost až tehdy, když je připraven a když je jeho výkon dostatečně dobrý.
2. Udržujte software v bezpečí
Nefunkční testování zahrnuje testování bezpečnosti, které je klíčové pro zajištění bezpečnosti sestaveného softwaru a jeho ochrany před vnějšími hrozbami a útoky.
Testování bezpečnosti umožňuje testerům a vývojářům ověřit, zda software dostatečně chrání důvěrná data a zda je dostatečně zabezpečen proti současným kybernetickým útokům.
3. Zvýšení uživatelské přívětivosti softwaru
Nefunkční testování je nejlepším způsobem, jak učinit váš software uživatelsky přívětivějším, a to zejména prostřednictvím testování použitelnosti, které hodnotí, jak snadné je pro uživatele naučit se používat a ovládat váš software.
Uživatelská přívětivost je velmi důležitá, protože určuje, jak jsou uživatelé s vaším softwarem spokojeni, a zajišťuje, že uživatelé jsou schopni plně využívat všech výhod, které váš software nabízí.
4. Zajistěte, aby software splňoval potřeby uživatelů
Zajištění toho, aby software splňoval potřeby uživatelů, by mělo být jednou z hlavních priorit všech týmů zabývajících se vývojem a testováním softwaru. Uživatelé očekávají, že software bude nejen funkční, ale také, že bude dobře fungovat, bude bez problémů fungovat a bude chránit důvěrná data.
Nefunkční testování je jedním z mála způsobů, jak zajistit, aby váš software tyto požadavky splňoval.
Výzvy nefunkčního testování
Provádění nefunkčního testování má některé nevýhody. Zatímco nefunkční testování je nezbytné ve fázi testování systému při testování softwaru, proces nefunkčního testování může představovat problém pro softwarové týmy, které nemají dostatek zdrojů a nástrojů.
1. Opakování
Nefunkční testování v rámci testování softwaru musí být prováděno při každé aktualizaci softwaru vývojáři nebo při každé změně kódu. To znamená, že nefunkční testování se může velmi opakovat, což nejen zabírá čas, ale také unavuje testery.
U unavených testerů, kteří provádějí velmi opakované úkoly, je také větší pravděpodobnost, že se rozptýlí a udělají chybu.
2. Náklady
Protože nefunkční testování je velmi opakované, může být také poměrně nákladné, zejména pro testovací týmy, které se spoléhají na manuální nefunkční testování.
Softwarové týmy musí vyčlenit čas a rozpočet na časté nefunkční testování a vývojáři softwaru budou muset za toto dodatečné testování zaplatit navíc.
Co testujeme v rámci nefunkčního testování?
Nefunkční testování lze použít k testování mnoha různých nefunkčních parametrů, z nichž každý ovlivňuje kvalitu a použitelnost systému. Každý z těchto parametrů se testuje během testování systému podle kritérií stanovených v plánu testování.
1. Zabezpečení
Bezpečnostní testování je typ nefunkčního testování, které měří, jak dobře je systém zabezpečen proti vnějším hrozbám a útokům. Patří mezi ně úmyslné porušení zabezpečení, úniky dat a další běžná narušení.
Testování bezpečnosti je důležitým krokem nefunkčního testování, protože poskytuje koncovým uživatelům a klientům jistotu, že jejich data jsou v bezpečí.
2. Spolehlivost
Testeři používají nefunkční testování k posouzení spolehlivosti softwaru a k zajištění toho, aby software mohl nepřetržitě a bezchybně vykonávat své stanovené funkce.
Zatímco funkční testování zajišťuje, že software plní své klíčové funkce, pouze nefunkční testování skutečně testuje spolehlivost a opakovatelnost těchto výsledků.
3. Přežití
Testování schopnosti přežití popisuje, jak softwarový systém reaguje v případě selhání funkce, a testování schopnosti přežití zajišťuje, že v případě výskytu chyb a selhání se systém dokáže sám obnovit.
Testování odolnosti může například ověřit, zda je software schopen ukládat data, aby se minimalizovala jejich ztráta v případě náhlého selhání.
4. Dostupnost
Dostupnost softwaru se vztahuje k míře, do jaké se uživatel může na systém při jeho provozu spolehnout. Tomu se také říká stabilita a testuje se pomocí testů stability.
Testování stability se do jisté míry podobá testování spolehlivosti, protože ověřuje, zda systém může trvale fungovat podle očekávaných standardů.
5. Použitelnost
Testování použitelnosti je dalším důležitým typem nefunkčního testování při testování softwaru. Tento typ testování hodnotí, jak dobře se uživatel dokáže naučit, ovládat a používat softwarový systém podle pokynů uvedených na obrazovce a dalších základních příruček.
Testování použitelnosti je důležité, protože pokud software není dobře použitelný, většina uživatelů ho jednoduše opustí nebo se rozhodne používat něco jiného.
6. Škálovatelnost
Testování škálovatelnosti testuje, do jaké míry může softwarová aplikace rozšířit svou výpočetní kapacitu, aby uspokojila rostoucí poptávku.
Pokud je například software navržen tak, aby jej mohlo používat více uživatelů v jedné síti najednou, jak funguje, když se k němu přihlásí deset uživatelů najednou? Má vyšší počet uživatelů významný vliv na výkon nebo dobu načítání?
7. Interoperabilita
Testování interoperability je typ nefunkčního testování, které ověřuje, jak dobře softwarový systém spolupracuje s jinými softwarovými systémy.
To je důležité zejména tehdy, když je software navržen jako součást sady produktů, které jsou vzájemně integrovány.
8. Efektivita
Efektivita v testování softwaru se vztahuje k tomu, do jaké míry je softwarový systém schopen zvládnout kapacitu, množství a dobu odezvy.
Testeři mohou například posoudit, kolik uživatelů se může do systému přihlásit najednou, jak dlouho trvá načtení dat z databáze nebo jak rychle dokáže software provádět základní úkoly.
9. Flexibilita
Flexibilita udává, do jaké míry může softwarový systém pracovat s různými typy hardwaru a periferních zařízení.
Například kolik paměti RAM software vyžaduje nebo zda vyžaduje určitý výkon procesoru. Čím nižší jsou požadavky na softwarovou aplikaci, tím je software flexibilnější.
10. Přenositelnost
Testování přenositelnosti slouží k ověření toho, jak flexibilně lze software přenést ze stávajícího hardwarového nebo softwarového prostředí a jak snadno to lze provést.
Přenositelnost je důležitá, protože ovlivňuje, jak snadno mohou koncoví uživatelé spravovat software a přenášet jej mezi různými systémy.
11. Znovupoužitelnost
Testování opakované použitelnosti je typ nefunkčního testování, které testuje, zda lze části softwarového systému převést pro opakované použití v rámci jiné aplikace.
Testování opakované použitelnosti se sice obvykle netýká klientů a koncových uživatelů, ale dobře odráží, jak efektivně vývojáři vytvářejí komponenty, které lze v budoucnu opakovaně použít.
Charakteristiky nefunkčních testů
Pochopení toho, co jsou nefunkční testy, zahrnuje pochopení charakteristik nefunkčních testů. Tyto charakteristiky definují nefunkční testování v testování softwaru.
1. Měřitelné
Nefunkční testování je vždy kvantitativní a měřitelné, což znamená, že testeři nepoužívají subjektivní výrazy jako „pěkný“ nebo „dobrý“, ale používají čísla a fakta k popisu výstupů nefunkčního testování.
Například místo popisu doby načítání jako „rychlé“ nebo „pomalé“ by nefunkční testování mělo vést ke konkrétním číslům udávajícím počet načtení.
2. Specifické
Při provádění nefunkčního testování by měl být účel testů specifický pro specifikace návrhu softwaru.
Pokud se například v plánu softwarového projektu uvádí počet uživatelů, kteří by měli mít možnost přihlásit se najednou, mělo by to být při nefunkčním testování upřednostněno.
3. Neznámý
Nefunkční testování může být specificky navrženo tak, aby měřilo atributy stanovené v projektových plánech, v mnoha případech však tyto atributy nebudou předem specifikovány.
V tomto případě by testeři měli jednoduše provést nefunkční testování, aby posoudili software na základě jednotlivých parametrů a později je porovnali s očekáváním.
Životní cyklus nefunkčních testů
Vzhledem k tomu, že nefunkční testování neodkazuje na konkrétní fázi životního cyklu testování softwaru, ale jednoduše na typ testování, které se obvykle provádí během fáze testování systému při testování softwaru, může se životní cyklus nefunkčního testování u různých projektů značně lišit.
Obecně se řídí podobným životním cyklem jako jiné typy testování softwaru, který začíná analýzou požadavků projektu a končí provedením testů a splněním cyklu.
1. Analýza požadavků na software
První fází životního cyklu nefunkčního testování je analýza požadavků na software. Softwarové týmy se při vytváření a testování aplikací řídí určitými kritérii, která by měla určovat, jaký typ testů je třeba provést.
2. Plánování testů
Další fází životního cyklu je plánování testů. Ve fázi plánování testů vedoucí QA sestaví podrobný plán testování, který podrobně popisuje, co se bude testovat, kdo bude testování provádět a jaké přístupy, metody a nástroje budou použity.
Plán testování by měl obsahovat všechny potřebné údaje, které testeři potřebují k vytvoření a provedení testovacích případů.
3. Vytvoření testovacího případu
Další fází nefunkčního testování je tvorba testovacích případů. Tato fáze zahrnuje vývoj nefunkčních testovacích případů, které testeři provedou v pozdější fázi, aby otestovali nefunkční požadavky systému.
Testovací případy popisují, co se bude testovat, jak se to bude testovat a jaký je očekávaný výsledek testu.
4. Nastavení testovacího prostředí
Další fází životního cyklu nefunkčního testování je nastavení testovacího prostředí před zahájením testování.
Testovací prostředí je místem, kde probíhá veškeré testování a kde se nacházejí prostředky a nástroje, které budete používat k provádění nefunkčních testů.
Testovací tým připraví testovací prostředí před provedením testu.
5. Provedení testu
Provedení testu je další fází životního cyklu nefunkčního testování. Zahrnuje provádění dříve vytvořených testovacích případů k testování různých aspektů softwarových aplikací, včetně zabezpečení, doby načítání, kapacity a přenositelnosti.
Testovací tým provede každý případ zvlášť a zkontroluje výsledek každého testu s očekávaným výsledkem.
6. Opakování cyklu
Poslední fází životního cyklu nefunkčního testování je naplnění a opakování cyklu. Po provedení všech testovacích případů testeři zkontrolují, které testy prošly a které ne.
Testy, které selžou, obvykle znamenají, že se jedná o chybu, kterou musí vývojáři opravit. Jakmile vývojáři kód opraví nebo upraví, cyklus testování softwaru se opakuje, dokud nejsou nalezeny žádné závady.
Vyjasnění některých nejasností:
Nefunkční testování vs. funkční testování
Funkční testování a nefunkční testování jsou dva různé, ale stejně důležité typy testování softwaru, které se společně používají k posouzení, zda softwarová aplikace splňuje požadavky uživatelů stanovené v zadání projektu.
Přestože se v obou případech jedná o nezbytné typy testování, které softwarovým týmům umožňují identifikovat chyby v rámci sestavení softwaru, funkční a nefunkční testování se od sebe zcela liší.
1. Jaký je rozdíl mezi funkčním a nefunkčním testováním?
Rozdíl mezi funkčním a nefunkčním testováním je v tom, co testují. Funkční testování testuje funkce aplikace a ověřuje, zda fungují podle očekávání. Nefunkční testování testuje další aspekty aplikace, které ovlivňují spokojenost uživatelů a kvalitu aplikace.
Funkční a nefunkční testování probíhá v různých fázích testování softwaru, ale oba typy testování se obvykle provádějí ve fázi testování systému.
Funkční i nefunkční testování nám může pomoci pochopit, jak dobře aplikace funguje a zda dostatečně plní svou funkci.
Pokud například testujete mobilní aplikaci, která uživatelům umožňuje ukládat seznamy úkolů a nákupní seznamy, můžete v rámci funkčního testování otestovat funkce, jako je vytvoření nového seznamu, uložení seznamu a provádění úprav stávajících seznamů.
Nefunkční testování může posoudit, jak dobře aplikace funguje na různých mobilních zařízeních, jak rychle se načítají seznamy a jak moc je výkon aplikace ovlivněn, když na pozadí běží jiné aplikace.
2. Závěr: nefunkční testování vs. funkční testování
Funkční i nefunkční testování jsou důležité typy testování softwaru, které mohou testerům a týmům QA pomoci posoudit, zda aplikace splňuje aktuální požadavky.
Zatímco funkční testování testuje funkce softwaru, nefunkční testování testuje další aspekty, které mohou ovlivnit výkon, efektivitu a bezpečnost.
Testování jednotek, integrační testování a testování API jsou všechny formy funkčního testování. V každé z těchto fází testování softwaru testeři posuzují, jak dobře fungují jednotlivé funkce a vlastnosti, a identifikují chyby a nedostatky, které brání funkcím fungovat podle očekávání.
Testování bezpečnosti, testování použitelnosti, testování přenositelnosti a testování zátěže jsou všechny formy nefunkčního testování, které testerům umožňují posoudit, jak dobře aplikace plní své funkce a podporuje potřeby uživatelů.
Typy nefunkčního testování
Existuje mnoho různých typů nefunkčního testování, z nichž každý testuje jiný nefunkční aspekt výkonnosti nebo efektivity softwarové aplikace.
Každý z těchto typů testů testuje jiné parametry a některé testy mohou testovat stejné parametry různými způsoby.
1. Výkonnostní testy
Výkonnostní testy jsou typem nefunkčních testů, které ověřují, jak dobře fungují různé součásti softwaru. Spíše než testování funkčnosti, které je úkolem funkčního testování, mohou výkonnostní testy testovat dobu odezvy, úzká místa a místa selhání. Testování výkonu pomáhá testerům zajistit, aby byl software kvalitní, rychlý, stabilní a spolehlivý.
2. Zátěžové testy
Zátěžové testování je typ nefunkčního testování, které testuje, jak dobře software funguje, když je vystaven abnormální zátěži. To může znamenat testování, jak se software chová, když se někdo snaží používat mnoho různých funkcí najednou nebo když je současně spuštěno mnoho dalších aplikací.
Cílem zátěžového testování je určit hranici, při které software přestává správně fungovat, a zjistit, co se stane, když je systém vystaven zátěži. Umožňuje testerům zjistit, zda se systém dokáže sám zotavit a zda upozorňuje uživatele vhodnými chybovými zprávami.
3. Zátěžové testy
Zátěžové testování je typ testování, který hodnotí, jak se software chová za běžných podmínek i při větší zátěži. Slouží k určení toho, kolik toho může software zvládnout současně, aniž by to mělo negativní vliv na výkon.
Testování zátěže lze použít k otestování, jak aplikace fungují, když je používá mnoho uživatelů najednou nebo když se uživatelé snaží stáhnout velké množství dat najednou.
Testování zátěže je důležité, pokud chcete ověřit, zda je váš software škálovatelný.
4. Bezpečnostní testy
Bezpečnostní testy hodnotí softwarové aplikace a hledají zranitelnosti v zabezpečení softwaru. Patří mezi ně potenciální bezpečnostní rizika, která by mohla vést ke ztrátě dat nebo k narušení bezpečnosti, jež by vedlo k odhalení důvěrných údajů.
Testování zabezpečení je důležité, protože zajišťuje, že je produkt dostatečně chráněn před hackerskými útoky, úniky dat a dalšími vnějšími bezpečnostními hrozbami.
Mezi příklady bezpečnostních testů, které mohou testeři provádět, patří bezpečnostní audity, etický hacking, penetrační testování, bezpečnostní skenování a hodnocení stavu.
5. Testy aktualizace a instalace
Testování aktualizace a instalace je typ nefunkčního testování softwaru, které ověřuje, jak dobře software funguje na různých počítačích.
Účelem tohoto typu testování je zajistit, aby noví uživatelé mohli snadno nainstalovat software do svých počítačů a stávající uživatelé jej mohli aktualizovat, jakmile budou vydány nové aktualizace.
Testování aktualizace a instalace je důležité, protože koncoví uživatelé musí být schopni snadno nainstalovat váš produkt za předpokladu, že pracují s počítačem, který je s ním kompatibilní.
6. Objemové zkoušky
Objemové testování je typ testování, který slouží k ověření toho, co se stane, když se do databáze najednou přidají velké objemy dat. Zjišťuje, zda aplikace zvládne zpracovávat velké objemy dat a co se stane se systémem, pokud to nedokáže.
Testování objemu je také známé jako testování zaplavením a můžete jej použít k posouzení ztráty dat a chybových hlášení, která se objevují při přidání značného množství dat do systému.
Testování objemu dat je jediným způsobem, jak zajistit, aby software zvládal objemy dat, které od něj uživatelé očekávají.
7. Zkoušky obnovy
Testy zotavení zahrnují vynucení selhání softwarového systému, aby se otestovalo, jak dobře se systém po havárii zotaví.
Testování obnovy může testerům pomoci pochopit, jak software obnovuje data a zabraňuje jejich ztrátě, pokud je hardware během používání odpojen od sítě, pokud je software během přenosu dat odpojen od sítě nebo pokud dojde k neočekávanému restartu systému.
Tento typ testování je důležitý, protože systémy bez správných protokolů obnovy by mohly při podobných nehodách utrpět vážné ztráty dat.
Co potřebujete k zahájení nefunkčního testování
Před zahájením nefunkčního testování se musíte ujistit, že jste připravili testovací prostředí a shromáždili potřebné nástroje a data.
1. Plán testování
Než začnete s nefunkčním testováním, ujistěte se, že máte hotový plán testování, který byl podepsán příslušnými osobami.
Plán testování by měl obsahovat všechny důležité podrobnosti o tom, co a jak budete testovat. Mělo by v něm být vysvětleno, kdy použijete manuální a kdy automatizované testování, a také by v něm měly být popsány role a odpovědnosti všech, kteří se na procesu testování podílejí.
2. Testovací případy
Před provedením nefunkčních testů je třeba vytvořit testovací případy. Každý testovací případ popisuje konkrétní věc, kterou budete testovat, vysvětluje, jak ji budete testovat, a popisuje očekávaný výsledek testu.
Pokud například provádíte zátěžové testování, může být příkladem testovacího případu testování chování softwaru při současném používání stejného modulu deseti uživateli.
3. Funkční ověření
Nelze provádět nefunkční testování softwarových komponent, pokud nejsou funkční.
Pokud například chcete otestovat, kolik uživatelů se může do softwaru přihlásit současně, je nejdříve důležité ověřit, zda se jednotliví uživatelé mohou do softwaru skutečně přihlásit.
Před zahájením nefunkčního testování se ujistěte, že všechny funkční testy proběhly úspěšně a že váš software funguje tak, jak očekáváte.
Obvykle to znamená, že již bylo provedeno smoke testování, sanity testování, unit testování, integrace a funkční testování systému.
4. Testovací nástroje
Než začnete s nefunkčním testováním, shromážděte všechny testovací nástroje, které chcete k testování použít.
Ať už používáte automatizační nástroje k částečnému automatizovat některé z testů nebo dokumentační nástroje, které vám pomohou spravovat a ukládat zprávy o testech pro pozdější použití, ujistěte se, že nástroje, které chcete používat, jsou k dispozici a připraveny k použití a že každý člen testovacího týmu ví, jak jednotlivé nástroje správně používat.
5. Testovací prostředí
Před zahájením nefunkčního testování nastavte testovací prostředí. Možná již máte vhodné testovací prostředí, zejména pokud můžete použít stejné prostředí pro nefunkční testování systému a funkční testování systému.
Ideální testovací prostředí vám umožní otestovat všechny potřebné prvky na správných zařízeních.
Pokud například testujete zpracování hlasitosti na chytrých telefonech, je lepší testovat na skutečném chytrém telefonu než se pokoušet emulovat mobilní prostředí na stolním počítači.
Proces nefunkčního testování
Testování nefunkčních aspektů sestavení softwaru je několikafázový proces, který zahrnuje přípravu testovacího prostředí, vytvoření testovacích případů, shromáždění testovacích dat a provedení nefunkčních testů.
Proces testování je možné rozdělit na malé části, aby byl pro začátečníky v nefunkčním testování snáze pochopitelný.
1. Kontrola připravenosti k nefunkčnímu testování
Před zahájením nefunkčního testování je důležité ověřit, zda jste na tuto fázi testování připraveni.
To může znamenat posouzení výstupních kritérií pro poslední fázi testování, aby bylo jisté, že software prošel i touto fází, a ujištění se, že software prošel všemi požadovanými funkčními testy, než dojde k nefunkčnímu testování.
Některé týmy mohou vytvořit vstupní kritéria pro nefunkční testování, která zahrnují všechny podmínky, které musí být splněny před zahájením nefunkčního testování.
2. Vytvoření plánu testování
Tento krok jste možná již provedli dříve, pokud nefunkční testování provádíte v rámci testování systému a postupujete podle plánu testování systému. Plán testů popisuje všechny testy, které je třeba provést, a způsob, jakým je chcete provést.
Bez jasného plánu testování se snadno stane, že ztratíte přehled o rozsahu a cílech prováděných testů.
3. Vytvoření testovacích případů
Další fází nefunkčního testování je vytvoření testovacích případů určených k testování jednotlivých nefunkčních parametrů softwaru.
Každý testovací případ by měl mít ID testovacího případu, název testovacího případu, popis a podrobnosti o očekávaném výsledku testu, jakož i předem stanovená kritéria úspěšnosti nebo neúspěšnosti. To pomáhá testerům pochopit, jak provádět jednotlivé testy a na jaké výsledky se zaměřit.
4. Shromáždění testovacích dat
Před provedením každého testovacího případu je třeba shromáždit testovací data, která se použijí pro každý testovací případ.
To obvykle znamená shromáždit kód a data z různých modulů a komponent, které tvoří funkce a oblasti, které se chystáte testovat. Pokud maximalizujete pokrytí testů, měli byste mít k dispozici velké množství testovacích dat.
5. Připravte testovací prostředí
Další fází nefunkčního testování je příprava testovacího prostředí. Testovací prostředí je testovací server, který budete používat k testování softwaru mnoha různých typů.
Umožňuje vytvořit identické podmínky pro testování softwaru a nastavit software s různými konfiguracemi pro testování konfigurace, testování zabezpečení a další typy nefunkčního testování.
6. Provádění nefunkčních testů
Jakmile je testovací prostředí připraveno, je čas provést nefunkční testy. Můžete se rozhodnout provádět testy v pořadí podle typu, například začít testováním výkonu a teprve poté přejít k testům zabezpečení a dalším typům nefunkčních testů.
Při provádění jednotlivých testů si výsledky zapište do protokolu o testování. Pokud testování automatizujete, váš automatizační nástroj bude mít také standardizovaný způsob jasného a jednoznačného vykazování výsledků.
7. Hlášení výsledků testů
Po provedení každého testovacího případu sestavte výsledky nefunkčních testů do jedné zprávy.
V této zprávě by měly být jasně uvedeny výsledky jednotlivých testů a mělo by být jednoznačné, zda každý test prošel nebo neprošel.
Dodržujte standardizovanou strukturu zkušební zprávy, abyste měli jistotu, že jsou v ní obsaženy všechny informace, které budete potřebovat předat.
8. Oprava závad
Jakmile jsou výsledky testů hotové, předejte software zpět vývojářům, pokud testy selhaly nebo pokud jste identifikovali nefunkční chyby, které je třeba opravit.
Například pokud software nezvládá práci s vhodným počtem uživatelů najednou nebo pokud se příliš zpomaluje výkon při současném spuštění více programů, bude pravděpodobně nutné tyto problémy vyřešit v rámci kódu, aby byli uživatelé s produktem spokojeni.
9. Opakování testovacího cyklu
Jakmile vývojáři opraví všechny chyby zjištěné v úvodní fázi nefunkčního testování, může testovací cyklus začít znovu.
Vývojáři otestují provedené změny a předají nové sestavení zpět testerům QA, kteří poté provedou kompletní sadu testů počínaje smoke testováním, unit testováním, integračním testováním a nakonec systémovým testováním.
Testovací cyklus se opakuje, dokud se v žádném bodě nevyskytne žádná chyba nebo závada, a poté může sestavení vstoupit do poslední fáze testování: uživatelského akceptačního testování.
Testovací případy pro nefunkční testování
Testovací případy jsou důležitým aspektem veškerého testování softwaru a při funkčním i nefunkčním testování používáte testovací případy k definování toho, co budete testovat a jak to budete testovat.
Každý testovací případ lze považovat za minitest a každý testovací případ bude mít své vlastní definované výstupy a výsledky.
1. Co jsou testovací případy pro nefunkční testování?
Testovací případ je soubor akcí prováděných na sestaveném softwaru, které testují, zda splňuje podmínky definované v plánu softwaru. Každý testovací případ efektivně říká testerům, co a jak mají testovat, a je navržen tak, aby testoval konkrétní funkci nebo nefunkční vlastnost softwarové aplikace.
Nefunkční testovací případy mohou zahrnovat testování toho, co se stane, když se někdo pokusí získat přístup k zabezpečeným datům v systému, nebo testování rychlosti načítání softwaru při spuštění.
2. Jak navrhnout nefunkční testovací případy?
Při navrhování testovacích případů pro nefunkční testování je důležité dodržovat standardní postupy pro testovací případy a zároveň mít na paměti cíle nefunkčních testů.
Při psaní testovacích případů pro nefunkční testování, které jasně popisují, co musí testeři udělat, aby provedli každý test, postupujte podle následujících kroků.
1. Definujte oblast, kterou chcete pokrýt
U každého testovacího případu zvažte, jakou oblast softwaru bude tento testovací případ pokrývat.
Pokud například píšete testovací případy pro testování instalace a aktualizace, můžete zahrnout testovací případy, které hodnotí, jak snadno se aplikace instaluje na různá zařízení a jak dlouho trvá aktualizace softwaru pomocí nové záplaty.
2. Vytvoření jedinečného ID testovacího případu
Každý testovací případ by měl mít jedinečné ID testovacího případu. To usnadňuje pozdější vyhledání popisu a výsledků testovacího případu a odstraňuje případné nejasnosti ohledně toho, na který testovací případ odkazujete, pokud mají dva testovací případy podobné názvy nebo popisy.
3. Pojmenujte a popište jednotlivé testy
ID testovacího případu identifikuje test, ale u každého testovacího případu, který napíšete, budete chtít uvést také název a popis.
Mělo by jít o jednoduchý název, který shrnuje, co testujete, zatímco popis je jedna věta, která to trochu podrobněji rozvádí.
Popis by měl být dostatečně srozumitelný, aby testeři věděli, co a jak mají testovat, a také aby věděli o konkrétních podmínkách, které musí být při testu splněny.
4. Zadejte očekávaný výsledek
U každého testovacího případu uveďte výsledek, který by měl nastat, pokud software funguje podle očekávání.
V nefunkčních testech, jako je testování výkonu a zátěžové testování, to může v mnoha případech znamenat, že software prostě pokračuje v normálním provozu bez zpomalení, zpoždění nebo pádu.
V jiných případech to může znamenat, že se objeví konkrétní chybová hlášení, která uživatele upozorní na problém a doporučí řešení.
5. Doporučit testovací techniky
Pro každý testovací případ doporučte typ testovacích technik a nástrojů nefunkčního testování, které by podle vás měl tester při testování použít.
Při nefunkčním testování mohou testeři používat velmi odlišné přístupy pro různé typy testování.
Například zátěžové a stresové testování může vyžadovat automatizaci, protože je nepraktické simulovat extrémně silný provoz ručně, zatímco jiné typy testování lze snadněji provádět bez specifických nástrojů nebo technologií.
6. Nechte si každý testovací případ posoudit odborníky
Než podepíšete každý testovací případ, nechte si ho posoudit někým, s kým spolupracujete. Může to být jiný tester nebo vedoucí QA.
Peer-reviewing testovacích případů zajistí, že jsou dostatečně jasné, aby se jimi mohl řídit tester třetí strany, a že neobsahují žádné nejasnosti nebo chyby, které by mohly vést k nesprávnému testování.
3. Příklady nefunkčních testovacích případů
Pokud píšete testovací případy pro nefunkční testování, mohou vypadat podobně jako níže uvedené příklady nefunkčního testování.
Příklad testování škálovatelnosti
ID testovacího případu: 6671
Název testovacího případu: Test přihlášení více uživatelů
Popis: Pomocí automatizačních nástrojů můžete emulovat více než 20 uživatelů, kteří se přihlašují k softwaru najednou.
Očekávané výsledky: Software by měl pro každého uživatele běžet normálně a umožnit každému uživateli úspěšné přihlášení do 5 sekund.
Příklad testování kompatibility
ID testovacího případu: 5214
Název testovacího případu: Načítání aplikace v prohlížeči Opera
Popis: Načíst aplikaci ve webovém prohlížeči Opera.
Očekávané výsledky: Výsledné výsledky: Aplikace se ve webovém prohlížeči Opera načte normálně se standardním rozlišením a rozložením displeje.
Manuální nebo automatizované nefunkční testy?
Při výběru mezi různými technikami nefunkčního testování se musíte rozhodnout, zda chcete provádět manuální nebo automatizované nefunkční testy.
Manuální testy provádějí lidští testeři, což znamená, že jejich provedení je obvykle časově náročnější, ale nabízejí také možnosti průzkumného testování.
Automatizované nefunkční testy jsou rychlejší a v některých ohledech spolehlivější, ale také vyžadují více zdrojů nebo nástrojů. Automatizace a hyperautomatizace je v testování stále populárnější, zejména pokud jde o nefunkční testování.
Manuální nefunkční testování: Přínosy, problémy a postupy
Manuální nefunkční testování provádějí výhradně testeři, kteří testují každý jednotlivý nefunkční prvek samostatně.
Při provádění manuálních nefunkčních testů musí testeři shromáždit informace o softwaru, vytvořit jednotlivé testovací případy, které odpovídají plánu testování, a tyto testovací případy provést ručně.
To sice zabere hodně času, ale také to znamená, že testeři QA mají volnost při určování toho, co a jak se bude testovat.
1. Mezi výhody manuálního testování patří:
● Manuální testování může být levnější než automatizované testování, protože nevyžaduje specifické technologie nebo technické znalosti.
● Manuální testování umožňuje testerům poskytnout lidský pohled a subjektivitu na to, jak software funguje a zda funguje uspokojivě.
● Ruční testování lze použít k testování systému ve scénářích, které nelze automatizovat.
● Manuální testování umožňuje testerům posoudit vizuální aspekty systému, jako je grafické rozhraní a další faktory, které mohou ovlivnit použitelnost.
● Manuální testování nabízí testerům širší pohled na systém jako celek a na to, jak jednotlivé moduly a komponenty spolupracují.
Ruční testování má však i své nevýhody.
2. Mezi problémy manuálního testování patří:
● Některé typy nefunkčního testování, včetně zátěžového testování a testování výkonnosti, je nepraktické provádět ručně.
● Manuální testování zabere podstatně více času než automatizované nefunkční testování.
● Manuální testeři mohou být roztržití, ztrácet pozornost a dělat chyby, zejména při provádění velmi opakovaných testovacích úkolů.
Automatizované nefunkční testování: Přínosy, problémy a postupy
Automatizované nefunkční testování se provádí pomocí automatických skriptů a testovacích nástrojů. Při použití metod automatizovaného testování mohou testeři po spuštění automatizovaných testů provádět testy na pozadí a zároveň se věnovat jiným úkolům.
1. Mezi výhody automatizace nefunkčních testů patří:
1. Ušetřete čas a zdroje tím, že snížíte množství času, který strávíte zdlouhavými a časově náročnými úkoly.
2. Automatizace umožňuje zvýšit pokrytí testů pokrytím širšího spektra komponent a funkcí.
3. Automatizované testy je možné provádět častěji, protože jejich provedení zabere méně času.
4. Automatizované testování je ideální pro časově náročné testovací úlohy, jako je testování zátěže, objemové testování a zátěžové testování, které je velmi obtížné provádět ručně.
5. Při automatickém testování je nižší pravděpodobnost vzniku chyb.
Automatizované testování má však i některé nevýhody, což znamená, že ne vždy je to správný přístup pro všechny typy nefunkčního testování.
2. Mezi problémy automatizovaného nefunkčního testování patří:
1. Automatizované testování je dražší než manuální testování.
2. Nastavení automatizace testů může vyžadovat čas a technické prostředky.
3. Automatizace testování nedává prostor pro průzkumné testování.
4. Automatizace testů stále vyžaduje čas na vytvoření testovacích případů.
Závěr: Ruční nebo automatické
nefunkční testování?
Ve většině typů testování softwaru obvykle přináší nejlepší výsledky kombinace manuálního a automatizovaného testování. To umožňuje testovacím týmům využívat efektivitu, spolehlivost a přesnost automatizovaného testování a zároveň provádět průzkumné testování, které umožňuje testerům hodnotit software z více subjektivního hlediska.
V nefunkčním testování je pro většinu testovacích týmů prakticky nezbytné jak manuální, tak automatizované testování.
Manuální testování se nejlépe používá k provádění nefunkčních testů, jako je testování použitelnosti, zatímco automatizované testování se nejčastěji používá k provádění testů, které by byly příliš časově náročné a obtížné na ruční provedení, jako je zátěžové testování nebo testování objemu.
Nefunkční testování je jednou z nejzřetelnějších oblastí pro použití technik automatizace testování, protože se jedná o kvantitativní, měřitelný typ testování, který nevyžaduje subjektivní výsledky.
Stejně jako ostatní typy testování se i nefunkční testování obvykle provádí kombinací manuálního a automatizovaného testování.
Automatizované testování je však prakticky nezbytné pro mnoho typů nefunkčního testování a vzhledem k parametrům a metrikám nefunkčního testování je automatizace pro tento typ testování vhodnější než pro funkční testování.
Osvědčené postupy pro nefunkční testování
Pokud se do nefunkčního testování pouštíte poprvé, může vám dodržování osvědčených postupů testování pomoci standardizovat proces testování a optimalizovat účinnost testů.
Osvědčené postupy slouží jako návod pro týmy testující software, které chtějí zlepšit procesy testování a sladit je s průmyslovými standardy.
1. Použití automatizačních nástrojů
V nefunkčním testování je více než u jiných typů testování důležité používat automatizační nástroje pro automatizaci určitých typů testování, konkrétně objemového testování, zátěžového testování a testování zátěže.
Tyto typy testování obvykle ověřují, jak dobře software funguje pod velkým tlakem uživatelů, dat a provozu, což jsou podmínky, které lze ručně velmi obtížně napodobit.
Automatizace těchto typů nefunkčních testů bude nejen efektivnější, ale také přesnější a umožní testerům snadno replikovat vyšší zátěže a napětí.
2. Peer review veškeré dokumentace
Kromě toho, že požádáte kolegy, aby zkontrolovali vámi vytvořené testovací případy, požádejte kolegy z testovacího týmu, aby zkontrolovali hlášení o chybách, zprávy o testech, testovací plány a další formy formální dokumentace vytvořené během procesu testování.
Snižuje se tak riziko drobných chyb, které by mohly způsobit vážná zpoždění v procesu testování a vývoje.
3. Definujte měřitelné požadavky
Při definování požadavků na software před zahájením nefunkčního testování se ujistěte, že každý požadavek je objektivní a měřitelný.
To usnadňuje testerům zjistit, zda software během testování tyto požadavky splňuje, a neponechává žádný prostor pro interpretaci.
Co se považuje za „rychlé“ nebo „efektivní“? Pomocí čísel a kvantitativních hodnot definujte, co hledáte.
4. Pečlivě zvažte metriky testování
Než se rozhodnete, které metriky budete používat k měření výkonnosti softwaru, zvažte, co budou chtít uživatelé softwaru a které metriky skutečně odpovídají plánu a požadavkům na software.
Většina softwaru by měla být rychlá a spolehlivá, ale jaké další ukazatele mohou uživatelé hledat? Existují nějaké specifické metriky softwaru, které byste měli při testování zohlednit?
Typy výstupů z nefunkčního testu
Při provádění nefunkčního testování získáte z provedených testů různé typy výstupů.
Ty se obvykle značně liší od výstupů funkčních testů, které jsou často přehlednější, protože funkční testy jednoduše testují, zda funkce funguje, jak má, nebo ne.
Stejně jako u funkčního testování by měli testeři stanovit jasná očekávání pro každý testovací případ, která usnadní určení, zda každý test projde nebo neprojde.
1. Absolutní čísla
Při testování výkonu, zátěžovém testování a dalších typech nefunkčního testování jsou výstupy, které můžete nejčastěji sledovat, rychlosti a další absolutní čísla.
Testování výkonu ověřuje, jak rychle je systém schopen provádět určité úkoly, což se měří v sekundách nebo milisekundách.
Pokud provádíte zátěžové testy, můžete posoudit, kolik dat dokáže software zpracovat najednou, aniž by došlo k pádu nebo zpoždění.
2. Chybové hlášení
Nefunkční testování také ověřuje, jak systém funguje, když dojde k chybám, jako jsou chyby zabezpečení, chyby validace a chyby konfigurace.
Je důležité, aby systémy v případě výskytu chyb zobrazovaly přesná a jasná chybová hlášení, aby uživatelé mohli podniknout kroky k odstranění problému a pokračovat v používání softwaru.
Chybová hlášení by se měla objevovat i při testování zabezpečení, kdy systém brání uživatelům v prolomení vestavěných bezpečnostních funkcí softwaru.
3. Havárie
Pád je známkou selhání systému a obvykle znamená, že systém není schopen pracovat na úrovni, kterou testujete, a může znamenat, že test neprošel.
V některých případech může dojít k pádu systému, který přesto projde testovacím případem, na kterém pracujete, například pokud systém před pádem vydrží požadovanou zátěž nebo provoz.
Při nefunkčním testování by testeři měli počítat s pravidelnými pády systému, zejména při zátěžových a jiných výkonnostních testech.
Příklady nefunkčních testů
Příklady nefunkčních testů jsou podobné výše uvedeným příkladům nefunkčních testovacích případů.
Můžete se podívat na příklady nefunkčních testů, abyste lépe pochopili, co je nefunkční testování a co se jím v rámci softwarové aplikace testuje.
1. Příklad testování výkonnosti
Pokud pracujete na mobilní aplikaci, která propojuje uživatele s online databází, je důležité, aby k datům z této databáze mohlo přistupovat a stahovat je velké množství uživatelů současně.
Jedná se také o klíčovou součást testování škálovatelnosti, zejména pokud chcete v budoucnu zvýšit počet uživatelů aplikace.
Poté otestujete, jak systém reaguje, když se například 1000 uživatelů snaží přistupovat ke stejné databázi ve stejnou dobu, a stanovíte požadavky na rychlost načítání aplikace za těchto podmínek.
2. Testování kompatibility
Pokud testujete novou aplikaci pro správu dokumentů, musíte otestovat, zda funguje na všech zařízeních, pro která je určena.
To znamená, že můžete otestovat, zda lze aplikaci nainstalovat a načíst ve všech nejnovějších verzích operačních systémů Windows, Mac a dalších operačních systémech (např. Linux), se kterými má být software kompatibilní.
3. Testování bezpečnosti
Při testování zabezpečení vyzkoušíte některé ze způsobů, jakými se lidé mohou pokusit získat přístup k důvěrným údajům nebo prolomit bezpečnostní opatření softwaru, abyste ověřili, že se systém v těchto situacích chová podle vašich představ.
Můžete se například přihlásit jako uživatel a pokusit se přistupovat k souborům, pro které nemáte bezpečnostní oprávnění, abyste se ujistili, že vám systém přístup k těmto souborům neumožní.
Typy zjištěných chyb a závad
prostřednictvím nefunkčního testování
Nefunkční testování může odhalit mnoho chyb a nedostatků, které není tak snadné najít jako ty, které byly identifikovány při funkčním testování. Nefunkční testování totiž často vyžaduje, aby testeři ověřovali různé konfigurace, nastavení a kombinace podmínek, aby mohli posoudit, jak dobře systém funguje v nesčetných různých nastaveních.
1. Vady výkonu
Vady výkonu vznikají, když systém funguje, ale nefunguje tak rychle nebo efektivně, jak očekáváte.
Můžete například zjistit, že se systém za určitých podmínek nenačítá dostatečně rychle nebo dokonce padá, pokud se přihlásí příliš mnoho uživatelů najednou.
Chyby výkonu sice nezabrání lidem v používání softwaru, ale mohou způsobit, že software bude méně použitelný a bude méně pravděpodobné, že splní požadavky uživatelů.
2. Bezpečnostní vady
Bezpečnostní závady jsou takové závady, které ovlivňují bezpečnost softwarového systému a dat v něm uložených.
K bezpečnostním závadám může dojít například tehdy, pokud uživatelé mohou přistupovat k důvěrným údajům, ke kterým by neměli mít přístup, nebo pokud některé části aplikace nejsou správně chráněny heslem, případně pokud selže šifrování.
To může vést k narušení bezpečnosti, které může mít vážný dopad na pověst vydavatele softwaru.
3. Funkční vady
Nefunkční testování sice není určeno k testování funkcí softwarové aplikace, ale v některých případech může nefunkční testování odhalit funkční vady softwaru.
Účelem testování spolehlivosti například není otestovat, zda aplikace funguje, ale zda aplikace funguje spolehlivě při opakovaných pokusech.
To může odhalit, že některé funkce při opakování akce nefungují spolehlivě a mohou být klasifikovány jako funkční chyby.
Běžné metriky nefunkčního testování
Metriky nefunkčního testování popisují metriky, podle kterých se měří výkonnost a efektivita systému.
Různé typy nefunkčního testování se opírají o různé metriky a v závislosti na konečných cílech projektu můžete zvolit různé metriky.
1. Čas
Časové ukazatele měří, jak dlouho trvá provedení určitých úkolů nebo jak dlouho musí uživatelé čekat na načtení funkcí.
Příkladem časových metrik je počet transakcí nebo stažení, které může aplikace provést v daném časovém rámci, doba odezvy různých funkcí a doba, za kterou aplikace dokončí určitou operaci.
Různé typy testů měří výsledky v sekundách nebo jako prezentaci počtu operací za sekundu.
2. Prostor
Dalším důležitým parametrem nefunkčního testování je prostor. Prostorové metriky mohou testovat, kolik místa v procesoru systém potřebuje nebo kolik místa na pevném disku zabírá software po jeho úplné instalaci.
Mezi příklady prostorových metrik patří paměť cache, hlavní paměť a pomocná paměť.
Software, který vyžaduje k bezproblémovému provozu velké množství prostoru, může být vhodný pro menší počet zákazníků.
3. Použitelnost
Některé metriky v nefunkčním testování zohledňují použitelnost systému, například jak dlouho trvá naučit uživatele systém správně používat, kolik možností musí uživatelé projít, aby provedli klíčové funkce, nebo kolik kliknutí myší je potřeba k provedení určitých úkolů.
Nefunkční testy mohou kvantitativně měřit každou z těchto metrik, přičemž nižší čísla obecně znamenají vyšší úroveň použitelnosti.
4. Spolehlivost
Další důležitou metrikou nefunkčního testování je spolehlivost. Spolehlivost odráží pravděpodobnost, že se systém bude chovat stále stejně nebo že bude fungovat tak, jak má, po dlouhou dobu.
Mezi příklady metrik, které se používají k měření spolehlivosti, patří střední doba do poruchy, míra poruchovosti, dostupnost a pravděpodobnost výpadku.
Každá z těchto metrik pomáhá testerům ověřit, zda systém může běžet po dlouhou dobu, aniž by došlo k selhání nebo pádu.
5. Robustnost
Robustnost je měřítkem toho, jak dobře se systém vyrovnává s poruchami a jak dobře se dokáže v případě poruchy zotavit.
Mezi příklady metrik, které měří robustnost, patří doba, za kterou se systém po selhání sám obnoví, procento incidentů, které vedou ke katastrofickému selhání, a pravděpodobnost, že po selhání systému dojde k poškození datových souborů.
Jedná se o důležité metriky, protože uživatelé očekávají, že systémy mohou někdy selhat, aniž by došlo ke ztrátě všech dat nebo poškození souborů.
6. Přenositelnost
Metriky přenositelnosti měří, jak snadno lze software přenést do různých systémů nebo přesunout na nové místo v rámci sítě.
Mezi příklady metrik, které měří přenositelnost, patří procento nepřenositelného kódu a počet systémů, na kterých lze software spustit.
V ideálním případě je software, který může běžet na mnoha různých systémech, přenosnější, a tedy vhodnější pro použití v prostředí, které může vyžadovat časté přenášení nebo přemisťování.
Strategie provádění nefunkčních testů
Při zahájení nefunkčního testování je důležité, abyste k této fázi testování přistupovali s určitou strategií. Vedoucí oddělení QA a manažeři testování softwaru by měli před zahájením nefunkčního testování zvážit rizika testování, zdroje, které mají k dispozici, a účel testování.
Vypracování strategie vám pomůže optimalizovat nefunkční testy již od samého počátku.
1. Rozdělení rolí a odpovědností
Před zahájením nefunkčního testování přidělte klíčovým členům testovacího týmu role a odpovědnosti. To usnadňuje řízení pracovní zátěže nefunkčního testování a zajišťuje, že zkušení testeři jsou zodpovědní za udržování kvality a účinnosti prováděných testů.
Ujistěte se, že lidé, které jste vybrali na tyto pozice, mají znalosti a zkušenosti potřebné k plnění úkolů, které od nich očekáváte, zejména pokud tyto úkoly vyžadují technické dovednosti.
2. Shromážděte příslušné testovací nástroje
Shromážděte všechny technologie a nástroje, které chcete použít k provádění nefunkčního testování. Ujistěte se, že všichni členové vašeho týmu vědí, jak je efektivně používat, a v případě potřeby proveďte školení k doplnění chybějících dovedností.
Pokud se před zahájením nefunkčního testování ujistíte, že všichni vědí, které testovací nástroje mají používat a jak je používat, snížíte tím riziko, že kvůli nedostatečným znalostem budete muset testování přerušit nebo znovu provést.
3. Stanovení priorit testování
Než začnete s nefunkčním testováním, sestavte si seznam všech aspektů systému, které je třeba otestovat, a stanovte jejich prioritu podle naléhavosti a důležitosti.
Nefunkční testování můžete upřednostnit na základě míry rizika spojeného s jednotlivými aspekty systému, které testujete.
Například základní testování bezpečnosti může probíhat proto, že odpovídající zabezpečení je u moderního softwaru považováno za mimořádně důležité. Čím dříve identifikujete vysoce rizikové vady, tím menší může být potenciální dopad těchto vad na ostatní aspekty systému.
7 nejlepších nástrojů pro nefunkční testování
Nástroje pro nefunkční testování mohou zefektivnit proces testování, usnadnit a zefektivnit náklady na automatizaci testování a pomoci vedoucím pracovníkům QA řídit proces testování a dokumentace.
Na internetu je k dispozici mnoho bezplatných nástrojů pro nefunkční testování a také některé nástroje, za jejichž upgrade můžete platit měsíční poplatek.
1. ZAPTEST FREE edition
ZAPTEST je oblíbený nástroj pro testování softwaru, který uživatelům umožňuje snadno a rychle provádět funkční i nefunkční testy softwaru. Pomocí ZAPTEST můžete automatizovat testy softwaru a využít technologii RPA k emulaci různých funkcí a podmínek při nefunkčním testování.
Edice ZAPTEST FREE je pouze zkrácenou verzí podnikové edice, která nabízí mnoho stejných funkcí v menším měřítku. Na fóru ZAPTEST můžete požádat o podporu a provádět výkonnostní testy s neomezeným počtem virtuálních uživatelů.
2. Appium
Appium je bezplatný nástroj pro testování softwaru, který je nejvhodnější pro testování mobilních aplikací na různých platformách včetně zařízení se systémy iOS a Android. Appium nabízí uživatelům velkou flexibilitu při navrhování vlastních testovacích rámců a strategií a zároveň těží ze schopností automatizace, které Appium nabízí.
3. Loadium
Loadium je nástroj pro nefunkční testování, který se nejlépe používá k testování výkonu a zátěže, což jsou dva typy nefunkčního testování, které se mnohem snadněji provádějí pomocí automatizačních nástrojů.
Loadium umožňuje uživatelům provádět rozsáhlé zátěžové testy a nabízí vlastní řešení, takže můžete testy přizpůsobit cílům svého softwaru.
Aplikaci Loadium si můžete vyzkoušet zdarma nebo si zaplatit plnou verzi aplikace.
4. Obkio
Obkio je nástroj pro testování softwaru, který pomáhá vedoucím QA a manažerům testování stanovit priority a kategorizovat problémy podle jejich závažnosti. Obkio dokáže odhalit problémy dříve než uživatelé, nabízí uživatelům chytrá upozornění a pomáhá odhalit místo problému.
Obkio není určen pouze pro nefunkční testování, ale je to velmi užitečný bezplatný testovací nástroj, který lze použít ve všech fázích životního cyklu testování.
5. SonarQube
SonarQube je open-source nástroj pro testování zabezpečení, který dokáže automaticky analyzovat kód a odhalovat chyby a zranitelnosti. SonarQube je napsán v jazyce Java, můžete jej použít k analýze kódu ve více než dvaceti různých programovacích jazycích a díky přehlednému rozhraní systému snadno odhalíte problémy, které by mohly v budoucnu způsobit bezpečnostní chyby.
6. Tsung
Tsung je další nástroj pro nefunkční testování, který je ideální, pokud chcete automatizovat zátěžové a stresové testování, ale nevyhovuje vám bezplatná verze nástroje Loadium.
Tsung je nástroj s otevřeným zdrojovým kódem, který uživatelům umožňuje provádět velkoobjemové zátěžové testování napříč různými protokoly a servery včetně HTTP a SOAP.
Tsung je zcela zdarma a může testerům pomoci zajistit, že software, na kterém pracují, nabízí vysokou úroveň výkonu v různých náročných podmínkách.
7. Sikuli
Sikuli je další aplikace, která využívá robotickou automatizaci procesů k automatizaci procesu testování. Aplikace dokáže automatizovat cokoli, co je vidět na obrazovce. Sikuli můžete použít k testování jiných než webových aplikací a k rychlé reprodukci chyb.
Kontrolní seznam nefunkčního testování, tipy a triky
Než začnete s nefunkčním testováním, zkontrolujte, zda máte vše potřebné k provedení důkladných nefunkčních testů v připraveném prostředí.
Před zahájením nefunkčního testování se řiďte následujícím kontrolním seznamem, kde najdete tipy a triky.
1. Práce podle plánu
Ať už jej zahrnete do plánu testů, nebo pro něj vytvoříte samostatný dokument, strukturujte své softwarové testy podle plánu testů.
Pokud naleznete více chyb a nedostatků, než očekáváte, můžete se někdy od plánu odchýlit, ale mít plán na začátku může pomoci usměrnit testery a motivovat je k efektivní práci, zejména při provádění časově náročných manuálních testů.
2. Určete svůj testovací tým
Delegování odpovědností a přidělení oficiálních rolí a titulů členům testovacího týmu může pomoci zajistit hladký průběh testování.
Před zahájením testování jasně sdělte role a odpovědnosti v týmu a přidělte různým testerům odpovědnost za různé aspekty nefunkčního testování, aby každý nesl odpovědnost za své úkoly.
3. Výběr nástrojů a technologií před testováním
Pokud se rozhodnete pracovat s určitými nástroji a technologiemi až po zahájení nefunkčního testování, může to proces testování zdržet a způsobit zmatek mezi testery.
Místo toho si předem udělejte průzkum a rozhodněte se, zda chcete nějaké nástroje využít ještě před zahájením testování. Díky tomu je snadné tyto nástroje začlenit do plánu testování a zaškolit testery k jejich používání ještě před zahájením testování.
4. Vždy si nechte formálně potvrdit testy a dokumentaci.
Testování je proces zajišťování kvality a nejlepší způsob, jak maximalizovat hodnotu prováděných testů, je provádět základní kontrolu kvality i u testů, které plánujete a provádíte.
Zavedení jednoduchých protokolů, které vyžadují, aby testeři před přechodem do další fáze požádali vedoucí pracovníky QA a manažery o přezkoumání a podepsání testovacích plánů a testovacích zpráv.
Tím se výrazně zvyšuje šance, že chyby v testování budou včas zachyceny a opraveny.
7 chyb a nástrah, kterým je třeba se vyhnout při implementaci nefunkčních testů
Pokud s nefunkčním testováním začínáte, můžete se snadno dopustit některých běžných chyb, kterých se testeři a odborníci na zajištění kvality často dopouštějí.
Nefunkční testování je komplexní práce, která zahrnuje posouzení sestavení softwaru ze všech úhlů pohledu.
Níže je uveden seznam nejčastějších chyb, kterých se testeři při nefunkčním testování dopouštějí.
1. Neplánování
Pokud s nefunkčním testováním začínáte, možná si myslíte, že se můžete rovnou vrhnout do fáze testování, aniž byste si předem vytvořili důkladný plán testování.
Některé testovací týmy mohou sestavovat neúplné testovací dokumenty nebo povrchní shrnutí plánu testování, které dostatečně nepopisují činnosti, které musí testeři během nefunkčního testování provést.
2. Špatné řízení testování
Problémy mohou nastat, pokud jsou testy v kterékoli fázi procesu testování špatně řízeny. Nedostatečné řízení může znamenat, že testeři nemají k dispozici vhodné zdroje pro důkladné testování nebo že testeři nemají dostatek času na otestování jednotlivých aspektů sestavení.
Manažeři testování musí být schopni poučit se z chyb, kterých se dopustili, a vytvořit efektivnější plány testování do budoucna.
3. Špatná komunikace
Špatná komunikace může způsobit mnoho problémů během procesu testování, zejména v rámci nefunkčního testování.
To může znamenat špatnou komunikaci v rámci testovacího týmu nebo špatnou komunikaci mezi testery, vývojáři a zúčastněnými stranami.
K tomu často dochází, když testeři nevedou dostatečně testovací dokumentaci nebo nekomunikují pravidelně s ostatními odděleními během procesu testování.
4. Ignorování vývojářů
Testeři a vývojáři obvykle pracují zcela odděleně, ale testovací týmy, které úzce spolupracují s vývojáři, mohou těžit z dalších znalostí o fungování softwaru a vzájemné interakci jednotlivých modulů.
Zapojení vývojářů do procesu testování nebo vyžádání zpětné vazby od vývojářů v klíčových okamžicích může testovacím týmům pomoci sestavit efektivnější a důkladnější testovací plány.
5. Účel testování
Mnoho testerů se stále domnívá, že účelem testování je ověřit, zda software funguje, nebo prokázat zainteresovaným stranám a investorům, že software funguje.
Místo toho by měli testeři přistupovat k testování s tím, že účelem testování je hledat chyby.
Testeři, kteří nenajdou žádné chyby, mohou být spokojeni s tím, že software, který testují, neobsahuje žádné chyby, pouze pokud jsou přesvědčeni, že se podívali všude, kde by se chyby mohly vyskytovat.
6. Manuální vs. automatické chyby
Pro každý typ testování, které provádíte, je důležité věnovat čas zvažování, zda je lepší manuální nebo automatizované testování.
Automatizované metody testování jsou velmi vhodné pro téměř všechny formy nefunkčního testování a testovací týmy zvyklé na funkční testování se mohou dopustit chyby, když předpokládají, že nefunkční funkce mohou stejně snadno testovat ručně.
7. Používání nesprávných testovacích nástrojů
Před zahájením nefunkčního testování je snadné zvolit nesprávné testovací nástroje a technologie, zejména pokud jsou testovací týmy zvyklé provádět manuální testování a nejsou zvyklé používat testovací nástroje.
Předem prozkoumejte metody nefunkčního testování, které chcete použít, a vyberte softwarové nástroje a nástroje pro automatizaci, které splňují konkrétní požadavky vašeho projektu.
Závěr
Nefunkční testování je základním krokem v procesu testování, který umožňuje testerům ověřit, jak dobře systém funguje a do jaké míry splňuje nefunkční požadavky, jako je doba načítání, kapacita a zabezpečení.
Existuje mnoho různých způsobů, jak provádět nefunkční testování, ale současné automatizační nástroje usnadňují maximalizaci pokrytí a přesnosti testů, aniž by byla ohrožena kvalita výsledků.
Často kladené dotazy a zdroje
Pokud se chcete o nefunkčním testování dozvědět více, na internetu naleznete mnoho často kladených otázek a zdrojů.
Níže si můžete prohlédnout naše oblíbené online zdroje o nefunkčním testování nebo si přečíst odpovědi na některé z nejčastěji kladených otázek o nefunkčním testování.
1. Nejlepší kurzy nefunkčního testování
Na internetu je k dispozici mnoho kurzů, které vám pomohou rozšířit si znalosti o metodách a přístupech nefunkčního testování.
Některé z těchto kurzů jsou k dispozici zdarma, jiné mohou nabízet certifikát nebo kvalifikaci za poplatek. Pokud chcete absolvovat akreditovaný kurz, můžete požádat svého zaměstnavatele, zda by vás sponzoroval a uhradil náklady na výuku.
Mezi nejlepší kurzy o nefunkčním testování patří:
- TSG: Nefunkční školení 2denní kurz
- Udemy: Kompletní bootcamp pro testování softwaru 2023
- Edx: Software Testing Professional Certificate
- Vzdělávací: Automatizace testování výkonu 101
2. Jakých je 5 nejčastějších otázek při pohovoru o nefunkčním testování?
Pokud se připravujete na pracovní pohovor pro práci v oblasti testování softwaru, může vám personalista klást otázky o nefunkčním testování, aby se ujistil, že rozumíte tomu, jak tato zásadní fáze testování softwaru funguje. Připravte se na pohovor tím, že si předem připravíte účinné odpovědi na běžné otázky.
● Jak se mohou lišit přístupy a metody, které používáte při nefunkčním testování, od přístupů, které používáte při funkčním testování?
● Jak se nefunkční testování liší od funkčního testování?
● Jaké různé typy nefunkčního testování existují?
● Jak určujete priority funkčních testů a testovacích případů?
● V jaké fázi testování softwaru se obvykle provádí funkční testování?
3. Nejlepší návody na YouTube o nefunkčním testování
Pokud se raději učíte sledováním videí, mohou pro vás být užitečným způsobem, jak se o tomto typu testování softwaru dozvědět více, výukové programy na YouTube o nefunkčním testování.
Níže jsou uvedeny některé z nejlepších výukových programů YouTube o testování softwaru, které jsou dnes k dispozici.
Co je nefunkční testování softwaru? Výukový kurz testování softwaru
Nápověda k testování softwaru: Nefunkční testování
Nefunkční testování v testování softwaru
Navštivte W3Schools
Funkční a nefunkční testování
4. Jak udržovat nefunkční testy
Správná údržba testů zajišťuje, že testy softwaru lze opakovat, aniž by byla ohrožena kvalita výsledků testů.
Udržováním nefunkčních testů můžete zajistit, že testování v každé fázi vývojového procesu je adekvátní a že vaše testy jsou vždy aktualizovány v souladu s neustále se měnícím kódem.
Nefunkční testy můžete udržovat podle našich tipů níže.
● Jasná komunikace v rámci testovacího týmu při vytváření testovacích případů a psaní dokumentace.
● Vždy dodržujte osvědčené postupy pro navrhování testů
● Přehodnocení testovacích protokolů v různých fázích procesu testování.
● Aktualizujte změny v testu za pochodu
Zohlednění budoucích projektů při provádění změn v současných testech
5. Je nefunkční testování černá nebo bílá skříňka?
Nefunkční testování je typem testování černé skříňky, což znamená, že se testeři nezajímají o vnitřní fungování systému, ale pouze o jeho vnější výstupy.
To je v kontrastu s testováním bílé skříňky, které testuje způsob, jakým systém funguje interně. Mezi příklady testování bílého pole patří testování jednotek a integrační testování.
Testování funkčních a nefunkčních požadavků je příkladem testování černé skříňky. To znamená, že testeři nepotřebují k provádění testování černých skříněk pokročilé technické dovednosti nebo znalosti počítačového programování, ani se nemusí učit implementovat systémy, které testují.