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.

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 |


