Ce este testarea fumului?

โšก Rezumat inteligent

Testarea cu fum decide dacฤƒ o versiune nouฤƒ este suficient de stabilฤƒ pentru a fi testatฤƒ. Aceastฤƒ paginฤƒ explicฤƒ cรขnd trebuie rulatฤƒ, cine o ruleazฤƒ, cum funcศ›ioneazฤƒ ciclul ศ™i cum suitele automate controleazฤƒ canalele de livrare moderne.

  • ๐Ÿ” Definiศ›ie: Testarea cu fum efectueazฤƒ un set minim de verificฤƒri pe fiecare versiune nouฤƒ pentru a confirma cฤƒ niciun obstacol nu blocheazฤƒ testele ulterioare.
  • ๐Ÿ•’ sincronizare: Executaศ›i suita imediat ce versiunea ajunge รฎn mediul de control al calitฤƒศ›ii sau de testare, รฎnainte de รฎnceperea oricฤƒrei teste funcศ›ionale.
  • ๐Ÿ‘ค Proprietate: Inginerii de asigurare a calitฤƒศ›ii sau responsabilul cu asigurarea calitฤƒศ›ii aleg funcศ›ionalitatea criticฤƒ ศ™i decid dacฤƒ acceptฤƒ sau resping construirea.
  • ๐Ÿงญ Cฤƒi critice: Menศ›ineศ›i o acoperire amplฤƒ ศ™i superficialฤƒ pentru autentificare, cฤƒutare, introducere de date, platฤƒ ศ™i deconectare รฎntr-o singurฤƒ trecere.
  • โฑ๏ธ Buget de execuศ›ie: Menศ›ineศ›i rulajul la aproximativ douฤƒzeci pรขnฤƒ la treizeci de cazuri ศ™i zece pรขnฤƒ la cincisprezece minute, astfel รฎncรขt poarta de acces sฤƒ nu devinฤƒ niciodatฤƒ un blocaj.
  • โš™๏ธ Automatizare: Conectaศ›i suita la canalul CI/CD, astfel รฎncรขt fiecare commit ศ™i fiecare implementare sฤƒ fie verificate fฤƒrฤƒ efort manual.
  • ๐Ÿšซ Controlul descuamฤƒrii: Retrageศ›i cazurile cu dependenศ›e mari ศ™i inconsistente, deoarece o poartฤƒ nesigurฤƒ distruge รฎncrederea รฎn verdictul de construire.

Ce este testarea fumului?

Testarea fumului este un proces de testare a software-ului care determinฤƒ dacฤƒ versiunea software implementatฤƒ este stabilฤƒ sau nu. Testarea fumului este o confirmare pentru echipa QA de a continua cu teste software ulterioare. Constฤƒ dintr-un set minim de teste rulate pe fiecare build pentru a testa funcศ›ionalitฤƒศ›ile software. Testarea de fum este cunoscutฤƒ ศ™i sub denumirea de โ€žTest de verificare a construcศ›ieiโ€ sau โ€žTest de รฎncredereโ€.

รŽn termeni simpli, testarea automatฤƒ รฎnseamnฤƒ verificarea faptului cฤƒ funcศ›iile importante funcศ›ioneazฤƒ ศ™i cฤƒ nu existฤƒ obstacole รฎn versiunea testatฤƒ. Este un mini-test de regresie rapid al funcศ›ionalitฤƒศ›ilor majore. Acest lucru ajutฤƒ la determinarea dacฤƒ versiunea are defecte, astfel รฎncรขt orice testare ulterioarฤƒ sฤƒ fie o pierdere de timp ศ™i resurse.

Comparaลฃie Test de fum vs sanitate

De ce facem teste de fum?

Testarea cu fum joacฤƒ un rol important รฎn dezvoltarea de software, deoarece asigurฤƒ corectitudinea sistemului รฎn etapele iniศ›iale. Prin aceasta, putem economisi efort de testare. Abia dupฤƒ ce finalizฤƒm testarea cu fum, รฎncepem testarea funcศ›ionalฤƒ.

  • Toate aspectele spectaculoase ale construcศ›iei vor fi identificate prin efectuarea testelor de fum.
  • Cu ajutorul testฤƒrii cu fum, majoritatea defectelor sunt identificate รฎn stadiile iniศ›iale ale de dezvoltare de software.
  • Prin testarea fumului, simplificฤƒm detectarea ศ™i corectarea defectelor majore.
  • Prin testarea de fum, echipa QA poate gฤƒsi defecte ale funcศ›ionalitฤƒศ›ii aplicaศ›iei care ar fi putut sฤƒ fi apฤƒrut de noul cod.
  • Testarea fumului descoperฤƒ defecte majore de severitate.

Exemplu 1: Fereastra de รฎnregistrare: se poate trece la urmฤƒtoarea fereastrฤƒ cu nume de utilizator ศ™i parolฤƒ valide fฤƒcรขnd clic pe butonul de trimitere.

Exemplu 2: Utilizatorul nu se poate deconecta de la pagina web.

Cรขnd facem testarea fumului?

Aceste beneficii se materializeazฤƒ doar dacฤƒ verificarea este declanศ™atฤƒ la momentul potrivit. Testarea fumului (Smoke Testing) se efectueazฤƒ ori de cรขte ori noile funcศ›ionalitฤƒศ›i ale software-ului sunt dezvoltate ศ™i integrate cu versiunea existentฤƒ implementatฤƒ รฎn mediul QA/staging. Aceasta asigurฤƒ cฤƒ toate funcศ›ionalitฤƒศ›ile critice funcศ›ioneazฤƒ corect sau nu. Diagrama de mai jos aratฤƒ cum o versiune ajunge รฎn mediul QA รฎnainte de รฎnceperea testฤƒrii fumului.

รŽn aceastฤƒ metodฤƒ de testare, echipa de dezvoltare implementeazฤƒ versiunea construitฤƒ รฎn cadrul QA. Un subset de cazuri de testare este luat ศ™i rulat de testeri pe baza funcศ›ionalitฤƒศ›ilor critice ale versiunii. Aceste serii de cazuri de testare sunt concepute pentru a expune erorile existente รฎn versiune. Dacฤƒ aceste teste sunt trecute, echipa QA continuฤƒ cu... Functional Testing.

Orice defecศ›iune indicฤƒ necesitatea de a gestiona sistemul รฎnapoi cฤƒtre echipa de dezvoltare. Ori de cรขte ori existฤƒ o schimbare รฎn construcศ›ie, efectuฤƒm testarea fumului pentru a asigura stabilitatea.

Exemplu: -Butonul de รฎnregistrare nou este adฤƒugat รฎn fereastra de autentificare ศ™i versiunea este implementatฤƒ cu noul cod. Efectuฤƒm teste de fum pe o construcศ›ie nouฤƒ.

Testele de fum calificฤƒ versiunea pentru teste formale ulterioare ศ™i sunt concepute pentru a demonstra stabilitatea sistemului ศ™i conformitatea cu cerinศ›ele. Scopul principal este de a detecta din timp problemele majore. O versiune include toate fiศ™ierele de date, bibliotecile, modulele reutilizabile ศ™i componentele proiectate necesare pentru implementarea uneia sau mai multor funcศ›ii ale produsului.

Ce se รฎntรขmplฤƒ dacฤƒ nu efectuฤƒm testarea fumului

Dacฤƒ nu efectuฤƒm teste de fum รฎn stadiile incipiente, pot apฤƒrea defecte รฎn stadiile ulterioare, unde acest lucru poate fi costisitor. Defect descoperite รฎn etapele ulterioare pot fi un obstacol care afecteazฤƒ lansarea rezultatelor.

Cine va face testarea fumului?

Dupฤƒ lansarea build-ului รฎn mediul QA, Smoke Testing este efectuat de cฤƒtre inginerii QA/responsabilul QA. Ori de cรขte ori existฤƒ o nouฤƒ construcศ›ie, echipa QA determinฤƒ funcศ›ionalitatea majorฤƒ a aplicaศ›iei pentru a efectua testarea fumului. Echipa QA verificฤƒ dacฤƒ existฤƒ showstoppers รฎn aplicaศ›ia care este รฎn curs de testare.

Cum se face testarea fumului?

Testarea fumului se face de obicei manual, deศ™i existฤƒ posibilitatea de a realiza acelaศ™i lucru prin automatizare. Poate varia de la organizaศ›ie la organizaศ›ie.

Testarea manualฤƒ a fumului

Testarea funcศ›ionalฤƒ este efectuatฤƒ pentru a se asigura cฤƒ navigarea pe cฤƒile critice este conform aศ™teptฤƒrilor ศ™i nu รฎmpiedicฤƒ funcศ›ionalitatea. Se iau cazuri de testare a funcศ›ionalitฤƒศ›ii cu prioritate ridicatฤƒ ศ™i se testeazฤƒ pentru a gฤƒsi defectele critice din sistem. Dacฤƒ testul este valid, continuฤƒm testarea funcศ›ionalฤƒ. Dacฤƒ testul eศ™ueazฤƒ, versiunea este respinsฤƒ ศ™i trimisฤƒ รฎnapoi echipei de dezvoltare pentru corectare.

Asigurarea calitฤƒศ›ii reia testarea fumului cu o nouฤƒ versiune de compilare. Testarea fumului se efectueazฤƒ pe compilarea nouฤƒ ศ™i va fi integratฤƒ cu compilaศ›iile vechi pentru a menศ›ine corectitudinea sistemului. รŽnainte de a efectua testarea fumului, echipa de asigurare calitฤƒศ›ii ar trebui sฤƒ verifice dacฤƒ versiunile de compilare sunt corecte.

Testarea fumului prin automatizare

Testarea automatizฤƒrii este folosit pentru Testarea regresieiTotuศ™i, putem folosi ศ™i un set de cazuri de testare automate pentru a rula รฎmpotriva Smoke Test. Cu ajutorul testelor de automatizare, dezvoltatorii pot verifica imediat versiunea, ori de cรขte ori existฤƒ o versiune nouฤƒ gata de implementare.

รŽn loc sฤƒ se repete manual testul de fiecare datฤƒ cรขnd noua versiune de software este implementatฤƒ, cazurile de testare de fum รฎnregistrate sunt executate รฎmpotriva versiunii. Acesta verificฤƒ dacฤƒ funcศ›ionalitฤƒศ›ile majore funcศ›ioneazฤƒ รฎn continuare corect. Dacฤƒ testul eศ™ueazฤƒ, atunci ei pot corecta construcศ›ia ศ™i redistribui construirea imediat. Prin aceasta, putem economisi timp ศ™i putem asigura o construcศ›ie de calitate a mediului QA.

Folosind un instrument automat, inginerul de testare รฎnregistreazฤƒ toศ›i paศ™ii manuali care sunt executaศ›i รฎn versiunea software.

Ciclul de testare a fumului

Diagrama de mai jos aratฤƒ cum se executฤƒ testarea fumului. Dupฤƒ ce versiunea de construcศ›ie este implementatฤƒ รฎn cadrul QA ศ™i testele de fum sunt trecute, se trece la testarea funcศ›ionalฤƒ. Dacฤƒ testul de fum eศ™ueazฤƒ, รฎnchidem testarea pรขnฤƒ cรขnd problema din versiune este remediatฤƒ.

Cele mai bune practici pentru proiectarea cazurilor de testare a fumului

A cunoaศ™te ciclul e un lucru; keeping Suita care o face demnฤƒ de รฎncredere este o altฤƒ opศ›iune. O suitฤƒ pentru fumฤƒtori รฎศ™i cรขศ™tigฤƒ locul doar atunci cรขnd rฤƒmรขne compactฤƒ, rapidฤƒ ศ™i repetabilฤƒ.

  • Mai รฎntรขi, cartografiaศ›i cฤƒile critice: Enumeraศ›i fluxurile de lucru care fac produsul utilizabil comercial, cum ar fi autentificarea, cฤƒutarea, introducerea datelor, plata ศ™i deconectarea. Dacฤƒ unul dintre ele se defecteazฤƒ, versiunea nu are nicio valoare pentru un tester.
  • Pฤƒstraศ›i suita puศ›in adรขncฤƒ, dar largฤƒ: Atingeศ›i fiecare modul major o datฤƒ, รฎn loc sฤƒ exploraศ›i un singur modul รฎn profunzime. Valorile limitฤƒ, datele negative ศ™i formularea mesajelor de eroare aparศ›in testฤƒrii funcศ›ionale, nu aici.
  • Limitaศ›i timpul de execuศ›ie: Majoritatea echipelor ศ›in alergarea รฎntre zece ศ™i cincisprezece minute ศ™i limiteazฤƒ suita la aproximativ douฤƒzeci pรขnฤƒ la treizeci. cazuri de testareO alergare care dureazฤƒ o orฤƒ รฎnceteazฤƒ sฤƒ mai fie o poartฤƒ ศ™i devine un blocaj.
  • Rulaศ›i aceleaศ™i cazuri la fiecare compilare: Consistenศ›a vฤƒ permite sฤƒ atribuiศ›i o eroare codului, mai degrabฤƒ decรขt unei selecศ›ii de test modificate.
  • Eliminaศ›i cazurile instabile ศ™i cele cu dependenศ›e mari: Un caz care trece ศ™i eศ™ueazฤƒ fฤƒrฤƒ nicio modificare a codului distruge รฎncrederea รฎn poartฤƒ. Servicii terศ›e instabile de tip stub sau mock รฎn care cadru de automatizare a testelor permite.
  • รŽnregistraศ›i un verdict fฤƒrฤƒ echivoc: Fiecare caz are nevoie de un singur rezultat aศ™teptat, astfel รฎncรขt construcศ›ia sฤƒ poatฤƒ fi acceptatฤƒ sau respinsฤƒ fฤƒrฤƒ dezbatere.
  • Versioneazฤƒ suita cu compilarea: Stocaศ›i cazurile de fum รฎn acelaศ™i depozit ca ศ™i codul aplicaศ›iei, astfel รฎncรขt poarta sฤƒ se potriveascฤƒ รฎntotdeauna cu versiunea testatฤƒ.

RevVizualizaศ›i suita la fiecare lansare: retrageศ›i cazurile pentru funcศ›iile care nu mai conteazฤƒ ศ™i adฤƒugaศ›i fluxuri de lucru noi ศ™i critice.

Testarea fumului รฎn conductele CI/CD

O suitฤƒ proiectatฤƒ รฎn acest fel este suficient de ieftinฤƒ pentru a rula la fiecare commit, ceea ce necesitฤƒ livrarea modernฤƒ. integrare continuฤƒ server, cum ar fi Jenkins compileazฤƒ codul, รฎl implementeazฤƒ รฎntr-un mediu de staging ศ™i apoi declanศ™eazฤƒ suita de procese fumat (smoke suit) ca primฤƒ etapฤƒ automatฤƒ. O rulare verde promoveazฤƒ artefactul la etapele funcศ›ionale ศ™i de regresie, รฎn timp ce o rulare roศ™ie eศ™ueazฤƒ pipeline-ul ศ™i notificฤƒ dezvoltatorul care a efectuat comiterea รฎn cรขteva minute.

Douฤƒ plasฤƒri sunt comune. O rulare pre-merge protejeazฤƒ ramura principalฤƒ prin validarea fiecฤƒrei solicitฤƒri de extragere, iar o rulare post-implementare confirmฤƒ cฤƒ mediul implementat este accesibil ศ™i configurat corect. Echipele care practicฤƒ implementarea continuฤƒ adaugฤƒ adesea o a treia rulare, ajustatฤƒ, รฎn producศ›ie imediat dupฤƒ lansare.

Deoarece pipeline-ul executฤƒ suita de mai multe ori pe zi, cazurile trebuie sฤƒ fie neinteractive, autocurฤƒศ›abile ศ™i independente. Orice caz care aศ™teaptฤƒ o decizie umanฤƒ sau lasฤƒ รฎn urmฤƒ date de testare va bloca pipeline-ul.

Avantajele testฤƒrii fumului

Iatฤƒ cรขteva avantaje enumerate pentru testarea fumului.

  • Uศ™or de executat ศ™i ruleazฤƒ rapid
  • Erorile ศ™i defectele critice sunt uศ™or de detectat ศ™i corectat รฎn stadii incipiente.
  • รŽmbunฤƒtฤƒศ›eศ™te calitatea sistemului
  • Reduce riscul
  • Progresul este mai uศ™or de evaluat.
  • Economiseศ™te timp ศ™i efort de testare
  • Minimizeazฤƒ riscurile de integrare

โš  Limitare de reศ›inut: O testare superficialฤƒ a unui test indicฤƒ doar cฤƒ versiunea este testabilฤƒ. Atinge superficial funcศ›ionalitฤƒศ›ile majore, aศ™a cฤƒ defectele minore, cazurile limitฤƒ ศ™i caracteristicile rareori utilizate rฤƒmรขn ascunse pรขnฤƒ la efectuarea testelor funcศ›ionale ศ™i de regresie. Nu consideraศ›i niciodatฤƒ un test verde ca un semn cฤƒ versiunea nu are defecte.

Testarea fumului vs. testarea sฤƒnฤƒtฤƒศ›ii mentale vs. testarea regresiei

Toate trei ruleazฤƒ dupฤƒ o modificare a codului, motiv pentru care sunt adesea confundate. Ele diferฤƒ รฎn ceea ce priveศ™te domeniul de aplicare, profunzimea ศ™i รฎntrebarea la care rฤƒspunde fiecare.

Testarea efectuatฤƒ รฎntr-un mediu de dezvoltare asupra codului pentru a asigura corectitudinea aplicaศ›iei รฎnainte de lansarea versiunii pentru QA, aceasta fiind cunoscutฤƒ sub numele de testare de conformitate. Este un proces care verificฤƒ dacฤƒ aplicaศ›ia รฎn curs de dezvoltare รฎndeplineศ™te cerinศ›ele funcศ›ionale de bazฤƒ.

Testarea corectฤƒ determinฤƒ finalizarea fazei de dezvoltare ศ™i ia decizia dacฤƒ trece sau nu produsul software pentru faza de testare ulterioarฤƒ.

BAZA TESTAREA FUMULUI TESTARE DE SANITATE TESTAREA REGRESIEI
domeniu Lat ศ™i superficial รŽngust ศ™i adรขnc Lat ศ™i adรขnc
รŽntrebare rฤƒspunsฤƒ Este aceastฤƒ construcศ›ie suficient de stabilฤƒ pentru a fi testatฤƒ? Funcศ›ioneazฤƒ aceastฤƒ soluศ›ie specificฤƒ? S-a stricat ceva ce funcศ›iona รฎnainte?
Secvenลฃฤƒ รŽn primul rรขnd, la fiecare construcศ›ie Dupฤƒ ce testul cu fum este trecut Dupฤƒ testarea sฤƒnฤƒtฤƒศ›ii mintale
Duratฤƒ tipicฤƒ 10 pรขnฤƒ la 15 minute 30 pรขnฤƒ la 60 minute Hours pรขnฤƒ la zile
Potrivirea automatizฤƒrii Foarte inalt Moderat, adesea manual Foarte inalt

รŽn practicฤƒ, acestea ruleazฤƒ รฎn secvenศ›ฤƒ: testarea automatฤƒ pentru acceptarea construcศ›iei, testarea integritฤƒศ›ii funcศ›ionale pentru verificarea modificฤƒrilor livrate ศ™i testarea de regresie atunci cรขnd programul permite.

Exemplu de cazuri de test de fum Exemplu

Tabelul de mai jos documenteazฤƒ o suitฤƒ scurtฤƒ de fum, cรขte un rรขnd per cale criticฤƒ.

T.ID SCENARIILE DE TESTARE DESCRIERE PASUL DE TESTARE REZULTAT ASTEPTAT REZULTAT ACTUAL STAREA
1 Date de conectare valide Testaศ›i funcศ›ionalitatea de conectare a aplicaศ›iei web pentru a vฤƒ asigura cฤƒ unui utilizator รฎnregistrat รฎi este permis sฤƒ se autentifice cu numele de utilizator ศ™i parola 1. Lansaศ›i aplicaศ›ia
2.Navigaศ›i pe pagina de conectare
3.Introduceศ›i un nume de utilizator valid
4.Introduceศ›i parola validฤƒ
5. Faceศ›i clic pe butonul de conectare
Conectarea ar trebui sฤƒ aibฤƒ succes cum era de aศ™teptat Trece
2 Adฤƒugarea funcศ›ionalitฤƒศ›ii articolului Posibilitatea de a adฤƒuga un articol รฎn coศ™ 1.Selectaศ›i lista de categorii
2.Adฤƒugaศ›i articolul รฎn coศ™
Articolul ar trebui adฤƒugat รฎn coศ™ Articolul nu este adฤƒugat รฎn coศ™ Eศ™ua
3 Funcศ›ionalitatea de deconectare Verificaศ›i funcศ›ionalitatea de deconectare 1. selectaศ›i butonul de deconectare Utilizatorul ar trebui sฤƒ se poatฤƒ deconecta. Utilizatorul nu se poate deconecta Eศ™ua

รŽntrebฤƒri frecvente

Numele provine din ingineria hardware, unde un dispozitiv nou asamblat trecea prima verificare dacฤƒ nu emitea fum la pornire. Software-ul a รฎmprumutat ideea: dacฤƒ construcศ›ia supravieศ›uieศ™te unei verificฤƒri rapide la pornire, pot รฎncepe teste mai aprofundate.

Majoritatea echipelor rezolvฤƒ รฎntre douฤƒzeci ศ™i treizeci de cazuri, zece fiind un minim practic ศ™i cincizeci ca limitฤƒ superioarฤƒ. Adevฤƒrata constrรขngere este timpul: dacฤƒ durata completฤƒ depฤƒศ™eศ™te cincisprezece minute, se reduc cazurile pรขnฤƒ cรขnd se potriveศ™te.

Da. Instrumentele de inteligenศ›ฤƒ artificialฤƒ pot citi cerinศ›e, poveศ™ti ale utilizatorilor sau jurnale de trafic de producศ›ie ศ™i pot propune cฤƒile critice cu cel mai mare trafic ca ศ™i cazuri candidate de fum. Un inginer de asigurare a calitฤƒศ›ii trebuie sฤƒ aprobe รฎn continuare selecศ›ia, deoarece modelul nu poate evalua riscul comercial.

Ajutฤƒ considerabil. Localizatoare cu auto-vindecare รฎn stilul modern instrumente de testare a automatizฤƒrii reidentificฤƒ un element mutat sau redenumit รฎn loc sฤƒ eศ™ueze, ceea ce eliminฤƒ alarmele false care fac ca o poartฤƒ de fum sฤƒ nu fie de รฎncredere. RevPriveศ™te fiecare localizator vindecat รฎnainte de a avea รฎncredere รฎn el.

Selenium ศ™i Cypress acoperirea fluxurilor de browser, Postman ศ™i SoapUI acoperฤƒ punctele finale API ศ™i JUnit, TestNG, PyTest sau Jest ruleazฤƒ suita. Robot Framework se potriveศ™te echipelor bazate pe cuvinte cheie.

Rezumaศ›i aceastฤƒ postare cu: