Metode de testare software și compararea acestora. Testarea prin metoda "cutie neagră" și testarea utilizând metoda "cutie albă"

Testarea software-ului (software) relevă defectele, defectele și erorile din cod care trebuie eliminate. De asemenea, poate fi definit ca procesul de evaluare a funcționalității și corectitudinii software-ului prin analiză. Principalele metode de integrare și testare a produselor software asigură calitatea aplicațiilor și constau în verificarea specificațiilor, designului și codului, evaluarea fiabilității, validarea și verificarea.

metode

Scopul principal al testării software-ului este confirmarea calității pachetului software prin depanarea sistematică a aplicațiilor în condiții controlate cu atenție, determinarea completitudinii și corectitudinii acestora și detectarea erorilor ascunse.

metode testarea (testarea) programelor pot fi împărțite în statice și dinamice.

Printre acestea se numără analiza informală, controlul și revizuirea tehnică, inspecția, analiza pas cu pas, auditul, precum și analiza statică a fluxului de date și a managementului.

Tehnicile dinamice sunt după cum urmează:

  1. Testarea cutie albă. Acesta este un studiu detaliat al logicii interne și al structurii programului. Aceasta necesită cunoașterea codului sursă.
  2. Testul cutie neagră. Această tehnică nu necesită cunoașterea funcționării interne a cererii. Considerăm doar principalele aspecte ale sistemului care nu sunt legate sau prea puțin legate de structura logică internă.
  3. Metoda casetei gri. Combină cele două abordări anterioare. Depanarea cu cunoștințe limitate privind funcționarea internă a aplicației este combinată cu cunoașterea aspectelor de bază ale sistemului.

metodele de testare

Testarea transparentă

În metoda cutiei albe se utilizează scenarii de testare a structurii de control a proiectului procedural. Această tehnică vă permite să identificați erorile de implementare, cum ar fi gestionarea defectuoasă a codului, analizând funcționarea internă a unui software. Aceste metode de testare sunt aplicabile la nivelurile de integrare, modulare și sistem. Testerul trebuie să aibă acces la codul sursă și, folosind-l, să afle care bloc se comportă necorespunzător.

Programele de testare utilizând metoda cutiei albe au următoarele avantaje:

  • vă permite să detectați o eroare în codul ascuns atunci când ștergeți rânduri inutile;
  • posibilitatea utilizării efectelor secundare;
  • Acoperirea maximă este obținută prin scrierea unui scenariu de testare.

dezavantaje:

  • Un proces cu costuri ridicate care necesită un debugger calificat;
  • multe căi vor rămâne neexplorate, deoarece o verificare amănunțită a tuturor erorilor ascunse posibile este foarte complexă;
  • unele dintre codurile care lipsesc vor trece neobservate.

testare cutie alba este uneori menționată prin testarea o cutie transparentă sau deschisă, testarea structurală, logică, pe baza codului sursă și arhitectura logică.

Principalele soiuri sunt:

1) Testarea controlului fluxului este o strategie structurală care utilizează fluxul de control al programului ca model și dă preferință unor căi mai simple decât un număr mai mic de cele mai complexe;

2) Brancharea de depanare vizează examinarea fiecărei opțiuni (adevărată sau falsă) a fiecărui operator de control, care include și o soluție combinată;

3) testarea căii principale, care permite testerului să stabilească o măsură a complexității logice a proiectului procedural pentru alocarea unui set de bază de căi de execuție;

4) verificarea fluxului de date - strategia de cercetare a fluxului de control prin adnotarea graficului cu informații despre declarația și utilizarea variabilelor programului;

5) testarea ciclurilor - se axează pe executarea corectă a procedurilor ciclice.

testare alb-cutie

Depanarea comportamentală

Metoda de testare cutie neagră consideră că software-ul este o "cutie neagră" - informațiile despre activitatea internă a programului nu sunt luate în considerare și sunt verificate doar aspectele principale ale sistemului. În acest caz, testerul trebuie să cunoască arhitectura sistemului fără a avea acces la codul sursă.

Avantajele acestei abordări:

  • eficiența pentru un segment de cod mare;
  • simplitatea percepției de către tester;
  • perspectiva utilizatorului este clar separată de perspectiva dezvoltatorului (programatorul și testerul sunt independenți unul de celălalt);
  • crearea mai rapidă a testelor.

Programele de testare folosind metode cu cutie neagră prezintă următoarele dezavantaje:

  • de fapt, un număr selectat de scenarii de testare sunt efectuate, rezultând o acoperire limitată;
  • lipsa unei specificații clare îngreunează elaborarea scenariilor de testare;
  • eficiență scăzută.

Alte nume ale acestei tehnici sunt comportamentale, opace, încercarea funcțională și depanare utilizând metoda cutiei închise.

Următoarele metode de testare software pot fi atribuite în această categorie:

1) partiție echivalentă, care poate reduce setul de date de testare, deoarece datele de intrare ale modulului de program sunt împărțite în părți separate;

2) analiza marginilor se concentrează pe verificarea limitelor sau a valorilor limită extreme - minime, maxime, valori eronate și tipice;

3) Fuzzing - utilizat pentru a găsi erori de implementare prin introducerea datelor distorsionate sau semi-dezagregate în modul automat sau semiautomat;

4) capete de acuzare de cauzalitate - o tehnică bazată pe crearea de grafice și determinarea relației dintre acțiune și motivele acesteia: identitatea, negația, SAU logic și logic - cele patru personaje principale, care exprimă relația dintre cauză și efect;

5) verificarea matricelor ortogonale aplicate problemelor cu o suprafață relativ mică de intrare care depășește posibilitățile unei cercetări exhaustive;

6) testarea tuturor perechilor - o tehnică a cărei set de valori de testare include toate combinațiile posibile discrete ale fiecărei perechi de parametri de intrare;

7) depanarea tranzițiilor de stat este o tehnică utilă pentru verificarea mașinii de stat și, de asemenea, pentru navigarea prin interfață grafică utilizatorului.

metodele de testare a software-ului

Testarea pe black-box: exemple

Tehnologia Black Box se bazează pe specificații, documentație, precum și descrieri ale interfeței sau sistemului software. În plus, este posibil să se utilizeze modele (oficiale sau informale) care reprezintă comportamentul așteptat al software-ului.

În mod obișnuit, această metodă de depanare este aplicată interfețelor utilizatorilor și necesită interacțiunea cu aplicația introducând date și colectând rezultatele - de pe ecran, din rapoarte sau imprimate.

Testerul interacționează astfel cu software-ul prin introducere, acționând asupra comutatoarelor, butoanelor sau altor interfețe. Alegerea datelor de intrare, ordinea introducerii lor sau succesiunea acțiunilor poate duce la un număr total de giganți de combinații, după cum se poate vedea în exemplul următor.

Câte teste ar trebui efectuate pentru a verifica toate valorile posibile pentru cele 4 casete de validare și un câmp cu două poziții care specifică timpul în secunde? La prima vedere, calculul este simplu: 4 câmpuri cu două stări posibile - 24 = 16, care trebuie multiplicate cu numărul de poziții posibile de la 00 la 99, adică 1600 de teste posibile.

Cu toate acestea, acest calcul este greșit: putem stabili că domeniul în două puncte pot conține, de asemenea, un spațiu, adică este alcătuită din două poziții alfanumerice și poate include caractere alfanumerice, caractere speciale, spații, etc. Astfel, în cazul în care .... sistemul este un computer de 16 biți, rândul său, 216 = 65536 câte una pentru fiecare poziție în rezultate cazurilor de testare 4294967296, care urmează să fie multiplicate cu 16 combinații de steaguri, care oferă un total de 68719476 736. în cazul în care o desfășoară la o rată de 1 test pe secundă, apoi la total Durata testului va fi de 2 177,5 ani. Pentru sistemele cu 32 sau 64 de biți, durata este chiar mai mare.

Prin urmare, este necesar să se reducă acest timp la o valoare acceptabilă. Prin urmare, tehnicile ar trebui utilizate pentru a reduce numărul de cazuri de testare fără a reduce acoperirea testelor.

testul cutie neagră

O descompunere echivalentă

Partiția echivalentă este o metodă simplă, care se aplică pentru orice variabile care sunt prezente în software-ul, dacă valorile de intrare sau de ieșire, simbolic, numeric, și altele. Ea se bazează pe principiul că toate datele dintr-un echivalent al partiției va fi tratată în același mod și de către aceleași instrucțiuni.

În timpul testării, un reprezentant este selectat dintre fiecare partiție echivalentă definită. Acest lucru vă permite să reduceți în mod sistematic numărul de cazuri de testare posibile fără a pierde domeniul de aplicare al comenzilor și funcțiilor.

O altă consecință a acestei împărțiri este reducerea exploziei combinatoriale între diferite variabile și reducerea asociată a cazurilor de testare.

De exemplu, în (1 / x)1/2 utilizează trei secvențe de date, trei partiții echivalente:

1. Toate numerele pozitive vor fi procesate în același mod și ar trebui să obțină rezultatele corecte.

2. Toate numerele negative vor fi tratate în același mod, cu același rezultat. Acest lucru nu este adevărat, deoarece rădăcina unui număr negativ este imaginară.

3. Zero va fi procesată separat și va da o eroare "împărțire la zero". Aceasta este o secțiune cu o singură valoare.

Astfel, vedem trei secțiuni diferite, dintre care unul este redus la o singură valoare. Există o secțiune "corectă", care oferă rezultate fiabile și două "greșite", cu rezultate incorecte.

Analiza limitată

Procesarea datelor la limitele partiției echivalente poate fi efectuată diferit decât se aștepta. Studiul valorilor limită este o metodă bine cunoscută de analiză a comportamentului software-ului în astfel de zone. Această tehnică ne permite să identificăm astfel de erori:

  • abuz de către operatorii relaționali (<,>, =, ne-, Ge, le-);
  • singurele erori;
  • Probleme în cicluri și iterații,
  • Tipuri greșite sau mărimea variabilelor utilizate pentru stocarea informațiilor;
  • constrângerile artificiale asociate datelor și tipurilor de variabile.

metode automate de testare a produselor software

Testarea semi-transparentă

Metoda cutie gri mărește acoperirea cecului, permițându-vă să vă concentrați pe toate nivelele sistemului complex prin combinarea metodelor de alb și negru.

Folosind această tehnică, un tester pentru dezvoltarea valorilor de testare trebuie să aibă cunoștințe despre structurile interne de date și algoritmi. Exemple de metode de testare pentru o cutie gri sunt:

  • model arhitectural;
  • Limbaj unificat de modelare (UML);
  • model de stat (mașină de stat finită).

În metoda cutie gri pentru dezvoltarea cazurilor de testare, sunt studiate codurile modulului alb, iar testul real se efectuează pe interfețele programului de tehnologie neagră.

Astfel de metode de testare au următoarele avantaje:

  • combinarea avantajelor tehnicilor de cutii alb și negru;
  • Testerul se bazează pe interfață și specificația funcțională, și nu pe codul sursă;
  • depanatorul poate crea scripturi de testare excelente;
  • verificarea se face din punctul de vedere al utilizatorului, nu al proiectantului programului;
  • crearea unei dezvoltări personalizate a testelor;
  • obiectivitate.


dezavantaje:

  • Testarea este limitată, deoarece nu există acces la codul sursă;
  • complexitatea detectării defectelor în aplicațiile distribuite;
  • multe moduri rămân neexplorate;
  • Dacă dezvoltatorul de software a executat deja testul, atunci cercetările ulterioare pot fi redundante.

Un alt nume pentru tehnica cutie gri este o depanare semi-transparentă.

Această categorie include astfel de metode de testare:

1) matrice ortogonală - utilizarea unui subset al tuturor combinațiilor posibile;

2) depanarea matricelor folosind datele de stare ale programului;

3) un test de regresie efectuat când se fac modificări noi în software;

4) un test de șablon care analizează designul și arhitectura unei aplicații solide.

metode de testare a produselor software

Compararea metodelor de testare software

Utilizarea tuturor metodelor dinamice conduce la o explozie combinatorică a numărului de teste care trebuie dezvoltate, implementate și efectuate. Fiecare tehnică ar trebui utilizată pragmatic, ținând cont de limitările sale.

Singura metodă adevărată nu există, există doar acelea care sunt mai potrivite pentru un anumit context. Tehnicile structurale ne permit să găsim cod inutil sau malware, dar acestea sunt complexe și inaplicabile pentru programele mari. Metodele bazate pe specificație sunt singurele care pot identifica codul lipsă, dar nu pot identifica un outsider. Unele tehnici sunt mai potrivite pentru un anumit nivel de testare, cum ar fi erori sau context, decât altele.

Mai jos sunt principalele diferențe dintre cele trei tehnici dinamice de testare - având în vedere un tabel de comparație între cele trei forme de software de depanare.

aspect

Metoda cutie neagră

Metoda cutie gri

Metoda cutie albă

Disponibilitatea informațiilor despre componența programului

Sunt analizate doar aspectele de bază

Cunoștințe parțiale despre proiectarea internă a programului

Acces complet la codul sursă

Grad de fragmentare a programului

scăzut

central

mare

Cine face depanarea?

Utilizatori finali, testeri și dezvoltatori

Utilizatori finali, debugeri și dezvoltatori

Dezvoltatori și testeri

bază

Testarea se bazează pe situații externe externe.

Diagrame DB, diagrame de fluxuri de date, stări interne, cunoștințe de algoritm și arhitectură

Aranjamentul intern este pe deplin cunoscut

Gradul de acoperire

Cel mai puțin exhaustiv și necesită un minim de timp

central

Potențial cel mai cuprinzător. E nevoie de mult timp

Datele și limitele interne

Debugare simplă prin încercare și eroare

Domeniile de date și limitele interne pot fi verificate dacă sunt cunoscute

Testarea mai bună a domeniilor de date și a limitelor interne

Capacitatea de testare a algoritmului

nu

nu

da

automatizare

Metodele automate de testare a produselor software simplifică foarte mult procesul de verificare, indiferent de mediul tehnic sau de contextul software. Ele sunt folosite în două cazuri:

1) să automatizeze executarea unor sarcini plictisitoare, repetitive sau scrupuloase, cum ar fi compararea fișierelor în mai multe mii de linii, pentru a elibera timpul testerului de a se concentra asupra unor puncte mai importante;

2) să realizeze sau să urmărească sarcini care nu pot fi ușor implementate de oameni, cum ar fi verificările performanței sau analiza timpului de răspuns, care pot fi măsurate în sutimi de secundă.

metode de testare a testelor software

Instrumentele de testare pot fi clasificate în moduri diferite. Următoarea divizie se bazează pe sarcinile pe care le suportă:

  • Gestionarea testelor, care include suport pentru managementul de proiect, versiuni, configurații, analiza riscurilor, urmărirea testelor, erorile, defectele și instrumentele de raportare;
  • gestionarea cerințelor, care include stocarea cerințelor și specificațiilor, verificarea lor pentru exhaustivitate și ambiguitate, prioritatea acestora și trasabilitatea fiecărui test;
  • analiză critică și de analiză statică, inclusiv planificate link-uri de gestionare a corectărilor liste de verificare și reguli, de urmărire a documentelor sursă de comunicare și analiza statică de cod pentru a detecta defecte, care să asigure respectarea standardelor de cod scris de monitorizare a fluxului, și sarcinile, înregistrarea și stocarea de comentarii, de detectare a defectelor și, analiza structurilor și a dependențelor, calculul parametrilor metrice ale codului și arhitectura. În plus, utilizarea compilatoare, analizoare, generatoare și relații de referințe încrucișate;
  • Modelarea, care include instrumente pentru modelarea comportamentului de afaceri și testarea modelelor create;
  • dezvoltarea de testare asigură generarea de date așteptate pe baza unor condiții și modele de interfață de utilizator și cod, gestiona pentru a crea sau modifica fișiere și baze de date, mesaje, de validare a datelor pe baza regulilor de gestionare, analiza statistică a condițiilor și a riscurilor;
  • Vizionarea critică prin introducerea datelor prin interfața grafică de utilizator, API, linii de comandă utilizând comparatori, ajutând la determinarea testelor de succes și a celor nereușite;
  • mediu de depanare de suport care vă permite să înlocuiască hardware-ul lipsă sau software, în vol. h. simulatoare de echipamente bazate pe subsetul de ieșire determinat, emulatoarele terminale, telefoane mobile sau echipamente de rețea, mediul de testare pentru limbi, sisteme de operare și hardware- prin înlocuirea componentelor lipsă cu driverele, modulele manechinului etc., precum și cu instrumentele pentru interceptarea și modificarea cererilor OS, simulând limitările procesorului, RAM, ROM sau rețea;
  • compararea fișierelor de date, a bazelor de date, verificarea rezultatelor așteptate în timpul și după testare, inclusiv compararea dinamică și lot, "oracole" automate;
  • acoperirea de măsurare pentru localizarea scurgerilor de memorie și a sistemului său de control estimarea comportamentului incorect în condiții simulate de sarcină aplicații generatoare de sarcină, baze de date, rețele sau servere într-un scenariu realist de creștere pentru măsurarea, analiza și verificarea raportului resurse de sistem;
  • asigurarea securității;
  • testarea performanței, încărcarea și analiza dinamică;
  • Alte instrumente, inclusiv pentru verificarea ortografiei și a sintaxei, securitatea rețelei, disponibilitatea tuturor paginilor site-ului, etc.

perspectivă

Odată cu schimbarea tendințelor din industria software, procesul de depanare este, de asemenea, supus unor modificări. Metodele existente noi pentru testarea produselor software, cum ar fi arhitectura orientată pe servicii (SOA), tehnologii fără fir, servicii mobile etc., au deschis noi modalități de testare a software-ului. Unele dintre schimbările care sunt așteptate în această industrie în următorii câțiva ani sunt enumerate mai jos:

  • Testerele vor oferi modele ușoare care permit dezvoltatorilor să-și testeze codul;
  • dezvoltarea metodelor de testare, inclusiv vizualizarea și modelarea programelor într-un stadiu incipient, va elimina multe contradicții;
  • Prezența mai multor intercepții de test va scurta timpul de detectare a erorilor;
  • Un instrument de analiză statică și instrumente de detectare vor fi aplicate pe scară mai largă;
  • utilizarea matricelor utile, cum ar fi acoperirea specificațiilor, acoperirea modelului și acoperirea codurilor, va determina dezvoltarea de proiecte;
  • instrumentele combinatoriale vor permite testerelor să determine direcțiile prioritare de depanare;
  • Testerii vor oferi servicii mai vizibile și mai valoroase pe parcursul întregului proces de dezvoltare a software-ului;
  • debuggerii vor putea crea instrumente și metode de testare a software-ului scrise în și interacționând cu diferite limbi de programare;
  • Specialiștii de depanare vor deveni mai instruiți profesional.

Se schimbă noi metode orientate spre afaceri pentru programele de testare, modalitățile de interacțiune cu sistemele și informațiile furnizate de aceștia se vor schimba, reducând în același timp riscurile și sporind beneficiile schimbărilor de afaceri.

Distribuiți pe rețelele sociale:

înrudit
Protejăm computerul: la ce se bazează programul antivirus?Protejăm computerul: la ce se bazează programul antivirus?
Cum se actualizează "iTunes": totul despre actualizarea programuluiCum se actualizează "iTunes": totul despre actualizarea programului
Cum se instalează aplicația pe iPhone: instrucțiuni pentru începătoriCum se instalează aplicația pe iPhone: instrucțiuni pentru începători
Program de testare a memoriei RAM (Windows 7)Program de testare a memoriei RAM (Windows 7)
Testarea prin regresie a software-ului. Ce este testarea de regresie?Testarea prin regresie a software-ului. Ce este testarea de regresie?
Încărcarea testelor: tipuri, descrierea procesuluiÎncărcarea testelor: tipuri, descrierea procesului
Ce este PAK și pentru ce este?Ce este PAK și pentru ce este?
Programele de testare sunt procesul de detectare a erorilor într-un produs softwareProgramele de testare sunt procesul de detectare a erorilor într-un produs software
Benchmark pentru computer: ce este?Benchmark pentru computer: ce este?
Testarea nedistructivă a îmbinărilor sudate: echipamente, GOSTTestarea nedistructivă a îmbinărilor sudate: echipamente, GOST
» » Metode de testare software și compararea acestora. Testarea prin metoda "cutie neagră" și testarea utilizând metoda "cutie albă"