Documente Academic
Documente Profesional
Documente Cultură
1
Paii realizrii proiectelor software
Rolul procesului de testare este de a asigura examinarea funcionalitilor nainte ca sistemul s fie folosit,
i orice defectare s fie raportat echipei de dezvoltare pentru a fi rezolvat. Testarea nu poate nltura
direct defectele, i nu poate nici mbunti calitatea, dar prin raportarea defectelor descoperite, acestea
pot fi nlturate crescand astfel fiabilitatea sistemului.
Dezvoltarea in cascada poate fi i mai bine prezentat n figur urmtoare care pune n
eviden etapele executabile ale dezvoltrii proiectului.
2
Fazele dezvoltrii unui proiect software
5
Un caz de test este un set de date de intrare impreuna cu datele de iesire pe care
programul ar trebui sa le produca.
Scopul primordial pentru procesul de testare este (1) identificarea erorilor de software, (2) izolarea i
fixarea/corectarea defectelor care au cauzat aceste erori. Deoarece testarea nu poate demonstra cu
certitudine de 100% ca produsul funioneaz corect n orice condiii; testarea doar poate demonstra c
produsul nu funcioneaz corect n anumite condiii. n scopul testrii deseori se include att
examinarea static a codului surs, ct i examinarea codului n execuie n diferite mprejurri i sub
diferite condiii. Aspectele de cod ce rmn sub ochiul vigilent al test/software inginerului n timpul
acestui exerciiu sunt (1) codul face lucrul care este presupus sa-l fac i (2) codul face lucrul care
trebuie sa-l fac. Informaia obinut n urma procesului de testare poate fi folosit pentru corectarea i
mbuntirea procesului conform cruia se dezvolt produsul software.[
3
EVOLUTIE
1945 - 1956 - Teste orientate pe depanare-(Debugging oriented)
Primul cercetator care s-a ocupat de noiunea de testare a unui program este Alan Turing care public n 1949 un articol despre
principiile teoretice ale verificrii corectitudinii funcionrii unui program. n 1950, Turing public un alt articol, n care ridic
problema inteligenei artificiale, i definete un test pe care sistemul informatic trebuie s l treac, i anume rspunsurile oferite
de ctre acesta la ntrebrile adresate de un operator (testerul) s nu poat fi difereniate de ctre rspunsurile oferite de un om
(etalonul). Aceast lucrare poate fi considerat a fi prima care se ocup de conceptul de testare, considerat distinct de
activitile de elaborare a codului respectiv de depanare.
19571978 Teste orientate pe demonstrare functionalitatii (Demonstration oriented)
Testarea pe scar larg a devenit necesar datorit creterea impactului economic pe care defectele nedetectate le puteau
avea. De asemenea, persoanele implicate n dezvoltarea de programe informatice au devenit mai contiente de riscurile
asociate cu defectele din programe i au nceput s pun mai mult accent pe testarea i remedierea defectelor nainte ca
acestea s afecteze produsul livrat. n aceast perioad, termenii de testare i depanare se suprapuneau i se refereau la
eforturile fcute n scopul descoperirii, identificrii i remedierii defectelor din sistemele informatice. Scopul procesului de testare
era demonstrarea corectitudinii funcionrii programului, adic absena erorilor
19791982 - Orientare spre defectare (Destruction oriented)
In 1979. Glenford J. Myers face distincia dintre depanare care este o activitate care ine de dezvoltarea programului i testarea
care este activitatea de rulare a unui program cu scopul declarat de a descoperi erori. El susine c n testarea bazat pe
demonstraie exist pericolul ca operatorul s aleag n mod incontient acel set de parametri care ar asigura funcionarea
corect a sistemului, ceea ce creeaz pericolul ca multe defecte s treac neobservate. Myers propune n abordarea sa i o
serie de activiti de analiz i control care mpreun cu procesul de testare s creasc nivelul de calitate a sistemelor
informatice.
1983 - 1987 - Orientarea spre evaluare (Evaluation oriented )
instituiile americane ANSI i IEEE ncep elaborarea unor standarde care s formalizeze procesul de testare, efort concretizat n
standarde precum ANSI IEEE STD 829, n 1983, care stabilea anumite formate care s fie utilizate pentru crearea
documentaiei de testare.
1988 - n prezent - Orientarea spre prevenire Prevention oriented
Testarea trebuie fcut n toate fazele de lucru, n paralel cu programarea i are urmtoarele activiti principale: planificare,
analiz, proiectare, implementare, execuie i ntreinere. Respectarea acestei metodologii duce la scderea costurilor de
dezvoltare i de ntreinere a unui sistem prin scderea numrului de defecte care ajung nedetectate n produsul final
7
Metode de Testare
Testarea in vederea verificarii programului folose te date de
Functional Testing test alese de participantii la procesul de dezvoltare a
programului. Ea este efectuata la mai multe nivele: la nivel de
unitate functionala, de modul, de subsistem, de sistem.
Testarea in vederea validarii programului, numita si testare de acceptare, are drept scop
stabilirea faptului ca programul satisface cerin ele viitorilor utilizatori. Ea se efectueaza n
mediul in care urmeaza sa functioneze programul, deci folosindu-se date reale. Prin testarea
de acceptare pot fi descoperite si erori, deci se efectueaza si o verificare a programului
8
4
Testarea Funcional
Prima treapta a testrii; se testeaz funciile sau module de cod. De
obicei sunt fcute de programatori deoarece presupun cunotine
Unit Testing avansate a design-ului intern al aplicaiei i codului.
System Testing Testare de tip Black-box bazata pe specificaii care acoper toate
prile sistemului
End-to-end Testing Este similar cu System testing; este o testare de nivel 'macro';
presupune testarea aplicaiei n mediul n care va fi folosit
10
5
Reprezint aciunea de re-testare dup corecii sau
modificri ale software-ului sau a mediului su de
Regression Testing dezvoltare. Poate fi dificil de a determina ct de mult este
nevoie de re-testare, n special, aproape de sfritul
ciclului de dezvoltare. Instrumentele automate de testare
pot fi utile, n special, pentru acest tip de testare
11
Testarea Non-Funcional
Acest tip este adesea folosit n mod alternativ cu testarea de
Performance Testing "stres" sau testarea de "ncrcare".
Folosit pentru a descrie testarea funcional a sistemului n timp, sub
Stress Testing ncarcri neobinuit de mari, repetarea n mai multe cicluri a unor anumite
aciuni sau intrri, inserarea de valori numerice mari, interogri complexe i
mari la un sistem de baze de date, etc
Testare a unei aplicaii n sarcini mari, cum ar fi testarea unui site web sub o
Load Testing serie de sarcini pentru a determina n ce moment timpul de rspuns a
sistemului se degradeaz sau nu
Recovery Testing Testare pentru a se vedea ct de bine un sistem se recupereaz de la
accidente, erori de hardware, sau alte probleme catastrofice
12
6
Alte metode de testare
O testare informal, care nu se bazeaz pe planuri de testare oficiale
Exploratory Testing sau cazuri de testare. n aceast situaie specialitii n testare pot
nva software-ul n timp ce-l testeaz
Testare similar cu cea exploratoare, dar specialitii n testare nu
Ad-hoc Testing cunosc produsul software n amnunt
Testare efectuat din nevoia de a nelege mediul, cultura, i
destinaia de utilizare a software-ului. De exemplu, abordarea de
Context-driven testing testare pentru software-ul pentru echipamentele medicale de
urgen ar fi cu totul diferit de cea pentru un joc pe calculator cu
buget redus
Comparison Testing Testare ce const n compararea punctele slabe i punctele forte ale
software-ului de la produsele concurente
Testare a unei aplicaii atunci cnd dezvoltare sa se apropie de finalizare,
Alpha Testing modificri minore de design pot fi nc fcute ca urmare a unei astfel de testare.
Se efectueaz de obicei de ctre utilizatorii finali sau alte persoane, i nu de
programatori sau specialiti n testare.
Testare cnd dezvoltare i testare sunt, n general, complete i bug-uri finale i
Beta Testing problemele trebuie gsite nainte de produsul final. Se efectueaz de obicei de ctre
utilizatorii finali sau alte persoane, i nu de programatori sau specialiti n testare.
Este o metod pentru a determina dac un set de date de testare sau de cazuri
Mutation Testing de testare este util, prin introducerea n mod deliberat diferite modificri de cod
("bug-uri") i retestarea cu date de test / cazuri originale, pentru a determina dac
sunt detectate de "bug-uri".
14
7
Testarea Manual vs Testarea Automat
AVANTAJE
Daca trebuiesc repetate aceleai teste de multe ori Daca Test Case-urile trebuiesc rulate de un numr mic de ori
automatizarea prezint un mare avantaj e mult mai probabil sa se prefere testarea manuala
8
Testarea automat
ntr-o abordare mai detaliat testarea automat nseamn:
1. planificare
identificarea cerinelor i a funcionalitilor.
gruparea acestora n condiii de test.
crearea cazurilor de test pentru aceste condiii.
2. design
construcia scripturilor de test.
generarea testelor de rulare.
3. execuie
crearea scenariului de rulare a scripturilor.
rularea uneltelor monitor pentru nregistrarea datelor.
nregistrarea rezultatelor pentru fiecare rulare.
raportarea i gestionarea bug-urilor.
4. management
generarea rapoartelor i graficelor.
controlul dintr-un singur punct de comand.
documentarea permanent a stadiului curent al proiectului.
17
18
9
Unelte pentru sistemele de testare
automat
GUI , prin folosirea metodei "nregistrare/redare".
analizoare de cod - analizeaz complexitatea codului
scris, respectarea unor standarde de scriere a codului.
analizoare de memorie - detecteaz depirea memoriei
alocate, suprascrieri n zone nealocate i zone rmase
nedealocate.
testare de solicitare/performan - pentru testarea
aplicaiilor web i client/server n diferite cenarii de
solicitare.
testare servere web - verific validitatea i integritatea
link-urilor, a codului html, programe client-side i server-
side, securitatea transmiterii datelor.
alte unelte - pentru managementul documentaiei,
raportrii bug-urilor, configuraiei, etc.
19
20
10
Test Driven Development -
prezentare
TDD (Test Driven Development) este o
tehnic de dezvoltare software bazat pe
iteraii mici care se desfasoar astfel: se
scrie codul de test pentru functionalitile
noi care trebuie introduse n aplicaie, apoi
se scrie codul care implementeaz
funcionalitatea.
21
11
Concluzii
Testarea automat nu va putea nlocui n ntregime
testarea manual i nici nu trebuie.
Tester-ii pot s observe cum un utilizator poate
interaciona cu produsul, n timp ce un sistem de testare
automat nu poate ntotdeauna s prevad aceste
aciuni sau s gseasc cea mai bun cale de a le testa.
Dac sunt bine folosite, programele de testare automat
mresc considerabil productivitatea QA, economisesc
costuri, mresc semnificativ consistena i calitatea
produsului i ajut la optimizarea i accelerarea
procesului de dezvoltare al unei aplicaii.
23
12