Co je kouřové testování?

⚡ Chytré shrnutí

Smoke Testing rozhoduje, zda je nová sestava dostatečně stabilní pro testování. Tato stránka vysvětluje, kdy ji spustit, kdo ji spouští, jak cyklus funguje a jak automatizované sady ovlivňují moderní doručovací kanály.

  • 🔍 Definice: Kouřové testování provádí u každé nové sestavy minimální sadu kontrol, aby se ověřilo, že žádné překážky neblokují další testování.
  • 🕒 načasování: Spusťte sadu, jakmile sestavení dosáhne QA nebo testovacího prostředí, před zahájením jakéhokoli funkčního testování.
  • 👤 Vlastnictví: Inženýři QA nebo vedoucí QA vyberou kritickou funkcionalitu a rozhodnou, zda sestavení přijmou nebo odmítnou.
  • 🧭 Kritické cesty: Udržujte široké a zároveň povrchní pokrytí přihlášení, vyhledávání, zadávání dat, plateb a odhlášení v jednom kroku.
  • ⏱️ Rozpočet na dobu běhu: Udržujte průběh v rozmezí dvaceti až třiceti případů a deset až patnácti minut, aby se brána nikdy nestala úzkým hrdlem.
  • ⚙️ Automatizace: Propojte sadu s kanálem CI/CD, aby každý commit a každé nasazení bylo ověřeno bez manuální námahy.
  • 🚫 Kontrola šupinatosti: Vyřaďte případy s vysokým obsahem závislostí a nekonzistentní případy, protože nespolehlivá brána ničí důvěru ve verdikt sestavení.

Co je kouřové testování?

Testování kouře je proces testování softwaru, který určuje, zda je nasazené sestavení softwaru stabilní nebo ne. Testování kouře je potvrzením pro tým kontroly kvality, aby pokračoval v dalším testování softwaru. Skládá se z minimální sady testů spuštěných na každém sestavení za účelem testování funkcí softwaru. Testování kouře je také známé jako „Test ověření sestavení“ nebo „Testování důvěry“.

Jednoduše řečeno, kouřové testování znamená ověření, zda důležité funkce fungují a zda v testovaném sestavení nejsou žádné překážky. Jedná se o mini a rychlý regresní test hlavních funkcí. To pomáhá určit, zda je sestavení chybné, takže jakékoli další testování by bylo ztrátou času a zdrojů.

Porovnat Testování kouře vs

Proč provádíme kouřové testy?

Kouřové testování hraje důležitou roli ve vývoji softwaru, protože zajišťuje správnost systému v počátečních fázích. Tímto způsobem můžeme ušetřit úsilí při testování. Teprve po dokončení kouřového testování zahájíme funkční testování.

  • Všechny nejvýraznější prvky v sestavě budou identifikovány provedením kouřových testů.
  • S pomocí kouřových testů je většina vad identifikována v počátečních fázích vývoj software.
  • S kouřovým testováním zjednodušujeme detekci a nápravu závažných závad.
  • Pomocí kouřového testování může tým QA najít vady funkčnosti aplikace, které se mohly objevit v novém kódu.
  • Testování kouře najde hlavní závady závažnosti.

Příklad 1: Přihlašovací okno: Po kliknutí na tlačítko Odeslat lze přejít do dalšího okna s platným uživatelským jménem a heslem.

Příklad 2: Uživatel se nemůže odhlásit z webové stránky.

Kdy provádíme kouřové testy?

Tyto výhody se projeví pouze tehdy, pokud je kontrola spuštěna ve správný okamžik. Kouřové testování se provádí vždy, když jsou vyvíjeny nové funkce softwaru a integrovány do stávající sestavy, která je nasazena v prostředí QA/staging. Zajišťuje, aby všechny kritické funkce fungovaly správně, nebo ne. Níže uvedený diagram ukazuje, jak se sestavení dostane do prostředí QA před zahájením kouřového testování.

V této testovací metodě vývojový tým nasadí sestavení v režimu QA. Testeři provedou podmnožinu testovacích případů a spustí je proti kritickým funkcím sestavení. Tyto série testovacích případů jsou navrženy tak, aby odhalily chyby v sestavení. Pokud jsou tyto testy úspěšné, tým QA pokračuje s... Funkční testování.

Jakékoli selhání naznačuje, že je nutné systém vrátit zpět vývojovému týmu. Kdykoli dojde ke změně v konstrukci, provádíme testování kouře, abychom zajistili stabilitu.

Příklad: -Nové registrační tlačítko je přidáno do přihlašovacího okna a sestavení je nasazeno s novým kódem. Provádíme kouřové testování na nové stavbě.

Kouřové testy kvalifikují sestavení pro další formální testování a jsou navrženy tak, aby prokázaly stabilitu systému a shodu s požadavky. Hlavním cílem je včas odhalit hlavní problémy. Sestavení zahrnuje všechny datové soubory, knihovny, opakovaně použitelné moduly a navržené komponenty, které jsou potřebné k implementaci jedné nebo více funkcí produktu.

Co se stane, když neprovedeme kouřový test

Pokud neprovedeme testování kouře v raných fázích, můžeme se v pozdějších fázích setkat s vadami, které mohou být nákladné. Přeběhnout nalezené v pozdějších fázích mohou být překážkou, která ovlivní vydání výstupů.

Kdo bude provádět kouřové testy?

Po uvolnění sestavení do prostředí QA provedou technici QA / vedoucí QA testování kouře. Kdykoli je k dispozici nové sestavení, tým QA určí hlavní funkce v aplikaci pro provedení testování kouře. Tým kontroly kvality zkontroluje, zda v aplikaci, která je testována, nejsou přítomny šmejdy.

Jak provést kouřový test?

Testování kouře se obvykle provádí ručně, i když existuje možnost provést totéž prostřednictvím automatizace. Může se lišit od organizace k organizaci.

Manuální testování kouře

Provádí se kouřové testování, aby se zajistilo, že navigace kritickými cestami probíhá podle očekávání a neomezuje funkčnost. Provádějí se testovací případy funkčnosti s vysokou prioritou a testují se za účelem nalezení kritických vad v systému. Pokud test projde, pokračujeme ve funkčním testování. Pokud test selže, sestavení je odmítnuto a odesláno zpět vývojovému týmu k opravě.

QA znovu zahájí kouřové testování s novou verzí sestavení. Kouřové testování se provádí na novém sestavení a bude integrováno se starými sestaveními, aby se zachovala správnost systému. Před provedením kouřového testování by měl tým QA zkontrolovat správné verze sestavení.

Testování kouře automatizací

Testování automatizace se používá pro Regresní testováníMůžeme však také použít sadu automatizovaných testovacích případů k provedení testu proti Smoke Testu. S pomocí automatizovaných testů mohou vývojáři okamžitě zkontrolovat sestavení, kdykoli je k dispozici nové sestavení připravené k nasazení.

Namísto opakovaného ručního testování při každém nasazení nového sestavení softwaru se provedou zaznamenané případy kouřových testů proti sestavení. Ověřuje, zda hlavní funkce stále fungují správně. Pokud test selže, mohou sestavení opravit a sestavení okamžitě znovu nasadit. Můžeme tak ušetřit čas a zajistit kvalitní sestavení prostředí QA.

Pomocí automatizovaného nástroje testovací technik zaznamenává všechny manuální kroky, které se provádějí při sestavení softwaru.

Cyklus testování kouře

Níže uvedený vývojový diagram ukazuje, jak se provádí kouřové testování. Jakmile je sestavení nasazeno v QA a kouřové testy jsou úspěšné, pokračujeme s funkčním testováním. Pokud kouřový test selže, testování ukončíme, dokud nebude problém v sestavení opraven.

Nejlepší postupy pro navrhování testovacích případů kouře

Znát cyklus je jedna věc; udržetping Sada, která ji činí důvěryhodnou, je jiná. Sada pro kouř si své místo zaslouží pouze tehdy, když zůstane kompaktní, rychlá a opakovatelná.

  • Nejprve zmapujte kritické cesty: Uveďte pracovní postupy, které zajišťují komerční využití produktu, jako je přihlášení, vyhledávání, zadávání dat, platba a odhlášení. Pokud se jeden z nich pokazí, sestavení pro testera nemá žádnou hodnotu.
  • Udržujte apartmá mělké, ale široké: Dotkněte se každého hlavního modulu jednou, místo abyste se podrobně zabývali jedním modulem. Okrajové hodnoty, negativní data a formulace chybových hlášení patří do funkčního testování, ne sem.
  • Omezení doby provedení: Většina týmů drží běh mezi deseti a patnácti minutami a omezuje sadu na zhruba dvacet až třicet testovací případyBěh, který trvá hodinu, přestává být branou a stává se úzkým hrdlem.
  • Spouštějte stejné případy na každém sestavení: Konzistence umožňuje připsat selhání kódu, nikoli změněnému výběru testu.
  • Odstraňte nestabilní a závislé případy: Případ, který projde a zároveň selže bez jakékoli změny kódu, ničí důvěru v bránu. Stub nebo falešné nestabilní služby třetích stran, kde rámec pro automatizaci testování umožňuje.
  • Zaznamenejte jeden jednoznačný verdikt: Každý případ potřebuje jeden očekávaný výsledek, aby bylo možné sestavení přijmout nebo zamítnout bez debaty.
  • Verze sady s touto sestavou: Uložte kouřové případy do stejného repozitáře jako kód aplikace, aby brána vždy odpovídala testované verzi.

RevProhlédněte si sadu v každém vydání: vyřaďte případy funkcí, které již nejsou důležité, a přidejte nově kritické pracovní postupy.

Zkoušení kouřem v potrubích CI/CD

Takto navržená sada je dostatečně levná na to, aby běžela na každém commitu, což je to, co moderní doručování vyžaduje. průběžná integrace serveru, jako například Jenkins zkompiluje kód, nasadí ho do testovacího prostředí a poté spustí sadu Smoke Suite jako první automatizovanou fázi. Zelené spuštění posouvá artefakt do funkční a regresní fáze, zatímco červené spuštění selže v pipeline a během několika minut upozorní vývojáře, který se o změně postaral.

Běžná jsou dvě umístění. Spuštění před sloučením chrání hlavní větev ověřováním každého požadavku na změny (pull request) a spuštění po nasazení potvrzuje, že nasazené prostředí je dosažitelné a správně nakonfigurované. Týmy praktikující kontinuální nasazení často přidávají třetí, oříznuté spuštění proti produkčnímu prostředí ihned po vydání.

Protože pipeline spouští sadu mnohokrát denně, musí být případy neinteraktivní, samočisticí a nezávislé. Jakýkoli případ, který čeká na lidské rozhodnutí nebo zanechává testovací data, pipeline zastaví.

Výhody testování kouřem

Zde je několik výhod uvedených pro testování kouře.

  • Snadné provedení a rychlý chod
  • Kritické chyby a vady lze snadno odhalit a opravit v raných fázích.
  • Zlepšuje kvalitu systému
  • Snižuje riziko
  • Pokrok se snáze hodnotí.
  • Šetří námahu a čas při testování
  • Minimalizuje integrační rizika

⚠ Upozornění na omezení: Letmý kouřový efekt pouze naznačuje, že sestavení je testovatelné. Hlavních funkcí se dotýká povrchně, takže drobné vady, okrajové případy a zřídka používané funkce zůstávají skryté až do spuštění funkčního a regresního testování. Nikdy nepovažujte zelený kouřový efekt za známku toho, že sestavení je bez vad.

Testování kouře vs. testování příčetnosti vs. regresní testování

Všechny tři fungují po změně kódu, a proto se často zaměňují. Liší se rozsahem, hloubkou a otázkou, na kterou každý z nich odpovídá.

Testování kódu prováděné ve vývojovém prostředí za účelem zajištění správnosti aplikace před vydáním sestavení k QA, je známé jako testování bezúhonnosti. Jedná se o proces, který ověřuje, zda vyvíjená aplikace splňuje základní funkční požadavky.

Testování zdravého rozumu určuje dokončení vývojové fáze a rozhoduje o tom, zda projde nebo nepostoupí softwarový produkt do další testovací fáze.

ZÁKLAD ZKOUŠENÍ KOUŘE TESTOVÁNÍ ZDRAVOTNÍ BEZPEČNOSTI REGRESNÍ TESTOVÁNÍ
Rozsah Široké a mělké Úzké a hluboké Široký a hluboký
Odpověď na otázku Je tato sestava dostatečně stabilní pro testování? Funguje tato konkrétní oprava? Zlomilo se něco, co dříve fungovalo?
Sekvence Zaprvé, při každé stavbě Po úspěšném provedení kouřového testu Po testu příčetnosti
Typická doba trvání 10 až 15 minut 30 až 60 minut Hours na dny
Automatizace Velmi vysoko Mírné, často manuální Velmi vysoko

V praxi probíhají postupně: kouřové testování pro přijetí sestavení, testování správnosti pro ověření dodané změny a regresní testování, pokud to harmonogram dovolí.

Vzorové případy kouřových testů Příklad

Níže uvedená tabulka dokumentuje krátkou sadu kouřových algoritmů, jeden řádek na kritickou cestu.

T.ID TESTOVACÍ SCÉNÁŘE POPIS TESTOVACÍ KROK OČEKÁVANÝ VÝSLEDEK SKUTEČNÝ VÝSLEDEK POSTAVENÍ
1 Platné přihlašovací údaje Otestujte přihlašovací funkci webové aplikace, abyste se ujistili, že registrovaný uživatel se může přihlásit pomocí uživatelského jména a hesla 1. Spusťte aplikaci
2. Přejděte na přihlašovací stránku
3. Zadejte platné uživatelské jméno
4.Zadejte platné heslo
5. Klikněte na tlačítko přihlášení
Přihlášení by mělo být úspěšné podle očekávání Přejít
2 Přidání funkcí položky Možnost přidat zboží do košíku 1. Vyberte seznam kategorií
2. Přidejte položku do košíku
Zboží by mělo být přidáno do košíku Zboží se nepřidává do košíku Selhat
3 Funkce odhlášení Zkontrolujte funkci odhlášení 1. vyberte tlačítko odhlásit Uživatel by měl mít možnost se odhlásit. Uživatel se nemůže odhlásit Selhat

Nejčastější dotazy

Název pochází z hardwarového inženýrství, kde nově sestavené zařízení prošlo první kontrolou, pokud po zapnutí nevydávalo kouř. Software si tuto myšlenku vypůjčil: pokud sestava přežije rychlou kontrolu po zapnutí, může začít hlubší testování.

Většina týmů se dohodne na dvaceti až třiceti případech, přičemž deset je praktická spodní hranice a padesát horní. Skutečným omezením je čas: pokud celá série přesáhne patnáct minut, upravte počet případů, aby se vešly do požadovaného rozsahu.

Ano. Nástroje umělé inteligence dokáží číst požadavky, uživatelské příběhy nebo protokoly provozních dat a navrhovat kritické cesty s nejvyšším provozem jako kandidáty na kouřové případy. Výběr musí stále schválit technik QA, protože model nedokáže posoudit komerční riziko.

To značně pomáhá. Samoopravné lokátory v moderních nástroje pro testování automatizace znovu identifikovat přesunutý nebo přejmenovaný prvek namísto selhání, což snižuje počet falešných poplachů, které činí kouřovou bránu nedůvěryhodnou. RevNež se rozhodnete důvěřovat, prohlédněte si každý obnovený lokátor.

Selenium a Cypress pokrýt toky prohlížeče, Postman a SoapUI pokrývat koncové body API a JUnit, TestNG, PyTest nebo Jest spouštějí sadu. Robot Framework je vhodný pro týmy zaměřené na klíčová slova.

Shrňte tento příspěvek takto: