Sunteți pe pagina 1din 35

Unitatea 13 Însărcinare

De Jawaj Duha
Metodologii de testare
Metodologiile de testare în ingineria software sunt strategii, abordări sau metode de testare utilizate
pentru a testa un anumit produs pentru a asigura utilizarea acestuia. Se asigură că produsul
funcționează conform specificațiilor date și nu are efecte secundare atunci când este utilizat în afara
parametrilor de proiectare.

De ce sunt importante metodologiile de testare software?

• Gestionează cerințele proiectului, cazurile de testare, erorile, problemele într-un singur mediu
integrat pe tot parcursul ciclului de viață al testării.
• Este o soluție completă de testare care include gestionarea cerințelor, proiectarea cazurilor de
testare, gestionarea lansărilor, urmărirea defectelor etc.
• Este o abordare de testare extrem de intuitivă, care oferă o imagine completă a produsului
software și a stării de sănătate.

Metodologii de testare funcționale vs. non-


funcționale
Testarea funcțională implică testarea aplicațiilor în raport cu cerințele afacerii, care include mai
multe tipuri de testare concepute pentru a garanta că fiecare parte a software-ului se comportă în
același mod așteptat de utilizatori.

Metodele de testare non-funcțională încorporează diferite tipuri de teste axate pe aspectele


operaționale ale unui software. Acestea sunt cheia pentru lansarea de software de înaltă calitate
care poate fi adoptat cu ușurință de către utilizatorii finali prin construirea unui cadru robust de
testare care implementează atât metodologii de testare funcționale, cât și nefuncționale.

Testarea unităților
• Este nivelul de început al testării care este de obicei efectuat de dezvoltatori într-un mediu
bazat pe testare, scrie și rulează cazuri de testare înainte ca software-ul să fie predat echipei
de testare.
• Testarea unitară este o metodologie de testare software care asigură funcționarea perfectă a
componentelor individuale ale software-ului în ce scop sunt proiectate.
• Testarea unității face depanarea ușoară, deoarece bug-urile sunt detectate mult mai devreme
și ușor de remediat de către echipa de testare.

Testarea unităților - Avantaje


• Reduce defectele caracteristicilor nou dezvoltate sau reduce erorile la modificarea
funcționalității existente
• Reduce costul testării, deoarece defectele sunt capturate în faza foarte timpurie
• Îmbunătățește designul și permite o mai bună refactorizare a codului
• Testele unitare, atunci când sunt integrate cu construirea, oferă și calitatea construcției
Dezavantaje/limitări ale unității
• eTestarea nu poate detecta fiecare eroare dintr-o aplicație
• Este imposibil să se evalueze fiecare cale de execuție în fiecare aplicație software
Există o limită a numărului de scenarii și date de testare pe care dezvoltatorul le poate utiliza
pentru a verifica codul sursă.
Durata de viață a testării unității Cyc
Tehnici de testare unitară:

1. Black Box Testing - Cu ajutorul căruia sunt testate interfața cu utilizatorul, intrarea și ieșirea
2. Testarea White Box - utilizată pentru a testa fiecare dintre aceste funcții, comportamentul
este testat
3. Gray Box Testing - Folosit pentru a executa
teste, riscuri și metode de evaluare.

Testarea acceptării
• Testarea de acceptanță este ultima fază a
testării funcționale pentru a evalua software-
ul final pentru livrare.
• Se asigură că produsul respectă criteriile de
afaceri și îndeplinește complet nevoile
utilizatorului final.
• Efectuează teste interne și externe. Aceasta înseamnă că produsul este dat în mâinile
utilizatorilor pentru testarea beta și este testat și de echipa de calitate.
• Testarea beta este esențială pentru a obține feedback potențial de la utilizatori și pentru a le
aborda înainte de livrarea finală a produsului.
Testarea acceptării în
SDLC
Următoarea
ului.
diagramă explică testarea acceptării în ciclul de viață al dezvoltării software-

Cazurile de testare de acceptanță sunt executate în


raport cu datele testului sau folosind scriptul de
testare de acceptanță și apoi rezultatele sunt
comparate cu cele așteptate.
Testarea de acceptare - Criterii
Criteriile de acceptare sunt definite pe baza următoarelor atribute:

• Corectitudine funcțională și completitudine


• Integritatea datelor
• Conversia datelor
• Utilizabilitate
• Performanță
• Actualitatea
• Confidențialitate și disponibilitate
• Instalabilitate și upgrade
• Scalabilitate
• Documentație
Plan de testare a acceptării - Atribute
Activitățile de testare a acceptanței se desfășoară în etape. În primul rând, testele de bază sunt
executate, rezultatele sunt satisfăcătoare, apoi se efectuează executarea unor scenarii mai
complexe.

Planul testului de acceptare are următoarele atribute:

• Introducere
• Categoria testului de acceptare
• Mediu de operare
• ID-ul cazului de testare
• Titlul testului
• Obiectivul testului
Raport test de acceptare - Atribute
Raportul testului de acceptare are următoarele atribute:

• Identificator raport
• Rezumatul rezultatelor
• Variaţii
• Recomandări
• Rezumatul listei de sarcini
• Decizia de aprobare

Cine efectuează testarea de acceptare?


• Testarea internă de acceptare (cunoscută și sub numele de Alpha Testing) este efectuată de
membrii organizației care dezvoltă software-ul. dar nu sunt direct implicați în proiect. De
obicei, membri ai managementului de produs, vânzărilor sau asistenței pentru clienți.
• Testarea externă de acceptanță - este efectuată de persoane care nu sunt angajați ai
organizației care a dezvoltat software.
• Testarea acceptării de către clienți este efectuată de clienții organizației care a dezvoltat
software-ul. Ei sunt cei care au cerut organizației să dezvolte software-ul.
• Testarea acceptării utilizatorului - (cunoscută și sub numele de testare beta) este efectuată
de utilizatorul final al software-ului.

Avantajele testării de acceptanță:


• Validează faptul că cerințele de afaceri sunt îndeplinite pe baza relatărilor utilizatorilor din
domeniu
• Reduce riscul identificării defectelor în producție
• Utilizatorii finali vor dobândi abilități și încredere în timp ce utilizează noul sistem înainte de a
intra în direct.
Dezavantaje / limitări ale acceptării
•eS-ar putea nu testați toate funcțiile sau caracteristicile
• Progresul testului este dificil de măsurat
• Utilizatorii pot confirma modul în care funcționează sistemul și nu pot vedea sau raporta
defectele
• Utilizatorii se pot concentra pe compararea noului sistem cu un sistem vechi, mai degrabă
decât să caute defecte.
Testarea funcțională
Testarea funcțională este o tehnică de testare care este utilizată pentru a testa caracteristicile /
funcționalitatea sistemului sau a software-ului, ar trebui să acopere toate scenariile, inclusiv căile
de eșec și cazurile limită.

Tehnici de testare funcțională:

Există două tehnici majore de testare funcțională, după cum se arată mai jos:

Celelalte tehnici majore de testare funcțională includ:

• Testarea unităților
• Testarea integrării
• Testarea fumului
• Testarea acceptării de către utilizator
• Testarea localizării
• Testarea interfeței
• Testarea utilizabilității
• Testarea sistemului
• Testarea de regresie
• Testarea globalizării

Avantajele testării funcționale:


• Produce un produs/software fără defecte
• Se asigură că clientul/utilizatorul final este satisfăcut
• Se asigură că toate cerințele sunt îndeplinite
• Asigură buna funcționare a tuturor funcționalităților unei aplicații/software/produs.
Dezavantaje / limitări funcționale
•eFuncțional Testarea este un proces în care diferite greșeli logice din software nu sunt
detectate în procesul de testare
• Nu-i pasă cum dezvoltatorul implementează codul sursă real, deoarece numai
se concentrează pe rezultatele codului sursă.
Testarea sistemului
• Testarea sistemului este metoda de testare a cutiei negre utilizată pentru a evalua sistemul
integrat în ansamblu și asigură îndeplinirea tuturor cerințelor specifice.
• În cazul testării sistemului, funcționalitatea produsului este testată end-to-end și este de
obicei efectuată de echipa de testare, nu de echipa de dezvoltare.
• Testarea sistemului se efectuează înainte de a împinge produsul software în producție.
Tipuri de teste de sistem:
Avantajele testării sistemului:
• Verifică sistemul în raport cu cerințele de afaceri, funcționale și tehnice ale utilizatorilor finali.
• Ajută la obținerea de erori maxime înainte de testarea acceptării.
• Testarea sistemului crește nivelul de încredere al echipei în produs înainte ca produsul să fie
supus testării de acceptare.
Dezavantaje/limitări ale sistemului
•eNumai limite d acoperirea aplicației, deoarece testerul nu poate viza un anumit segment de
cod.
• Cazurile de testare sunt dificil de proiectat, deoarece testerul nu are cunoștințe anterioare
despre
specificații și codificare.
• Unele intrări posibile vor fi doar testate.
Testarea performanțelor
Testarea performanței, o tehnică de testare nefuncțională efectuată pentru a determina
parametrii sistemului în ceea ce privește stabilitatea sub diferite sarcini de lucru. Testarea
performanței măsoară atributele de calitate ale sistemului, cum ar fi fiabilitatea și utilizarea
resurselor.
Tehnici de testare a performanței:
• Load Testing - este cea mai simplă formă de testare, pentru a înțelege comportamentul
sistemului sub sarcină specifică. Testarea încărcării va avea ca rezultat măsurarea
tranzacțiilor critice importante pentru afaceri și încărcarea bazei de date, aplicației, serverului
etc.
• Testarea stresului - se efectuează pentru a găsi capacitatea limită superioară a sistemului
și, de asemenea, pentru a determina modul în care sistemul funcționează dacă sarcina
curentă depășește cu mult maximul așteptat.
• Testarea la înmuiere - testarea la îmbibare , cunoscută și sub numele de testare de
anduranță, se efectuează pentru a determina parametrii sistemului sub sarcină așteptată
continuă. În timpul testului de înmuiere, parametrii, cum ar fi utilizarea memoriei, sunt
monitorizați pentru a detecta scurgerile de memorie sau alte probleme de performanță.
• Spike Testing - testarea spike se realizează prin creșterea bruscă a numărului de utilizatori
cu o cantitate foarte mare și măsurarea performanței sistemului.
Procesul de testare a performanței:
Testarea securității
Testarea securității este o tehnică de testare pentru a determina dacă un sistem informatic
protejează datele și menține funcționalitatea conform destinației. De asemenea, are ca scop
verificarea a 6 principii de bază, astfel cum sunt enumerate mai jos:

• Confidențialitate
• Integritate
• Autentificare
• Autorizație
• Disponibilitate
• Non-repudiere
Testarea securității - Tehnici:
• Injecție
• Autentificare defectuoasă și gestionare a sesiunilor
• Scriptare între site-uri (XSS)
• Referințe nesigure la obiecte directe
• Configurare greșită a securității
• Expunerea datelor sensibile
• Lipsește controlul accesului la nivel de funcție
• Falsificarea solicitărilor între site-uri (CSRF)
• Utilizarea componentelor cu vulnerabilități cunoscute
• Redirecționări și redirecționări nevalidate

Testarea de regresie
Testarea de regresie: o tehnică de testare a cutiei negre care constă în reexecutarea
acelor teste care sunt afectate de modificările codului. Aceste teste trebuie executate
cât mai des posibil pe tot parcursul ciclului de viață al dezvoltării software-ului.

Tipuri de teste de regresie:

• Necesită cunoștințe despre sistem și despre modul în care acesta afectează funcționalitățile
existente.
• Testele sunt selectate pe baza zonei de defecte frecvente
• Testele sunt selectate pentru a include zona, care a suferit modificări de cod de mai multe ori
• Testele sunt selectate pe baza criticii caracteristicilor.

Etapele testării de regresie:


Testul de regresie sunt cazurile ideale de automatizare care au ca rezultat un Return On
Investment (ROI) mai bun.

• Selectați testele pentru regresie


• Alegeți instrumentul apt și automatizați testele de regresie
• Verificați cererile cu puncte de control
• Gestionați testele de regresie/actualizați atunci când este necesar
• Programează testele
• Integrați-vă cu compilările
• Analizați rezultatele

Metodologia cascadei
În modelul cascadă, dezvoltarea de software progresează prin diferite faze, cum ar fi analiza
cerințelor, proiectarea etc. - secvențial.

În acest model, următoarea fază începe numai atunci când faza anterioară este finalizată.
Pentru ce este abordarea testării
l Prima fază în modul cascadă este faza de cerințe în care toate cerințele proiectului sunt
complet definite înainte de începerea testării. În această
fază, echipa de testare face brainstorming cu privire la domeniul de testare, strategia de testare și
elaborează un plan detaliat de testare.

Numai după ce proiectarea software-ului este completă, echipa va trece la executarea cazurilor de
testare pentru a se asigura că software-ul dezvoltat se comportă așa cum se aștepta.

În această metodologie, testarea trece la faza următoare numai după finalizarea fazelor anterioare.
Avantajele și dezavantajele avantajelor cascadei: ?
Acest model de inginerie software este foarte simplu de planificat și gestionat. Prin urmare,
proiectele, în care cerințele sunt clar definite și declarate în prealabil, pot fi testate cu ușurință
folosind un model cascadă.

Dezavantajele:

În modelul cascadă, puteți începe cu faza următoare numai după finalizarea fazei anterioare. Prin
urmare, acest model nu poate găzdui evenimente neplanificate.
Metodologie agilă
În metodologia agilă, software-ul este dezvoltat în cicluri rapide. Interacțiunile dintre clienți,
dezvoltatori și clienți sunt accentuate, mai degrabă decât procesele și instrumentele. Metodologia
agilă se concentrează pe răspunsul la schimbare, mai degrabă decât pe planificarea extinsă.

Care este abordarea de testare pentru metodologia Agile?

Testarea incrementală este utilizată în metodele de dezvoltare agile și, prin urmare, fiecare
versiune a proiectului este testată temeinic. Acest lucru asigură că orice erori din sistem sunt
remediate înainte de următoarea versiune
Avantajele și dezavantajele Agile
Metodologie?
Avantaje:
Este posibil să faceți modificări în proiect în orice moment pentru a respecta cerințele. Această
testare incrementală minimizează riscurile.

Dezavantajele:
Interacțiunea constantă cu clientul înseamnă o presiune suplimentară a timpului asupra tuturor
părților interesate, inclusiv asupra clientului, a echipelor de dezvoltare software și de testare
Ce metodologie software să alegeți?
Există o mulțime de metodologii de testare disponibile care sunt concepute pentru un anumit
scop, cu propriile avantaje și dezavantaje. Selectarea unei metodologii software depinde de mai
mulți factori, cum ar fi natura proiectului, care sunt cerințele clientului, programul proiectului etc. În
unele cazuri, testarea și dezvoltarea merg mână în mână, în timp ce altele includ testarea în
fazele ulterioare, când construcția este gata.
Configurarea metodologiilor de testare?
Metodologiile de testare nu sunt utilizate doar de dragul testării codului, ci sunt utilizate și în alte
scopuri.

• Programare: Programarea este esențială pentru implementarea cu succes a metodologiei de


testare care ar trebui să îndeplinească cerințele fiecărui membru al echipei.
• Abordarea testului: Odată ce ați terminat cu programarea și rezultatele proiectului sunt bine
definite, următorul pas este formularea abordării corecte a testului.
• Raportare: Acest pas va dicta eficacitatea abordării testului și modificările necesare pentru
stabilirea cu succes a metodologiei de testare.

S-ar putea să vă placă și