Ce este Gray Box Testare? Tehnici, exemplu

⚡ Rezumat inteligent

Gri Box Testarea examinează o aplicație cu cunoștințe parțiale despre structura sa internă, combinând perspectiva orientată spre utilizator a testării de tip „cutie neagră” cu suficiente informații arhitecturale pentru a explica de ce s-a produs o eroare, mai degrabă decât doar faptul că s-a produs.

  • 🔍 Nivel de cunoștințe: Structura internă este parțial cunoscută, față de faptul că este complet cunoscută pentru testarea în cutie albă și necunoscută pentru testarea în cutie neagră.
  • 🧪 Patru tehnici: Testarea matriceală, testarea de regresie, testarea tablourilor ortogonale și testarea modelelor formează setul de instrumente de bază.
  • 🪜 Zece pași: Identificați intrările, ieșirile și căile principale, apoi împărțiți sistemul în subfuncții și verificați fiecare dintre ele.
  • 🔗 Cel mai potrivit: Testare de integrare, testare de penetrare, fluxuri de lucru bazate pe baze de date, servicii web și API contracts.
  • 🇧🇷 Compensație: Vizibilitatea parțială reduce efortul, dar limitează și cât de profundă poate fi o singură cale de cod. traced.
  • 📋 Preconditii: Documentația precisă a designului este importantă, deoarece o schemă sau o specificație învechită invalidează discret designul testului.

Gri Box Testarea combină cunoștințe interne parțiale cu designul testelor orientate spre utilizator

Ce este Gray Box Testarea?

Gri Box Testarea (scris și Gray Box Testarea) este o tehnică de testare software care testează un produs sau o aplicație software cu cunoștințe parțiale despre structura internă a aplicației. Scopul tehnicii Grey Box Testarea are ca scop căutarea și identificarea defectelor cauzate de o structură necorespunzătoare a codului sau de utilizarea necorespunzătoare a aplicației.

În acest proces, erorile specifice contextului legate de sistemele web sunt frecvent identificate. Tehnica crește acoperirea testului prin concentrarea asupra tuturor straturilor unui sistem complex, mai degrabă decât asupra unuia dintre ele.

Gri Box Testarea este o metodă de testare a software-ului care combină Alb Box Testarea și Negru Box TestareaDistincția dintre cele trei se reduce la cât de mult din structura internă poate vedea testerul:

  • In alb Box Testarea structurii interne (codului) este cunoscută.
  • În negru Box Testarea structurii interne (codului) este necunoscută.
  • În gri Box Testarea structurii interne (codului) este parțial cunoscută.

Diagrama de mai jos plasează cele trei metode pe aceeași scală de vizibilitate.

Gri Box Testarea prezentată între White Box și Negru Box testarea la scara vizibilității interne a codului

In Inginerie software, Gri Box Testarea oferă posibilitatea de a testa ambele părți ale unei aplicații, stratul de prezentare, precum și codul din spatele acestuia. Este utilă în principal în testarea de integrare și testul de penetrare.

Exemplu de gri Box Testarea: În timpul testării unei funcții a site-ului web, cum ar fi link-uri sau link-uri orfane, dacă testerul întâmpină o problemă cu aceste link-uri, modificarea poate fi făcută imediat în codul HTML și verificată în timp real.

De ce gri Box Testarea

Gri Box Testarea se efectuează din următoarele motive:

  • Oferă beneficiile combinate ale testării în cutie neagră și ale testării în cutie albă.
  • Combină contribuțiile dezvoltatorilor, precum și ale testerilor și îmbunătățește calitatea generală a produsului.
  • Reduce costurile suplimentare ale procesului lung de testare a tipurilor funcționale și nefuncționale.
  • Oferă unui dezvoltator suficient timp liber pentru a remedia defectele.
  • Testarea se face din punctul de vedere al utilizatorului, mai degrabă decât din punctul de vedere al proiectantului.
  • O defecțiune poate fi explicată, nu doar raportată, deoarece testerul poate vedea stratul în care s-a produs.

Gri Box Testare vs. Negru Box vs. Alb Box Testarea

Cele trei metode nu sunt alternative concurente, ci mai degrabă trei niveluri de acces, fiecare răspunzând la un alt tip de întrebare. Punându-le una lângă alta, alegerea devine concretă.

Bază Negru Box Testarea Gri Box Testarea Alb Box Testarea
Cunoașterea structurii interne Nici unul Parțial Complet
Realizat de Testeri și utilizatori finali Testeri și dezvoltatori care lucrează cu testeri Dezvoltatori și ingineri de testare
Baza proiectării testelor Cerințe și specificații Archistructură, algoritmi, structuri de date și interfețe Codul sursă și fluxul de control
Nivel tipic Testarea sistemului și a acceptării Integrare, penetrare și testare a serviciilor web Testarea unității și a componentelor
Acoperire măsurată ca Acoperirea cerințelor Acoperirea interfeței, a datelor și a căii Acoperire declarație, ramură și cale
Principala limitare Cauza unei defecțiuni rămâne ascunsă Adâncimea este limitată de accesul acordat Costisitor și poate omite cerințe lipsă

Majoritatea echipelor le folosesc pe toate trei pe tot parcursul ciclul de viață al testării software...iar stratul gri este locul unde sunt de obicei detectate defectele care se află între interfața cu utilizatorul și depozitul de date.

Gri Box Strategia de testare

Pentru a interpreta Grey Box În timpul testării, nu este necesar ca testerul să aibă acces la codul sursă. Un test este conceput pe baza cunoașterii algoritmilor, arhitecturilor, stărilor interne sau a altor descrieri de nivel înalt ale comportamentului programului.

Pentru a interpreta Grey Box Testarea:

  • Aplică tehnicile simple ale testării de tip cutie neagră.
  • Se bazează pe generarea de cazuri de testare bazate pe cerințe, deci presetează toate condițiile înainte ca programul să fie testat prin metoda aserțiunii.

Tehnici folosite pentru Gray Box Testele sunt:

  • Testarea matricei: Această tehnică implică definirea tuturor variabilelor existente în program, împreună cu riscul pe care îl prezintă fiecare, astfel încât variabilele neutilizate și cele cu risc ridicat să fie vizibile.
  • Testarea regresiei: verifică dacă o modificare din versiunea anterioară a regresat alte aspecte ale programului în noua versiune. Se realizează cu strategii precum retestarea tuturor, retestarea cazurilor de utilizare riscante și retestarea în cadrul unui firewall.
  • Testarea matricei ortogonale sau OAT: oferă o acoperire maximă a codului cu un număr minim de cazuri de testare.
  • Testarea modelelor: efectuate pe date istorice ale defectelor anterioare ale sistemului. Spre deosebire de testarea cutie neagră, testarea Grey Box Testarea analizează codul și determină motivul pentru care s-a produs eroarea.

Gri Box metodologia folosește de obicei automatizare instrumente de testare software pentru a efectua testarea. Stub-urile și driverele de module sunt create astfel încât testerul să nu fie nevoit să genereze codul manual.

Pași pentru a efectua Gray Box Testele sunt:

  • Pasul 1: Identificați intrările.
  • Pasul 2: Identificați rezultatele.
  • Pasul 3: Identificați căile principale.
  • Pasul 4: Identificați subfuncțiile.
  • Pasul 5: Dezvoltați date de intrare pentru subfuncții.
  • Pasul 6: Dezvoltați rezultatele pentru subfuncții.
  • Pasul 7: Executați cazul de testare pentru subfuncții.
  • Pasul 8: Verificați rezultatul corect pentru subfuncții.
  • Pasul 9: Repetați pașii de la 4 la 8 pentru celelalte subfuncții.
  • Pasul 10: Repetați pașii 7 și 8 pentru celelalte subfuncții.

Cazurile de testare pentru Grey Box Testarea poate acoperi aspecte legate de interfața grafică, securitate, baze de date, browser și sistem de operare, printre altele. Fiecare caz generat necesită în continuare etapele obișnuite caz de testare atribute, deoarece un caz care nu poate fi reprodus din propria descriere este de puțin folos în timpul regresiei.

Unde Gri Box Testarea este utilizată

Tehnica își câștigă locul oriunde un defect poate fi diagnosticat doar prin examinarea a două straturi simultan. Următoarele scenarii sunt cele în care este aplicată cel mai des:

  • Fluxuri de lucru bazate pe baze de date: O acțiune este efectuată prin intermediul interfeței cu utilizatorul, iar rândurile rezultate sunt apoi interogate direct pentru a confirma că valorile, tipurile și relațiile au fost stocate conform intenției.
  • Servicii web și API-uri: Se trimite o cerere, iar starea răspunsului, anteturile și sarcina utilă sunt verificate în raport cu cererea publicată.tract, care este forma cotidiană a lui Testare API.
  • Puncte de integrare: Mesajele care trec o graniță dintre două module sunt inspectate, în timp ce ambele module sunt tratate ca sisteme care rulează, mai degrabă decât ca fișiere sursă.
  • Evaluarea securității: Un penetration tester, căruia i se acordă un cont de utilizator normal și o prezentare generală a arhitecturii, reproduce poziția unui utilizator din interior, ceea ce reprezintă modelul standard de interacțiune cu gri (grey box).
  • Aplicații web și interfețe grafice (GUI): Linkurile nefuncționale, paginile orfane, gestionarea sesiunilor și validarea pe partea clientului sunt toate verificate cu vizibilitate parțială asupra markup-ului și a fluxului de solicitări.

În toate acestea, costul total al defectelor de sistem este redus deoarece problemele sunt detectate și explicate înainte de a fi transmise mai departe în... testarea sistemului sau producție.

Gri Box Instrumente de testare

Nicio unealtă nu funcționează Gri Box Testare independentă. Ceea ce are nevoie categoria este o combinație între un driver de interfață, un instrument de inspecție pentru stratul de dedesubt și o modalitate de a crea un script pentru cele două împreună.

  • Clienți API și servicii web , cum ar fi Postman și SoapUI, utilizat pentru a emite cereri și a activa codurile de stare și corpurile de răspuns.
  • Clienți de baze de date și instrumente de interogare SQL, utilizat pentru a verifica starea persistentă după o acțiune a interfeței.
  • Instrumente pentru dezvoltatori de browsere și proxy-uri HTTP , cum ar fi Burp Suite, utilizat pentru a inspecta și modifica cererile în timpul sesiunilor orientate spre securitate.
  • Framework-uri de automatizare a interfeței utilizator , cum ar fi Selenium, folosit pentru a gestiona stratul de prezentare în interiorul unui testarea automatizării pe.
  • Instrumente de jurnalizare și monitorizare, folosit pentru a corela o defecțiune observată cu ceea ce aplicația a înregistrat intern în acel moment.

Alegerea contează mai puțin decât cablajul: dacă driverul de interfață și etapa de inspecție nu se execută în același flux scriptat, rezultatul este două verificări manuale separate, în loc de un singur test de tip „grey box”.

Gri Box Provocări de testare

Vizibilitatea parțială introduce probleme pe care niciuna dintre metodele pure nu le are, iar următoarele sunt cele pe care echipele le întâlnesc cel mai des:

  • Când o componentă testată întâmpină o eroare de un anumit fel, aceasta poate abandona operațiunea în curs și poate lăsa restul secvenței neexecutate.
  • Un test se poate executa integral în timp ce conținutul rezultatului este incorect, așadar etapa de verificare trebuie să verifice valorile și nu finalizarea.
  • Acoperirea completă a căii de cod nu este realizabilă, deoarece testerul nu vede niciodată fiecare ramură pe care ar atinge-o testarea white box.
  • Documentația de proiectare pe care se bazează testele poate fi învechită, iar o schemă sau o specificație de interfață învechită invalidează discret designul testului.
  • Testerii au nevoie atât de înțelegerea domeniului, cât și de profunzime tehnică, acesta fiind un profil de competențe mai restrâns pentru care se poate recruta.
  • Abdomen distribuit și puternictracArhitecturile Ted fac dificilă atribuirea unei defecțiuni observate unei componente interne specifice.

Aceste limitări pledează pentru tratarea lui Grey Box Testarea ca un strat printre mai multe, mai degrabă decât un înlocuitor pentru celelalte, acesta fiind punctul de vedere subliniat în ansamblul mai larg de tehnici de testare a software-ului și tipuri de testare softwareSe așează natural alături de testarea funcțională și abordări bazate pe specificații, cum ar fi testarea bazată pe model.

Întrebări frecvente

Ambele se referă la aceeași tehnică. Grey este ortografia britanică, iar gray cea americană, iar cele două apar interschimbabil în documentația sculelor și în programele de certificare. Niciunul nu are o semnificație tehnică diferită.

Suficient pentru a raționa despre componentele interne fără a citi fiecare linie: diagrame de arhitectură, modelul de date, interfața contracts și un cont doar pentru citire în baza de date de testare. Accesul complet la repozitoriu transformă exercițiul într-o testare white box.

De obicei, un inginer de testare cu experiență în dezvoltare sau un tester asociat cu un dezvoltator pentru sesiune. Misiunile de securitate sunt conduse de testeri de penetrare cărora li se oferă un cont de utilizator standard și o prezentare generală a arhitecturii.

Împotriva interfețelor și datelor, mai degrabă decât a declarațiilor: fiecare punct final și cod de stare executat, fiecare tabel și tranziție de stare atinsă, fiecare cale de integrare parcursă. Procentajele declarațiilor și ramurilor aparțin măsurătorii de tip „white box”.

Un stub înlocuiește o componentă apelată de modulul testat; un driver înlocuiește componenta care l-ar apela. Împreună, acestea permit unei subfuncții să fie exercitată izolat înainte ca întregul sistem să existe.

Atunci când este necesar un verdict independent din perspectiva utilizatorului, deoarece cunoștințele parțiale influențează testerul către căile așteptate, testarea de acceptare și munca de utilizare rămân de tip „cutie neagră” exact din acest motiv, iar codul critic pentru siguranță necesită în continuare o analiză completă de tip „cutie albă”.

Învățarea automată analizează istoricul defectelor pentru etapa de testare a modelelor, clasifică interfețele în funcție de riscul prezis, astfel încât accesul limitat să fie utilizat eficient și grupează jurnalele pentru a lega o eroare observată de componenta internă care a produs-o.

Da, pentru părțile repetitive: constructori de cereri, aserțiuni de răspuns, interogări de verificare, stuburi și drivere extrase dintr-o definiție a interfeței. Decizia care stare internă dovedește că comportamentul este corect rămâne o judecată de proiectare pentru inginer.

Rezumați această postare cu: