Testarea cutiei negre

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 4 februarie 2019; verificările necesită 2 modificări .

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] .

Conceptul de cutie „neagră”

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ă”.

Studierea comportamentului casetei „negre”

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

Modul de a studia cutia „neagră”.
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”.

Principiile testării 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.

Proprietățile unui test corect selectat

  1. Reduce mai mult de un număr de alte teste care urmează să fie proiectate pentru teste rezonabile.
  2. Acoperă o parte semnificativă a altor teste posibile, ceea ce indică oarecum prezența sau absența unei erori înainte și după un set limitat de teste.

Tehnici de testare cutie neagră

  1. Partiție echivalentă.
  2. Analiza valorilor la limită.
  3. Analiza relațiilor cauză-efect.
  4. Eroare de ghicire.

Să aruncăm o privire mai atentă la fiecare dintre aceste metode:

Partiție echivalentă

Metoda se bazează pe două principii:

  1. Datele inițiale trebuie împărțite într-un număr finit de clase de echivalență. O clasă de echivalență conține astfel de teste încât, dacă un test din clasa de echivalență detectează o eroare, atunci orice alt test din această clasă de echivalență trebuie să detecteze aceeași eroare.
  2. Fiecare test trebuie să includă cât mai multe clase de echivalență posibil pentru a minimiza numărul total de teste.

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:

  1. Dacă condiția de intrare descrie un interval, cum ar fi „Un număr întreg ia o valoare de la 0 la 999”, atunci există o clasă de echivalență validă și două invalide.
  2. Dacă condiția de intrare descrie un număr de valori, de exemplu, „Numărul de linii din fișierul de intrare se află în intervalul (1..6)”, atunci există și o clasă corectă și două incorecte.
  3. Dacă condiția de intrare descrie un set de valori de intrare, atunci numărul de clase corecte este determinat egal cu numărul de elemente din setul de valori de intrare. Dacă condiția de intrare descrie o situație „trebuie să fie”, cum ar fi „Primul caracter trebuie să fie scris cu majuscule”, atunci o clasă este corectă și o clasă este incorectă.
  4. Dacă există motive să credem că elementele din cadrul aceleiași clase de echivalență pot fi interpretate diferit de către program, este necesar să divizăm această clasă în subclase. În acest pas, testatorul trebuie să folosească tabelul pentru a crea teste care acoperă toate clasele de echivalență corecte și incorecte. În acest caz, compilatorul trebuie să minimizeze numărul total de teste.

Definiția testelor:

  1. Fiecărei clase de echivalență i se atribuie un număr unic.
  2. Dacă încă există clase corecte neincluse în teste, atunci se scriu teste care acoperă numărul maxim posibil de clase.
  3. Dacă există clase incorecte care nu sunt incluse în teste, atunci se scriu teste care acoperă o singură clasă.
Analiza valorii limită

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:

  1. Alegerea oricărui element din clasa de echivalență ca reprezentativ se realizează astfel încât să se testeze fiecare graniță a acestei clase cu un test.
  2. La elaborarea testelor, sunt luate în considerare nu numai valorile de intrare (spațiul de intrare), ci și valorile de ieșire (spațiul de ieșire).

Metoda necesită un anumit grad de creativitate și specializare în sarcina în cauză.

Există mai multe reguli:

  1. Construiți teste cu intrări greșite pentru o situație minoră în afara intervalului. Dacă valorile de intrare ar trebui să fie în intervalul [-1,0 .. +1,0], verificați −1,0, 1,0, −1,000001, 1,000001.
  2. Asigurați-vă că scrieți teste pentru limitele minime și maxime ale intervalului.
  3. Utilizați primele două reguli pentru fiecare dintre valorile de intrare (utilizați pasul 2 pentru toate valorile de ieșire).
  4. Dacă intrarea și ieșirea programului este un set ordonat, concentrați-vă pe primul și ultimul element al listei.

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ă-efect

Testați pașii de construcție:

  1. Specificația este împărțită în secțiuni de lucru.
  2. Specificația definește multe cauze și efecte. O cauză este o singură condiție de intrare sau o clasă de echivalență. Consecința este o condiție de ieșire sau o transformare a sistemului. Aici, fiecărei cauze și efect i se atribuie un număr.
  3. Pe baza analizei conținutului semantic (semantic) al specificației, se construiește un tabel de adevăr în care toate combinațiile posibile de cauze sunt sortate succesiv și sunt determinate consecințele pentru fiecare combinație de cauze.

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 ghicire

Un 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.

Note

  1. Beizer, 2004 , p. 33.

Literatură

  • Ross Ashby W. Chapter 6. The Black Box // Introduction to Cybernetics = An Introduction to Cybernetics. - Editura de literatură străină, 1959. - S. 127-169. — 432 p.
  • Beizer B. Testarea cutiei negre. Tehnologii de testare funcțională a software-ului și sistemelor. - Petru, 2004. - 320 p. — ISBN 5-94723-698-2 .