Sunteți pe pagina 1din 27

Nivele de testare

Nivele de testare

 În dezvoltarea unui produs software testarea se realizează pe mai multe nivele:


testarea de module, testarea de integrare, testarea de sistem şi testarea de acceptare.

Reflectă
necesitățile
utilizatorului

Definirea funcțiilor
necesarea pentru
realizarea cerințelor

Proiectarea tehnică a
funcţiilor identificate în
specificaţiile funcţionale

Proiectarea detaliată a
oricărui modul conform
cerinţelor de funcţionalitate.
Nivele de testare

• Unit testing – Testarea de module;


• Integration testing- Testarea de integrare;
• System testing-Testarea de sistem;
• Acceptance testing- Testarea de acceptare.
Testarea de module

 În cadrul testării de module  În programarea clasică un


se realizează verificarea modul este un subprogram
celor mai mici unităţi  În cadrul programelor
software care pot fi orientate obiect, cea mai
compilate şi link-editate mică unitate testabilă este
independent. clasa
Testarea de module

Testarea de module se concentrează asupra verificării


interfeţelor modulelor, structurilor de date locale, condiţiilor de
la limite, căilor independente şi căilor de tratare a erorilor.
Testarea de module

 Testarea unui modul este realizată de programatorul care


implementează modulul.
 Testarea unitară se referă la scrierea unor bucăți de cod,
denumite cod de testare, care validează codul de producție.
Testarea de module

• Fiecare test validează un comportament din aplicație;


• Rulează foarte repede, maxim în câteva minute;
• Sunt foarte scurte și ușor de citit;
• Rulează la apăsarea unui buton, fără configurări suplimentare.
Testarea de module
(maniere de testare)

Test Driven Development


Test First Programming
(TDD)

• crearea unui design pentru  TDD este o metodă de a face


implementarea de design incremental
funcţionalităţi;
• crearea minimului de cod
necesar pe baza design-ului;
• scrierea unuia sau mai
multor teste care codează
ceea ce trebuie să facă
design-ul;
Testarea de integrare

Aceasta este o tehnică sistematică de construire a structurii


programului prin gruparea componentelor în paralel cu
testarea aspectelor legate de interfaţa dintre componente. Aici
se pot evidenţia două maniere de testare: neincrementală sau
incrementală.
Testarea de integrare
(metode de a scrie teste)

neincremental incremental
(big-bang testing) (bottom-up), (top-down)

 presupune construirea structurii


• constă în integrarea programului pas cu pas şi
componentelor prin gruparea testarea ansamblului obţinut.
tuturor modulelor dintr-o dată,  Un element important în
urmată de testarea întregului execuţia testului este secvenţa în
ansamblu. care modulele trebuie să fie
• Acest tip de integrare nu este testate.
recomandată, deoarece  Astfel, testarea de integrare se
corectarea erorilor va fi foarte realizează ascendent, descendent
greu de realizat. sau mixt.
Testarea de integrare
Integrarea big-bang

 Sunt integrate într-un program executabil toate modulele existente la


un moment dat. Metoda este periculoasă căci toate erorile apar în același
timp și localizarea lor este dificilă.
 Acest tip de integrare este în general considerată ca o alegere proastă a
strategiei de integrare.
Testarea de integrare
Integrare de sus în jos (top-down)

 Se începe prin testarea modulului principal, apoi se testează


programul obținut prin integrarea modulului principal și a modulelor
direct apelate de el, și așa mai departe. Componentele care apelează alții
sunt de obicei plasate deasupra celor care sunt numite. Testarea de integrare de
sus în jos vă permite să evaluați componentele interfeței, de sus în jos

Ordinea integrării va fi:


1,2;
1,3;
2,4;
2,5;
3,6;
3,7.
Testarea de integrare
Integrare de jos în sus (bottom-up)

 Aceasta este opusul strategiii de sus în jos și componentele sunt integrate în


de jos în sus.

Ordinea integrării va
fi:
4,2
5,2
6,3
7,3
2,1
3,1
Testarea de integrare
Metoda mixtă

 În cadrul metodei mixte, testarea urmează mai întâi metoda


descendentă.
 Modulele selectate de pe nivelurile inferioare sunt testate
utilizând metoda ascendentă.
 Această flexibilitate permite preluarea avantajelor metodelor
de ascendentă şi descendentă.
 În cele mai multe aplicaţii, metoda mixtă este cea mai
potrivită modalitate de abordare.
Testarea de sistem

 Testarea sistemului - verificarea funcţionalităţii sistemului


ca un tot întreg.
 De obicei acesta este realizat de o echipă independentă.
 Independenţa asigură obiectivitatea evaluării sistemului, care
se bazează pe specificaţiile scrise, şi nu pe codul produsului
soft.
Testarea de sistem

 În modelul -V, comportarea adecvată a sistemului se


documentează în specificaţia funcţională, care defineşte ce
trebuie construit pentru a satisface cerinţele sistemului.
 Specificaţia funcţională trebuie să conţină definiţiile ambelor
cerinţe ale sistemului –funcţionale şi non-funcţionale.
 Definitie:O cerinţă funcţională este o cerinţă ce specifică o
funcţie obligatorie a sistemului sau a unei componente a
sistemului.
 Definiție: Cerinţele non-funcţionale explică comportamentul
aplicaţiilor în practică.
Testarea de sistem
Exemple de cerinţe non-funcţionale:

 Instabilitatea - proceduri de instalare.


 Interoperabilitatea - execuţia aplicaţiei în diferite medii de lucru.
 Stabilitatea - posibilitatea de a face schimbări în sistem.
 Performanţa - comportamentul normal, aşteptat.
 Încărcarea ( loading) - comportamentul sistemului când resursele
sunt încărcate la maxim.
 Portabilitatea - utilizarea pe diferite platforme.
 Capacitatea de recuperare - restabilirea sistemului după încheerea
necorespunzătoare a execuţiei.
 Fiabilitatea - capacitatea softului de a-și păstra funcţionalităţile
după o perioadă de timp.
 Utilizabilitatea - simplitatea de comunicare a utilizatorului cu
sistemul.
Testarea de sistem
Tehnici specifice pentru testarea de sistem

 Testarea pentru determinarea capacităţii de recuperare este un


test de sistem care, printr-o multitudine de căi, forţează
aplicaţia software să îşi încheie execuţia în mod
necorespunzător. Prin acestea se testează capacitatea aplicaţiei
de revenire dintr-o situaţie necorespunzătoare.
Testarea de sistem
Tehnici specifice pentru testarea de sistem

 Testarea securităţii se realizează pentru a verifica eficienţa


mecanismelor de protecţie dintr-un sistem software şi dacă
acesta se comportă corespunzător la atacurile externe.
Testarea de sistem
Tehnici specifice pentru testarea de sistem

 Testarea de solicitare se execută astfel încât sistemul să


funcţioneze cu un volum mai mare de resurse decât cel
normal, cu scopul de a determina fiabilitatea aplicaţiei şi
momentul în care funcţionarea aplicaţiei devine critică şi
pentru a lua măsurile corespunzătoare, astfel încât să nu se
ajungă în exploatarea de zi cu zi a sistemului informatic la
astfel de situaţii.
Testarea de sistem
Tehnici specifice pentru testarea de sistem

 Testarea de încărcare constă în rularea sistemului software în


condiţiile în care resursele (memorie, microprocesor, reţea)
sunt încărcate la maxim astfel încât se ajunge la situaţii critice,
în care o parte din resurse nu mai sunt disponibile. Se
urmăreşte capacitatea sistemului de a-şi întrerupe
funcţionarea fără pierderea sau coruperea datelor.
Testarea de sistem
Tehnici specifice pentru testarea de sistem

 Testarea performanţelor se realizează pentru determinarea


conformităţii sistemului cu cerinţele de performanţă impuse.
De exemplu sistemul este încărcat într-un interval de timp
pornind de la capacitatea minimă până la capacitatea maximă
şi se verifică dacă resursele sistemului se află în limitele
corespunzătoare şi nu sunt întârzieri în executarea funcţiilor
aplicaţiei.
Testarea de acceptare

 Testarea de acceptare are loc după ce toate erorile de interfaţă


descoperite în cadrul testării de integrare au fost corectate.

 Testarea de acceptare poate evalua starea de pregătire a


sistemului pentru desfăşurare şi utilizare.

 Testarea de acceptare este o responsabilitate a beneficiarului


sau utilizatorului, însă pot fi implicaţi şi alţi membri ai
echipei.
Testarea de acceptare
Formele tipice ale testării de acceptare includ următoarele:

Testarea de
• testarea de către reprezentanţii utilizatorilor pentru a verifica dacă sistemul
acceptare a satisface cerinţele de business.
utilizatorului

Testarea de
acceptare a • denumită deseori testarea pregătirii pentru activitate.
funcţionalităţii

Testarea de • Testarea de acceptare a contractului - uneori criteriile de acceptare ale unui


sistem sunt consemnate în contract. Testarea se efectuează înainte de validarea
acceptare a sistemului, pentru confirmarea respectării criteriilor solicitate.
contractului şi • Testarea de acceptare a reglementărilor - în unele industrii sistemul trebuie să
reglementărilor respecte unele standarde guvernamentale, legale sau de securitate.
Testarea de acceptare
Activitatea include:

 Posibilităţile de back-up
 Procedurile pentru restabilire după eşecuri
 Instruirea utilizatorilor
 Procedurile de stabilitate
 Procedurile de securitate
Testarea de acceptare
Activitatea include:

 Testarea Alpha. Testarea alfa este realizată la firma care produce


aplicaţia software, beneficiarul fiind acela care conduce testele.
Această testare se realizează în casă (pe site-ul dezvoltatorilor).

 Testarea Beta. Testarea beta este realizată la beneficiari şi utilizatori


finali. Aceştia primesc o versiune a aplicaţiei software, versiune
apropiată de cea finală şi o utilizează în scopul descoperirii erorilor
şi a problemelor de performanţă şi funcţionalitate. Problemele
apărute în cadrul acestei testări sunt raportate firmei care a realizat
aplicaţia. După ce perioada acordată pentru testarea beta s-a
terminat, toate erorile apărute sunt corectate, urmând să se realizeze
versiunea finală a aplicaţiei software.
Mulțumesc!