Documente Academic
Documente Profesional
Documente Cultură
Ce este un proiect?
Un proiect este un proces unic care consta din activitati controlate si coordonate
avand odata de inceput si o data de sfarsit, intreprinse pentru a atinge un obiectiv
(produs sau serviciu) ce corespund cerintelor specificate inclunzand constrangeri de
timp, cost si resurse.
Caracteristici:
1.timp limitat –finalul este atins cand toate obiectivile sunt indeplinite sau
neindeplinite cand proiectul sa oprit.
2. Livrare unica – orice proiect are ca scop sa produca produse livrabile, trebuie sa fie
analizate unicitatea proiectului poate sa difere de la un proiect la altul.
3. Elaborarea progresiva (indreptat spre atingerea scopurilor) – iteratiile succesive su
ca rezultat dezvoltarea unor solutii mai eficiente pt dezvolttarea proiectului.
1. Scopul
2. Timpul
3. Calitatea
4. Bugetul
13. OPS (IT operations)- grup de persoane care sunt resp. De suportul tehic a
proiectului si pregatirea mediilor de test.
15. Vendorii (vendors) sunt contractati pt a furniza produse sau servicii suplimentare
pe care proiectul le va solicita.
Scopul
Testarea functionala:
1. Unit testing;
2. Integration testing;
3. Testarea de regresi
Testarea non-functionala:
1. Testarea de performanta
2. Security testing
3. Stress testing cu volume mari.
Ce este testare dinamica si statica?
Testarea dinamica are loc atunci cand codul este executat, ea verifica
comportamentul functional, procesorul, memoria...
Nivelurile tehnice:
1. Testarea unitatilor
2. Testarea de integrare
3. Testarea de acceptare
4. Testarea de sistem
1. Revizuirea
2. Analiza statica
Revizuirea este utila pentru a gasi si a elimina defectele din documente precum
cerinte specifice functionale, design, cazuri de teste.
Analiza statica este utila pentru a analiza codul scris de developeri deobicei prin
document. Are scopul de agasi defectele structurale ale codului ce pot duce la
defecte functionale ale aplicatiei.
Avantajele:
1. Eliminarea defectelor
2. Timp de dezvoltare scurt
3. Daca defectele sunt gasite si corectate din timp, costul timpului pentru
executarea testelor dinamice scad, deoarece sunt mai putine defecte in
sistemul ce se testeaza.
Tipuri de revizuire:
1. Inspectia(formala)
2. Revizuirea tehnica
3. Parcurgerea
4. Revizuirea informala
Inspectia este un proces formal prescris, fiecare persoana implicata are un rol
definit, regulile definesc procesul.
Obiectivele:
1. White Box
2. Black Box
3. Grey Box
White Box
In acest tip de testare, logica interna ,implementarea si functionarea sunt examiante. Test Cases au
rolul de a verifica cum aplicatia va functiona la nivel intern. Aceasta forma de testare nu verifica lipsa
cerintelor sau a specificatiilor. In WB testerul are acces la codul sursa spre deosebire de BB unde el nu
are acces la codul sursa.
Black Box
1. Equivalence partitioning
Equivalence partitioning
O clasa de echivalenta este un set de valori de date pe care testerul le presupune ca sunt procesate in
acelasi mod de obiectul care este testat.
Testarea a unui reprezentant al clasei este considerata suficient deoarece se presupune ca pentru
orice ca pentru orice alta valoare de intrare ale aceleiasi clase de echivalente obiectul testat va arata
celeasi reactii sau comportament.
Pe langa testarea claselor de chivalenta cu introducerea datelor corecte trebuie de testat clasele de
chivalenta cu date incorecte.
Exemplu:
Defectele deseori apar la granitile claselor de echivalenta. Aceasta se intqampla deoarece granitile nu
sunt deseori clar definite sau sunt intelese gresit. Se verifica granitile claselor de echivalenta si se
testeaza:
1. Valoarea exacta
Exemplu:
75% - nota 9
85% - nota 10
Decision Table
Daca avem date de intrare diferite care au ca rezultat actiuni diferite sau avem o regula de business
care testeaza daca exista o combinatie diferita de date de intrare care realizeaza actiuni diferite atunci
folosim tabelul de decizie.
1 2 3 4 S - salariu pe lunar
3. Se achita overtime +
4. Fisa de absente +
In multe sisteme nu doar intrarea curenta ci si istoria de executie sau evenimente sau intrari
influenteaza calculul rezultatelor si modul in care se va comporta sistemul.
Diagrama de stare:
Starea actiunea
Obiectul trece de la o stare la alta atunci cand tranzitia se declanseaza sau are lo cun eveniment ce
are loc in domeniul probleme.
Testerii pot utiliza cazuri de testare pentru a obtine test cases.
Diagramele de caz se folosesc pentru a arata sistemul din punctul de vedere al utilizatorului sau
relatia lui cu altea sisteme.
Grey Box Testing
Se foloseste cand metodologiile White Box si Black Box sunt utile in combinatie.
Aceasta forma de testare va analiza atat partea functionala cat si codul sursa.
Testerul are cunostinte de baza in programare. Pentru proiecte mari este bine de
incorporat atat WB cat si BB testing.
1. Test Case - introducem pas cu pas cum trebuie de testat o cerinta, specificata
bazata oe functionalitatea aplicatiei. Scopul este de a valida o anumita
functionalitate sau integritate intre componentele aplicatiei si alte servicii ale
aplicatiei..
1.negative
2.pozitive
Scopul:
de a verifica daca aplicatia nu afiseaza eroarea atunci cand nu se presupune sa
afiseza eroare cand se presupune ca eroarea trebuie afisata.
Scenariu pozitiv:
Scenariu negativ:
Scenariu de test- (Test case Scenaria) scopul este de a testa functional end-to-end a
unei aplicatii si de a asigura ca procesele si fluxurile de buissness functional corect.
Testerul indentifica cazurile de utilizare care pot fi realizate. O data ce acestea
scenarii sunt determinate pt. Fiecare scaneriu. Scenariile de testare sunt coceptia
high-level (superficiala) la ce trebuie de testat.
Test case(caz de test) –un set de pasi ce trebuie de executat de catre tester pt. A valida
scenariul.
Scenariu de test
Cazuri de test
Scenarii de test sunt derivate din cazurile de utilizare iar cazurile de test din scenario de
test.
Scenarii de testare de obicei are mai multe cazuri de test associate lui de . Cazult de test
reprezinta detalii la nivel LOW level (detaliat) privind modul de testare al scenariului.
1. Factorul uman
2. Specificatiile incomplete
- Etapa de documentare
1. Defect ID
2. Summary
3. Defect description
4. Product version
7. Expected result
8. Notes
9. Platforma
10. Attachements
11. Specification ID
12. Date raised
13. Reported by
14. Status
15. Fixed by
Severity Priority
- Critical - Immediate
- Serious - High
- Moderate - Medium
- Inconvinience - Low
New -> Open -> Fixed -> In Test -> Verified ->( Closed || Re-open)
-> Enchangement
-> Duplicated
Fiecare proiect de elaborare softwere trebuie planificat si elaborat folosind un model de ciclu de viata
ales in avans. Lipsa unei organizari bine structurate va duce la costuri suplimentare necesare pentru
realizarea proiectului. Ciclul de viata a unui soft este o secventa binedevinita si structurata in etape.
Etapele CVPS:
1. Initiation - pasul cand utilizatorul initiaza cererea pentru soft dorit el conecteaza furnizorii si
negociaza termenii.
2. Analysis and planing - etapa de analiza a dezvoltarii soft, implica definirea obiectivelor
proiectului ca functii.
3. Requirements and specifications - cerintele sunt colectate, aceasta este principalul obiectiv al
managerului de proiect si partilor interesate. Se organizeaza intalniri cu managerul si partile
interesate pentru a determina asa cerinte
- Cine foloseste sistemul?
6. Testing - dupa dezvoltarea produsului soft acesta este testat conform cerintelor pentru a
asigura ca produsul indeplineste cerintele initiale adresate.
8. Maintance/Support - odata ce produsul e livrat clientilor pot aparea probleme care necesita
solutionate.
Modelul Waterfall - a fost primul model introdus. E un model liniar secvential al ciclului de viata este
simplu inteles si utilizat. Fiecare faza trebuie finalizata complet inainte de a se trece la urmatoarea.
Testarea incepe abia dupa finalizarea dezvoltarii.
Schema Waterfall:
Requirement Specification -> Functional Specification -> Technical Specification -> Program
Specification -> Development -> Testing
Avantaje:
- Functioneaza bine pentru proiecte mai mici unde cerintele sunt bine determinate
Dezavantaje:
- Odata ce aplicatia este in etapa de testare este foarte dificil sa ne intoarcem si sa modificam
ceva e nu a fost bine gandit
- Atunci cand cerintele sunt clare si bine definite, tehnologiile sunt bine intelese, cand scopul
proiectului etse stabil si cand proiectul este scurt.
Model V:
- Sarcinile de dezvoltare si testare au aceiasi importanta unde ramura stanga reprezinta procesul
de dezvoltare, iar dreapta procesul de testare si integrare
- In program specific definim fiecare sublistem utilizand task, compartiment si interfata legate cu
alte subsisteme
Avantaje:
Planificarea
Crearea testelor
Dezavantaje:
Proiectul trece in mod repetat prin aceste faze in iteratiinumite spirale, spirala de baza incepand cu
etapa de planificare. Se aduna cerintele si se evalueaza riscul. Fiecare spirala urmatoare se
construieste pe spirala de baza.
Etapele:
1. Planificarea cerintelor
Avantajele:
Dezavantaje:
- Poate fi un model costisitor
Testarea non-functionala - de obicei orice testare care nu are legatura cu testarea functionalitatii este
definita ca non-functionala.
1. Load testing - verificam posibilitatea sistemului de a incarca mai multi utilizatori in acelasi
timp(Ex. Se conecteaza 100 de persoane concomitent la site)
2. Fault tolerance testing - verificam daca sistemul poate functiona dupa o eroare soft sau
hardware.(Ex. Oprirea unui server si verificarea daca site lucreaza)
3. Security testing - verificam daca sistemul nu are vulnerabilitati(Ex. Utilizatorul nu poate accesa
o pagina fara autentificare)
5. Usability testing - cat de user-friendly este interfata sistemului(Ex. Cantitatea de clicuri pentru
a efectua ceva actiuni)
Load testing:
2. Soak testing - comportarea sistemului in timpul unei incarcaturi indelungate (ex. 24 ore)
Load testing de obicei nu se executa manual, sunt instrumente specifice pentru a emula
incarcatura.(HP performance testing)
2. Utilizatori concurenti maxim suportati - reprezinta cantitatea maxima care paote lucra in
sistem
2. Pierdere de date - cantitatea de date care va fi pierduta din cauza procesului de reancarcare
Modelul Agile - un model implementat unde aplicatia este dezvoltata in cicluri incrementare, rapide.
Aceasta duce la mici versiuni incrementale, fiecare versiune e elaborata pe versiunea anterioara,
fiecare versiune este complet testata. E util pentru operatii critice de timp.
Caracteristicile:
3. Fiecare echipa va contine un reprezentan din partea clientului si la sfarsitul fiecarei iteratii se
va revizui procesul, se vor reevalua prioritatile cu scopul de optimizare
4. Intaliri zilnice pentru a discuta statusul. Membrii vor discuta ce sa facut ieri si ce e planificat
astazi si daca sunt probleme ce impiedica lucrul
Metode Agile:
- Scrum
- Expreme programming
Avantaje Agile:
Dezavantaje Agile:
1. Documentatie saraca
2. Pentru app mai e dificil de a evolua suportul necesar la inceputul ciclului de viata
Scrum
- un sprint este unitate de baza de dezvoltare in scrum. Este un efort limitat la o durata specifica.
- pasii procesului :
2. In tjmpul planificarii sprintului exhipa extrage cateva cerinte din aceasta lista si decide
cum sa le implementeze.
3. Echipa are definit un timp limitat pentru a finaliza task-urile(se organizeaza intalniri
pentru a vedea progresul daily Scrum)
6. Cand urmatorul sprint incepe scrum masterul va alege alte taskuri din backlog
Nivele de testare:
1. Unit testing
2. Integration testing
3. System testing
4. Acceptance testing
Unit testing:
- unitatile sunt construite izolat pentru a fi integrate mai tarziute- e destinat pentru a verifica
daca codul scris pentru unitate corespunde specificatiilor
- dupa creare unit testing modulele sunt unite pentru crearea sistemului
Avantaje:
Dezavantaje:
TopDown Integration:
Dezavantaje:
Avantaje:
Dezavantajele:
2. Sansa de a vea defecte critice e mare deoarece componentele sun integrate simultan
System testing
- odata ce testarea de integrare e finisata trecem la testarea sistemului, el fiind deja functional si
integrat cu toate componentele
Testarea functionala este un tip de blackbox testing unde test case sunt elaborate pe baza
specificatiilor. Acest tip de tesatre verifica daca sistemul e in corcondanta cu cerintele clientului.
Trebuie sa verificam:
5. Datele introduse si comportament app dupa introducerea acestor date trebuie sa fie verificat
pe baza specificului functional
Regresion testing - dupa detectarea unu defect in sistema el e trimis catre fixare. Odata ce el e fixat e
necesar de a testa intens pentru a asigura schimbarile efectuate nu au afectat alte functionalitati, alte
regiuni sau logica business. Testarea de regresie duce la reducerea golurilor in procesul de testare,
asigura ca aplicatia nu contine defecte inainte de a fi trimisa la urmatoarea faza de testare.
Performance testing - e efectuata pentru a determina cat de rapid se executa anumite aspecte ale
sistemului sub o anumita sarcina de lucru, poate demonstra ca sistemul indeplineste criteriile de
performanta.
Stress test - testarea dincolo de capacitatea operationala normala, adesea pana la un punct de rupere
break point pentru a se observa rezultatele se utilizeaza pentru a determina stabilitatea unui sistem.
Pune accent pe disponibilitate, gestionarea erorilor si puterea fizica a sistemului in conditii de
incarcarea grea . Obiectivele sunt de a demonstra ca sistemul nu face crash in conditii de resurse
insuficiente.
Portability testing- testeaza cat de usor poate fi mutata o componenta a aplicatiei sau aplicatia in alt
mediu.
Sequrity testing - testam securizarea aplicatiei, daca sistemul protejeaza datele si functionalitatea asa
cum e prevazut.
Recovery testing - verifica cat de repede putem restabili aplicatia dupa orice tip de crash sau defect
hardware.
Usability testing - testam usurinta cu care poate fi utilizat produsul, cat de usor poate fi testat.
Maintability testing - defineste cat de usor este mentinerea sistemului si cat de usor este analiza,
schimbarea si testarea aplicatiei.
Smoke tesing - asigura ca functiile majore functioneaza corect, e un tip de testare cu test case foarte
limitat pentru a asigura ca functiile importante functioneaza si putem trece la testare detaliata, poate
fi realizatat de developeri inainte de a transmite codul la testare. E realizat de testeri pentru a asigura
ca versiunea e suficient de stabila pentru testare avansata. E efectuata mereu cu scenarii pozitive.
Avantaje:
Dezavantaje:
2. Din cauza nr de test case min nu ne permite de a gasi alte defecte critice
Acceptance testing - este una din etapele finale de testare a unui siste de catre utilizatori. Rezultatele
acestor tipuri de testare ne da incredere crilentilor ca cum sistemul va functiona.
Tipuri de testare:
Mai intai se exec alfa apoi beta testing. Alfa asigura ca produsul are calitatea asteptata.
Exploratory testing - are loc explorarea sistemului, testerul singur ia decizii despre ce trebuie testat, e
binevenit cand avem specificatii sarace si timp limitat. Executarea e efectuata in paralel cu crearea
test case fara documentare formala.
End-to-end testing - testarea completa a app bazata pe procese buisness reale asa ca interactiunea cu
DB, alte aplicatii si componente hard
Exp ambelor persoane e necesara cu cunostinte tehnice si de buisness din cauza exp anterioare, cu
sisteme similare, ei pot avea idei despre ce poate fi incorect ceia ce ajuta la testare.