Vad är röktestning?

⚡ Smart sammanfattning

Röktestning avgör om en ny version är tillräckligt stabil för testning. Den här sidan förklarar när den ska köras, vem som kör den, hur cykeln fungerar och hur automatiserade sviter hanterar moderna leveranspipelines.

  • 🔍 Definition: Röktestning kör en minimal uppsättning kontroller på varje nybyggnad för att bekräfta att inga störande faktorer blockerar ytterligare tester.
  • 🕒 Timing: Kör programsviten så snart build-filen når QA- eller staging-miljön, innan någon funktionell testning påbörjas.
  • 👤 Äganderätt: QA-ingenjörer eller QA-ledaren väljer ut de kritiska funktionerna och bestämmer om de ska acceptera eller avvisa bygget.
  • 🧭 Kritiska vägar: Håll täckningen bred och ytlig för inloggning, sökning, datainmatning, betalning och utloggning i ett enda steg.
  • ⏱️ Budget för körtid: Håll körningen nära tjugo till trettio fall och tio till femton minuter så att grinden aldrig blir en flaskhals.
  • ⚙️ Automation: Koppla in sviten i CI/CD-pipelinen så att varje commit och varje distribution verifieras utan manuell ansträngning.
  • ???? Kontroll av flagnande egenskaper: Avbryt beroendetunga och inkonsekventa fall, eftersom en opålitlig grind förstör förtroendet för byggdomen.

Vad är röktestning?

Rökprovning är en mjukvarutestprocess som avgör om den distribuerade mjukvarubyggnaden är stabil eller inte. Röktestning är en bekräftelse för QA-teamet att fortsätta med ytterligare mjukvarutestning. Den består av en minimal uppsättning tester som körs på varje build för att testa mjukvarufunktioner. Röktestning är också känd som "Build Verification Testing" eller "Confidence Testing".

Enkelt uttryckt innebär röktestning att verifiera att viktiga funktioner fungerar och att det inte finns några störande faktorer i den version som testas. Det är ett mini- och snabbt regressionstest av viktig funktionalitet. Detta hjälper till att avgöra om versionen har brister, vilket gör ytterligare tester till slöseri med tid och resurser.

Jämför Rök vs förnuftstestning

Varför utför vi röktester?

Röktestning spelar en viktig roll i mjukvaruutveckling eftersom det säkerställer systemets korrekthet i de inledande skedena. På så sätt kan vi spara testarbete. Först när röktestningen är klar börjar vi funktionstestning.

  • Alla iögonfallande sevärdheter i byggnaden kommer att identifieras genom röktester.
  • Med hjälp av rökprovning identifieras de flesta defekterna i ett tidigt skede av mjukvaruutveckling.
  • Med rökprovning förenklar vi upptäckt och korrigering av större defekter.
  • Genom röktestning kan QA-teamet hitta defekter i applikationens funktionalitet som kan ha dykt upp av den nya koden.
  • Röktestning hittar de största allvarliga defekterna.

Exempel 1: Loggningsfönster: Kan gå till nästa fönster med giltigt användarnamn och lösenord när du klickar på knappen Skicka.

Exempel 2: Användaren kan inte logga ut från webbsidan.

När gör vi röktestning?

Dessa fördelar uppstår endast om kontrollen utlöses vid rätt tillfälle. Röktestning utförs när nya funktioner i programvaran utvecklas och integreras med en befintlig build som distribueras i en QA-/stagingmiljö. Det säkerställer att alla kritiska funktioner fungerar korrekt eller inte. Diagrammet nedan visar hur en build når QA-miljön innan röktestningen börjar.

I den här testmetoden driftsätter utvecklingsteamet builden i QA. En delmängd av testfall tas och körs av testare mot buildens kritiska funktioner. Dessa serier av testfall är utformade för att avslöja fel som finns i builden. Om dessa tester godkänns fortsätter QA-teamet med funktions~~POS=TRUNC.

Eventuella fel indikerar ett behov av att hantera systemet tillbaka till utvecklingsteamet. Närhelst det sker en förändring i konstruktionen utför vi röktestning för att säkerställa stabiliteten.

Exempelvis: -Ny registreringsknapp läggs till i inloggningsfönstret och build distribueras med den nya koden. Vi utför rökprovning på ett nybygge.

Röktesterna kvalificerar bygget för vidare formell testning och är utformade för att visa systemstabilitet och överensstämmelse med krav. Huvudsyftet är att upptäcka större problem tidigt. En byggprocess inkluderar alla datafiler, bibliotek, återanvändbara moduler och konstruerade komponenter som krävs för att implementera en eller flera produktfunktioner.

Vad händer om vi inte utför röktestning

Om vi ​​inte utför rökprovning i tidiga skeden kan fel uppstå i senare skeden vilket kan bli kostsamt. defekt som upptäcks i senare skeden kan vara en hinder som påverkar lanseringen av leveranser.

Vem ska utföra röktestning?

Efter att ha släppt den byggda till QA-miljön, utförs röktestning av QA-ingenjörer/QA-ledare. Närhelst det finns en ny konstruktion bestämmer QA-teamet den huvudsakliga funktionaliteten i applikationen för att utföra röktestning. QA-teamet söker efter showstoppers i applikationen som testas.

Hur gör man röktest?

Röktestning görs vanligtvis manuellt men det finns en möjlighet att åstadkomma detsamma genom automatisering. Det kan variera från organisation till organisation.

Manuell röktestning

Röktestning utförs för att säkerställa att navigeringen av kritiska vägar är som förväntat och inte hindrar funktionaliteten. Högprioriterade funktionstestfall tas och testas för att hitta kritiska defekter i systemet. Om testet godkänns fortsätter vi funktionstesterna. Om testet misslyckas avvisas bygget och skickas tillbaka till utvecklingsteamet för korrigering.

QA-teamet börjar återigen med röktestning med en ny version. Röktestning utförs på nya versioner och integreras med gamla versioner för att bibehålla systemets korrekthet. Innan röktestning utförs bör QA-teamet kontrollera om det finns korrekta versioner.

Röktestning med automation

Automationstestning används till RegressionstestningVi kan dock också använda en uppsättning automatiserade testfall för att köra mot Smoke Test. Med hjälp av automatiserade tester kan utvecklare kontrollera bygget omedelbart, närhelst det finns en ny build redo för driftsättning.

Istället för att upprepa testet manuellt när den nya mjukvarubyggnaden distribueras, utförs inspelade röktestfall mot byggnaden. Den verifierar om de viktigaste funktionerna fortfarande fungerar korrekt. Om testet misslyckas kan de korrigera byggnaden och distribuera om byggnaden omedelbart. Genom detta kan vi spara tid och säkerställa en kvalitetsuppbyggnad till QA-miljön.

Med hjälp av ett automatiserat verktyg registrerar testingenjören alla manuella steg som utförs i mjukvarubygget.

Röktestningscykel

Flödesschemat nedan visar hur röktestning utförs. När bygget har driftsatts i QA och röktesterna är godkända fortsätter vi med funktionstestning. Om röktestet misslyckas avslutar vi testningen tills problemet i bygget är åtgärdat.

Bästa praxis för att utforma röktestfall

Att känna cykeln är en sak;ping Den sviten som gör den pålitlig är en annan. En röksvit förtjänar sin plats bara när den förblir kompakt, snabb och repeterbar.

  • Kartlägg de kritiska vägarna först: Lista de arbetsflöden som gör produkten kommersiellt användbar, såsom inloggning, sökning, datainmatning, betalning och utloggning. Om ett av dem går sönder har bygget inget värde för en testare.
  • Håll sviten grund men bred: Berör varje större modul en gång istället för att utforska en modul på djupet. Randvärden, negativa data och formuleringar i felmeddelanden hör hemma i funktionell testning, inte här.
  • Begränsa exekveringstiden: De flesta lag håller löptiden mellan tio och femton minuter och begränsar sviten till ungefär tjugo till trettio testfallEn körning som tar en timme slutar vara en grind och blir en flaskhals.
  • Kör samma fall på varje build: Konsekvens låter dig tillskriva ett fel till koden snarare än till ett ändrat testval.
  • Ta bort osäkra och beroendetunga fall: Ett fall som godkänns och misslyckas utan någon kodändring förstör förtroendet för grinden. Stubba eller simulera instabila tredjepartstjänster där ramverk för testautomatisering tillåter.
  • Skriv ner ett otvetydigt domslut: Varje fall behöver ett enda förväntat resultat så att bygget kan accepteras eller avvisas utan debatt.
  • Versionsversionen av sviten med build-filen: Lagra rökfallen i samma arkiv som applikationskoden så att grinden alltid matchar den utgåva som testas.

RevVisa sviten varje utgåva: ta bort ärenden för funktioner som inte längre är viktiga och lägg till nya kritiska arbetsflöden.

Röktestning i CI/CD-rörledningar

En svit utformad på detta sätt är billig nog att köras på varje commit, vilket är vad modern leverans kräver. kontinuerlig integration server som till exempel Jenkins kompilerar koden, distribuerar den till en staging-miljö och utlöser sedan smoke-sviten som det första automatiserade steget. En grön körning flyttar artefakten till funktions- och regressionsstegen, medan en röd körning misslyckas med pipelinen och meddelar den committande utvecklaren inom några minuter.

Två placeringar är vanliga. En körning före sammanslagning skyddar huvudgrenen genom att validera varje pull request, och en körning efter distribution bekräftar att den distributionsmiljön är nåbar och korrekt konfigurerad. Team som använder kontinuerlig distribution lägger ofta till en tredje, trimmad körning mot produktion direkt efter lanseringen.

Eftersom pipelinen kör sviten många gånger om dagen måste ärendena vara icke-interaktiva, självrensande och oberoende. Alla ärenden som väntar på ett mänskligt beslut eller lämnar testdata kvar kommer att stoppa pipelinen.

Fördelar med röktestning

Här är några fördelar listade för röktestning.

  • Lätt att utföra och går snabbt
  • Kritiska fel och defekter är lätta att upptäcka och korrigera i tidiga skeden.
  • Förbättrar kvaliteten på systemet
  • Minskar risken
  • Framsteg är lättare att bedöma.
  • Sparar testansträngning och tid
  • Minimerar integrationsrisker

⚠ Begränsning att notera: En passerande rökkörning visar bara att bygget är testbart. Den berör huvudfunktionaliteten ytligt, så mindre defekter, kantfall och sällan använda funktioner förblir dolda tills funktions- och regressionstestning körs. Betrakta aldrig ett grönt rökresultat som tecken på att bygget är felfritt.

Röktestning kontra förnuftstestning kontra regressionstestning

Alla tre körs efter en kodändring, vilket är anledningen till att de ofta förväxlas. De skiljer sig åt i omfattning, djup och den fråga som var och en besvarar.

Testning utförs i en utvecklingsmiljö på koden för att säkerställa applikationens korrekthet innan build släpps för QA, detta kallas Sanity-testning. Det är en process som verifierar att applikationen under utveckling uppfyller dess grundläggande funktionella krav.

Sanitetstestning avgör slutförandet av utvecklingsfasen och fattar ett beslut om att godkänna eller inte godkänna mjukvaruprodukten för ytterligare testfas.

GRUND RÖKTESTNING SUNDHETSTESTNING REGRESSIONSTESTNING
Omfattning Bred och grund Smalt och djupt Bred och djup
Fråga besvarad Är den här konstruktionen tillräckligt stabil för att testas? Fungerar den här specifika lösningen? Har något som brukade fungera gått sönder?
Sekvens Först, på varje byggnation Efter att rökprovningen har godkänts Efter mentaltest
Typisk varaktighet 10 till 15 minuter 30 till 60 minuter Hours till dagar
Automatiseringsanpassning Mycket högt Måttlig, ofta manuell Mycket högt

I praktiken körs de i sekvens: röktestning för att acceptera bygget, sanitetstestning för att verifiera den levererade ändringen och regressionstestning när schemat tillåter.

Exempel på röktestfall

Tabellen nedan dokumenterar en kort röksvit, en rad per kritisk linje.

T.ID TESTSCENARIER BESKRIVNING TESTSTEG FÖRVÄNTAT RESULTAT FAKTISKT RESULTAT STATUS
1 Giltiga inloggningsuppgifter Testa webbapplikationens inloggningsfunktion för att säkerställa att en registrerad användare tillåts logga in med användarnamn och lösenord 1.Starta programmet
2.Navigera på inloggningssidan
3. Ange ett giltigt användarnamn
4. Ange ett giltigt lösenord
5. Klicka på inloggningsknappen
Inloggning bör vara framgångsrik som förväntat Pass
2 Lägger till objektfunktionalitet Kan lägga till föremål i varukorgen 1.Välj kategorilista
2. Lägg varan i varukorgen
Varan bör läggas till i kundvagnen Varan läggs inte till i kundvagnen Underkänd
3 Logga ut funktionalitet Kontrollera utloggningsfunktionen 1. välj logga ut-knappen Användaren ska kunna logga ut. Användaren kan inte logga ut Underkänd

Vanliga frågor

Namnet kommer från hårdvaruteknik, där en nymonterad enhet klarade sin första kontroll om den inte avgav rök när den sattes på. Programvara lånade idén: om konstruktionen klarar en snabb startkontroll kan djupare tester påbörjas.

De flesta lag bestämmer sig för mellan tjugo och trettio fall, med tio som en praktisk minimigräns och femtio som en övre gräns. Den verkliga begränsningen är tid: om hela körningen överstiger femton minuter, trimma fallen tills det får plats.

Ja. AI-verktyg kan läsa krav, användarberättelser eller produktionstrafikloggar och föreslå de kritiska vägarna med högst trafik som potentiella rökfall. En kvalitetssäkringsingenjör måste fortfarande godkänna valet, eftersom modellen inte kan bedöma kommersiell risk.

Det hjälper avsevärt. Självläkande lokaliseringsanordningar i moderna verktyg för automationstestning identifiera ett flyttat eller omdöpt element istället för att det går sönder, vilket eliminerar de falsklarm som gör en rökport opålitlig. RevVisa varje läkt lokaliseringsinstrument innan du litar på det.

Selenium och Cypress täcka webbläsarflöden, Postman och SoapUI täcka API-slutpunkter, och JUnit, TestNG, PyTest eller Jest kör sviten. Robot Framework passar nyckelordsdrivna team.

Sammanfatta detta inlägg med: