Introducere în testarea cutiei albe

Testarea este una dintre părțile importante ale dezvoltării software, asigurându-se că toate bug-urile sunt sortate și programul funcționează așa cum a fost menit. Testarea unui produs software poate avea mai multe etape și mai multe proceduri. În acest articol, vom arunca o privire la una dintre abordările importante ale procesului de testare, White Box Testing.

Ce este testarea cutiei albe?

Testarea în cutie albă se mai numește și testarea bazelor de cod, testarea în cutii clare, testarea în cutii deschise și testarea structurală. Ideea de bază a acestei abordări a testării software este să aruncăm o privire la designul structurii interne și la codul programului pentru a-l testa.

În testarea în cutie albă, testerul poate vedea întregul cod al programului și este însărcinat să verifice fluxul de funcționare a intrărilor și ieșirilor în program. Spre deosebire de testarea la cutie neagră, care este mai concentrată pe testarea funcționalității programului, White Box Testing este preocupat de testarea structurilor interne ale programului. Aruncând o privire la program în acest mod ne permite să lucrăm la îmbunătățirea designului, a capacității de utilizare și a eficientizării produsului.

După cum puteți ghici, a numit testare cutie albă sau cutie de sticlă, deoarece testerul poate vedea codul și alte părți ale programului.

Ceea ce face testarea cutiei albe diferă de testarea cutiei negre

Dacă v-ați dat vârful degetelor în testare în trecut, sunt sigur că ați dat peste Black Box Testing. Cea mai mare diferență între White Box Testing și Black Box Testing este că spre deosebire de testarea Black Box, care se face din punctul de vedere al utilizatorului, White Box Testing se face din punctul de vedere al dezvoltatorului.

Cu alte cuvinte, în loc să aruncăm o privire asupra programului din exterior, abordarea White Box Testing vede codul intern și îl testează.

Cum se efectuează testarea cutiei albe?

Putem împărți procesul de testare a cutiei albe în două etape majore.

1. Înțelegerea codului furnizat

La început, un tester în White Box Testing va trebui să învețe codul aplicației. Având în vedere faptul că White Box Testing se referă la înțelegerea și testarea întregului cod intern al programului, oricine este însărcinat cu testarea codului, nu trebuie să aibă doar cunoștințe bune de programare, dar va fi, de asemenea, necesar să aibă o mână bună cu limbajul. a codului sursă.

Securitatea este unul dintre aspectele importante ale testării White Box, astfel încât testatorul va trebui să fie bun și în practicile de codare sigure.

2. Crearea cazurilor de testare și executarea acestora

După ce codul a fost studiat de către echipa de testare, ei pot începe testarea codului pentru a verifica debitul și structura corespunzătoare. Pentru a face acest lucru, testerii vor scrie unele coduri pentru unele cazuri de testare care vor încerca să parcurgă toate liniile de cod prezente în program.

Poate fi făcut și în testarea manuală care implică încercări și erori. Testerele pot utiliza, de asemenea, unele instrumente de testare automate, cum ar fi JUnit și NUnit.

Un exemplu de testare a cutiei albe

Pentru a înțelege mai bine conceptul de White Box Testing, aruncați o privire la codul de mai jos:

print (int x, int y) (
int sum = x + y;
If ( sum > 0 )
Print ( "Positive", result )
Else
Print ( "Negative", result )
)

Așa cum am discutat anterior, scopul White Box Testing este de a traversa toate ramurile, buclele și declarațiile care sunt prezente în cod. Având în vedere că, putem face 2 cazuri de testare, unul în care ambele intrări sunt pozitive și altul în care ambele intrări sunt numere întregi negative.

Exemplu:

  • A = 10 și B = 20
  • A = -10 și B = -20

Tehnici de testare a cutiei albe

Una dintre cele mai populare tehnici de testare pentru testarea cutiei albe este denumită analiză de acoperire a codului, această tehnică încearcă să elimine orice lacune din setul de cazuri de testare și identifică secțiuni ale unei aplicații care nu sunt utilizate de cazurile de testare. Odată găsite aceste lacune, putem crea cazuri pentru a vedea și verifica părți ale codului care nu este testat, ceea ce duce la un produs mai șlefuit la final.

Urmează câteva tehnici de analiză a acoperirii:

  • Acoperire de declarații: în această metodă, încercăm să traversăm toate afirmațiile din cod cel puțin o dată. Acest lucru asigură că tot codul este testat.
  • Acoperirea sucursalei: Această metodă este planificată să parcurgă fiecare ramură a punctelor de decizie din cod. Aceasta vă asigură că toate deciziile sunt cel puțin testate o dată.

Există și alte tehnici de testare, aici sunt doar câteva:

  • Acoperirea condițiilor: În această tehnică de testare, ne asigurăm că toate condițiile sunt acoperite în cod, de exemplu:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

După cum puteți vedea, aici avem 2 condiții: A == 0 și B == 0. Acum, aceste condiții primesc ADEVĂRARE și FALĂ ca valori. Un exemplu posibil poate fi:

# TC1 - A = 0, B = 110
# TC2 - A = 10, B = 0

  • Acoperire cu mai multe condiții: aceasta este un pic mai avansată decât ultima. După cum puteți ghici, testăm toate combinațiile posibile și toate rezultatele posibile cel puțin o dată. Iată un exemplu decent:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

# TC1: A = 0, B = 0
# TC2: A = 0, B = 10
# TC3: A = 110, B = 0
# TC4: A = 110, B = 5

De aici. Avem nevoie de 4 cazuri de testare pentru 2 condiții.

Prin urmare, dacă nu există n condiții, vom avea nevoie de 2 n cazuri de testare.

  • Testarea căii de bază: în această tehnică de testare a cutiei albe, realizăm graficul fluxului de control și apoi calculăm complexitatea ciclomatică care este numărul de căi independente. Folosind complexitatea ciclomatică, putem găsi numărul minim de cazuri de test pe care le putem proiecta pentru fiecare cale independentă a graficului de flux.
  • Testarea buclelor : Buclele sunt unul dintre cele mai utilizate instrumente în armamentul unui programator. Deoarece aceștia sunt la baza atâtor algoritmi, nu are sens decât să avem o tehnică de testare bazată pe bucle. Pot exista 3 tipuri de bucle: Simplu, cuibărit și concatenat. Să aruncăm o privire la modul în care un tester se va ocupa de tehnologia acestor tipuri:

1. Bucle simple: Pentru o buclă care este simplă în proiectare și are dimensiunea n, putem proiecta câteva cazuri de testare care fac următoarele:

  • Săriți bucla menționată.
  • Traversezi bucla o singură dată.
  • Au 2 pase
  • Aveți orice număr de treceri care este mai mic decât dimensiunea sa.
  • n-1 și n + 1 trec prin buclă.

2. Buclele cuiburi: Pentru codul cu bucle cuiburi, începem cu bucla cea mai interioară și apoi mergem spre exterior până putem ajunge la bucla cea mai exterioară.

3. Bucle concatenate: În cazul acestor bucle. Utilizăm testul buclă simplă o dată după alta și, în cazul în care bucla concatenată nu este independentă, putem face față cu ele așa cum am procedat cu buclele cuiburi.

avantaje

Acum că am văzut care este această metodă de testare și cum funcționează. Haideți să aruncăm o privire la unele dintre avantajele acestui lucru.

  • Testarea în cutie albă are reguli simple și clare pentru a anunța un tester când se face testarea.
  • Tehnicile de testare a cutiei albe sunt ușor de automatizat, ceea ce duce la un dezvoltator care trebuie să angajeze mai puțini testeri și cheltuieli mai mici.
  • Prezintă blocaje, ceea ce face optimizarea destul de ușoară pentru programatori.
  • O echipă de testare se poate începe cu munca lor fără să mai aștepte ca echipa de dezvoltare să finalizeze dezvoltarea UI.
  • Deoarece toate căile de cod sunt acoperite în cod în majoritatea cazurilor, testarea codului este mai lungă.
  • Ajută la eliminarea unor părți ale codului care nu sunt esențiale pentru funcționalitatea programului.

Dezavantaje

  • Este destul de impozitare pe resurse. Pentru a finaliza testarea, veți avea nevoie de cineva care vă cunoaște foarte bine codul pentru a face parte din echipa de testare și care este el însuși un bun programator. Acest tip de nivel de calificare crește cheltuielile testării.
  • În multe cazuri, posibilitatea de a testa orice condiție posibilă din cod nu este posibilă datorită constrângerilor de timp sau limitărilor bugetare.
  • Deoarece testarea cutiei albe se bazează pe verificarea funcționalității codului existent, nu puteți găsi funcționalitatea lipsă din program.
  • Dacă orice parte a codului este reproiectată și rescrisă, testerii trebuie să scrie din nou cazurile de testare.

Instrumente de testare a cutiei albe

Acum că cunoașteți avantajele, dezavantajele și tehnicile de testare a cutiei albe, putem arunca o privire asupra unor instrumente populare pe care testerii le pot utiliza pentru a efectua testarea cutiei albe.

  • JSUnit.net

Acesta este un instrument de testare JavaScript. JSUnit este o parte din Junit și un cadru de testare a unității open source care poate fi folosit pentru a face testarea White Box. JSUnit este complet open source sub GNU Public License 2.0, ceea ce înseamnă că, chiar și pentru uz comercial, un dezvoltator nu trebuie să plătească nicio taxă de licență.

  • CppUnit

La fel ca JSUnit, CppUnit este de asemenea considerat a fi o parte a JUnit. Instrumentul poate ieși în format simplu sau în format XML, în funcție de nevoia testerului și poate crea teste unitare cu propriile clase. CppUnit este autorizat sub LGPL.

  • Veracode

Deși nu este gratuit pentru utilizare, Veracode are câteva instrumente puternice care pot fi folosite pentru a testa .NET, C ++, Java și alte limbi. Testarea White Box poate fi făcută și pentru aplicații desktop, web și mobile.

  • NUnit

Este un cadru de testare a unității și a fost scris în C #. Instrumentul acceptă toate limbile .Net disponibile și acceptă și teste bazate pe date. Înțelept din punct de vedere al funcționalității, poate funcționa atât la execuție paralelă cât și simultană și poate oferi un cadru de clasă și aplicații de rulare de test. Una dintre caracteristicile notabile ale NUnit este că este destul de ușor de utilizat.

  • JUnit

După cum puteți ghici din numele său, JUnit este o unitate de instrumente de automatizare pentru Java. Furgoneta JUnit se integrează ușor cu IDE-uri, cum ar fi eclipse, Macen ACT, etc. Este capabilă să susțină dezvoltarea testată și poate sincroniza testele existente cu cele create recent. JUnit este o sursă complet deschisă și liberă de utilizat pentru orice tip de dezvoltare Java.

  • CSUnit

La fel ca Nunit, CSUnit este construit pentru a sprijini testarea unităților în .Net Framework. Acceptă limbi precum C # și VB.Net. CSUnit are suport integrat pentru practica de factoring și alte tipuri de practici care sunt utilizate în abordarea de dezvoltare agilă a SDLC.

Concluzie

Testarea are un loc foarte important în procesul de dezvoltare a software-ului, iar White Box Testing este o abordare valoroasă pentru realizarea acestuia. Deși această abordare de testare poate fi costisitoare și necesită mult timp, White Box Testing rămâne a fi singurul mod de a vă asigura că toate părțile codului au fost acoperite în procesul de testare.

Cea mai importantă parte a White Box Testing este cât de familiar este testerul cu codul. Cineva însărcinat cu testarea abordării WBT care nu are o mână bună cu codul sursă și cu limbajul de programare folosit, va cauza multe probleme. De asemenea, depinde doar de testarea cutiei albe nu este o idee bună, deoarece nu acoperă funcționalitatea lipsă. Pentru o abordare mai acoperită a dezvoltării, atât testarea cutiei albe cât și testarea cutiei negre ar trebui să fie făcute deoarece acestea vor acoperi erorile maxime, defectele și caracteristicile rămase care trebuie adăugate înainte de livrarea produsului.

Articole recomandate

Acesta a fost un ghid pentru testarea cutiei albe. Aici am discutat cum se efectuează testarea White Box cu ajutorul unor exemple și a diferitelor tehnici de testare a cutiei albe cu instrumente. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Întrebări de interviu de testare software
  2. Cariere în testare software
  3. Întrebări de interviu testare joc
  4. Întrebări la interviu de testare ETL
  5. Acoperire cod vs acoperire test | Top 4 diferențe de învățat
  6. Instrumente de acoperire a codului | Top 6 Instrumente de acoperire a codului