Testarea cutie neagră sau testarea comportamentală este o strategie (metodă) de testare a comportamentului funcțional al unui obiect (program, sistem) din punctul de vedere al lumii externe, care nu folosește cunoștințele despre structura internă (codul) obiectului. a fi testat. Cu alte cuvinte, testarea cutiei negre se face de testeri care nu au acces la codul sursă al aplicației. Strategia se referă la metodele sistematice de selectare și creare a testelor pentru un set de teste. Strategia de testare comportamentală provine din cerințele tehnice și din specificațiile acestora [1] .
O „cutie neagră” este înțeleasă ca obiect de studiu, a cărui structură internă este necunoscută. Conceptul de „cutie neagră” a fost propus de W. R. Ashby . În cibernetică, permite studierea comportamentului sistemelor, adică reacțiile lor la diferite influențe externe și, în același timp, să se abstragă de structura lor internă.
Prin manipularea numai cu intrări și ieșiri, pot fi efectuate anumite studii. În practică, întotdeauna se pune întrebarea în ce măsură homomorfismul cutiei „negre” reflectă adecvarea modelului său studiat, adică cât de deplin sunt reflectate proprietățile de bază ale originalului în model.
Descrierea oricărui sistem de control în timp se caracterizează printr-o imagine a secvenței stărilor sale în procesul de deplasare către obiectivul cu care se confruntă. Transformarea în sistemul de control poate fi fie unu-la-unu și apoi se numește izomorfă, fie doar unu-la-unu, într-o direcție. În acest caz, transformarea se numește homomorfă.
Cutia „neagră” este un model complex homomorf al unui sistem cibernetic în care diversitatea este respectată. Este doar atunci un model satisfăcător al sistemului atunci când conține o asemenea cantitate de informații care reflectă diversitatea sistemului. Se poate presupune că cu cât este mai mare numărul de perturbații care acționează asupra intrărilor modelului de sistem, cu atât ar trebui să aibă mai mare diversitatea controlerului.
În prezent sunt cunoscute două tipuri de cutii „negre”. Primul tip include orice cutie „neagră”, care poate fi considerată un automat , numit finit sau infinit. Comportamentul unor astfel de cutii „negre” este cunoscut. Al doilea tip include astfel de cutii „negre”, al căror comportament poate fi observat doar într-un experiment. În acest caz, într-o formă explicită sau implicită, se exprimă o ipoteză despre predictibilitatea comportamentului cutiei „negre” în sens probabilistic. Fără o ipoteză preliminară, orice generalizare este imposibilă sau, după cum se spune, este imposibil să se tragă o concluzie inductivă bazată pe experimente cu cutia neagră. N. Wiener a propus conceptul de cutie „albă” pentru a desemna modelul de cutie „neagră”. Cutia „albă” constă din componente cunoscute, adică X, Y, δ, λ cunoscute. Conținutul său este ales special pentru a implementa aceeași dependență de ieșire-intrare ca și caseta „neagră” corespunzătoare. În procesul de cercetare în curs și generalizări, ipoteze și stabilire a tiparelor, devine necesară ajustarea organizării cutiei „albe” și modificarea modelelor. În acest sens, atunci când modelează, cercetătorul trebuie să se refere în mod repetat la schema de relație cutie „neagră” - „albă”.
Să luăm în considerare modul în care este studiat și investigat comportamentul cutiei „negre” de al doilea fel. Să presupunem că ni se oferă un sistem de control, a cărui structură internă este necunoscută. Sistemul de control are intrări și ieșiri .
Modul de a studia comportamentul acestei cutii „negre” este efectuarea unui experiment, ale cărui rezultate pot fi prezentate sub forma unui tabel. unu.
Această metodă de a studia cutia „neagră” se numește protocol. Valorile cantităților de intrare uneori pot fi alese arbitrar.
tabelul 1
Starea intrării | Stare ieșire | Timp |
---|---|---|
............ | ............ | .... |
............ | ............ | .... |
O altă modalitate de a explora este de a alimenta unele secvențe standard la intrări. Această metodă este deosebit de atractivă deoarece vă permite să comparați comportamentul mai multor cutii „negre” cu condiția alegerii celor care vor îndeplini cerințele.
Studiul sistemelor de control este asociat cu conceptele de „ automat probabilist ”, „sistem probabilistic”, care necesită studiul proprietăților probabilistice ale acestora. În aceste scopuri, puteți construi o matrice de probabilitate (Tabelul 2), în care pentru fiecare intrare și fiecare ieșire este indicată probabilitatea condiționată , care apare ca răspuns la [7] din Tabel. 2.
Dezvoltarea metodelor de construire a modelelor matematice ale cutiei „negre” este una dintre problemele cibernetice importante. Cu condiția să existe un model matematic al cutiei „negre”, devine posibil să fie atribuit oricărei clase, toate sistemele fiind izomorfe în comportament.
Crearea unei descrieri matematice a casetei „negre” este un fel de artă. În unele cazuri, este posibil să se formeze un algoritm, conform căruia caseta „neagră” răspunde la un semnal de intrare arbitrar. În majoritatea cazurilor, totuși, se încearcă stabilirea ecuațiilor diferențiale care relaționează reacția cutiei „negre” la intrările sale sau, după cum se spune, la stimulii de intrare.
Pentru știință, metoda cutiei „negre” este de mare importanță. Cu ajutorul lui, s-au făcut multe descoperiri remarcabile în știință. De exemplu, omul de știință Harvey a prezis structura inimii încă din secolul al XVII-lea. El a modelat munca inimii cu o pompă, împrumutând idei dintr-o zonă complet diferită a cunoștințelor contemporane - hidraulica. Valoarea practică a metodei cutiei „negre” constă, în primul rând, în posibilitatea de a studia sisteme dinamice foarte complexe și, în al doilea rând, în posibilitatea înlocuirii unei „cutii” cu alta. Realitatea înconjurătoare și biologia oferă o mulțime de exemple de dezvăluire a structurii sistemelor folosind metoda cutiei „negre”.
În această metodă, programul este tratat ca o cutie neagră . Scopul testării este de a afla circumstanțele în care comportamentul programului nu este conform cu specificația . Pentru a detecta toate erorile din program, este necesar să se efectueze o testare exhaustivă , adică testarea pe tot felul de seturi de date . Pentru majoritatea programelor, acest lucru nu este posibil, așa că se utilizează testarea rezonabilă , în care testarea programului este limitată la un subset mic de seturi de date posibile. În acest caz, este necesar să se aleagă subseturile cele mai potrivite, subseturile cu cea mai mare probabilitate de a detecta erori.
Să aruncăm o privire mai atentă la fiecare dintre aceste metode:
Partiție echivalentăMetoda se bazează pe două principii:
Dezvoltarea testelor prin această metodă se realizează în două etape : selectarea claselor de echivalență și construcția testului.
Clasele de echivalență se disting prin selectarea fiecărei condiții de intrare, care este luată din termenii de referință sau din specificații și împărțită în două sau mai multe grupuri. Următorul tabel este folosit pentru aceasta:
Condiție de intrare | Clase de echivalență adecvate | Clase de echivalență greșite |
' | ' | ' |
Selectarea claselor de echivalență este un mod euristic, dar există o serie de reguli:
Definiția testelor:
Condițiile limită sunt situații care apar la limitele superioare și inferioare ale claselor de echivalență de intrare.
Analiza valorii limită diferă de partiționarea echivalentă în următoarele moduri:
Metoda necesită un anumit grad de creativitate și specializare în sarcina în cauză.
Există mai multe reguli:
Analiza valorii limită, dacă este aplicată corect, poate detecta un număr mare de erori. Cu toate acestea, definirea acestor limite pentru fiecare sarcină poate fi o sarcină dificilă separată. De asemenea, această metodă nu verifică combinațiile de valori de intrare.
Analiză cauză-efectTestați pașii de construcție:
Tabelul este adnotat cu restricții și descrieri ale combinațiilor care nu sunt posibile. Dezavantajul acestei abordări este studiul slab al condițiilor la limită.
Eroare ghicireUn tester cu multă experiență găsește erori fără nicio metodă, dar în același timp folosește subconștient metoda de a ghici eroarea. Această metodă se bazează în mare parte pe intuiție. Ideea principală a metodei este de a face o listă care să enumere posibile erori și situații în care ar putea apărea aceste erori. Apoi, pe baza listei, sunt compilate teste.