Smoke testing je proces, který se používá k testování softwaru, aby se zjistilo, zda je nasazené sestavení softwaru stabilní.
Při testování softwaru se provádí řada testů určených k posouzení jednotlivých základních funkcí softwaru.
Nástroje Smoke testing ověřují, zda nejdůležitější funkce softwaru fungují. Existuje více různých přístupů k testování kouře a moderní technologie umožňují automatizované testování kouře pro většinu sestavení softwaru.
V tomto článku se ponoříme do problematiky smoke testování a probereme typy, postupy a přístupy k testování, které používají testeři softwaru. Podíváme se také na moderní nástroje pro testování kouře včetně automatizace testování kouře.
Ve zkratce se dozvíte vše, co budete potřebovat vědět o testování kouře.
Co je to smoke testing v softwarovém inženýrství?
Smoke testování je proces testování softwaru, který zajišťuje, že splňuje základní požadavky na funkčnost a stabilitu. Jedná se v podstatě o typ miniaturního, rychlého regresního testování, které zahrnuje testování nejdůležitějších funkcí softwaru, aby se ověřilo, že fungují na základní úrovni.
Smoke testování je důležitým počátečním krokem v procesu QA, protože ukazuje, zda má tým pokračovat v dalším testování, nebo zda má produkt okamžitě odeslat zpět vývojářům.
Pokud produkt neprojde kouřovým testem, znamená to, že počáteční sestavení má závažné nedostatky, které je třeba před dalším testováním odstranit.
Kdy je třeba provést kouřovou zkoušku?
Testování softwaru provádíme vždy, když jsou vyvíjeny nové funkce a integrovány do stávajícího sestavení, a před nasazením nového sestavení do QA. Provádění testování v této fázi zabraňuje plýtvání penězi a dalšími zdroji na testování QA u softwaru, který má zásadní problémy.
Při provádění testů QA se vývojový tým pokusí nasadit nové sestavení softwaru v QA a na sestavení se vybere a spustí podmnožina testovacích případů. Tým QA testuje aplikaci na nejdůležitější funkce. Pokud smoke test projde, tým QA pokračuje ve funkčním testování, a pokud selže, je sestavení předáno zpět vývojovému týmu k dalšímu vývoji.
Takové testování probíhá pokaždé, když jsou do sestavení softwaru přidány nové funkce.
Týmy QA mohou software testovat i v jiných případech, například:
● Před odevzdáním nového kódu do úložiště
● Před rozsáhlou sérií testů včetně regresního a akceptačního testování
● Po nasazení nového sestavení softwaru
Pokud v těchto bodech neprovedete smoke test, může se stát, že v pozdějších fázích testování funkčnosti objevíte závažné chyby, které mohou ovlivnit datum vydání nového sestavení nebo způsobit vážnější narušení časového plánu.
Když není třeba provádět kouřové zkoušky
Při testování softwaru je důležité provádět smoke testy vždy, když provedete jakoukoli změnu v kódu softwaru nebo přidáte nové funkce do sestavení.
Je to také nezbytný přípravný krok k testování funkčnosti, protože zabraňuje tomu, aby týmy QA ztrácely čas testováním softwaru, který není připraven.
Pokud váš software tato kritéria nesplňuje, nemusíte v tuto chvíli provádět smoke testování… ačkoli automatické nástroje pro smoke testování umožňují snadné a nákladově efektivní provádění pravidelných smoke testů, abyste zajistili, že software bude vždy správně fungovat.
Kdo se podílí na zkoušení kouře
Smoke testování provádějí inženýři QA nebo vedoucí QA; je to první fáze testování QA a provádí se v prostředí QA.
Tým QA je zodpovědný za testování sestaveného softwaru a vyhodnocování jeho výkonnosti v různých podmínkách a zátěžích. Během testování budou inženýři QA hledat tzv. „showstoppery“ neboli chyby, které zastaví vývoj a musí být opraveny, než bude možné pokračovat v testování.
Při porovnávání testování funkčnosti a regresního testování je důležité vzít v úvahu nejen to, co se testuje, ale také to, kdo testy provádí.
Smoke testování při testování softwaru vždy provádějí odborníci na zajištění kvality. Tím se liší smoke testing od sanity testing, což je testování prováděné ve vývojovém prostředí, do kterého se obvykle nezapojuje tým QA.
Životní cyklus kouřové zkoušky
Životní cyklus kouřového testu znázorňuje, kde se kouřové testy vyskytují během vývoje produktu a testování kvality. Pochopení jednotlivých fází tohoto cyklu vám pomůže lépe porozumět tomu, jak smoke testování zapadá do procesu testování a jaké jsou rozdíly mezi smoke testováním a sanity testováním a regresním testováním.
1. Kód
První fází sestavování jakéhokoli softwaru je vždy psaní a vytváření kódu. Kód je základním stavebním kamenem každého softwaru a vývojový tým musí kód napsat, aby mohl být otestován z hlediska stability a funkčnosti.
2. Testování jednotek
Testování jednotek obvykle provádějí vývojáři, ačkoli někdy mohou testování jednotek provádět i inženýři QA. Testování jednotek zajišťuje, že různé jednotky nebo prvky kódu fungují podle očekávání předtím, než jsou jednotlivé jednotky integrovány do jednoho softwarového sestavení.
Testování jednotek obvykle probíhá souběžně s vývojem, protože upozorňuje na chyby a nedostatky v kódu, které lze rychle opravit.
3. Integrační testování
Integrační testování je proces testování, jak jednotlivé jednotky fungují společně, když jsou integrovány do jednoho kusu softwaru.
I když každá samostatná jednotka funguje dobře, při jejich vzájemné integraci mohou často vzniknout problémy. Integrační testování obvykle provádějí vývojáři, ačkoli různé přístupy k tomuto typu testování znamenají, že může být prováděno v různých fázích procesu tvorby softwaru.
4. Testování správnosti
Sanity testování je typ regresního testování a obvykle je to poslední typ regresního testování. K tomu dochází ve vývojové fázi sestavení po opravě chyb, na které upozornilo regresní testování.
Sanity testování je obvykle velmi rychlé a slouží pouze k zajištění bezproblémového chodu softwaru a k tomu, aby byly nalezené chyby odpovídajícím způsobem opraveny.
Někdy se zaměňuje testování stavu a testování funkčnosti, ale je třeba si uvědomit, že testování funkčnosti probíhá ve vývojovém prostředí, zatímco testování stavu probíhá v prostředí QA.
5. Testování kouře
Smoke testování je první fází testování QA a prvním typem testování, které se provádí v prostředí QA.
Smoke testování obvykle probíhá před sanity testováním a regresním testováním, přestože je obvykle provádějí týmy QA. Jedná se o rychlý a jednoduchý testovací proces – v dnešní době většina týmů QA používá při testování softwaru automatické smoke testy – který určí, zda je sestavení stabilní a zda je třeba provést další testy.
Vzhledem k tomu, že smoke testování je nejrychlejší a nejjednodušší test při porovnávání smoke testování vs. sanity testování vs. regresní testování, je rozumné jej provést jako první, než přejdete k dalším, složitějším testům.
6. Funkční testování
Funkční testování je další fází životního cyklu testování softwaru a provádí se v prostředí QA.
Funkční testování testuje každou funkci softwarové aplikace na základě jejích požadavků a zaměřuje se na funkce, použitelnost, přístupnost a chybové stavy.
Funkční testování může začít, jakmile proběhne test kouře.
Aplikace pro testování kouře na různých úrovních
Testování kouřem je možné použít na třech různých úrovních testování: testování kouřem na akceptační úrovni, testování kouřem na systémové úrovni a testování kouřem na integrační úrovni.
1. Úroveň přejímacího testování
Smoke testování na akceptační úrovni se obvykle provádí, když je sestavení softwaru uvolněno pro kontrolu kvality. Tento typ testů QA jednoduše ověřuje základní funkčnost sestavení a to, zda odpovídá očekávané funkčnosti.
2. Úroveň testování systému
Smoke testování na úrovni systému zahrnuje testování nejdůležitějších pracovních postupů systému. Provádí se po otestování samotného systému a před provedením kompletního regresního testu systému.
Na úrovni systému je nejběžnější formou testování automatické testování kouře.
3. Úroveň integračního testování
Na úrovni integračních testů se pomocí testů „smoke“ zajišťuje, že všechny funkce softwaru fungují podle očekávání a že základní integrace je funkční.
K tomuto typu testování dochází obvykle při implementaci jednotlivých modulů nebo při integraci více modulů do jednoho softwarového sestavení.
Manuální vs. automatizované kouřové testy
Když softwarové týmy začínají provádět smoke testy, musí se rozhodnout, zda budou provádět ruční nebo automatizované smoke testy.
Automatizované smoke testy sice obvykle nabízejí rychlejší a nákladově efektivnější výsledky, ale jejich vytvoření a implementace může trvat delší dobu. Mnoho týmů začíná s vytvářením manuálních testů a teprve poté uvažuje o automatizaci.
1. Ruční testování kouře
Manuální smoke testy se poměrně snadno navrhují a obvykle je mohou provádět netechničtí odborníci mimo týmy QA nebo vývojové týmy. To znamená, že v menších společnostech, které ještě nemusí mít specializovaného vedoucího oddělení QA, se často upřednostňují manuální smoke testy.
Při manuálním testování je důležité otestovat několik případů použití, které pokrývají dostatečný počet klíčových funkcí softwaru, aniž by jich bylo tolik, že by testování trvalo příliš dlouho. Za ideální počet případů použití se obvykle považuje 20 až 50.
Výhody ručního provádění kouřových zkoušek
Provádění manuálních testů kouře v rámci zajištění kvality má ve srovnání s automatizovanými testy kouře řadu výhod. Manuální smoke testy často nabízejí podrobnější pohled na výkon a funkčnost softwaru ve srovnání s automatizovanými testy.
Manuální testování mohou provádět i neinženýři
Zatímco automatizované smoke testy obvykle vyžadují odborné znalosti softwarových inženýrů a vývojářů, manuální smoke testy mohou provádět členové týmu s menšími odbornými znalostmi.
To je obvykle výhodné v menších týmech, kde mohou být zdroje již napjaté a čas odborných pracovníků je velmi cenný.
Pro každou úlohu můžete vytvořit vlastní kouřový test.
Pokud chcete mít jistotu, že váš smoke test přesně pokryje nejdůležitější funkce jakékoli softwarové aplikace a zaměří se na ty funkce, které jsou pro každé sestavení důležitější, vytvoření manuálního smoke testu umožňuje testerům přizpůsobit test každému projektu.
Takovéto manuální smoke testy mohou ve srovnání s některými automatizovanými testy nabídnout užitečnější výsledky, ale jejich nastavení a spuštění je časově velmi náročné.
Manuální testy odhalují kvalitativní údaje
Při spuštění automatického testování můžete očekávat pouze kvantitativní údaje o tom, které aspekty testu prošly a které ne.
Když členové týmu provádějí manuální testování, mohou využít svůj vhled, intuici a úsudek k posouzení nejen toho, zda sestavení projde nebo ne, ale také jak a proč.
Výzvy manuálního testování kouře
Ruční testování kouře je také spojeno s mnoha problémy, které jsou důvodem, proč se mnoho společností rozhoduje pro automatické testování kouře, pokud je to možné.
Manuální testování je důkladné, ale také časově velmi náročné.
Manuální kouřové testy zaberou čas
Manuální smoke testy trvají podstatně déle než automatizované testy a vyžadují mnohem více pozornosti vašeho týmu.
Zatímco automatizované testy mohou jednoduše běžet samy na pozadí, váš tým si bude muset vyhradit čas na provedení manuálního smoke testu.
Manuální testy nelze provádět příliš často
Vzhledem k tomu, že manuální smoke testy vyžadují velké množství času a zdrojů, nelze je provádět tak pravidelně jako automatické smoke testy.
Při provádění manuálního smoke testu si musí testeři softwaru vyhradit hodiny až půl dne v závislosti na složitosti testu.
Tím odpadá možnost každodenního testování kouře, které je obecně považováno za osvědčený postup v oboru.
Vždy je prostor pro chyby
Vzhledem k tomu, že manuální testování provádějí lidé, vždy existuje možnost, že během manuálního testování může dojít k chybám.
Z tohoto důvodu není manuální testování obvykle tak komplexní jako automatizované testování, zejména pokud jde o odhalení jemných chyb, které lze snáze přehlédnout, nebo při provádění extrémně opakovaného testování, které by mohlo způsobit, že by se testeři během testování přestali soustředit.
Kdy použít ruční testování kouře
Manuální smoke testování se nejčastěji používá v menších týmech, které nemusí mít prostředky na vyčlenění inženýrů pro automatické smoke testování, nebo v případech, kdy je zapotřebí dalšího lidského vhledu a úsudku.
Z tohoto důvodu se ruční testování kouře často provádí v testech kouře na integrační úrovni.
2. Automatizované testování kouře
Automatizované testování může být realizováno softwarovými inženýry s dovednostmi v oblasti kódování, kteří jsou schopni vytvořit a spustit sérii relevantních případů použití pro každé sestavení softwaru.
Automatické testování je mnohem rychlejší než manuální testování, obvykle netrvá déle než 30 až 60 minut a může probíhat na pozadí, zatímco všichni členové vývojového týmu a týmu QA pokračují ve svých každodenních úkolech.
Z tohoto důvodu se automatizované testování kouře stalo v softwarovém průmyslu běžnou záležitostí, protože se stále více firem snaží zvýšit efektivitu práce.
Výhody automatizace testování kouře
Automatizace testování kouřových testů přináší mnoho výhod těm společnostem, které mají čas a prostředky na její zavedení. Je rychlý a efektivní a vzhledem k tomu, že automatizované testy nezatěžují týmy a zdroje, lze je pravidelně provádět i v malých firmách.
Automatizované testování je rychlé
Automatizované testování je mnohem rychlejší než manuální testování, přičemž dokončení většiny automatizovaných testů netrvá déle než 30 až 60 minut.
Ruční testy mohou v porovnání s tím trvat hodiny.
Automatizované smoke testy vyžadují minimum prostředků a po jejich implementaci je velmi snadné je spustit.
Automatizace umožňuje každodenní testy kouře
Podle současných osvědčených postupů v oboru je ideální provádět denní kouřové testy, zejména pokud pracujete na softwaru, který se neustále mění.
Manuální smoke testy jsou příliš časově náročné na každodenní provádění, ale automatické smoke testy lze snadno provádět na začátku každého pracovního dne.
Automatizace eliminuje lidské chyby
Automatizované testy se spouštějí z předem připravených skriptů vytvořených podle přísných standardů. To znamená, že pravděpodobnost, že automatický test přehlédne závažnou chybu nebo důležitý problém, je velmi nízká.
Automatizace může napodobit zátěžové a výkonnostní testy
Testy zátěže a výkonu hodnotí, jak dobře aplikace funguje, když ji používá mnoho uživatelů najednou. Automatizované testování může napodobit dodatečnou zátěž více uživatelů způsobem, který manuální testování neumožňuje, a poskytnout další vrstvu údajů o výkonu softwaru za určitých podmínek.
Výzvy automatizace testování kouře
Automatizace testování kouře není bez problémů. Implementace automatického testování může být časově i zdrojově náročnější, zejména v menších týmech, které mají k dispozici méně inženýrů.
Technické požadavky
Automatizované smoke testy vyžadují více technických znalostí a dovedností v oblasti kódování než manuální smoke testy. Softwaroví inženýři musí mít čas a znalosti, aby věděli, jak vytvářet automatizované testy, a teprve poté je mohou implementovat, a ne všechny týmy na to nutně mají k dispozici zdroje.
Nedostatek lidského vhledu
Automatizované testování nabízí celkový pohled na funkčnost softwarové aplikace a při provádění automatizovaného smoke testu získávají testeři softwaru přehled o základních funkcích softwaru, což je konečný účel smoke testu.
Automatizované testy však neposkytují žádný vhled do subjektivnějších aspektů výkonnosti softwaru, jako je použitelnost a přístupnost.
Kdy implementovat automatizaci testů kouře
Automatizace se často používá při smoke testování, protože účelem smoke testování je jednoduše zkontrolovat základní funkčnost, což je něco, co automatizované testování umí relativně dobře.
Týmy s dostatečnými technickými dovednostmi pro zavedení automatického testování kouře budou mít s největší pravděpodobností čas a prostředky na investice do tohoto procesu a větší a zavedenější společnosti budou pravděpodobně pociťovat větší tlak na dodržování standardů osvědčených postupů každodenního testování kouře.
Automatizace testování kouře vs. manuální testování kouře
Neexistuje žádný správný nebo špatný způsob, jak provádět testování kouře, a to, co funguje dobře pro jeden tým, nemusí fungovat dobře pro jiný.
Před provedením smoke testu by softwarové týmy měly zvážit své cíle, zdroje a dlouhodobé plány projektu. Proces ručního testování softwaru může být poučný pro mladé profesionály, kteří začínají s kontrolou kvality, ale pro více zavedené týmy je zřídkakdy výhodnější zvolit ruční testování než automatické.
Hybridní zkoušky kouře
Třetí možností pro týmy, které se nemohou rozhodnout mezi manuálním a automatizovaným testováním a testováním správnosti, je zvolit hybridní testování.
Hybridní testování kombinuje aspekty manuálního i automatizovaného testování, aby se zvýšil celkový výkon a efektivita testů. Při použití hybridní metody kouřové zkoušky může být většina zkoušky automatizovaná, ale některé aspekty se provádějí ručně. To umožňuje týmům zaměřit větší pozornost na ty aspekty sestavení, které ji potřebují, a zároveň udržet celkovou časovou náročnost smoke testu na nízké úrovni.
Typy zkoušek kouře
Kouřové zkoušky lze obecně rozdělit do dvou kategorií, na formální a neformální kouřové zkoušky. Zda je testování kouře formální, nebo neformální, závisí na tom, zda je formálně iniciováno vedoucím oddělení QA, nebo zda se jednoduše provádí jako součást vývoje.
1. Formální zkoušky kouře
Při formálním smoke testu předají vývojáři softwaru sestavený software k formálnímu testování inženýrovi nebo vedoucímu QA. Vedoucí QA přidělí testerům úkol smoke testování a požádá je, aby provedli smoke test buď pomocí nástrojů pro smoke testování, jako je automatizace, nebo ručně.
Při provádění formálních kouřových testů sestavují testeři QA výsledky testů do formální zprávy, kterou může analyzovat vedoucí QA.
Formální smoke testy se provádějí v důležitých bodech procesu sestavování softwaru, například před funkčním testováním nových funkcí.
2. Neformální zkoušky kouře
Neformální smoke testy jsou smoke testy prováděné na sestavení softwaru během vývoje nebo procesu QA, které nejsou formálně hlášeny nebo vyžadovány vedoucím QA.
Příkladem neformálního testování jsou každodenní smoke testy, které mnoho softwarových týmů provádí podle protokolu.
Neformální testy lze provádět ad-hoc, kdykoli inženýři QA usoudí, že by mohly být užitečné.
Co potřebujete k zahájení testování kouře
Než začnete s testováním softwaru, je důležité shromáždit všechny věci, které budete potřebovat, včetně datových souborů a dovedností ve vaší organizaci.
To, co budete k provedení smoke testu potřebovat, závisí na tom, zda plánujete provádět automatické nebo manuální smoke testy a jaké testovací nástroje pro usnadnění procesu používáte.
1. Seznam testovacích případů
Před zahájením smoke testu budete potřebovat ucelený seznam všech testovacích případů, které chcete v rámci smoke testu vyhodnotit.
Testovací případy jsou jednotlivé sady akcí, které chcete otestovat a posoudit, zda výsledek těchto akcí odpovídá očekávaným výsledkům.
Velmi jednoduchým testovacím případem může být například to, že software po otevření aplikace načte hlavní panel.
2. Testovací soubory
Před spuštěním smoke testu je třeba shromáždit všechny testovací soubory, na kterých chcete smoke test spustit. Možná budete moci použít příkazový řádek softwaru pro testování kouře, který používáte, a shromáždit všechny soubory na jednom místě.
Způsob shromažďování souborů a místo jejich uložení závisí na způsobu fungování vaší organizace.
3. Nástroje pro testování kouře
Základní test kouře můžete provést bez použití konkrétních nástrojů, ale použití nástrojů pro testování kouře vám může pomoci zlepšit přesnost výsledků a urychlit proces testování kouře.
Nejprve si na internetu vyhledejte nástroje pro testování kouře a vyberte si software, který automatizuje nebo optimalizuje testování kouře s ohledem na vaše konkrétní potřeby a rozpočet.
Proces zkoušení kouře
Nejlepší způsob provedení smoke testu se v různých organizacích liší, a pokud se smoke testováním začínáte, možná budete chtít experimentovat s různými přístupy, abyste zjistili, co je pro váš tým nejlepší.
Níže je uveden příklad, jak provést základní smoke test pro posouzení základních funkcí softwaru.
Krok 1: Výběr testovacích případů
Prvním krokem při provádění smoke testu je výběr testovacích případů, na kterých budete smoke test provádět.
Při navrhování smoke testu by měli softwaroví inženýři a inženýři zajištění kvality zvážit, které funkce softwaru jsou pro software nejdůležitější a jak nejlépe tyto funkce otestovat. Neztrácejte čas testováním funkcí, které nejsou pro funkci softwaru důležité.
Krok 2: Vytvoření kouřových testů
Jakmile určíte testovací případy, které budete používat, můžete napsat testovací skripty pro jejich testování. Pro smoke testy použijte jeden skript, abyste zvýšili flexibilitu při provádění testu.
Pokud se rozhodnete automatizovat testování kouře, nebudete muset pokaždé, když budete chtít spustit test kouře, psát ruční testovací skripty. K automatizaci takových skriptů můžete použít sady pro automatizaci testování softwaru.
Krok 3: Proveďte kouřové testy
Po vytvoření testovacích skriptů je můžete spustit na sestavení a hledat v nich chyby a další závažné chyby. To by nemělo trvat déle než 30 až 60 minut a po dokončení testů můžete vyhodnotit výsledky a určit další postup.
Krok 4: Oprava případných chyb
Účelem smoke testování při vývoji softwaru je identifikovat případné závažné chyby nebo nedostatky ještě před zahájením plného testování QA.
Pokud vaše smoke testy odhalí významné problémy, které narušují základní funkce sestaveného softwaru, je důležité odeslat software a jeho analýzu zpět vývojovému týmu k odstranění chyb a teprve poté pokračovat v kontrole kvality.
Osvědčené postupy pro testování kouře
Smoke testování je spolehlivý způsob identifikace hlavních chyb v sestaveních softwaru ve všech fázích vývoje. Dodržování osvědčených postupů v oboru je nejlepším způsobem, jak zajistit, aby vaše kouřové testy byly efektivní, přesné a produktivní.
1. Často provádějte kouřové testy
Ne vždy je možné provádět smoke testy každý den, zejména pokud používáte spíše manuální než automatizované smoke testy.
Provádějte smoke testy tak často, jak jen můžete, a to pokaždé, když zavádíte změny ve svém softwaru. Jakmile to dokážete, považuje se za osvědčený postup každodenní provádění kouřových testů.
2. Nikdy nevynechávejte fáze testování
Pokud spěcháte, může být lákavé vynechat některé fáze testování, abyste mohli rychleji pokročit v procesu vývoje, ale jak testování, tak regresní testování jsou nezbytné pro udržení vývoje na správné cestě.
Než přejdete do další fáze, vždy otestujte sestavení pomocí testů kouřového testování a testování správnosti.
3. Testujte každou změnu
Neexistuje jediná aplikace pro zkoušení kouře. Můžete a měli byste používat smoke testy k testování každé změny, kterou provedete v sestavení softwaru, a k testování softwaru mezi různými fázemi vývoje.
Smoke testy by měly předcházet integračním, výkonnostním a funkčním testům.
4. Sledování výsledků testů
Standardní praxí je testování výsledků formální kouřové zkoušky, ale i při provádění neformálních kouřových zkoušek by si technici měli vést nějaký záznam o výsledcích.
To usnadňuje předávání výsledků zpět vývojářům a sledování, které funkce v testu selhávají.
5. Proveďte dvakrát kouřový test
Provádět smoke test dvakrát se může zdát jako přehnané, ale pokud chcete během testu zachytit opravdu všechny chyby, je nejlepší ho provést dvakrát.
Tím zajistíte, že smoke test má všechny předpoklady zachytit hlavní chyby a problémy, které by mohly způsobit další problémy, pokud by nebyly okamžitě odstraněny.
6. Zvolte správný typ kouřové zkoušky
Zda použít ruční nebo automatizované testování, závisí na velikosti a potřebách vašeho týmu. Ujistěte se, že jste pro svůj projekt zvolili nejlepší typ testování, abyste optimalizovali efektivitu a přitom neohrozili přesnost výsledků.
Typy výstupů z kouřové zkoušky
Při provádění kouřového testu můžete očekávat, že výsledkem kouřového testu bude jeden ze dvou různých výsledků pro každý vyhodnocovaný testovací případ: vyhověl nebo nevyhověl.
1. Předat
Jedním z možných výsledků každého spuštěného testovacího případu je, že smoke test projde. To znamená, že skutečný výsledek testu se shoduje s očekávaným výsledkem testu.
Pokud například spustíte test, co se stane, když načtete aplikaci a ta se načte na obrazovku, která se má otevřít při načtení, váš skript by to měl zobrazit jako úspěch.
2. Selhání
Pokud váš smoke test u určitého testovacího případu selže, obvykle to znamená, že skutečný výsledek testu neodpovídá očekávanému výsledku testu.
Pokud například testujete nákupní aplikaci a jeden ze spuštěných testovacích případů testuje funkčnost přidávání položek do nákupního košíku, test je neúspěšný, pokud se položky přidané do košíku nezobrazí v košíku podle očekávání.
Příklady testovacích případů pro testování kouře
Když se snažíte vymyslet, které testovací případy zahrnout do smoke testu, napište si seznam základních funkcí softwaru a zvažte, které z nich jsou pro spuštění a používání softwaru nezbytné.
Některé příklady testovacích případů pro testování kouře vám mohou pomoci určit, které testovací případy použít při vlastním testování kouře.
1. Ověřování přihlašovacích údajů
Pokud vaše aplikace vyžaduje přihlášení uživatelů, můžete vytvořit testovací případ, který ověří, zda proces ověřování přihlašovacích údajů funguje, jak má.
Za tímto účelem vytvořte skript, který automatizuje přihlášení, spuštění testu a kontrolu výsledků. Pokud se software přihlásí podle očekávání, je tento případ smoke testu úspěšný.
2. Vytvoření nového dokumentu
Můžete vytvořit testovací případ, který posoudí, zda váš software umožňuje uživatelům správně vytvořit nový dokument. Vytvořte skript, který automatizuje vytváření, pojmenování a ukládání dokumentů v softwaru, a spusťte jej.
Jakékoli závažné problémy, které by tomuto procesu zabránily, by znamenaly, že tento kouřový test neproběhl.
3. Odhlášení
Pokud má aplikace funkci přihlášení, měla by mít také funkci odhlášení. Spusťte skript a otestujte, co se stane, když uživatelé kliknou na tlačítko „odhlásit“.
Pokud se uživatel po kliknutí na toto tlačítko nemůže úspěšně odhlásit, smoke test selže.
Typy chyb a nedostatků zjištěných při testování kouřem
Smoke testy vám pomohou identifikovat chyby a nedostatky, které narušují základní funkčnost softwaru. V závislosti na tom, kdy smoke test spouštíte a co chcete zkontrolovat, můžete pomocí smoke testů najít různé typy chyb a nedostatků.
1. Funkční chyby
Funkční chyby jsou chyby, které vznikají, když se váš software nechová tak, jak byste očekávali, nebo když nefunguje správně.
Většina testovacích případů, které budete pomocí smoke testů kontrolovat, jsou funkční testy, a proto je nejpravděpodobnější, že funkční chyby budou identifikovány právě pomocí těchto smoke testů.
2. Logické chyby
Logické chyby představují chyby v logice kódu a mohou také způsobit nesprávné chování softwaru. Logické chyby mohou způsobit, že akce budou mít nesprávné výstupy nebo dokonce způsobí selhání softwaru.
Častou logickou chybou je nekonečná smyčka, která způsobuje, že software opakuje stále stejné akce, dokud nespadne.
3. Chyby integrace
Pokud provádíte test na úrovni integrace, můžete během testu najít chyby integrace. K tomu dochází, když se dvě oddělené sady kódu vzájemně bezchybně neintegrují. Mohou být způsobeny celou řadou problémů s kompatibilitou v kódu a jejich oprava může vyžadovat složitá řešení.
Běžné metriky testování kouře
Při provádění kouřového testu mohou týmy QA používat metriky k vyhodnocení výsledků kouřového testu a k posouzení, zda test proběhl úspěšně nebo ne.
Kromě toho, že se posuzuje, zda je software schopen správně vykonávat své základní funkce, mohou metriky smoke testu hodnotit mimo jiné rychlost a dobu načítání softwaru.
1. Rychlost softwaru
Pomocí smoke testů lze ověřit, zda rychlost a doba načítání softwaru splňují určitá kritéria stanovená v rámci jednotlivých testovacích případů.
Pokud například testujete chování softwaru při načítání aplikace a aplikace se načte podle očekávání, ale její spuštění trvá dvě minuty, můžete ji označit jako chybu, protože nesplňuje očekávanou dobu načítání.
2. Spolehlivost
Dvojí provedení smoke testu vám také pomůže otestovat spolehlivost softwaru. Pokud některé testovací případy jednou projdou, ale jednou selžou, znamená to, že nějaká chyba v kódu způsobuje chyby, které se nemusí vyskytnout při každém použití softwaru, ale přesto mohou uživatelům způsobit vážné problémy.
Nejlepší bezplatné nástroje pro testování kouře
Nástroje pro testování kouře vám pomohou provádět testování kouře efektivněji a rychleji, abyste z testů kouře vytěžili co nejvíce.
Níže jsou uvedeny některé z nejlepších nástrojů pro testování kouře, které jsou dnes k dispozici zdarma.
5 nejlepších bezplatných nástrojů pro testování kouře
1. ZAPTEST FREE edition
ZAPTEST je bezplatný nástroj, který uživatelům umožňuje automatizovat testování softwaru a RPA, aniž by zaplatili jediný cent.
Pomocí edice ZAPTEST FREE můžete provádět jednoduché smoke testy na různých platformách včetně mobilních, webových, API a LOAD.
Pokud si chcete vyzkoušet automatizované testování, bezplatná edice ZAPTEST vám pomůže zjistit výhody automatizace na vlastní kůži. Snadno se používá i v případě, že nemáte technické vzdělání, protože má rozhraní bez kódu a využívá nejmodernější technologii počítačového vidění.
Nejdůležitější je, že ZAPTEST FREE je dobře…. navždy zdarma! Naproti tomu mnoho nástrojů pro testování kouře a obecnou automatizaci softwaru má počáteční testovací období, po kterém jste nuceni platit předplatné.
2. Selen
Selenium je bezplatný nástroj s otevřeným zdrojovým kódem, který můžete použít ke spouštění různých druhů testů softwaru, včetně testování kouře a regresního testování. Funguje s mnoha různými programovými jazyky a je vhodný zejména pro testování webových aplikací.
3. Appium
Pokud chcete provádět testování funkčnosti a funkčnosti mobilních aplikací, je Appium lepší volbou než Selenium. Aplikaci Appium lze snadno nainstalovat a používat a lze s ní provádět jednoduché smoke testy aplikací vyvinutých pro iOS i Android.
4. Testlink
Testlink je bezplatný webový nástroj pro správu, který uživatelům umožňuje vytvářet plány testů a testovací případy v rámci jednotného strukturovaného rámce. Testlink vám pomůže naplánovat smoke testy a nastínit vaše očekávání a metriky před zahájením smoke testů.
5. QA Wolf
QA Wolf je bezplatný nástroj pro komplexní testování, který uživatelům umožňuje vytvořit automatizovaný test QA smoke spolu s dalšími funkčními testy. QA Wolf mohou používat i lidé bez technických nebo programátorských dovedností, což znamená, že je skvělým úvodem do automatizace testování pro většinu týmů QA.
Nejlepší nástroje pro testování kouře v podniku
Pokud jste ochotni do nástrojů pro testování kouře investovat trochu peněz, můžete si pořídit podnikové nástroje, které mají rozsáhlejší možnosti testování kouře a důkladnější výsledky.
Níže je uveden seznam pěti nejlepších nástrojů pro automatizaci testování podnikových testů.
5 nejlepších nástrojů pro automatizaci testování kouře v podniku
1. ZAPTEST ENTERPRISE edition
ZAPTEST ENTERPRISE edition je sada pro testování softwaru a RPA, která dokáže plně automatizovat jakýkoli typ testů, včetně testování kouře.
Bezplatná verze je vhodná pro menší firmy, které chtějí zjistit, co ZAPTEST umí, ale pokud hledáte placené řešení, které se snadno používá a je vhodné pro testování jakéhokoli softwaru nebo aplikace, na jakékoli platformě, prohlížeči nebo zařízení, a s implementací 1SCRIPT ve všech těchto systémech, pak je ZAPTEST ENTERPRISE skvělým začátkem.
2. SoapUI
SoapUI je nástroj pro podnikové testování, který usnadňuje správu a provádění komplexních testů QA softwaru. Je to poměrně jednoduchý nástroj, ale má svá omezení, což se odráží v jeho ceně.
3. Testování
Testim je placený nástroj pro smoke testy, který využívá umělou inteligenci k vytváření testů bez kódu, které vyhodnocují funkčnost vašeho softwaru. K refaktorizaci, přizpůsobení a ladění testů lze použít rozhraní API jazyka Javascript společnosti Testim.
4. Robot T-Plan
T-Plan Robot je podnikový testovací nástroj, který mohou inženýři QA používat k automatizaci skriptovaných uživatelských akcí a robotické automatizace procesů (RPA) v systémech Windows, Mac, Linux a Mobile. Pomocí nástroje T-Plan Robot můžete automatizovat smoke testy řady aplikací a vytvářet automatizované skripty, které lze spouštět v klíčových okamžicích vývoje.
5. Kontrola kvality deštných pralesů
Rainforest QA je nástroj pro testování kouře QA, který umožňuje uživatelům spravovat a provádět manuální i automatizované testování kouře z jediného ovládacího panelu. Díky tomu je ideální pro organizace, které chtějí vyzkoušet hybridní přístup, a je vhodný pro celou řadu platforem včetně cloudových aplikací, systému Windows a Mac.
Kdy byste měli používat podnikové a kdy bezplatné nástroje pro testování kouře?
Podnikové a bezplatné nástroje pro testování kouře mohou splňovat podobné potřeby mírně odlišnými způsoby. Bezplatné nástroje obvykle slouží jako výborná vstupní brána pro organizace, které se spokojí s manuálním smoke testováním, ale chtějí podrobněji prozkoumat automatické smoke testování.
Mohou být také vhodnější pro velmi malé začínající podniky, kde zatím nejsou peníze na placené nástroje.
Nástroje pro podnikové testování se obvykle stávají životaschopnější volbou s tím, jak se společnosti rozšiřují. Oproti bezplatným nástrojům nabízejí řadu výhod, obvykle větší flexibilitu, lepší podporu a uživatelsky přívětivější rozhraní, které usnadňuje provádění automatického testování kouře i netechnickým profesionálům.
Kontrolní seznam pro testování kouře
Před zahájením smoke testu může tým QA softwaru použít tento kontrolní seznam, aby se ujistil, že pokryje všechny kroky procesu smoke testu.
● Určete nástroje pro testování kouře, které budete používat.
● Zvolte, zda chcete vytvořit manuální nebo automatizovaný test.
● Vyberte testovací případy, které chcete testovat.
● Vytvoření testovacích skriptů pro každý případ
● Určete požadavky na „vyhovění“ pro každý testovací případ.
● Spusťte kouřové testy
● Analýza výsledků
● Zpětná vazba pro vývoj a kontrolu kvality
Závěr
Smoke testování je základním krokem při vývoji softwaru a zajišťování kvality. Zajišťuje, že produkt je funkční ještě před dalším testováním, což zabraňuje riziku, že týmy QA budou plýtvat časem a zdroji na intenzivní funkční testování sestavení, která ještě nejsou stabilní.
Smoke testování je relativně rychlý a jednoduchý proces, který by softwarové týmy měly provádět co nejčastěji.
Vzhledem k tomu, že se podniky snaží dosáhnout optimální efektivity pomocí pokročilých nástrojů podporujících hyperautomatizaci, RPA a další související technologie, stává se automatizované testování kouře stále běžnějším jevem v organizacích všech velikostí.
Manuální i automatizované testování má v současném prostředí QA stále své místo, ale s tím, jak se automatizované testování stává běžnějším, není pochyb o tom, že se stane normou.
Často kladené otázky a zdroje
Jaké jsou nejlepší kurzy automatizace testování kouře?
Pokud se chcete dozvědět více o automatizaci testování kouře, můžete využít například tyto online kurzy:
● Kurzy testování kouře Coursera
● Kurzy testování kouře Udemy
● Kurzy testování kouře ve službě Skillshare
Jedním z nejlepších kurzů pro začátečníky je Certified Tester ISTQB Foundation Level (CTFL), který je k dispozici na Udemy.
Každý z těchto online zdrojů nabízí kurzy testování kouře pro studenty s různými schopnostmi a na těchto stránkách je možné absolvovat bezplatné i placené kurzy.
Pokud chcete získat certifikát, vyhledejte si kurzy akreditované organizací CAST.
Jaké jsou nejlepší knihy o testování kouře?
Pokud se chcete o testování kouřem dozvědět více, můžete si přečíst knihy o testování softwaru a testování kouřem, abyste lépe porozuměli přístupům a výhodám testování kouřem. Mezi nejlepší knihy o testování kouře patří:
● Umění testování softwaru, autoři Glenford J. Myers, Tom Badgett a Corey Sandler
● Testování softwaru, Ron Patton
● Automatizace testování softwaru, Mark Fewster a Dorothy Grahamová
Existuje však spousta skvělých knih o testování softwaru, které vám pomohou lépe porozumět tomu, jak, co a proč se testuje.
Vyberte si knihu, která vás osloví a podrobněji prozkoumá témata, která vás nejvíce zajímají.
Jakých je 5 nejčastějších otázek při pohovoru o testování kouře?
Pokud uvažujete o pohovoru na pozici, která by mohla zahrnovat testování kouře, připravte se na pohovor tak, že si připravíte odpovědi na běžné otázky, jako jsou například:
● Kdy je správný čas na provedení kouřových zkoušek?
● Jak byste se rozhodli, které testovací případy použít v testech kouře?
● Jak se liší testování kouře od jiných typů testování, jako je testování správnosti?
● Jaké znalosti kódování jsou nutné k provádění kouřových testů?
● Co byste udělali, kdyby test kouře selhal?
Jaké jsou nejlepší návody na testování kouře na YouTube?
Pokud se rádi učíte vizuálně, můžete využít tato videa na YouTube a dozvědět se více o testování kouře:
● Výukový program Edureka pro testování kouře
● Co je to zkouška kouřem?
● Smoke testing vs. sanity testing
Jak udržovat kouřové zkoušky?
Údržba smoke testů spočívá v zajištění toho, aby vytvořené smoke testy zůstaly zdravé a relevantní i v průběhu projektu sestavování softwaru.
Denně provádějte smoke testy a vytvářejte nové testovací případy podle potřeby.
Přínos smoke testů můžete maximalizovat také tím, že budete úzce spolupracovat s těmi vývojáři, jejichž příspěvky nevedou ke zlepšení kvality jejich kódu.
Co je to smoke testing v softwarovém inženýrství?
Smoke testování se v softwarovém inženýrství nazývá také testování ověření sestavení a je to jednoduchý a rychlý test, který zajistí, že sestavení softwaru je stabilní.
Smoke testování se používá k testování základních funkcí sestavení a slouží jako předběžný test před dalším testováním QA.
Smoke testing vs. sanity testing
Smoke a sanity testování jsou oba typy testování, které zahrnují rychlé testování základních funkcí softwarového sestavení nebo produktu.
Zatímco testování „smoke“ testuje, zda se základní funkce softwaru chovaly podle očekávání, testování správnosti se obvykle používá ke kontrole, zda opravy chyb odstranily zjištěné problémy.
Smoke testování je formálnější a dokumentovaný proces, který se obvykle provádí před ověřením stabilního sestavení, zatímco sanity testování je neformální typ testování, které lze provádět jako součást regresního testování relativně stabilních sestavení.
Smoke testování vs. regresní testování
Smoke i regresní testování jsou typy testování, které ověřují, zda software funguje správně i po provedení nových změn.
Testování „smoke testing“ je však relativně rychlý a málo hloubkový typ testování, který pouze kontroluje základní funkce a zajišťuje stabilitu softwaru.
Regresní testování je test na hlubší úrovni, který trvá mnohem déle a posuzuje sestavení podrobněji.
Smoke testing vs. sanity testing vs. regresní testování
Při porovnávání testů kouřových a sanity testů s regresními testy je důležité si uvědomit, že všechny tři typy testů jsou nezbytné pro dobrý vývoj softwaru a zajištění kvality.
Smoke testing a sanity testing nabízejí rychlý způsob, jak ověřit, zda software funguje normálně, zatímco regresní testování nabízí hlubší vhled do fungování produktu.
Týmy QA nejprve provedou testování softwaru, a pokud software touto kontrolou projde, může se přistoupit k testování správnosti a později k regresnímu testování.
Automatizované testování pomocí nástrojů pro testování kouře je stále běžnější, ale některé typy testování, například regresní testování, zatím není možné plně automatizovat kvůli komplexní povaze testu.
A konečně, pokud hledáte nástroje pro testování na platformách Windows, iOS, Android, testy uživatelského rozhraní, Linux a mnoho dalších, stáhněte si ZAPTEST ZDARMA!