Automatizarea testării software-ului

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică , automatizarea testării software constă în dezvoltarea unui software specific care interacționează cu software-ul care urmează să fie testat fără a fi nevoie de intervenția unui operator uman și oferă utilizatorului un raport de calitate.

Rezultatul procesului de automatizare a testării este „testarea automată”. Dacă, pe de altă parte, testarea software constă în utilizarea produsului aproape ca și cum ar fi funcționarea normală a acestui sistem software, vorbim de „testare manuală”. Între aceste două extreme, pot exista diferite poziții intermediare, în care o parte a lucrării este automatizată, dar prezența testerului este întotdeauna necesară. În astfel de cazuri, vorbim de „testare parțial automatizată” sau „testare semi-automată”.

Descriere

În testarea manuală, tipică pentru software-ul interactiv, testerul folosește software-ul așa cum ar face utilizatorul, dar încercând să activeze cât mai multe funcții și configurații cât mai variate posibil. Când testerul observă un comportament neașteptat, el ia act de acesta și continuă să testeze alte caracteristici.

În testarea automată, testerul poate utiliza două tehnici de bază:

  1. Hand scrie despre testarea software-ului.
  2. Rulează software-ul care urmează să fie testat într-un mediu de testare care înregistrează operațiunile utilizatorilor.

Prima tehnică necesită ca testerul să fie un programator care cunoaște arhitectura internă a software-ului care urmează să fie testat. Software-ul de testare, scris de obicei într-un limbaj de nivel foarte înalt , poate interacționa cu software-ul care urmează să fie testat în diferite moduri:

  • apelarea directă a rutinelor individuale ale acestui software;
  • apelarea rutinelor exportate (adică publicate) dintr-un modul ;
  • trimiterea de mesaje de comunicare între procese către programul de testat;
  • prin rularea programului de testat într-un mod în care primește două fișiere, unul din care citește datele de intrare și celălalt în care scrie datele de ieșire.

Oricare ar fi tehnica de comunicare adoptată, atunci când software-ul care urmează să fie testat răspunde, programul de testare compară răspunsurile obținute cu rezultatele așteptate. Dacă există vreo discrepanță, se generează un raport.

Tehnica înregistrării operațiunilor utilizatorilor poate fi implementată și de un tester care nu știe cum să programeze sau care nu cunoaște arhitectura internă a software-ului care urmează să fie testat. Cu toate acestea, are două dezavantaje majore:

  • Există o mare probabilitate ca, atunci când software-ul care urmează să fie testat este modificat, înregistrările sunt necorespunzătoare și, prin urmare, trebuie refăcute.
  • Mediul de testare nu oferă instrumente automate pentru a determina dacă software-ul se comportă conform așteptărilor.

Această tehnică este indicată doar pentru testele parțial automatizate, deoarece este întotdeauna necesar ca testerul să verifice vizual dacă software-ul se comportă așa cum ar trebui.

De obicei, automatizarea testelor se face după dezvoltarea unei proceduri de testare manuale.

Introducerea automatizării în testele de acceptare este un proces costisitor și ar trebui considerată o completare și nu o înlocuire a testării manuale. Cu toate acestea, investiția poate oferi o rentabilitate economică pe termen lung, atât prin faptul că permite testarea regresiei la costuri reduse, cât și prin faptul că permite tehnica de dezvoltare software numită „test-driven development” (în engleză, „ Test Driven Development” ").

Un domeniu activ de cercetare este cel al generării automate a cerințelor de testare ( cazuri de testare ).

O tendință în creștere în dezvoltarea de software este utilizarea arhitecturilor de testare automată a modulelor de cutie albă din familia xUnit (care include JUnit și NUnit ).

Testează instrumentele de automatizare

Bibliografie

  • Elfriede Dustin și colab.: Testarea automată a software-ului. Addison Wesley, 1999, ISBN 0-201-43287-0