TSCR05 2009-2010

download TSCR05 2009-2010

of 44

Transcript of TSCR05 2009-2010

  • 7/25/2019 TSCR05 2009-2010

    1/44

    2010 5-1TSCR -curs- Ionescu Augustin-Iulian

  • 7/25/2019 TSCR05 2009-2010

    2/44

    20105-2TSCR -curs- Ionescu Augustin-Iulian

  • 7/25/2019 TSCR05 2009-2010

    3/44

    Testarea func ional (Black-Box)

    20105-3

    TSCR -curs- IonescuAugustin-Iulian

    Presupune verificarea/testarea unui obiect numai pe baza specifica tiilor deproiect, fr nici un fel de cunotin e privind structura obiectului.

    n software aceasta presupune c nu se cunosc detalii privind modul de realizareaa programelor testate.

    Obiectivul const n determinarea unor cazuri de test care s permit eviden iereaunor defecte n program cu un effort de procesare minim.

    Principalele metode cunoscute sunt:parti ionarea in clase de echivalen

    analiza valorilor limitmetoda grafurilor cauz!efecttestarea tranzi iei st rilor.

  • 7/25/2019 TSCR05 2009-2010

    4/44

    Parti ionarea n clase de echivalen

    20105-4

    TSCR -curs- IonescuAugustin-Iulian

    "omeniul valorilor posibile ale fiecrui element de intrare se divide #n clase

    de echivalen.

    Observa ie $esarea complet presupune at%t testarea claselor de echivalen pentru valoriadmise la intrare &date valide' c%t i a claselor de echivalen pentru valoriincorecte.

    Oclas de echivalen este un grup de valori despre care se preupune csunt procesate n acela i fel de c tre produsul testat.

    $estarea pentru o singur valoare reprezentativ din clasa de echivalen seconsider suficient, deoarece pentru orice alt valoare din aceea i clas se poatepresupune c nu se va observa un comportament diferit.

  • 7/25/2019 TSCR05 2009-2010

    5/44

    !eter"inarea #arti iilor

    20105-5

    TSCR -curs- IonescuAugustin-Iulian

    (e determin mul imea datelor valide

    Observa ie )etoda de parti ionare poate fi utilizat i pentru mul imea valorilor de ie ire dar determinarea cazurilor de test este n general mai dificil deoarece pentru fiecare clas de echivalen vor trebui determinatelimitele valorilor de intrare.

    (e determin mul imea datelor incorecte

    *olosind specifica iile de proiect i/sau informa iile de la utilizator, se rafineaz parti ionarea pun%nd #n eviden noi clase de echivalen pentrudate valide i pentru date incorecte.

    (e alege pentru fiecare clas de echivalen o valoare reprezentativ.

    +legerea se face fie aleator, fie pe baza eperien ei acumulate de testor &deeemplu, se consider obligatorie testarea valorii 0pentru date numerice'.

  • 7/25/2019 TSCR05 2009-2010

    6/44

    !eter"inarea #arti iilor - exe"#lul 1

    20105-6

    TSCR -curs- IonescuAugustin-Iulian

    (e consider pentru o firm un program care calculeazprima de sfr it de

    andup urmtoarele reguli:

    - din venitul pe ultima lun pentru cei care au lucrat ne ntrerupt cel pu in 0 ani pentru firm

    1- din venitul pe ultima lun pentru cei care au lucrat ne ntrerupt cel pu in - ani

    pentru firma2 din venitul pe ultima lun pentru cei care au lucrat ne ntrerupt cel pu in 3 ani pentru firma

    +nga4a ii pensionari nu primesc prima.

    *irma are 2- ani vechime.

  • 7/25/2019 TSCR05 2009-2010

    7/44

    !eter"inarea #arti iilor - exe"#lul 1

    20105-7

    TSCR -curs- IonescuAugustin-Iulian

    #ara"etrul $lase de echivalente %aloarere#re&entativa

    5echimea6 n6munc6la 6firma

    v7822: 9 vechimea in munca la firma 90 ;

    v782;: 09 vechimea in munca la firma 9-

    i78;; varsta=>- ani >>

    Pe baza claselor de echivalen determinate pot fi generate cazurile de test:

  • 7/25/2019 TSCR05 2009-2010

    8/44

    !eter"inarea #arti iilor - exe"#lul 1

    20105-8

    TSCR -curs- IonescuAugustin-Iulian

    $a& detest

    vechi"ean "unc la fir"

    varsta venit ulti"alun ('O)

    'e&ultat(#ri"a)

    2 ; 0 ;

    ; < 0 ; -

    0 1 0 ; 2< 2 0 ; ;

    - < 2> ; )esa4 eroare/

    > < >> ;

    1 !; 0 ; )esa4 eroare/

    3 ; 0 ; )esa4 eroare/

    Observa ie Pentru a putea eecuta testele, este necesar s se scrie un test driver cares genereze datele de test i s eecute testele nl n uit.

  • 7/25/2019 TSCR05 2009-2010

    9/44

    !eter"inarea #arti iilor - exe"#lul 2

    20105-9

    TSCR -curs- IonescuAugustin-Iulian

    (e consider un program care poate determina tipul de triunghi dac se

    cunosc lungimile laturilor a, b, c &valori reale dubl precizie'.

    n acest caz, determinarea claselor de echivalen pornind de la mul imeaintrrilor este dificil.

    Putem ini ia procesul de parti ionare in%nd cont de ie iri:

    triunghiuri oarecare &scalene'triunghiuri isosceletriunghiuri echilaterale.

    Pentru fiecare tip de triunghi determinm condi iile impuse la intrare:

  • 7/25/2019 TSCR05 2009-2010

    10/44

    !eter"inarea #arti iilor - exe"#lul 2

    20105-10

    TSCR -curs- IonescuAugustin-Iulian

    $riunghi oarecare: a*b i a*c i b*c

    $riunghi isoscel: a+bsau a+c saub+c

    $riunghi echilateral: a+bsi a+c

    Pentru valorile incorecte vom avea

    valori nenumericevalori negative

    valori nule

    valori aparent corecte pentru care

    a,b+c sau a,c+b sau b,c+a

    Observa ie n cazul n care se combin valori ale parametrilor pentru valoriincorecte independente, o valoare incorect a unui parametru se vacombina obligatoriu cu valori corecte ale celorlal i parametri.

  • 7/25/2019 TSCR05 2009-2010

    11/44

    !eter"inarea #arti iilor - exe"#lul 2

    20105-11

    TSCR -curs- IonescuAugustin-Iulian

    #ara"etrii $lase de echivalente %alorire#re&entative

    a, b, c

    v782: triunghi oarecare a9=b i a9=c i b9=c 0,

  • 7/25/2019 TSCR05 2009-2010

    12/44

    !eter"inarea #arti iilor - exe"#lul 2

    20105-12

    TSCR -curs- IonescuAugustin-Iulian

    #ara"etrii $lase de echivalente %aloare

    re#re&entativa

    a, b, c

    v782: triunghi oarecare a9=b i a9=c i b9=c 0,

  • 7/25/2019 TSCR05 2009-2010

    13/44

    !eter"inarea #arti iilor - exe"#lul 2

    20105-13

    TSCR -curs- IonescuAugustin-Iulian

    $a& de test a b c 'e&ultat

    2 0 < - triunghi oarecare

    ; < < ; triunghi isoscel

    0 < ; < triunghi isoscel

    < ; < < triunghi isoscel

    - < < < triunghi echilateral

    > a 0 0 )esa4 eroare

    1 0 b 0 )esa4 eroare

    3 0 0 c )esa4 eroare

    A !; 0 0 )esa4 eroare

    2 ; !0 0 )esa4 eroare

    22 ; 0 !0 )esa4 eroare

    2; - > )esa4 eroare20 - > )esa4 eroare

    2< - > )esa4 eroare

    2- ; 0 1 )esa4 eroare

    2> 0 ; 1 )esa4 eroare

    21 0 1 ; )esa4 eroare

  • 7/25/2019 TSCR05 2009-2010

    14/44

    Observa ii i conclu&ii

    20105-14

    TSCR -curs- IonescuAugustin-Iulian

    setul de date alese trebuie s acopere toate clasele de echivalen

    este necesar sa fie luate n considerare at%t clasele de echivalen valide c%t i celeinvalide, corespunztoare unor date eronate sau inacceptabile

    clasele de echivalen pot fi deduse i din condi iile de ieire

    procesul de determinare a claselor de echivalen este unproces heuristic nueist re ete de determinare a claselor de echivalen ci doar idei care ghideaz

    determinarea claselor de echivalen i din aceast cauz, pornind de la aceleaispecifica ii de proiect, diveri testori pot s genereze seturi de clase de echivalendiferite

    eist situa ii n care limita ntre clasele de echivalen este ambigu sau chiarlipsete

    n anumite situa ii apare un num r foarte mare de clase de echivalen e

    multe din anomaliile semnalate apar datorit unor specifica ii ambigue,contradictorii, incomplete sau inconsistente care trebuie lmurite prin dialog cubeneficiarul/ utilizatorul.

    eist cazuri prin natura lor foarte dificil de analizat &cele legate de fisc'.

  • 7/25/2019 TSCR05 2009-2010

    15/44

    /ndica ii #entru #arti ionare

    20105-15

    TSCR -curs- IonescuAugustin-Iulian

    "ac o condi ie este specificat ca un interval de valori, se alege o clas deechivalen valid care acoper acest interval i dou clase de echivalen invalide,una la st%nga i alta la dreapta.

    "ac o condi ie de intrare este specificat ca un numr de valori, se alege o clasde echivalen valid care include acel numr de valori i dou clase de echivaleninvalide C una cu mai pu ine i alta cu mai multe valori.

    "ac o condi ie este specificat sub forma unei liste de valori admise, se alege oclas de echivalen valid care con ine toate aceste valori i o clas de echivaleninvalid care con ine toate celelalte valori posibile .

    "ac o condi ie de intrare este specificat ca trebuie sa fie, se alege o clas deechivalen valid care respect condi ia i o clas de echivalen invalid care nurespect condi ia.

    Pot fi luate n considerare mai multe etape de rafinare a parti iei.

  • 7/25/2019 TSCR05 2009-2010

    16/44

    Preci&area ca&urilor de test #entru un sinur

    #ara"etru

    20105-16

    TSCR -curs- IonescuAugustin-Iulian

    *iecrei clase de echivalen i se ataeaz un identificator unic &de obicei unnumr ntreg'.

    (e genereaz cazuri de test p%n c%nd fiecare clas de echivalen valid esteacoperit de cel pu in un caz de test:

    daca o clas de echivalen valid este definit printr!o condi ie de forma c1! c2! ! cn, este necesar un singur caz de test

    daca o clas de echivalen valid este definit printr!o condi ie de forma c1O' c2O' O' cn, este necesar c%te un caz de test pentru fiecaredintre condi ii

    (e dezvolt cazuri de test pentru toate clasele de echivalen invalide p%n c%ndtoate aceste clase sunt acoperite de un caz de test.

    Orice valoare considerat interesant pe baza eperien ei anterioare, va fi aleas pentru un nou caz de test &de eemplu valorile 0i 1sau rdcinile nu"itorului

    n testarea algoritmilor numerici'.

  • 7/25/2019 TSCR05 2009-2010

    17/44

    Preci&area ca&urilor de test #entru un set de

    #ara"etri

    20105-17

    TSCR -curs- IonescuAugustin-Iulian

    *iecrui caz de test i se ataeaz un identificator unic &de obicei un numrntreg'.

    8ea mai simpl metod const n generarea cazurilor de test pentru clasele deechivalen valide, combin%nd toate valorile reprezentative ale parametrilorimplica i. (e genereaz c%te un caz de test pentru fiecare combina ie. "e obiceimulte dintre teste nu sunt relevante i vor fi eliminate n urma unei analize

    detaliate, n timp ce teste utile pot s nu apar. +ceste anomalii pot fi eliminatedac generarea claselor de echivalen pentru diveri parametri se face corelat inu independent.

    (e dezvolt cazuri de test pentru toate clasele de echivalen invalide p%n

    c%nd toate aceste clase sunt acoperite de c%te un caz de test.

    Observa ie O valoare incorect a unui #ara"etru va fi co"binatobliatoriu cu valori corecte ale celorlal i #ar"etri testa i.

  • 7/25/2019 TSCR05 2009-2010

    18/44

    3xe"#lu

    20105-18

    TSCR -curs- IonescuAugustin-Iulian

    (e consider o procedur care rezolv ecua ii de gradul 2 de forma:

    aBb unde a, b

    Dn cazul in care ecuatia nu poate fi rezolvata, se va afisa un mesa4 de avertizare.

    5arianta 2

    #ara"etrul $lase de echivalente %aloarere#re&entativa

    a v7822: a

    ;

    v782;: a

    i7822: valoare nenumeric ?a@

    b v78;2: valoare numeric reala 2

    i78;2 valoare nenumeric ?b@

    $a& de test a b 'e&ultat

    2 ; 2 !-

    ; 2 mesa4 avertizare

    0 ?a@ ; mesa4 eroare

    < ; ?b@ mesa4 eroare

  • 7/25/2019 TSCR05 2009-2010

    19/44

    3xe"#lu

    20105-19

    TSCR -curs- IonescuAugustin-Iulian

    5arianta ;

    #ara"etrul $lase de echivalente %aloarere#re&entativa

    a v7822: a ;

    v782;: a

    i7822: valoare nenumeric ?a@

    b v78;2: valoare numeric reala 2v78;;: b

    i78;2 valoare nenumeric ?b@

    $a& de test a b 'e&ultat

    2 ; 2 !-; 2 mesa4 avertizare 2

    0 ;

    < mesa4 avertizare ;

    - ?a@ ; mesa4 eroare

    > ; ?b@ mesa4 eroare

    $a& de test a b 'e&ultat

    2 ; 2 !-

    ; 2 mesa4 avertizare 2

    0 mesa4 avertizare ;

    < ?a@ ; mesa4 eroare

    - ; ?b@ mesa4 eroare

  • 7/25/2019 TSCR05 2009-2010

    20/44

    vanta4ele tehnici P3

    20105-20

    TSCR -curs- IonescuAugustin-Iulian

    elimin necesitatea unor teste ehaustive, de cele mai multe ori imposibil de

    realizat ndrum testorul s selecteze un subset de intrri de test cu o mare probabilitate

    de a detecta defecte

    permite testorului s acopere un domeniu foarte larg de intrri/ieiri cu un set

    relativ mic de date, selectat din clasele de echivalenpoate fi utilizat nc din primele faze ale ciclului de via al proiectului

    nu necesit cunotin e de programare

    este uor de n eles i de utilizat

    poate fi aplicat pentru testarea oricrui tip de produs.

    Problemele apar la identificarea corect a claselor de echivalen.O abordare posibil const n utilizarea unui set de aa numite condi ii interesante,identificate din specifica iile pentru softwareul testat.

  • 7/25/2019 TSCR05 2009-2010

    21/44

    nali&a valorilor li"it - reco"andri

    20105-21

    TSCR -curs- IonescuAugustin-Iulian

    "ac o condi ie este specificat ca un interval de valori, se vor dezvolta cazuri detest valide pentru fiecare dintre valorile de la capetele intervalului i cazuri de testinvalide pentru valori foarte apropiate de acestea.

    "ac o condi ie de intrare este specificat ca un numr de valori admise, se voralege obligatoriu dou cazuri de test valide pentru n"ini n"axi dou cazuri de testinvalide pentru n"in-1respectiv n"ax,1.

    "ac o condi ie este specificat sub forma unuiset ordonat/matrice de valori

    admise, se vor alege obligatoriu cazuri de test pentru primul i ultimul element.

    Observa ie Parti ionarea n clase de echivalen i analiza valorilor limit seaplic separat.

  • 7/25/2019 TSCR05 2009-2010

    22/44

    nali&a valorilor li"it - exe"#lu

    20105-22

    TSCR -curs- IonescuAugustin-Iulian

    (e consider o func ie definit de utilizator care realizeaz evaluarea

    urmtoarei func ii :

    Pasul de reprezentare al lui xeste 0.0001.

    (e cere setul complet de teste folosind determinarea parti iilor de echivalen ianaliza valorilor limit.

  • 7/25/2019 TSCR05 2009-2010

    23/44

    nali&a valorilor li"it - exe"#lu

    20105-23

    TSCR -curs- IonescuAugustin-Iulian

    #ara"etrul $lase de echivalente %aloare

    re#re&entativa

    x

    v782: 9 !;.-

    v78;: - 0.;0

    v780: -9 92 1.1-

    v78

  • 7/25/2019 TSCR05 2009-2010

    24/44

    nali&a valorilor li"it - exe"#lu

    20105-24

    TSCR -curs- IonescuAugustin-Iulian

    $a& de test x 'e&ultat esti"at

    2 !;.- !2.-; 0.;0 ;.;0

    0 1.1- >.>;-

    < ;.2 2.-

    - !2

    > !.2 .AAAA

    1 - < ; )esa4 eroare

    21 < ; )esa4 eroare

    23 ; < > )esa4 eroare

    2A > ; < )esa4 eroare

    ; ; > < )esa4 eroare

    T t t i i i t il

  • 7/25/2019 TSCR05 2009-2010

    35/44

    Tesatrea tran&i iei st rilor

    20105-35

    TSCR -curs- IonescuAugustin-Iulian

    (e utilizeaz pentru testarea programelor &procedurale sau OO' cu evolu iedependent de timp, adic a cror evolu ie depinde at%t de valorile curente aleintrrilor c%t i de evolu ia anterioar a programului.

    (e bazeaz pe conceptele destarei main de stare finit &)(*'.

    Ctareadesemneaza o configurare intern a unui sistem sau a componentei unuisistem la un moment dat. tarea este definit de valorile variabilelor de stareadic a variabilelor care prin valorile lor descriu sintetic o anumit stare.

    Observa ie tarea este un concept specific activitii proiectan ilor de sisteme.Utilizatorul obinuit nu are de obicei acces la variabilele de stare i nici nu l

    intereseaz.

    !om in elege prin =CDun sistem abstract a crui evolu ie poate fi descris cua"utorul unei diagrame de stare cu un numr finit de stri i de tranzi ii ntre

    stri.

    Observa ie "iagrama de evolu ie a st rilor trebuie s fac parte dindocumenta ia pentru specificarea unit ii analizate.

    T t t i i i t il

  • 7/25/2019 TSCR05 2009-2010

    36/44

    Tesatrea tran&i iei st rilor

    20105-36

    TSCR -curs- IonescuAugustin-Iulian

    $estarea nu se poate reduce doar la parcurgerea tuturor strilor deoarece

    aceasta ar nsemna ca o mare parte a tranzi iilor nu pot fi verificate.

    Ddealul ar fi testarea tuturor tranzi iilor dar n anumite situa ii acest lucru este practic imposibil datorita efortului de calcul prea mare.

    "e asemenea, pentru fiecare stare/tranzi ie trebuie testat cel pu in odat fiecare ac iune ataat .

    "ificultatea testrii este mrit de faptul c, dac programul nu a fostimplementat cu faciliti de testare, corectitudinea evolu iei poate fi evaluat numai prin vizualizarea ieirii.

    $estarea tranzi iei st rilor poate fi realizat la nivel de specifica ie,component, integrare sau sistem.

    T t t i i i t il ( l )

  • 7/25/2019 TSCR05 2009-2010

    37/44

    Tesatrea tran&i iei st rilor (exe"#lu)

    20105-37

    TSCR -curs- IonescuAugustin-Iulian

    (e consider un recunosctor de secven dinamic care trebuie s semnaleze

    &prin afiarea mesa4ului E'' depistarea n irul de caractere de la tastatur acuv%ntului '$.

    7volu ia st rilor este descris cu a4utorul urmtoarei diagrame de stare:

    T t t i i i t il ( l )

  • 7/25/2019 TSCR05 2009-2010

    38/44

    Tesatrea tran&i iei st rilor (exe"#lu)

    20105-38

    TSCR -curs- IonescuAugustin-Iulian

    $estarea static pune n eviden faptul c nu a fost precizat starea ini ial i nueist o condi ie pentru intreruperea eecu iei programului. 8a urmare diagrama

    va fi modificat i va fi transmis dezvoltatorului pentru a realiza modificrilenecesare.

    T t t i i i t il ( l )

  • 7/25/2019 TSCR05 2009-2010

    39/44

    Tesatrea tran&i iei st rilor (exe"#lu)

    20105-39

    TSCR -curs- IonescuAugustin-Iulian

    (e observ imediat c pentru o testare complet este necesar s fie verificate

    toate tranzi iile posibile.$estarea este simpl dac avem acces la variabilele programului i putem urmri

    evolu ia st rilor. "ac ns nu putem s tim n care stare se afl maina secven ial dec%t prin

    efectul de la ieire, testarea este mult mai dificil.

    5om considera n continuare tocmai aceasta ultim situa ie.Pentru maini secven iale simple, ca cea din eemplul dat, secven a de intrare

    necesar testrii poate fi dedus direct din graful de stare:

    NINII+I+NI+8I+8NI+83C$

    MI+ MI+ MI+ ieire din program

    Tesatrea tran i iei st rilor (e e"#l )

  • 7/25/2019 TSCR05 2009-2010

    40/44

    Tesatrea tran&i iei st rilor (exe"#lu)

    20105-40

    TSCR -curs- IonescuAugustin-Iulian

    Pentru testarea ieirii din program, acesta va fi eecutat de trei ori, folosind

    urmatoarele secven e de intrare:

    3C$

    I3C$

    I+3C$

    Tesatrea tran&i iei st rilor (exe"#lu)

  • 7/25/2019 TSCR05 2009-2010

    41/44

    Tesatrea tran&i iei st rilor (exe"#lu)

    20105-41

    TSCR -curs- IonescuAugustin-Iulian

    Pentru a simplifica punerea n eviden a tuturor cilor posibile pentruparcurgerea arcelor grafului, acesta poate fi transformat ntr!un arbore detranzi ie pe baza urm toarelor reguli:

    Idcina arborelui este starea CT'T.Pentru fiecare tranzi ie din graf, rezult o ramur distinct n arbore.

    Procesul de la pasul anterior se repet pentru fiecare frunz p%na c%nd nu se maipot genera alte frunze adic noua frunz este o stare de4a introdus n graf saueste stare final a programului testat &ieire'.

    Tesatrea tran&i iei st rilor (exe"#lu)

  • 7/25/2019 TSCR05 2009-2010

    42/44

    Tesatrea tran&i iei st rilor (exe"#lu)

    20105-42

    TSCR -curs- IonescuAugustin-Iulian

    $riterii de co"#letitudine a testrii

  • 7/25/2019 TSCR05 2009-2010

    43/44

    $riterii de co"#letitudine a testrii

    20105-43

    TSCR -curs- IonescuAugustin-Iulian

    )asoar ce procent din numrul total de teste posibile conform unui criteriuales au fost eecutate.

    2'Pentru metoda claselor de echivalen:

    87!acoperire&numr6876testate/numr6total687'2

    ;'Pentru analiza valorilor limit

    5F!acoperire&numar65F6testate/numr6total65F'2

    0'Pentru graful cauz!efect 8ondi ia minim C fiecare coloan a tabelului de decizie s fie

    acoperit de cel pu in un caz de test, pentru a putea verifica toatecondi iile i efectele lor.

  • 7/25/2019 TSCR05 2009-2010

    44/44

    +