Ce este testarea componentelor? Tehnici, exemple de cazuri de testare

โšก Rezumat inteligent

Testarea componentelor verificฤƒ fiecare parte individualฤƒ a unei aplicaศ›ii รฎn mod independent, fฤƒrฤƒ a o integra cu restul, astfel รฎncรขt defectele sฤƒ fie gฤƒsite ศ™i remediate รฎn interiorul unui singur modul รฎnainte de รฎnceperea asamblฤƒrii.

  • ๐Ÿงฉ Domeniu de aplicare: Cรขte o componentฤƒ pe rรขnd, izolatฤƒ de componentele din jurul ei.
  • ๐Ÿ‘ฅ Proprietar: Testerii รฎl ruleazฤƒ dupฤƒ ce dezvoltatorii terminฤƒ testarea unitarฤƒ.
  • ๐Ÿ”ฌ CTIS: Testarea componentelor รฎn format Small izoleazฤƒ complet componenta.
  • ๐Ÿ”— CTIL: Testarea componentelor รฎn format Large pฤƒstreazฤƒ dependenศ›ele, reale sau simulate.
  • ๐Ÿงฑ Doubles: Un driver apeleazฤƒ componenta; acesta apeleazฤƒ un stub.
  • โœ… Ieศ™ire: Niciun defect critic, ridicat sau mediu nu rฤƒmรขne deschis รฎn jurnal.

Tehnici de testare a componentelor ศ™i exemple de cazuri de testare

Ce este testarea componentelor?

Testarea componentelor este un tip de testare software รฎn care testarea este efectuatฤƒ pe fiecare componentฤƒ individualฤƒ separat, fฤƒrฤƒ a o integra cu alte componente. Privitฤƒ din perspectiva arhitecturii, se mai numeศ™te ศ™i testarea modulelor, iar unele referinศ›e o numesc testare de program.

Orice software รฎn ansamblu este alcฤƒtuit din mai multe componente, iar testarea la nivel de componentฤƒ se ocupฤƒ de testarea individualฤƒ a acelor componente. Este una dintre cele mai frecvente testare cutie neagrฤƒ tipuri efectuate de echipa de asigurare a calitฤƒศ›ii.

O notฤƒ privind denumirea meritฤƒ fฤƒcutฤƒ din timp. Glosarul ISTQB trateazฤƒ testarea componentelor ศ™i testarea unitara ca sinonime pentru acelaศ™i nivel de testare. Multe echipe de livrare, ศ™i acest articol, pฤƒstreazฤƒ cele douฤƒ diferenศ›e รฎn practicฤƒ: dezvoltatorii executฤƒ teste unitare pe propriul cod, iar testerii executฤƒ apoi teste de componente pe versiunea livratฤƒ. Tabelul comparativ de la sfรขrศ™itul acestui articol prezintฤƒ aceastฤƒ distincศ›ie practicฤƒ.

Dupฤƒ cum aratฤƒ diagrama de mai jos, testarea componentelor are propria strategie ศ™i propriul plan de testare, รฎn care fiecare parte a software-ului sau a aplicaศ›iei este consideratฤƒ individual. Pentru fiecare componentฤƒ, o scenariu de testare este definit, care este apoi รฎmpฤƒrศ›it รฎn cazuri de testare de nivel รฎnalt ศ™i, รฎn final, รฎn cazuri detaliate de nivel scฤƒzut cazuri de testare cu premise.

Ierarhia testฤƒrii componentelor, de la strategia de testare pรขnฤƒ la cazurile de testare de nivel scฤƒzut

Modul รฎn care este utilizat termenul โ€žtestarea componentelorโ€ variazฤƒ de la un domeniu la altul ศ™i de la o organizaศ›ie la alta. Cele mai frecvente motive pentru aceastฤƒ diferenศ›ฤƒ de percepศ›ie sunt cele trei de mai jos.

  1. Tipul de model al ciclului de viaศ›ฤƒ al dezvoltฤƒrii ales
  2. Complexitatea software-ului sau a aplicaศ›iei testate
  3. Dacฤƒ testarea se face cu sau fฤƒrฤƒ izolare de celelalte componente din aplicaศ›ie

Ciclul de viaศ›ฤƒ al testฤƒrii software produce numeroase artefacte de testare, adicฤƒ documentele create ศ™i utilizate รฎn timpul activitฤƒศ›ilor de testare. Printre acestea se numฤƒrฤƒ politica de testare ศ™i strategia de testare care definesc ce tipuri de testare sunt utilizate ศ™i cรขt de profundฤƒ este testarea รฎntr-un anumit proiect.

Cine face testarea componentelor

Testarea componentelor este efectuatฤƒ de testeri. Testarea unitarฤƒ este efectuatฤƒ de dezvoltatori, care testeazฤƒ o funcศ›ie sau o procedurฤƒ individualฤƒ. Dupฤƒ finalizarea testฤƒrii unitare, urmeazฤƒ testarea componentelor, iar testerii รฎศ™i asumฤƒ responsabilitatea pentru aceasta.

Cรขnd se efectueazฤƒ testarea componentelor

Testarea componentelor se efectueazฤƒ la scurt timp dupฤƒ ce dezvoltatorii efectueazฤƒ testarea unitarฤƒ ศ™i versiunea este lansatฤƒ echipei de testare. Aceastฤƒ versiune este denumitฤƒ versiune UT sau versiune Unit Testing. Funcศ›ionalitatea principalฤƒ a fiecฤƒrei componente este testatฤƒ รฎn aceastฤƒ fazฤƒ.

Criterii de intrare pentru testarea componentelor

  • Setul minim de componente care trebuie incluse รฎn versiunea UT a fost dezvoltat ศ™i testat unitar.

Criterii de ieศ™ire pentru testarea componentelor

  • Funcศ›ionalitatea fiecฤƒrei componente funcศ›ioneazฤƒ conform specificaศ›iilor.
  • Niciun defect critic, de severitate ridicatฤƒ sau medie sau de prioritate nu rฤƒmรขne deschis รฎn jurnal de defecte.

Tehnici de testare a componentelor

Pe baza profunzimii nivelului de testare, testarea componentelor este clasificatฤƒ รฎn douฤƒ moduri.

  1. CTIS โ€” Testarea componentelor รฎn mici
  2. CTIL โ€” Testarea componentelor pe scarฤƒ largฤƒ

CTIS โ€” Testarea componentelor รฎn mici

Testarea componentelor se poate face cu sau fฤƒrฤƒ izolare de celelalte componente din aplicaศ›ia testatฤƒ. Atunci cรขnd este efectuatฤƒ cu celelalte componente izolate, se numeศ™te testare a componentelor la scarฤƒ micฤƒ.

Exemplu 1: Pe un site web cu cinci pagini web diferite, testarea fiecฤƒrei pagini web separat ศ™i izolat de celelalte componente este o testare a componentelor la scarฤƒ micฤƒ.

Exemplu 2: Pagina principalฤƒ guru99.com prezentatฤƒ mai jos conศ›ine multe componente, cum ar fi Acasฤƒ, Testare, SAP, Web, Trebuie sฤƒ รฎnveศ›i!, Big Data, Proiecte live ศ™i Blog.

Guru99 de meniuri de navigare pe pagina principalฤƒ tratate ca componente separate, testabile

Orice software este alcฤƒtuit din mai multe componente รฎn acelaศ™i mod, iar fiecare componentฤƒ are propriile subcomponente. Testarea fiecฤƒrui modul enumerat รฎn Exemplul 2 separat, fฤƒrฤƒ a lua รฎn considerare integrarea sa cu celelalte componente, este o testare a componentelor la scarฤƒ micฤƒ.

Deschiderea meniului derulant Testare dezvฤƒluie subcomponentele componentei Testare: Testarea manualฤƒ, SOAPUI, QTP, JUnit, Selenium, Managementul Testelor ศ™i Testare mobilฤƒรŽn captura de ecran de mai jos, acele subcomponente sunt evidenศ›iate cu roศ™u.

Meniu derulant Testare cu subcomponentele sale evidenศ›iate cu roศ™u

CTIL โ€” Testarea componentelor pe scarฤƒ largฤƒ

Testarea componentelor efectuatฤƒ fฤƒrฤƒ izolare de celelalte componente din aplicaศ›ia testatฤƒ se numeศ™te testare a componentelor pe scarฤƒ largฤƒ.

Un exemplu clarificฤƒ diferenศ›a. Sฤƒ presupunem cฤƒ o aplicaศ›ie este formatฤƒ din trei componente: Componenta A, Componenta B ศ™i Componenta C.

Dezvoltatorul a construit Componenta B ศ™i doreศ™te sฤƒ fie testatฤƒ. Pentru a testa complet Componenta B, o parte din funcศ›ionalitatea sa depinde de Componenta A ศ™i o parte de Componenta C, aศ™a cum ilustreazฤƒ diagrama de mai jos.

Componenta B testatฤƒ cu un driver care รฎnlocuieศ™te componenta A ศ™i un stub care รฎnlocuieศ™te componenta C

Fluxul de funcศ›ionalitฤƒศ›i este A โ†’ B โ†’ C, ceea ce รฎnseamnฤƒ cฤƒ Componenta B depinde atรขt de A, cรขt ศ™i de C. รŽn acest flux, stub-ul este funcศ›ia apelatฤƒ, iar driverul este funcศ›ia apelantฤƒ.

Componentele A ศ™i C nu au fost รฎncฤƒ dezvoltate. Pentru a testa complet componenta B, A ศ™i C sunt รฎnlocuite cu un driver ศ™i un stub, dupฤƒ cum este necesar, astfel รฎncรขt cele douฤƒ piese lipsฤƒ acศ›ioneazฤƒ ca obiecte fictive pรขnฤƒ cรขnd cele reale apar.

  • Ciot: Un stub este apelat de componenta testatฤƒ. Componenta C nu este gata, aศ™a cฤƒ un stub รฎl รฎnlocuieศ™te ศ™i returneazฤƒ rฤƒspunsurile aศ™teptate de B.
  • Conducฤƒtor auto: Un driver apeleazฤƒ componenta testatฤƒ. Componenta A nu este gata, aศ™a cฤƒ un driver o รฎnlocuieศ™te ศ™i invocฤƒ componenta B cu intrฤƒrile necesare.

Exemple de cazuri de testare pentru testarea componentelor

Cele douฤƒ pagini web de mai jos sunt interconectate din punct de vedere funcศ›ional, ceea ce le face o pereche utilฤƒ de componente de testat.

Pagina web 1 este pagina de conectare a site-ului bancar demonstrativ.

Componentฤƒ paginฤƒ de autentificare cu cรขmpuri pentru ID utilizator ศ™i parolฤƒ

Cรขnd utilizatorul introduce un ID de utilizator ศ™i o parolฤƒ valide ศ™i dฤƒ clic pe butonul de trimitere, pagina navigheazฤƒ cฤƒtre pagina principalฤƒ a site-ului web al bฤƒncii demo, afiศ™atฤƒ รฎn continuare.

Componentฤƒ a paginii principale a managerului cu linkuri de navigare ศ™i imagini

Aici, pagina de conectare este o componentฤƒ, iar pagina principalฤƒ este alta. Testarea funcศ›ionalitฤƒศ›ii fiecฤƒrei pagini separat este testarea componentelor.

Scenarii de testare a componentelor pe pagina web 1:

  • Introduceศ›i un ID de utilizator nevalid ศ™i verificaศ›i dacฤƒ utilizatorul final afiศ™eazฤƒ un avertisment uศ™or de utilizat.
  • Introduceศ›i un ID de utilizator ศ™i o parolฤƒ nevalide, faceศ›i clic pe Resetare ศ™i verificaศ›i dacฤƒ cรขmpurile pentru ID de utilizator ศ™i parolฤƒ sunt golite.
  • Introduceศ›i un nume de utilizator ศ™i o parolฤƒ valide ศ™i faceศ›i clic pe butonul Autentificare.

Scenarii de testare a componentelor pe pagina web 2:

  • Verificaศ›i dacฤƒ mesajul de bun venit pentru pagina managerului este afiศ™at pe pagina principalฤƒ.
  • Verificaศ›i dacฤƒ toate linkurile din partea stรขngฤƒ a paginii web pot fi accesate cu un clic.
  • Verificaศ›i dacฤƒ ID-ul managerului este afiศ™at รฎn centrul paginii principale.
  • Verificaศ›i prezenศ›a celor trei imagini diferite pe pagina principalฤƒ, conform diagramei.

Testarea unitarฤƒ vs testarea componentelor

Tabelul de mai jos prezintฤƒ pe scurt cum diferฤƒ cele douฤƒ niveluri รฎn practica de zi cu zi.

Testarea unitฤƒศ›ii Testarea componentelor
Testarea programelor ศ™i modulelor individuale pentru a demonstra cฤƒ programul se executฤƒ conform specificaศ›iilor. Testarea fiecฤƒrui obiect sau parte a software-ului separat, cu sau fฤƒrฤƒ izolare de alte obiecte.
Validat รฎn funcศ›ie de documentele de proiectare. Validat รฎn funcศ›ie de cerinศ›ele de testare ศ™i cazurile de utilizare.
Realizat de dezvoltatori. Realizat de testeri.
Gata mai รฎntรขi. Se face dupฤƒ finalizarea testฤƒrii unitare la nivelul dezvoltatorilor.
Defectele sunt de obicei remediate pe loc ศ™i nu sunt รฎnregistrate oficial. Defectele sunt รฎnregistrate ศ™i tracrezolvate prin procesul de gestionare a defectelor.

รŽntrebฤƒri frecvente

Reducerea riscului, verificarea comportamentului funcศ›ional ศ™i nefuncศ›ional al componentei, construirea รฎncrederii รฎn calitatea acesteia, identificarea defectelor ศ™i prevenirea apariศ›iei acestora.ping cฤƒtre niveluri de testare superioare.

Modelele citesc o componentฤƒ contract ศ™i propune intrฤƒrile nevalide, valorile limitฤƒ ศ™i cฤƒile de eroare pe care o trecere manualฤƒ tinde sฤƒ le rateze. Un tester confirmฤƒ รฎn continuare fiecare rezultat aศ™teptat รฎnainte de execuศ›ie.

Da. Un cod stub care returneazฤƒ rฤƒspunsuri predefinite ศ™i un driver care alimenteazฤƒ intrฤƒri fixe sunt cod formulat pe care un asistent รฎl scrie rapid. Decizia privind rฤƒspunsurile realiste rฤƒmรขne o responsabilitate umanฤƒ.

Testarea componentelor examineazฤƒ o componentฤƒ รฎn mod separat. testarea de integrare examineazฤƒ interfeศ›ele ศ™i interacศ›iunile dintre componente ศ™i ruleazฤƒ dupฤƒ testarea componentelor.

Codecadre de nivel, cum ar fi JUnit, TestNG, NUnit ศ™i pytest, plus rulouri de componente UI, cum ar fi Cypress Testarea componentelor, Storybook ศ™i Jest. Toate se potrivesc รฎntr-un automatizare conductฤƒ.

Construirea ศ™i รฎntreศ›inerea dublurilor. Un stub care se รฎndepฤƒrteazฤƒ de componenta realฤƒ ascunde defectele pรขnฤƒ la integrare, aศ™adar fiecare rฤƒspuns simulat trebuie revizuit odatฤƒ ce dependenศ›a realฤƒ este livratฤƒ.

Inverseazฤƒ ordinea. Cazurile sunt scrise ศ™i automatizate รฎnainte ca componenta sฤƒ existe, apoi se adaugฤƒ cod pรขnฤƒ cรขnd acestea sunt acceptate. Componenta soseศ™te deja cu suita sa de teste instalatฤƒ.

Ambele, รฎn funcศ›ie de cine le executฤƒ. Testerii lucreazฤƒ รฎn regim de tip โ€žcutie neagrฤƒโ€ conform specificaศ›iilor componentei, รฎn timp ce dezvoltatorii cu acces la cod aplicฤƒ cutie albฤƒ acoperire รฎn interiorul aceleiaศ™i componente.

Rezumaศ›i aceastฤƒ postare cu: