Documente Academic
Documente Profesional
Documente Cultură
UNIUNEA EUROPEANĂ GUVERNUL ROMÂNIEI Fondul Social European Instrumente Structurale OIPOSDRU UNIVERSITATEA
MINISTERUL MUNCII, PSD DRU 2007 - 2013 2007 - 2013 TEHNICĂ DE
FAMILIEI ŞI CONSTRUCŢII DIN
PROTECTIEI SOCIALE BUCUREŞTI
Gabriela Varvara
MINISTERUL EDUCAŢIEI, UNIVERSITATEA UNIVERSITATEA TEHNICĂ UNIVERSITATEA TEHNICĂ UNIVERSITATEA SC ASTI AUTOMATION SRL
CERCETĂRII, TINERETULUI ”POLITEHNICA” DIN ”GHEORGHE ASACHI” ”POLITEHNICA”
ŞI SPORTULUI DIN CLUJ-NAPOCA DIN DIN
BUCUREŞTI IAŞI TIMIŞOARA
C8-9: 1
Testarea produselor software
Automatizarea testarii reprezinta una din cele mai eficiente cai de imbunatatire a
testarii manuale
Testele automate
C8-9: 2
Testarea produselor software
Costul unei singure erori ce determina caderea aplicatiei costa extrem de mult
Consecinta:
Odata atins acest obiectiv, focusul poate fi orientat spre optimizarea timpului
si costurilor.
Observatie:
Trebuie avut in vedere ca un proces de testare automata presupune un ciclu de testare ce incepe
cu automatizarea, deci nu trebuie contat pe scurtarea timpului dedicat testarii – miza este
atingerea termenului de livrare cu un produs fiabil.
Automatizarea reduce
C8-9: 3
Testarea produselor software
Pe perioada ciclului de viata aplicatiile devin din ce in ce mai complexe prin
extinderea setului de caracteristici – numarul de teste necesar pentru o
acoperire adecvata este in continua crestere
Chiar daca aplicatia isi schimba codul doar cu 10%, tot va trebui testat tot produsul
– testarea manuala nu va tine pasul decat in conditiile cresterii constante a
resurselor si a timpului dedicat testarii –automatizarea ajuta la cumularea cazurilor
de testare de-a lungul ciclului de dezvoltare a aplicatiei – permite testare de
caracteristici initiale sau dobandite pe parcurs
C8-9: 4
Testarea produselor software
Uneori timpul de livrare este mai critic pentru produsele IT decat costul
In anumite situatii costul unei singure caderi este mai mare decat tot bugetul
testarii pentru perioade lungi de timp
10
C8-9: 5
Testarea produselor software
Se spune ca un test automatizat este tot atat de bun pe cat este creatorul
acestuia.
Testerii cu putina experienta creaza cele mai bune teste manuale deoarece ei
fac, cu maxima probabilitate, aceleasi greseli pe care le fac utilizatorii.
11
12
C8-9: 6
Testarea produselor software
13
In stabilirea unor asteptari realiste legate de automatizarea testarii trebuie avute
in vedere urmatoarele aspecte fundamentale:
14
C8-9: 7
Testarea produselor software
15
Cel mai important scop al automatizarii testarii trebuie sa fie cresterea acoperirii
testarii, nu diminuarea costurilor de testare.
O singura cadere in unele sisteme costa mai mult decat bugetul de testare pe
perioade lungi
Scopul nu este sa eliminam si asa un personal putin ci sa reducem riscurile
produse de caderea aplicatiei
16
C8-9: 8
Testarea produselor software
Timpul economisit din automatizare trebuie reorientat catre alte tipuri de teste de care
nu a fost timp inainte ( de configurare, de stress)
Daca calendarul ofera spatiu eliberat prin automatizare – trebuie incercata testarea pe
un numar mai mare de utilizatori si tranzactii, sau pe diferite platforme de configurare
17
Realizeaza proiect pilot – chiar daca primiti toti banii intr-o singura transa nu
trebuie cheltuiti tot asa. La prima incercare de automatizare se recomanda un
mic proiect pilot pe post de “proof of concept” (poate fi o parte din aplicatie
cu univers restrans care sa fie terminat in 2-4 saptamani). In aceasta perioada
trebuie documentate investitiile si beneficiile alaturi de o estimare pentru tot
proiectul.
18
C8-9: 9
Testarea produselor software
Inregistrarea progresului – chiar daca beneficiile apar dupa mai multe luni, progresul
trebuie demonstrat prin raportare macar o data pe luna. Comunicati vestile proaste cat
se poate de repede si cele bune imediat ce aveti garantia ca le puteti mentine.
Pentru o sustinere pe termen lung, managementul trebuie informat pas cu pas asupra
ceea ce se intampla pentru a sti la ce sa se astepte.
19
Automatizarea testarii este mai mult decat simpla captura si reluare a procesului
de testare manual.
Procesul de testare trebuie sa fie bine definit – complet definit, formalizat si bine
documentat
20
C8-9: 10
Testarea produselor software
21
22
C8-9: 11
Testarea produselor software
23
24
C8-9: 12
Testarea produselor software
Optimizarea
La proiectarea testelor trebuie avut in vedere ca mai mult nu inseamna neaparat si
mai bine
Cu cat sunt mai multe teste, cu atat va dura mai mult sa le dezvoltam, executam si
intretine
Elemente cheie:
1 test – 1 cerinta
In mod ideal, el trebuie sa acceseze o cerinta specifica de business sau de proiectare, sau
un defect raportat anterior
25
Acest proces de asignare este important pentru ca trebuie identificate cazurile de testare
ce sunt afectate de modificarea unei anumite cerinte din aplicatie
Nu este deloc practic sa se revizuiasca fiecare caz de testare pentu a vedea care ramane
valid dupa schimbare
Un alt motiv de a preciza exact ce acopera fiecare caz de testare este ca daca un caz
esueaza el va reduce capacitatea de diagnosticare a cauzei erorii
De ex. un test ce acopera mai multe caracteristici poate esua din multe cauze – timpul necesar
analizei caderii este direct proportional cu complexitatea cazului de testare in sine
26
C8-9: 13
Testarea produselor software
Odata stabilite, cerintelor li se pot atribui prioritati si pot fi folosite pentru a masura cat de
pregatita este aplicatia pentru lansare pe piata
O cerinta ce are prea multe teste este definita prea general si va trebui divizata in
mai multe cerinte, sau pur si simplu, are prea multe teste definite
Un test asociat la prea multe cerinte este prea complex si trebuie impartit in mai
multe teste care sa tinteasca mai precis cerinte specifice
27
28
C8-9: 14
Testarea produselor software
Depinde succesul/esecul unui caz de testare de alt caz de testare si care este
impactul asupra secventei de executie?
Solutie – fie starea de start a bazei de date trebuie sa contina inregistrarea sau ultimul test mai
intai adauga inregistrarea si apoi testeaza stergerea.
29
De ex. daca un test incepe dintr-o stare a aplicatiei in care s-a ajuns dupa
parcurgerea unui test preedent, acesta din urma poate esua daca precedentul
esueaza sau nu se executa
Cadrul de testare trebuie sa prevada puncte comune de intrare/iesire in diferitele zone ale
aplicatiei cu verificarea faptului ca testele corelate incep si se termina in aceste puncte
De ex. un caz de testare ce verifica absenta unui mesaj de eroare trebuie sa ofere garantia
ca nu a fost emis nici un alt fel de mesaj. In caz contrar trebuie sa prevada pasi de
stergere explicita a mesajului. Un caz de testare ce va urma si care presupune ca aplicatia
este gata pentru o operatie de intrare, desi ea este in stare de eroare, va da rezultate
eronate.
30
C8-9: 15
Testarea produselor software
Elemente cheie:
31
La rularea in secventa a unor teste multiple rezultatul unui test poate
afecta testele urmatoare – de ex. daca un test incepe in meniul principal
si se termina intr-un submeniu al acestuia, testul urmator va trebuie sa
inceapa in submeniu pentru a nu risca esecul
32
C8-9: 16
Testarea produselor software
Metoda meniului principal – cea mai simpla solutie de rezolvare a contextului este
sa se proiecteze toate testele sa inceapa si sa se termine in acelasi punct al
aplicatiei.
Acest punct trebuie sa fi o zona din care aplicatia poate fi accesata, in majoritatea
cazurilor meniul principal sau zona SIGNON
Proiectate cu start/stop in punct comun, testele pot fi rulate in orice ordine, fara a se lua
in considerare contextul
Facilitarea recuperarii din eroare – la esecul unui test, dupa inregistrarea erorii,
acesta poate apela o functie comuna de recuperare ce returneaza contextul intr-o
stare adecvata, pentru a permite executia urmatorului test.
Exista aplicatii complexe pentru care folosirea unui singur punct de context
ar complica prea mult scrierea testelor individuale
In acest caz se pot folosi mi multe puncte intermediare, dar functia de recuperare
se va complica prin introducerea logicii de localizare a punctului de context
La suite de testare acestea vor trebui combinate si pe criteriul punctului de context
comun
33
34
C8-9: 17
Testarea produselor software
Fara o logica consistenta de ghidare intre diferitele teste, ele nu isi vor
putea atinge scopul
35
36
C8-9: 18
Testarea produselor software
In Windows se poate astepta pana ce un cursor de scurgerea timpului afiseaza sfarsitul
unei operatii – din nefericire multe aplicatii nu au prevazute astfel de cursoare in diferite
puncte de executie
In alte situatii utilitarul de testare verifica daca aplicatia nu mai proceseaza – se
recomanda introducerea in mediul de testare a abilitatii de verificare a sincronizarii cu
diferite subseturi ale aplicatiei in circumstante diferite, inainte de a dezvolta un numar
insemnat de teste
Indicatori locali – exista utilitare ce permit inserarea de stari WAIT intre ferestre
sau chiar intre controale, determinand scriptul sa isi suspende reluarea pana la
afisarea unei anume ferestre sau control.
37
De ex. aplicatia locala trimite o cerere de date catre server - in timp ce asteapta ea nu
este in starea “busy” si poate produce un indicator ca si-a terminat executia sau este gata
pentru o intrare.
Daca utilitarul de testare nu poate monitoriza direct aplicatia locala, trebuie modificate
scripturile astfel incat sa detecteze starea aplicatiei prin mijloace specifice cum ar fi
asteptarea producerii unei anumite date.
Testarea automata are nevoie de tehnici de luare a unei astfel de decizii intr-o
maniera consistenta in raport cu situatiile ce pot aparea.
38
C8-9: 19
Testarea produselor software
De ex. n script capture/playback poate sa nu indice ca o fereastra este asteptata intr-un
anume punct. Scriptul indica doar ca un click pe mouse este efectuat intro anume locatie.
39
40
C8-9: 20