Documente Academic
Documente Profesional
Documente Cultură
8 noiembrie 2013
Cuprins
Cuprins
Introducere
Motivatie
in multe organizatii, testarea unui program consuma mai mult de 30-50% din costurile de productie totusi, utilizatorii de obicei considera ca programul nu a fost testat corect/sucient inainte de livrare testarea trebuie sa inceapa cat mai devreme in ciclul de productie testarea trebuie facuta conform unei metodologii clare si standardizate Solutia: folosirea cazurilor de utilizare (use cases) pentru generarea de teste. Use case = o activitate ce descrie o secventa de actiuni realizate de un sistem pentru a produce un rezultat observabil si cu o anumita valoare pentru o persoana sau alt sistem ce foloseste aplicatia: informeaza clientul informeaza programatorul pune bazele documentatiei ce trebuie scrise permite tester-ului sa propuna strategii de testare
Curs 6 STR. Modelare use case 8 noiembrie 2013 1 / 21
Cuprins
Cazuri de utilizare
Cazuri de utilizare
Studiile de utilizare sunt bazate pe UML si pot reprezentate prin diagrame use-case ce contin
inregistrare cursuri universitate inregistrare cursuri universitate
inrolare pentru cursuri student selectie cursuri pentru predare sistem catalog
registratura
inchidere inregistrare
profesor
8 noiembrie 2013
2 / 21
Cazuri de utilizare
cerinte speciale
pre-conditii post-conditii
8 noiembrie 2013
3 / 21
Cazuri de utilizare
cerinte speciale
pre-conditii post-conditii
8 noiembrie 2013
3 / 21
Cazuri de utilizare
Secvente de evenimente
Cea mai importanta parte a unui use-case sunt secventle de evenimente: secventa nominala (corespunde cu activitatea normala a unui use-case) secvente alternative (acopera situatiile cand exista variatii fata de functionarea normala)
Metodologie: ecare pas trebuie sa explice ce face actorul si care este raspunsul sistemului secventele alternative trebuie sa specice cand diverg din secventa nominala si cum se incheie
8 noiembrie 2013
4 / 21
Cazuri de utilizare
8 noiembrie 2013
5 / 21
Cazuri de utilizare
Cazuri de utilizare
nal
A5
N1
nal
A2
N2
A1
N3
A4
nal
N4
N5
A3
N6 nal
8 noiembrie 2013
7 / 21
Cuprins
Cazuri de testare
Cazuri de testare
Un caz de testare (test-case ) e o colectie de intrari de test conditii de executie rezultate asteptate ce sunt alese pentru un obiectiv specic: testarea unui anumit scenariu de functionare sau pentru a verica daca o anumita cerinta este indeplinita. Relatia dintre test si use case: un test-case va verica buna implementare a unui use-case. Test-case-urile se genereaza astfel:
1 2
pentru ecare use-case se genereaza toate scenariile de utilizare posibile pentru ecare scenariu se identica cel putin un caz de testare si conditiile ce fac sa e executat pentru ecare test case se aleg datele cu care se va face testarea
8 noiembrie 2013
8 / 21
Cazuri de testare
Utilizatorii aplicatiei considera toate secventele posibile de evenimente (nominale si alternante) ce pot aparea in cursul rularii aplicatiei.
8 noiembrie 2013
9 / 21
Cazuri de testare
nal
A5
N1
nal
A2
N2
A1
scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal
N4
N5
A3
N6 nal
8 noiembrie 2013
10 / 21
Cazuri de testare
nal
A5
N1
nal
A2
N2
A1
scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A3 nal
N4
N5
A3
N6 nal
8 noiembrie 2013
10 / 21
Cazuri de testare
nal
A5
N1
nal
A2
N2
A1
scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal
N4
N5
A3
N6 nal
8 noiembrie 2013
10 / 21
Cazuri de testare
nal
A5
N1
nal
A2
N2
A1
scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal
N4
N5
A3
N6 nal
8 noiembrie 2013
10 / 21
Cazuri de testare
nal
A5
N1
nal
A2
N2
A1
scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal
N4
N5
A3
N6 nal
8 noiembrie 2013
10 / 21
Cazuri de testare
nal
A5
N1
nal
A2
N2
A1
scenariu 1 - logare corecta: nominal scenariu 2 - logare esuata scenariu 3 - utilizatorul renunta scenariu 4 - catalog indisponibil scenariu 5 - inregistrare inchisa scenariu 6 - conditiile nu sunt indeplinite pentru inregistrare
N3 A4 nal
N4
N5
A3
N6 nal
8 noiembrie 2013
10 / 21
Cazuri de testare
extragem din descrierea use-case-ului si gasim conditiile sau informatiile necesare executarii unui anumit scenariu (ID, parola, cursurile selectate, etc) enumeram cazurile de test si notam cum vor utilizate informatiile introduse de actori in implementarea acestora. Clasicam aceste informatii in:
8 noiembrie 2013
11 / 21
Cazuri de testare
RC 2 RC 3 RC 4
RC 5 RC 6
N/A
N/A
N/A I
N/A
RC 7
RC 8
8 noiembrie 2013
12 / 21
Cazuri de testare
RC 2 RC 3 RC 4
RC 5 RC 6
abc abc
abc123 abc123
N/A Da
N/A Da
RC 7
abc
abc123
nu PATR
Da
Da
RC 8
abc
abc123
STR, PATR
Da
Da
8 noiembrie 2013
13 / 21
Cuprins
Pentru modele complexe putem structura use-case-urile astfel incat: sa avem mai mult control asupra aplicatiei sa facem aplicatia mai usor de inteles sa refolosim structuri ce apar in mai multe use-case-uri
8 noiembrie 2013
14 / 21
Ilustratie
client
client Internet
sistem prelucrare comenzi sistem prelucrare comenzi comanda telefon comanda Internet
8 noiembrie 2013
15 / 21
Relatia de incluziune
Un use-case baza va include un use-case in sensul ca va include (incapsula) un comportament ce nu e esential pentru intelegerea scopului sau primar, rezultatul nal este sucient.
util pentru a evita replicarea comportamentului use-case-urile nu isi acceseaza atributele pot exista instante unde use-case-ul inclus nu e apelat
use-case instanta use-case baza
use-case inclus
8 noiembrie 2013
16 / 21
Relatia de incluziune
Un use-case baza va include un use-case in sensul ca va include (incapsula) un comportament ce nu e esential pentru intelegerea scopului sau primar, rezultatul nal este sucient.
util pentru a evita replicarea comportamentului use-case-urile nu isi acceseaza atributele pot exista instante unde use-case-ul inclus nu e apelat
use-case instanta #2
use-case inclus
8 noiembrie 2013
16 / 21
identicare client
include
include
include
retragere cash
depozitare cash
transfer fonduri
8 noiembrie 2013
17 / 21
Relatia de extensie
Un use-case extins va extinde un use-case baza in sensul ca va extinde functionalitatea acestuia: comportamentul primului use-case va inserat in cel de-al doilea use-case daca o conditie este vericata.
legatura se face prin punct(e) de extensie folosit pentru a modela secvente de evenimente ne-uzuale/optionale use-case baza este de sine-statator pot exista mai multe puncte de insertie; conditia de executie e analizata doar prima data
use-case extensie use-case instanta
use-case baza
punct de extensie
8 noiembrie 2013
18 / 21
Relatia de extensie
Un use-case extins va extinde un use-case baza in sensul ca va extinde functionalitatea acestuia: comportamentul primului use-case va inserat in cel de-al doilea use-case daca o conditie este vericata.
legatura se face prin punct(e) de extensie folosit pentru a modela secvente de evenimente ne-uzuale/optionale use-case baza este de sine-statator pot exista mai multe puncte de insertie; conditia de executie e analizata doar prima data
use-case instanta
use-case baza
puncte de extensie
use-case extensie
8 noiembrie 2013
18 / 21
8 noiembrie 2013
19 / 21
Relatia de mostenire
Un use-case copil va generaliza un use-case parinte in sensul ca va specica cum anume sunt specializate comportamentul si si caracteristicile descrise pentru parinte.
in cele mai multe cazuri parintele e abstract, dar nu mereu se foloseste atunci cand 2 sau mai multe use-case-uri au parti de structura comune incluziunea si mostenirea sunt asemanatoare dar la prima conteaza doar rezultatul nal iar la a doua conteaza modul de implementare
use-case parinte
use-case instanta
use-case copil
8 noiembrie 2013
20 / 21
comanda
comanda telefon
comanda Internet
client
Curs 6 STR. Modelare use case
client Internet
8 noiembrie 2013 21 / 21
comanda functionar
comanda telefon
comanda Internet
client
Curs 6 STR. Modelare use case
client Internet
8 noiembrie 2013 21 / 21