+ All Categories
Transcript
  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    1/179

     Testarea Sistemelor

    SoftwareProf. univ. dr. Tudor Bălănescu

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    2/179

    6/6/16 2

    Specicare• Specicare: descrierea detaliilor structurale şi de

    comportament ale unui produs. – Sistemele mari de prorame sunt descompuse

     !n subsisteme. – Pentru ca su"sistemele să poată dezvoltate

    independent # este necesară denireainterfeţelor de comunicare !ntre su"sisteme.• $%emplu: specicarea printr&un set de clase

    de o"iecte# sta"ilite de comun acord cu to'i

    de(voltatorii de su"sisteme

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    3/179

    )ormalism vs. lim"a* natural

     – Specicare neformali(ată +mai mare rad deam"iuitate# incompletitudine si inconsisten'ă, – Specicare formali(ată: +neam"iuă şi mai

    completă,•

    -ompletea(ă +!nso'eşte, specicareaneformali(ată• )acilitea(ă anali(a proprietă'ilor de

    consisten'ă şi de neam"iuitate alespecicării neformali(ate

     – Tipuri de specicări formale:• le"rică• oică

    • )undamentată pe teoria mul'imilor• 0ienna evelo ment et3od

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    4/179

    0ericare i 0alidare• Procesul de detectare i de eliminare a defec7iunilor din

    prorame are două componete: vericare și validare (V &V).• 080# parte a aceluiai proces prin care se urmărete:

     – 1, descoperirea defectelor proramului9 – 2, certicarea faptului că proramul va func7iona corect !n condi7ii reale

    de e%ploatare.

    •  Termenii vericare i validare s!nt utili(a7i deseori cusemnica7ii am"iue i s!nt confunda7i.• iferen7a dintre cei doi termeni poate e%primată succint

    astfel: prin verifcare se urmărește dacă programul a fostconstruit bine; prin validare se controlează dacă programuleste bun.

    • Prin vericare se atestă compati"ilitatea proramului cuspecica7ia ini7ială.

    • Prin validare se controlea(ă dacă proramul !ntrunete calită7ilecerute de utili(ator. -ele două aspecte nu coincid !ntotdeauna.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    5/179

    $%emplu# 080

    • Să presupunem că se dorete reali(area unui proramdupă e%ecutarea căruia valorile vectorului v să eordonate crescător + la terminare# valorile lui v tre"uiesă ai"ă proprietatea: v;i< ≤ v;i=1< dacă 1 ≤ i ≤ n&1

    • Posi"ilă solu7ie:for i :> 1 to n do v;i< :> ?.• cesta va re(ista etapelor de vericare deoarece !ndeplinete cerin7ele din specica7ia ini7ială# !n care s&aomis să se preci(e(e că valorile componentelor lui v nupot modicate dec!t prin opera7ii de intersc3im"are.

    •  Totui el nu poate validat deoarece cerin7autili(atorului a fost cu totul alta.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    6/179

    -omportametul insta"il al Sistemelesoftware

    • 080 nu s!nt specice ;@3eAaa 1< activită7ii dereali(are a produselor software# ci s!nt !nt!lnite !ntoate procesele te3noloice# unde se controlea(ăat!t desfăurarea corectă a procesului defa"rica7ie +vericare, c!t i calită7ile produsuluinit +validare,.$%emplu: construc7ia unui pod# testarea cucamioane

    • procesul de reali(are a unei construc7ii (ice are oanumită proprietate de stabilitate (continuitate ]ncomportament)# care lipsete sistemelor software$%emplu: while % CD ? do % :> %&2

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    7/179

    080# dinamic# static•  Te3nicile de vericare i validare pot dinamice sau statice.• Primele constă !n e%ecutarea proramului !n condi7ii

    asemănătoare cu cele din e%ploatarea reală pentru a vedeadacă !ntrunete calită7ile ateptate. cest e%periment estecunoscut su" numele de testare i se "a(ea(ă pe e%ecutareaefectivă a proramului.

    • -elelalte te3nici# de natură statică# implică e%aminarea ianali(a te%tului proramului# a documenta7iei# a metodelor deproiectare etc. spre a deduce func7ionarea corectă aprodusului nal. $%ecutarea proramului nu este necesară# eaeste cel mult imainată. En această cateorie este inclusă:

     –  inspectarea codului sursă pentru depistarea eventualeloranomalii precum i

     –metodele formali(ate de vericare a proramelor.• -ele două cateorii de te3nici se dovedesc a

    complementare i este recomandat să e aplicate !mpreună.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    8/179

    -orrectness vs. relia"ilitF+corectitudine vs. siuran7a !n

    e%ploatare,• En ;aGoi* H2

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    9/179

     Testare vs. emonstrare• Pe de altă parte# procesul de e%aminare i anali(ă# oric!t de formali(at ar #

    este el !nsui predispus la erori# ca orice activitate umană9• se limitea(ă la coresponden7a dintre proram i specica7ia sa# fără a

    aranta că produsul este opera7ional.• plicarea metodelor matematice de vericare este !nsă condi7ionată de

    e%isten7a unei deni7ii precise a semanticii lim"a*ului de proramare !ncare este scris aloritmul i de specicarea cerin7elor proramului !ntr&onota7ie adecvată metodei de vericare.

    • $%istă !nsă multe lim"a*e de utili(are lară ce nu dispun de deni7iisemantice riuroase sau ale căror deni7ii semantice s!nt e%primate prinmecanisme reu de !n7eles de către utili(atori. En consecin7ă# pentru multeprorame este reu de reali(at o arumentare matematică a func7ionăriilor# testarea răm!n!nd te3nica predominantă a procesului de vericare ivalidare.

    • cest ec3ili"ru !ntre formal i neformal poate reali(at numai pe "a(aunei "une familiari(ări at!t cu tehnicile de testare c!t i cu metodelematematice de verifcare.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    10/179

    epistare erori:cu cat mai devreme# cu atat mai "ine

    6/6/16 1?

    Software lifecFcle and error introduction# detection# and repair costs

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    11/179

     Te3nici de testare a proramelor

    • Prin testare se !n7elee de fapt e%ecutareaproramului cu inten7ia declarată de a descopericel pu7in o eroare +aspectul demolator  ,

    • $a se "a(ea(ă pe imainarea unor eșantioane dedate de intrare care să conducă la depistareaerorilor !ntr&un timp c!t mai scurt i cu efort c!tmai mic.

    • En cele ce urmea(ă# prin test  se !n7elee c3iar

    această mulțime nită de eșantioane.•  Test case:

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    12/179

    J"iectivele testării

    • Să indice pre(en7a erorilor• Să facilite(e locali(area erorilor +!n

    vederea depanării,• Să e repeta"il: la repetareae%perimentului# să se o"7ină aceleaire(ultate – 4erepeta"il# din cau(a conte%tului

    +environment, – 4erepeta"il# din cau(a

    nedeterminismului +paralelismului,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    13/179

     Testare i a"sen7a proprietă7ii deKcontinuitateL

    •  Testul +set of test cases, e%ersea(ă un număr nitde comportamente: ecare corespunde unuieantion de date +test case,

    • -omportamentul !n ca(ul testelor nu poate

    Ke%trapolatL către o conclu(ie privindcomportamentul# !n eneral# al sistemului• 4u e%istă continuitate comportamentală: poate

    func7iona "ine !ntr&o innitate de ca(uri# dar

    poate să func7ione(e defectuos !n altele

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    14/179

    • Observație. 4umărul eantioanelor dintr&un test inMuen7ea(ărelevan7a testului# dar nu este un element determinant. $sen7ialăeste calitatea datelor alese9

    • $%emplu: de pildă# !n ca(ul instruc7iunilorif  % D F then

    m :> %else

    m :> %9Ncea mai mare valoare dintre % si F este mO• testul cu eantioane

    % > 2# F > 19 % > 1# F > ?9 % > 1# F > 1este neconcludent•  testul cu un eantion

    % > ?# F > 1este concludent.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    15/179

     Test Process aturitF evel in anJranisation

     +oa Ao3ansson# Qolfan 3rendt# 0ladimir Rle"anov: Testin# e"uin#and 0erication,

    • evel ?: T3ere is no dierence "etween testinand de"uin.

    • evel 1: Purpose of testin: s3ow correctness.

    • evel 2: Purpose of testin: s3ow t3at t3esoftware does not worI.

    • evel : Purpose of testin: reduce t3e risI ofusin t3e software.

    • evel : Testin is a mental discipline 3elpin UTprofessionals to develop 3i3er VualitF software.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    16/179

    evel ?: T3ere is no dierence "etweentestin and de"uin.

     Testin is t3e same as de"uin• oes not distinuis3 "etween incorrect "e3aviour

    and defects in t3e proram• oes not 3elp develop software t3at is relia"le orsafe

    l f i 3

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    17/179

    evel 1: Purpose of testin: s3owcorrectness.

    Purpose: s3owin correctness• -orrectness is +almost, impossi"le to ac3ieve• aner: Fou are su"consciouslF steered towards

    tests liIelF to not fail t3e proram.

    • Q3at do we Inow if no failuresW – ood softwareW or "ad testsW•  Test enineers 3ave:

     –  no strict oal – no formal test tec3niVue

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    18/179

    evel 2: Purpose of testin: s3ow t3att3e software does not worI.

    Purpose: s3owin failures

     – ooIin for failures is a neative activitF

     – Puts testers and developers into an adversarialrelations3ip – Q3at if t3ere are no failuresW

     T3is descri"es most software companies.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    19/179

    evel : Purpose of testin: reduce t3erisI of usin t3e software.

    Purpose: reduce risI

    • Q3enever we use software# we incur some risI

    • XisI maF "e small and conseVuencesunimportant• XisI maF "e reat and t3e conseVuences

    catastrop3ic

    • esters and developers !or" toget#er to reduceris" 

     T3is descri"es a few Kenli3tened software

    companies.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    20/179

     a"ilitF of developers to produce 3i3VualitF software

     Testin# a mental discipline t3at increases VualitF•  Testin onlF one waF to increase VualitF• est engineers can become tec#nical leaders of

    t#e pro$ect • PrimarF responsi"ilitF to measure and improve

    software VualitF•  T3eir e%pertise s3ould 3elp developers

     T3is is t3e waF Ktraditional enineerin worIs.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    21/179

    ctivities if Test $nineer

     Test enineer: UT professional in c3are of testactivities# includin:

    desinin test inputs• runnin tests• analFsin results• reportin results to developers and manaers

    • automating an% of t#e above

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    22/179

    eveloper > or /> Test $nineerW

    S3ould testin "e done "F t3e developers +of t3e

    same software,Wierent taIes on t3is:• -ontra: Test Principles in ;Fers<

     – Principle 2: Prorammer s3ould avoid testin 3is/3er ownproram.

    +misunderstandin of specs carrF over to testin, – Principle : prorammin orani(ation s3ould not test

    its own prorams.• Pro: $%treme Testin +$T,

     – Principle: evelopers create tests rst – Principle: evelopers re&run test on all incrementalc3anes

     Tool: AYnit desined for $T

    T ti l B d S ft

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    23/179

     Testin evels Based on SoftwarectivitF

    • cceptance Testin: assess software wit3 respect

    to user reVuirements• SFstem Testin: assess software wit3 respect tosFstem&level specication. – Testin sFstem aainst specication of

    e%ternallF o"serva"le "e3avior• Unteration Testin: assess software wit3 respectto 3i3&level desin9 – testin interaction "etween modules

    • Ynit Testin: assess software wit3 respect to low&level unit desin9 testin individual units of asFstem – traditionallF: unit > procedure

     – in o"*ect&orientation +Aava,: unit > met3od

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    24/179

    ife cFcle 8 Testin levelodel

    $ l S t T ti U t ti

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    25/179

    $%ample: SFstem Testin# Unteration Testin

    • System Test

     - Enter data in GUI, does it print thecorrect paycheck, formatted as expected by

    specification?

    (Acceptance Test does !

    by user?)• Inte"ration Tests, e#"#

    -$ayro%% asks data&ase for staff data, are'a%es )hat*s expected?

    -+ay&e there are specia% characters

    (nexpected#

    -Are paychecks formatted correct%y for

    dierent kinds of printers?

    • Unit Tests, e#"#• I .oes payro%% system compte correct

    tax-rate, &ons etc?• I .oes the $rint $aycheck &tton react

    )hen c%icked?

    X i T ti

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    26/179

    Xeression Testin

    +Jrt3oonal to t3e a"ove testin levels,• Xeression Testin: Testin t3at is done after

    c3anes in t3e software.• Purpose:• ain condence t3at t3e c3ane+s, did not cause

    +new, failures.

    Ut is a standard part of t3e maintenance p#ase ofsoftware development.

    • $.. Suppose PaFroll su"sFstem is updated. 4eedto re&run tests +w3ic3 onesW,.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    27/179

     T3eoretical foundations +-arlo @3e((i,• enitions

    • P +proram,# +input domain,# X +output domain, – P: → X +maF "e partial,

    • -orrectness dened "F a test oracle JX ⊆  × X – P+d, correct +w.r.t JX, if Cd# P+d,D ∈ JX

     – P correct +w.r.t JX, if all P+d, are correct•  Test case t

     – an element of •  Test set T

     – a nite su"set of # and – an oracle ' ( vital for automated evaluation of

    test,•  Test t is successful if P+t, is correct +Ct# P+t,D ∈ JX,•  Test set T successful if P correct for all t in T

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    28/179

    Udeal Test• deal test set if P is incorrect# t3ere is an

    element of T suc3 t3at P+d, is incorrect• if an ideal test set e*ists for an% program+ !e

    could prove program correctness b% testing

    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&P correct +w.r.t JX, ⇔  +"F def, Z d[+Cd# P+d,D ∈ JX,

     T successful +on P,  ⇔ +"F def, Z t[T+Ct# P+t,D ∈ JX,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&P incorrect +w.r.t JX,⇔  +"F def, \ d[+Cd# P+d,DJX,

    ] ⇓+onlF for ideal T,

     T fails+on P,  ⇔ +"F def, \ t[T+Ct# P+t,D ^ JX,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    ,ence+ for ideal fails(on -) .- incorrect (!/r/t /')/i/e

    successful (on -) .- correct (!/r/t / ')/Note: )indin ideal tests is undecidable.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    29/179

    -3. 6 2

     Test criterion

    • criterion - denes nite su"sets of +test sets, – - ⊆ 2

    • test set T satises - if it is anelement of -$%ample

    - > NC%1# %2#...# %nD _ n ≥  ∧ ∃ i# *# I# + %iC? ∧ % *>? ∧  %ID?,OC&`# ?# 22D is a test set t3at satises -C&1?# 2# # # ?# &1D also does

    C1# # D does not

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    30/179

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    31/179

    -3. 6 1

    Properties of criteria +2,• -1 is ner t3an -2

     – for anF proram P• for anF T1 satisfFin -1 t3ere is a su"set T2

    of T1 w3ic3 satises -2

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    32/179

    -3. 6 2

    Properties of denitions

    • 4one is eective# i.e.# no alorit3mse%ist to state if a proram# test set#or criterion 3as t3at propertF

    • Un particular# t3ere is no alorit3m toderive a test set t3at would proveproram correctness – t3ere is no constructive criterion t3at is

    consistent and complete

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    33/179

    -3. 6

    $mpirical testinprinciples

    • ttempted compromise "etweent3e impossi"le and t3e inadeVuate

    • )ind strateF to select sinicanttest cases – sinicant>3as 3i3 potential of

    uncoverin presence of error

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    34/179

    -3. 6

    -omplete&-overaePrinciple

    •  TrF to roup elements of intosu"domains 1# 2# # n w3ere anFelement of eac3 i is liIelF to 3ave similar"e3avior – > 1 ∪ 2 ∪ ∪ n

    • Select one test as a representative of t3esu"domain

    • Uf * ∩ I > ∅ for all *# I +partition,# anFelement can "e c3osen from eac3su"domain

    • Jt3erwise c3oose representatives to

    minimi(e num"er of tests# Fet fulllin t3erinci le

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    35/179

     Te3nici de testare a proramelor

    • $%istă o mare varietate de metode de ela"orare a unor astfel deeantioane# care pun la dispo(i7ia proramatorului căi dea"ordare sistematică a activită7ii de testare# ce asiură opro"a"ilitate ridicată de descoperire a erorilor. ceste metode se"a(ea(ă mai mult sau mai pu7in pe una din următoarele strateii:

    • 1, testare funcțională sau metoda cutiei negre (blac" bo*) :cunosc!nd func7iile pe care tre"uie să le !ndeplinească proramul#eantioanele s!nt astfel concepute !nc!t să se asiure că ecarefunc7ie este pe deplin reali(ată9

    • 2, testare structurală sau metoda cutiei transparente (!it!bo*)

     : cunosc!nd structura +instruc7iunile, aloritmului#eantioanele sunt astfel concepute !nc!t să se asiure că sunttestate convinător toate păr7ile proramului.

     

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    36/179

    etoda cutiei nere +"lacI "o%, Testare func7ională +functional testin,

    •  Testele s!nt ela"orate pe "a(a unei specicări func7ionale aproramului.

    •  Proramul este vă(ut ca o cutie neară a cărei comportare estedeterminată prin prelucrarea unor date de intrare i observarea re(ultatelor o"7inute.

    • -ompararea re(ultatelor o"servate cu cele ateptate este făcutăpe "a(a unui asa numit oracol/ +un simplu ta"el# un alt proramcare raspunde cu %es sau no+ un sistem cu interfa7ă racă# roupentru testele concludente etc.,

    • $la"orarea testelor depinde !n mare măsură de !ndem!narea ie%perien7a celui care face testarea# dar e%istă i idei cuaplica"ilitate mai enerală care pot să 3ide(e ac7iunea deselectare a eantioanelor de test după o strateie riuroasă.

    • En anumite ca(uri# procesul de ela"orare a testelor poate automatizat/

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    37/179

    $%ample: T3e Trianle Pro"lemThe aim of t3is proram is to classifF trianles. T3e

    proram accepts t3ree positive inteers as lent3sof t3e sides of a trianle. T3e proram classies t3etrianle into one of t3e followin roups:• 01uilateral all t3e sides 3ave eVual lent3s +return1,• sosceles two sides 3ave eVual lent3# "ut not allt3ree +return 2,• 2calene all t3e lent3s are uneVual +return ,• mpossible

     t3e t3ree lent3s cannot "e used toform a trianle# or form onlF a Mat line +return ,dapted from+appears in Fers "ooI,

     Testin docs 2?1`Software Testin.ppt•  Testin docs 2?1`Testin 1. df  ++oa Ao3ansson#

    http://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Software%20Testing.ppthttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Testing1.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Testing1.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Software%20Testing.ppt

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    38/179

    -lase de ec3ivalen7ă a datelor deintrare• domeniul datelor de intrare va  partiționat 3n clase de

    ec#ivalență# astfel determinate !nc!t pentru datele dinaceeai clasă proramul testat să se comporte la fel.acă această condi7ie este !ndeplinită# atunci testulconstă !n e%ecutarea proramului utili(!nd un set de

    date ce con7ine c3te un eșantion din ecare clasă/ • $%emplu. -ăutare "inară. – Specicare func7ională: – "inar+%#v#n, – intrare:

    • vector v>+v;1true dacă%^v.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    39/179

    • -onsiderăm# la !nceput# două clase deec3ivalen7ă denite prin: – "inar +%# v# n, > true

     – "inar +%# v# n, > false.• En această situa7ie# se poate utili(a un test

    alcătuit din două eantioane:

    1, % > 1?9 2, % > ?9v > +1?# 2?# ?# ?,9 v > +1?# 2?# 2?# ?,9n > 9 n > .

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    40/179

    •  Testul anterior# foarte pro"a"il neconcludent9 continuăparti7ionareae pildă !n ca(ul 4 putem distine situa7ia

     !n care % este primul element al vectorului de situa7iile !n care este ultimul sau este !n interiorul vectorului.

    • Se a*une astfel la o parti7ie cu clase de ec3ivalen7ă: – 1.a, N+%# v# n,h"inar +%# v# n, > true i v;n< > %O – 1.", N+%# v# n, h "inar +%# v# n, > true i v;1< > %O – 1.c, N+%# v# n, h "inar +%# v# n, > true i v;n< ≠ % ≠ v;1

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    41/179

    1.a.p.1 +, 1.a.p.2 +,% > 2?9 % > ?9

    v > +1?# 2?,9 v > +1?# 2?# ?# ?,n > 29 n > 91.a.i +,% > ?9v > +1?# 2?# ?,9

    n > 91.".p.1 1.".p.2% > 1?9 % > 1?9v > +1?# 2?,9 v > +1?# 2?# ?# ?,9

    n > 29 n > 91.".i% > 1?9v > +1?# 2?# ?,9n > 9

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    42/179

    1.c.p +,

    % > 2?9v > +1?# 2?# ?# ?,9 n > 91.c.i% > 2?9v > +1?# 2?# ?,9n > 92.p.1 2.p.2% > ?9% > ?9v > +1?# 2?,9v > +1?# 2?# ?# ?,9n > 29 n > 9

    2.i% > ?9v > +1?# 2?# ?,9n > .

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    43/179

    • En situa7ia ideală ar tre"ui ca re(ultateletestelor să e aceleai# indiferent de eantionulales dintr&o clasă de ec3ivalen7ă. Prin aceastăcalitate se leitimea(ă faptul că eantionul esterepre(entativ pentru clasa din care face parte.En realitate# criteriile de denire a claselor deec3ivalen7ă i ne7ea parti7iei o"7inuteinMuen7ea(ă repre(entativitatea eantioanelor.

    J"7inerea unei parti7ii corespun(ătoare este unproces euristic care se desfăoară radual#diri*at i de re(ultatele testelor anterioare.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    44/179

    $%erci7iuEercițiu. Proramul următor adauă i e%trae numere !ntrei dintr&o

    coadă cu cel mult nma% elemente# unde ? ≤ nma% ≤ 1??. Pentruadăuare se răspunde prin caracterul a# pentru e%traere prin e ipentru oprire prin o. Să se teste(e prin metoda cutiei nere i să sedepane(e acest proram.

    !. Testul constă !n reali(area unor opera7ii de adăuare +a, i e%traere+e, !n diverse com"ina7ii# urmate de opera7ia +o,. Yn test poate repre(entat prin e%presia n1a m1e#...nIa mIe# o dacă s&au făcut n1 adăuări urmate de m1  e%traeri etc. Se pot distine ca(urile:

    • a, nma% > ?9• ", 1 ≤ nma% ≤ 1??.ceastă parti7ie poate ranată consider!nd situa7iile:• 1, n1 =... nI C nma%9• 2, n1 =... nI > nma%9• , n1 =... nI D nma%.Se o"7in ` clase de ec3ivalen7ă: a/5# a/6# b/4# b/5 i b/6# deoarece a/4 

    conduce la n1 =... nI C ?.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    45/179

    • a ecare din cele ` ca(uri putem distinesitua7iile:

    • a, e%traerile solicitate s!nt totdeauna

    posi"ile# adică pentru orice i# 1 ≤ i ≤ I avemn1 =... ni ≥ m1 =... mi9• ", la un moment dat se solicit _ o e%traere !n situa7ia c!nd nu mai e%istă elemente !n

    coad _# adică e%istă i astfel !nc!t n1 =...= ni Cm1 =...= mi. Se o"7in clasele de ec3ivalen7ăa/5/a# a/5/b etc.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    46/179

    • considerarea valorilor netipice ale domeniuluidatelor de intrare# numite deseori valori de lamarinea domeniului. En ca(ul anali(at estede presupus că aloritmul ar putea să nufunc7ione(e corect atunci c!nd n 7 5# adică pevectori de lunime minimă. istin!nd acestca(# clasele de ec3ivalen7ă 4/a/p# 4/b/p i 5/p s!nt !mpăr7ite !n două# o"7in!nd o parti7ie cu 11clase: 4/a/p/4; 4/a/p/5; 4/a/i; 4/b/p/4 etc.le!nd c!te un eantion din ecare clasă# sealcătuiete următorul test:

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    47/179

    $%erci7iu• Se consideră o func7ie care verica dacă irurile % i F

    sunt identice. Să se ela"ore(e un test utili(!nd clase deec3ivalen7ă.!. -riteriile de orani(are a claselor de ec3ivalen7ă pot :

    lunimi eale sau diferite9 iruri identice sau diferite9lunime minimă +1, sau oarecare9 iruri distincte care

    sf!resc cu acelai caracter. Xe(ultă 6 clase deec3ivalen7ă i se poate considera următorul test:1. % > jaj9 F > jaj9 2. % > ja"cj9 F > ja"cj9. % > jaj9 F > j"j9. % > ja"j9 F > jacj9`. % > ja"j9 F > jc"j9 6. % > ja"j9 F > ja"cj.

    Ghid t ti i d t % d i t

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    48/179

    Ghid pentr parti ionarea date%or de intrareț(/#0#1, Testin" docs /2314+athr  5ondations of Soft)are Testin"#pdf 

    • 6%ase de echi'a%en 7 asociate 'aria&i%e%or ț

    http://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdf

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    49/179

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    50/179

    U idi i % %tidi i %

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    51/179

    Unidimensiona% 'erss m%tidimensiona%

    partitionin"

    • Unidimensiona% consider one inpt 'aria&%e at a time – The nm&er of partitions8nm&er of inpt 'aria&%es

     – + Traditiona%%y sed in test case se%ection, de to its simp%icity

    and sca%a&i%ity

    • +%tidimensiona% consider the prodct of a%% inpt'aria&%es – $rodces one partition,

     – -sa%y )ith a too %ar"e nm&er of c%asses, diffic%t to mana"e

    mana%%y

     – -may of the c%asses mi"ht &e infeasi&%e (does not satisfy the

    constraints amon" inpt 'aria&%es

     – + offers an increased 'ariety of tests

    $%ample

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    52/179

    $%ample

    9 c%asses for m%tidimensiona% partitionin" c

    5rom test se%ection perspecti'e

    -nidimensiona%, : repre;entati'e tests, one for each c%ass

    < (x8-322, y=0, (x8=, y=0, (x8322, y=0, (x=0, y82, (x=0, y8>, (x=0,

    y8322

    -m%tidimensiona%, 9 < (x8-322, y82, (x8-322, y8:, (x8-322, y8322,

    (x81, y8-322!

    -)hich is &etter depends on app%ication

    : c%asses for m%tidimensiona% partitionin" a &

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    53/179

    sFstematic procedure for eVuivalence

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    54/179

    sFstematic procedure for eVuivalencepartitionin +1/2,

    1. UdentifF t3e input domain

    1. Xead reVuirements and identifF all input andoutput variables+environment varia"les of operatin sFstemsare input varia"les,

    2. etermine t3eir types and constraints. etermine t3e set  eac3 varia"le can assume. n approximation of t3e input domain is t3e

     product o t3ese sets

    `. ccordin to t3e constraints# add some valuesfrom appro%imation and o"tain inputdomain, as a superset.

    2. Equivalence classing: partition t3e set ofvalues for eac3 varia"le +unidimensional,. $%. )or% and F#

    sFstematic procedure for

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    55/179

    sFstematic procedure foreVuivalence partitionin +2/2,

    3. Combine eVuivalence classes+multidimensional,

    4ote: e%ponential e%plosion: t3is step oftenavoided

    4. iscard ineasible equivalence classes +t3atcontains one com"ination of input data t3at cannot "e enerated durin t3e test# untestable,:1. T3is mi3t 3apped due t3e lterin of t3e

    invalid input com"inations "F a @YU +c3oicelists for stations ers tren etc.,

    2. Some classes are w3ollF infeasi"le9 usuallF# aclass is a mi%ture of infeasi"le and testa"le

    data.

    $%ample # Boiler -ontrol SFstem +B-S,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    56/179

    $%ample # Boiler -ontrol SFstem +B-S,+dFtia P. at3ur,• @ne of the se%ecta&%e @ptions 6 (contro%, sed to "i'e one of 0 commands

    • temp (set temperatre,

    se%ection of temp 6S ask operator for tempch, 'a%es -32,-1, 1, 32• sht,• cance%

    • Se%ection of 6 )here from comes the command? GUI? 5i%e?

    B8

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    57/179

    B-S# step 13# Identify inpt domain B, 5- en'ironment 'aria&%es

     Approximation

    Inpt domain I contains S (SkU(GUI, Dx#txt, temp, 1 in S (and I

    (GUI, Dx#txt, temp, 322 not in S (&t in I

    B-S step 2

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    58/179

    B-S# step 2

    /# EFi'a%ence c%assin"

    )here f_valid 8 the set of names of the existin" fi%es, f_invalid, nonexistin"

    c_invalid , the set of nonexistin" commands, stop for instance

    t_invalid, the set of not a%%o)ed temperatre 'a%es

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    59/179

    B-S# steps #. Combine. eads to %2%%`>12? classes biIeN@YUO % fvalid % NT$PO % tinvalid# +a class, a.s.o.

    4ote. Some classes are innite +f8valid is an inniteset of names,

    . iscard ineasibles.#tempc# is needed onlF for command temp/

    9: lters invalid temperaturesN@YUO % fvalid % NT$PO % tinvalid#N@YUO % finvalid % NT$PO % tinvalid#

    92 infeasi&%e c%asses, 30remained

    / more Infeasi&%e

    c%asses

    28 remained

    B x 5 x cmd4

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    60/179

    B-S# steps ## cont- tempc# not reVuired for f8invalid

    - V undened+ cmd and tempc3 not allowed

    - Qe discard 1?2 classes# 1 left:

    +ore 1 infeasi&%e

    23 left

    +ore 1 infeasi&%e

    3> %eft a#s#o#

    JA8data can not &e inpt, GUI does not ask for it

     H 8 data can &e inpt, &t is not sed &y the contro% system

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    61/179

    voidin classes e%plosion

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    62/179

    voidin classes e%plosion• Covering of eac# e1uivalence class of eac#

    variable "F a small num"er of tests.

    • test covers a class 0 for a variable V if itcontains a reprezentative of 0•  T3us# one test maF cover multiple eVuivalence

    classes# one for eac3 input varia"le.

    • $%ample for B-S: ` tests cover 1 classes+=2==`# eac3 eVuivalent classes for eac3varia"le ,.

    • QeaIness: it fails to consider t3e semanticrelation "etween dierent varia"les

    • $%ample. Q3at 3appens w3en s#ut  and 0

    es enera on rom reVu remen s:- $ t @ 3i

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    63/179

    es e e a o o eVu e e s-ause&$ect @rap3in+at3ur# 2.6# Testin docs 2?1`at3ur )oundations of Software Testin.pdf  ,• )ocuses on modelin dependencF relations3ips

    amon proram input conditions (causes) andoutput conditions (e

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    64/179

    rap3inXelations

    - i

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    65/179

    -onstraints amon causes

    Possi"le values of constraints

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    66/179

    Possi"le values of constraints

    Ii - t i t $ t

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    67/179

    asIin -onstraint amon $ects

    Examp%e

    -reatin -ause $ect rap3s

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    68/179

    -reatin -ause&$ect rap3sStep 3# +ake a %ist of cases and effects

    Step /# 6ases-Effects "raph constrction

    $%ample Test eneration for a @YU

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    69/179

    $%ample. Test eneration for a @YU&"ased computer purc3ase sFstem

    5ree

    "i'ea)ay

    items

    • 5or )indo)s for choosin" compters, printers, monitors,memory• @ne )indo)s for free "i'ea)ay items, one for price• 5or simp%icity @n%y one nit of each item can &e prchased

    $rice

    XeVuirements

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    70/179

    XeVuirements

    St 1 i t f $ t $ l

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    71/179

    Step 1# ist of causes&$ects# $%ample6ases Effects

    Step 2# causes&eects rap3# $%ample

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    72/179

    Step 2# causes eects rap3# $%ample

    ecision ta"le from cause&eect rap3

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    73/179

    ecision ta"le from cause&eect rap3

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    74/179

    $%ample a cause&eect rap3

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    75/179

    $%ample# a cause eect rap3

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    76/179

     T3e o"tained decision ta"le

    Geuristics to avoid com"inatorial

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    77/179

    e%plosion• Brute force:

    n causes related to an eect: 2n com"ination ofcauses

    • -om"inatorial e%plosion can "e avoided "F usinsimple 3euristics related to JX / 4 nodes.

    • Geuristics are "ased on t3e assumption t3atcertain tFpes of errors are less liIelF to occur t3anot3ers. – Benecial: reduction in t3e num"er of enerated tests – raw"acIs: it maF also discard tests t3at would 3ave

    revealed an error• Gence# one must applF t3e 3euristics wit3 care

    and onlF w3en t3e total num"er of tests is toolare to "e used in practice

    • Bases: Fers # aricI:= 9

    Fers: $ac3&-onditions/ll&-onditions

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    78/179

    F3euristic

    •  T3e test suite is composed of test cases suc3

    t3at: – $ac3 varia"le is made TXY$ J4-$# wit3 all ot3er "ein)S$% F ( w&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    1 ? ? ?? 1 ? ?? ? 1 ?? ? ? 1

     – dd t3e test case•

    TXY$# for 4 node% F ( w1 1 1 1

    • )S$# for JX node? ? ? ?

    • )or n conditions: n=1 test cases +instead of 2n,

    +good limit but+ it is li"el% t#at relevant test cases

    $%ample: $ac3&-onditions/ll&-onditions

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    79/179

    -onditions

    • JX +node a,: -1 "? 11 ?? ?

    • 4 +node ",: -2 -? 11 ?1 1

    Gence: -1 -2 -  ? 1 1  ? ? 1  ? 1 ?

      1 ? 1  1 1 ?+-1>1# onlF wit3 ">?# we

    discarded: 1 1 1,

    Geuristics oriented to t3e Kdesired

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    80/179

    state

    Tota% nm&er is sti%% %ar"e,

    &t redced for

    5ASE, in @K case

    TKUE, in AJ.

    $%ample: desired state 3euristic

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    81/179

    p

    G1 +a>?,: -1 "

    ? ?G+">?,: -2 -? ?? 1

    1 ?The redced set ofcom&inations

    63 6/ 60

    2 2 2

    2 2 3

    2 3 2

     Test @eneration from Predicates

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    82/179

    +at3ur# 2.H,

    • Predicates mi3t arise from reVuirements or

    mi3t "e em"edded in t3e proram – if+ printer$status is %& and paper$tray not empty ,

    t3en senddoc to printer +from reVuirements, – if '(p))* ++ x)-, t3en F>19

    prorammer mi3t code a predicate correctlF ormi3t maIe an error# creatin a fault.• -redicate testing7 testin to assure t3at t3ere

    are no error in t3e implementation of predicates/•

    J"*ectives: – to generate test cases rom predicates suc3 t3at – any ault from a given class – are guarateed to "e detected.

    )ault model for Predicate testin: BJX

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    83/179

    )ault model for Predicate testin: BJX#Boolean Jperator

    Predicate constraints +1/2,• BX>Nt f C > DO set of #oolean 8 !elational

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    84/179

    • BX>Nt"f #C#>#DO # set of #oolean 8 !elationalconstraints on boolean variables or relationale*pressions/

    •  predicate constraints for a predicate p wit3 n"oolean operators A+ B is a se1uence of nC4 BXsFm"ols.$%ample. p> " A r D s B u E v 

    F7(t+7+G) is a constraint on p• test case t satises a constraint if eac3component of p satises t3e correspondinconstraints.$%ample:

    t1>C">true# r>1# s>1# u>1#v>?D satises t3e a"ove -.t2>C">true# r>1# s>1# u>1#v>2D does not satisfF -.• Uf t1# t2 satises -# t3en p+t1,>p+t2,. Qe denote

    "F p+-,

    t3at value +p+-,>true# in our e%ample,.•

    Predicate constraints +2/2,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    85/179

    Predicate constraints +2/2,

    • Qe partition a set S of constraints for a iven

    predicate p# S>St Y Sf.$%ample. p > aC" cDd.et us consider S>NCt"tD# Ct"f DO.Qe 3ave St>N$t"t%&" St>N$t"f%&"

    Uf S>NCf"t%"$t"f%" $f"f%&" St>.

    BJX predicate testin -riterion +1/2,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    86/179

    • $%ample. p > aC" cDd

    BJX e%ample +2/2,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    87/179

    BJX e%ample# +2/2,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    88/179

    Procedure for eneratin a +minimal,BJX& constraints set of a predicate

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    89/179

    BJX constraints set of a predicate+1/2,

    Procedure for eneratin a +minimal,BJX t i t t f di t

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    90/179

    BJX& constraints set of a predicate+2/2,

    $ l 1 " d

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    91/179

    $%ample 1. p> aC" cDd

    -riterii de alcătuire a testelor

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    92/179

    -riterii de alcătuire a testelor• leerea eantioanelor ce vor face parte dintr&

    un test este uvernată de un ansam"lu decondi7ii sta"ilite de cel ce face testarea+criteriu de alcătuire a testelor, i denete omul7ime +nită sau innită, de teste.

    • En anumite situa7ii este convena"il săasimilăm un criteriu cu mul7imea pe care odenete. e pildă# !n ca(ul unei parti7ii adatelor de intrare !n clasele de ec3ivalen7ă

    c1#...cn se poate lua drept criteriu produsulcarte(ian - > c1 %...cn9 acesta se numetecriteriu indus de parti7ie.

    $ ample 2 p

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    93/179

    $%ample 2. p>

    -riteriu compati"il

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    94/179

    • Yn criteriu - +mul7ime de teste, se numetecompatibil  dacă testele din - s!nt sau

    toate concludente sau toate neconcludente.•  En ca(ul unui criteriu compati"il este deci

    sucientă considerarea unui sinur test

    • nu e%istă un aloritm eneral pentru asta"ili dacă un criteriu este sau nucompati"il +pro"lema compati"ilităiicriteriilor este nedecidabil# ca i alte

    pro"leme importante precum terminareaproramelor# ec3ivalen7a lor# corectitudineaetc.,.

    Xela7ii !ntre criterii

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    95/179

    Xela7ii !ntre criterii• Yn criteriu - este mai tare +mai n, dec!t alt criteriu

    dacă pentru orice test +mul7ime de eantioane, T ∈ - e%istă un test Y ∈  astfel că Y ⊆ T9 cu alte cuvinte#orice test din - poate adaptat# prin eliminarea unoreantioane# astfel !nc!t să satisfacă criteriul .

    Observație. acă o parti7ie c1#... cn este o ranare a

    parti7iei d1#... dm atunci criteriul c1 %...cn este mai taredec!t d1 %...dm.

    • -riteriul - este mai bun dec!t dacă este mai ndec!t i e%istă un test Y ∈  neconcludent i un test

     T ∈ - concludent cu proprietatea Y ⊆ T9 cu altecuvinte# testul Y devine concludent prin adăuarea deeantioane noi# cerute de criteriul -.

    etoda cutiei transparente

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    96/179

     Testare structuralaă• ceasta este o strateie de testare complementară

    metodei cutiei nere.• prin această metodă testul se ela"orea(ă e%amin!nd

    detaliile proramului: instruc7iuni# date etc.• $a poate utili(ată independent sau !mpreună cu

    metoda cutiei nere# pentru a rana o parti7ie de*ao"7inută.+e pildă# !n implementările func7iei binar  componenta

    v;mi*loc< *oacă un rol important. ceasta poate sueraun criteriu nou de ranare i anume considerareaca(urilor !n care valoarea căutată  *   este eală# maimică sau mai mare dec!t componenta v;mi*loc

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    97/179

    • icultă7ile !n aplicarea acestei strateii s!nt leate de pre(en7ainstruc7iunilor de deci(ie +if+ case etc.,# a celor iterative +!#ile+ repeat ,sau a celor de transfer +goto,. cestea determină apari7ia unui mare

    număr de com"ina7ii !n care instruc7iunile elementare ale proramului+atri"uiri# instruc7iuni de intrare/ieire# apeluri de proceduri, pot e%ecutate.

    • Udeal ar ca testul să solicite e%ecutarea ecărei com"ina7ii posi"ile celpu7in o dată. in punct de vedere practic acest lucru nu este reali(a"il#c3iar !n ca(ul proramelor de dimensiune relativ mică.

    $%emplu. En ca(ulwhile a doif  " then else 4

    dacă se e%ecută n itera7ii# s!nt posi"ile 2n

     com"ina7ii !n care se e%ecutăinstruc7iunile i 4. En testare e%3austivă ar tre"ui ca setul de date săcon7ină 2n eantioane. Presupun!nd că prelucrarea unui eantion ar duradoar o milisecundă# !n ca(ul n > ? ar necesari aproape ? de ani+WW,de lucru ne!ntrerupt.

    -riterii de acoperire

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    98/179

    -riterii de acoperire

    • En realitate nu se testea(ă dec!t un numărlimitat de astfel de com"ina7ii# considerate maiimportante. En sta"ilirea acestui număr decom"ina _ii se utili(ea(ă diferite criterii deacoperire# dintre care cele mai importantes!nt: – 1, acoperirea tuturor instruc/iunilor 9 – 2, acoperirea tuturor arcelor 9

     – , acoperirea tuturor condi  

    iilor simple9 – , acoperirea tuturor drumurilor .

     

    coperirea tuturor instruc7iunilor +U4STX,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    99/179

    • cest criteriu se "a(ea(ă pe o"serva7ia evidentă că o eroarenu va descoperită dacă nu se e%ecută deloc instruc7iunile

    ce o con7in. Prin urmare# testul tre"uie să e astfel ales !nc!t  pentru ecare instrucțiune elementar  _ a programului săe*iste un eșantion de date care să provoace e*ecutarea sa .

    • -riteriul nu arantea(ă semnalarea erorii.m > ma%+%#F,:

    m :> %9if  F C> % then m :> FNm > ma%+%# F,O

     TestulN+% > 2# F > 2,O provoacă e%ecutarea am"elorinstruc7iuni de atri"uire iar re(ultatul o"7inut este corect

    +testul este neconcludent,.ar aloritmul este incorect deoarece se calculea(ă de fapt m > min+%# F,.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    100/179

     Testele ce satisfac acest criteriu s!nt !n eneral neconcludente deoareceacelai eantion de date poate provoca e%ecutarea mai multor

    instruc7iuni9 este deci foarte pro"a"il să putem minimi(a număruleantioanelor din test# men7in!nd criteriul de acoperire a instruc7iunilor.i  * G7 H then 

    !riteln (I* pozitivI) J!4K

    else  !riteln (I* negativI); J!5K

    i  % G7 H then 

    !riteln (I% pozitivI) J!6Kelse  !riteln (I% negativI); J!LK

    • pentru e%ecutarea instruc7iunilor w1 i w2 s!nt suciente clasele deec3ivalen7ă N+%# F,  % ≥ ?O i N+%# F,  % C ?O.

    • Xan!nd această parti7ie spre a asiura e%ecutarea lui w i a lui w#o"7inem o parti7ie cu clase de ec3ivalen7ă ce corespund celor cadraneale planului carte(ian. eci un test care con7ine eantioane +c!te unul dinecare clasă, !ndeplinete criteriul de acoperire a instruc7iunilor.

    •  En realitate este sucient un test cu doar două eantioane:N+% > 2# F > 2,# +% > &2# F > &2,O# care este mai sla" dect primul.

    coperirea tuturor arcelor+condi7iilor,: X-$+-J4,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    101/179

    • gra de control  al proramului +construit inductivpentru prorame ce con7in instruc7iuni elementare

    +adică atri"uiri# instruc7iuni de intrare/ieire# apeluri deproceduri,# instruc7iuni de deci(ie +i # then # else# i #then, i instruc7iuni iterative +!#ile# repeat  etc.,.

    • Unstruc7iuni elementare:1a9 arcul repre(intăinstruc7iunea9 dacă este necesar# se etic3etea(ă univoc9

    • instruc7iune de deci(ie de formaif  c then  else B: 1"if  c then : 1c:> i :M  rafurile asociate lui # B9 !n v!rful de intrare

    se poate !nscrie condi7ia c9• instruc7iunea iterativăwhile c do : 1drepeat  until c : 1e.

    • -ompunere secven7ială# 9 B : 1f 

    @rafuri asociate instruc7iunilor

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    102/179

    7

    $%emple

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    103/179

    • Unstruc7iunilor următoareread+%,9

    if  % > ? then F :> ?9writeln+%,9li se asocia(ă raful de control din ura 2a

    • Observație. Secven7ele de forma celor din ura a cuproprietatea că sinurele arce care intră sau ies din v!rfurilen2#... nI&1 unde I ≥  s!nt cele din ură se pot !nlocui prin

    secven7e de forma celor din ura "+este posi"il ca raful să devină un multiraf:pot e%ista maimulte muc3ii distincte care să lee aceeai perec3e de v!rfuri,

    • instruc7iunilor din e%emplul 1 li se asocia(ă multiraful dinura 2"

    • Unstruc7iunilor următoare:read+%,9while % D ? do % :> % 1li se asocia(ă multiraful din ura

    i x82 oread(x n )rite%n(x

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    104/179

    da

    y82

    i x82 oread(x n

    day82

    )rite%n(x

    5i" /&

    5i" /a

    n/n3 nk-3 nk

    n3 nk

    5i" 0a

    5i" 0&

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    105/179

    xL2 oread(x n

    da

    i

    x8x-3

    5i"# =

    xL2 xL;M3

     A

    cA

    c

    5i"# :

    Exemple: Euclid's algorithm

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    106/179

    -3. 6 1?6

    begin

    read (x); read (y);

    while x ≠ y loop

    if x > y then

    x := x - y;

    elsey := y - x;

    end if;

    end loop;

    gcd : = x;end;

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    107/179

    • -riteriul de acoperire a tuturor arcelor: testul să e astfelales !nc!t pentru orice arc din graf (multigraf) să e*iste

    eșantioane care să provoace parcurgerea arcului lae*ecutarea programului/

    0*emplu Pentru instruc7iunile din e%emplul 1.setul de dateN+% > ?,9 +% > 1,O !ndeplinete acest criteriu.

    • Observație. Friteriul de acoperire a tuturor arcelor este

    mai tare dec3t criteriul de acoperire a tuturorinstrucțiunilor/ ceastă rela7ie este strictă9 pentruinstruc7iunile din e%emplul 1 testul N% > ?O asiurăacoperirea tuturor instruc7iunilor# dei arcul corespun(!ndsitua7iei % ≠ ? nu este parcurs.

    • Observație. -riteriul de acoperire a tuturor arcelor arecalitatea că impune aleerea unui test care să provoaceevaluarea ecărei condi7ii cel pu7in o dată at!t cu re(ultatultrue c!t i cu re(ultatul false.

    $%emplu

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    108/179

    • Eercițiu. )ie instruc7iunile

    if  % D ( then  F :> else  F :> 29if  % D ( = 1 then w :> else w :> 2@ăsi7i un test cu număr minim de eantioane pentru

    acoperirea tuturor arcelor. 0aria"ilele s!nt de tipulinteer.• !. )ie > N+%#(, % D (O9 c > N+%#(, % ≤ (O9

    B > N+%#(, % D ( = 1O9 cB > N+%#(, % ≤ ( = 1O.Jrice test care con7ine c!te un eantion din ecaremul7ime este sucient pentru acoperirea tuturor arcelor+a se vedea ura 6,. e pildă# se poate lua testul:% > 1# ( > ?9 % > 1# ( > 19 % > 2# ( > ?9 % > ?# ( > ?.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    109/179

    • ceste mul7imi nu s!nt dis*uncte. J parti7ie se poate o"7ineconsider!nd următoarele clase de ec3ivalen7ă:

    ∩ B > N+%#(, % D ( = 1O9 ∩ cB > N+%#(, % > ( = 1O9c ∩ cB > N+%#(, % ≤ (O+c ∩ B este vid _,.

    • $ste sucient deci un test cu eantioane +c!te unul din ecareclasă de ec3ivalen7ă,. Se poate lua de pildă

    % > 2# ( > ?9% > 2# ( > 19% > ?# ( > 1.

    • $%istă !nsă i teste cu două eantioane+%1# (1, ∈  ∩ B# +%2# (2, ∈ c ∩ cB.

    •  Teste cu un sinur eantion i care să satisfacă criteriul de acoperirea tuturor arcelor nu e%istă deoarece orice eantion nu poate asiuradec!t parcurerea unui sinur arc al instruc7iunii de deci(ie.

    $%emplu

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    110/179

    • )ie următorul proram de căutare secven7ială a elementului v !n irul%1#...%n# unde 1 ≤ n ≤ 1?.

    const dma% > 1?9var  %: arra';1..dma%< of  inteer9

    i#n: inteer9v: inteer9asit: "oolean9be(in

    read+n,9for i :> 1 to n do read+%;i false9i :> 19

    while +not asit, and +i C> n, do be(inif  %;i< > v then asit :> false9 NWOi :> i = 1end9

    end.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    111/179

    • Se consideră o variantă a acestui proram# !n careinstruc7iunea de deci(ie din instruc7iunea iterativă se

     !nlocuiete cu instruc7iunea de atri"uireasit :> +%;i< CD v,răta7i că aplicarea criteriului de acoperire a tuturor arcelorconduce la teste diferite !n cele două ca(uri.!. @rafurile asociate s!nt pre(entate !n ura `. – En primul ca( s!nt necesare două eantioane# pentru ca(ul

    %;i< > v i respectiv %;i< CD v. Se poate lua testul :n > 1# %;1< > 1?# v > 1?9n > 1# %;1< > 1?# v > ?.cest test este concludent +primul eantion,.

     – En al doilea ca( este sucient un sinur eantion pentru

    acoperirea tuturor arcelor. Jricare din cele două eantioaneconsiderate anterior semnalea(ă eroarea. –  loritmul corect se o"7ine prin !nlocuirea instruc7iunii

    asit :> false cu asit :> true. Unstruc7iunea de deci(ie poate !nlocuit _ prin asit:>+%;iv,.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    112/179

    da

    5i"# 1

    xNiO8'

    da

    n

    "asit8fa%se

    a

    i8iM3 da

    n n

    "asit8(xNiOPL'Q

    i8iM3

    &

    coperirea arcelor# criteriuincompati"il

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    113/179

    -3. 6 11

    incompati"il

    -onsiderăm altă variantă+iPn,:

    da

    not "asit

    and

    iPn

    xNiO8'

    da

    n

    "asit8true

    i8iM3

    n

     T1>N+%>N1#2O# v>1,# +%>N1#2O# v>,O acoperăarcele#dar neconcludent T2>N+%>N1#2O# v>1,# +%>N1#2O# v>2,O acoperăarcele#

    concludent

    coperirea tuturor condi7iilor simple q+SUP&-J4=X-$+-J4,,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    114/179

    +SUP -J4=X-$+-J4,,• En ca(ul c!nd !n proram e%istă condi7ii compuse de forma c

    and d sau c or d# acoperirea tuturor arcelor nu conduce

    totdeauna la evaluarea condi7iilor c i d at!t cu re(ultatulfalse c!t i cu re(ultatul true.• Eemplul ).*.).+.+.,. )ie instruc7iunile următoare:if  +% CD ?, and +F CD ?, then ( :> ?else  ( :> 1 / F

    •  Testul N+%>1# F>1,9 +%>?# F>1,O asiură acoperirea celordouă arce. Se o"servă !nsă că situa7ia F > ?# care ar condus la descoperirea unei erori nu a fost necesară pentru !ndeplinirea acestui criteriu.

    dan

    x82 x83Ry

    coperirea tuturor condi7iilor simple2/2

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    115/179

    • $ste util să considerăm un criteriu mai tare dec!t cel al acoperirii tuturorarcelor# prin care se cere ca testul: 1. să acopere toate arcele și 5/ săasigure evaluarea tuturor condițiilor simple at3t cu rezultatul true c3t și cu

    rezultatul false.• cest criteriu este ec3ivalent cu acoperirea tuturor arcelor# dacă

    proramul con7ine doar condi7ii simple# !n care nu apar operatorii loiciand sau or.

    • $valuarea tuturor condi7iilor simple nu asiură i acoperirea arcelor +falseand true# true and false# acelai arc,.

    • a rescrierea instruc7iunilor ce con7in condi7ii compuse prin instruc7iuni cucondi7ii simple se va 7ine seama că

    if  c and d then  if  c then if  d then else B i

    else Belse Bs!nt ec3ivalente doar dacă operatorul and este evaluat prinscurtcircuitare/

    En ca( contrar re(ultatele s!nt diferite# după cum se poate o"serva !n ca(ulc!nd c este % CD ?# d este 1/% D ? iar % are valoarea ?.

    coperire multiplă a tuturor condi7iilorsimple

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    116/179

    simple+SUP&-J4&YT,• testul tre"uie să asigure evaluarea

    condițiilor simple cu rezultatul true și false3n toate combinațiile cerute de structuracondi7iei compuse !n care ele apar. epildă# !n ca(ul c and d se o"7ine pentruperec3ea de condi7ii simple +c# d, patrucom"ina7ii: +false# false,# +false# true, etc.

    • acest criteriu este strict mai tare dec!tacoperirea tuturor condi7iilor simple.

    $%emplu

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    117/179

    $%emplu

    • )ie instruc7iunileif  +% CD ?, and +F CD ?, then( :> 1else ( :> 1 / +%F = % = F,•  Testul N+% > 1# F > ?,9 +% > ?# F >1,9 +% >1# F >1,O

    acoperă toate condi7iile simple dar nu provoacevaluarea +false# false,.

    • $l este de altfel neconcludent. $roarea estedescoperită c3iar prin eantionul +% > ?# F > ?, care

    adăuat la testul considerat acoperă multiplu toatecondi7iile simple. Pentru acest proram# acest criteriueste mai "un dec!t acoperirea tuturor condi7iilor simple.

    coperirea tuturor atri"uirilor loice:J@&TX

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    118/179

    J@ TX• Se consideră un proram P !n care e%ecutarea este

    diri*ată doar prin e%presii loice +condi7ii,9 altemecanisme +precum instruc7iunea case, s!nt e%cluse.

    • )ie c1#... cn toate condi7iile care apar !n P. Seconsideră toate sistemele de valori loice w >+v1#...vn,# unde vi ∈ Ntrue# falseO pe care le pot lua

    aceste condi7ii.• Se formulea(ă următorul criteriu# numit acoperirea

    tuturor atribuirilor logice: testul tre"uie săasigure evaluarea condițiilor astfel 3nc3t să se obținătoate sistemele !.

    • acest criteriu este strict mai tare dec!t acoperireatuturor arcelor.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    119/179

    $%emplu

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    120/179

    •  Să se arate că !n ca(ul instruc7iunilor următoareif  % CD ? then F :> `else ( :> ( & %9if  ( D 1 then ( :> ( / %else ( :> ?

    criteriul acoperirii tuturor atri"uirilor loice asiurăsemnalarea erorii.

    • !. 0om arăta că dacă testul este neconcludent atunci nuacoperă toate atri"uirile loice. )ie %?# (? valorile lui % i F

     !nainte de prima instruc7iune i %1# F1 valorile dupăe%ecutarea acesteia. acă testul este neconcludent# din %1 > ? re(ultă (1 ≤ 1. ar %1 > %?9 re(ultă de aici că atri"uirea+false# true, nu poate reali(ată.

    -riteriul acoperirii multiple a condi7iilorsimple i criteriul atri"uirilor loice s!nt

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    121/179

    p incompara"ile.• !. )ie instruc7iunile următoare:if  +% CD ?, and +F CD ?, thenNcondi7ia -Oa :> ?else a :> 19if  +( CD ?, and +t CD ?, then Ncondi7ia O

    a :> ?else a :> 1• $antioanele s!nt sisteme de valori +%# F# (# t,.•  Testul N+?#?# ?#?,9 +?#?# 1#1,9 +1#1# ?#?,9 +1#1# 1#1,O

    acoperă toate atri"uirile loice ale condi7iilor - i dar nu

    acoperă multiplu condi7iile simple din care acestea s!nt formate.•  Testul N+?#?# ?#?,9 +?#1# ?#1,9 +1#?# 1#?,9 +1#1# 1#1,O

    acoperă multiplu condi7iile simple dar nu acoperă toateatri"uirile loice.

    Xela7ii !ntre criterii# sinte(ă

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    122/179

    IJSTK

     AK6E(6@J.

    [email protected](6@J.

    [email protected]+UT

    @G-ATK

    c8a " +o condi7ie, T>N+a>1#">?,#

    +a>1#">1,OJ@&TX# dar nuSUP&-J4=X-$+-J4,

    638a "# -2>cda " c d? ? ? ? SUP&-J4&YT? 1 1 ? dar nu1 ? ? ? J@&TX

    1 1 1 1

    638a "# -2>cd

    a " c d? ? ? ? J@&TX +si SUP$&-J4=X-$+-J4,,? 1 1 1 dar nu1 1 ? ? SUP&-J4&YT1 1 1 1

    $ATS

    - strict mai tare dect toate

    coperirea tuturor drumurilor:PTGS

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    123/179

    • En conformitate cu acest criteriu# pentru ecare drum al grafuluide control testul conține eșantioane prin prelucrarea cărora

    e*ecutarea programului să urmeze drumul ales/• cest criteriu este strict mai tare dec!t cele pre(entate !nainte.• )ie instruc7iunile următoare:if  % CD ? then ( :> ?9else ( :> 19if  F CD ? then ( :> 2else ( :> 1/+% = F,@raful asociat este cel din ura 1..1.2.2..•  Testul N+%>?# F>1,9 +%>1# F>?,O acoperă toate condi7iile

    simple. $l nu acoperă !nsă dec!t două drumuri din cele posi"ile# ind neli*at c3iar cel care ar dus la semnalarea uneierori +ca(ul % > ? i F > ?,.

    • Yn test care satisface acest criteriu este# de e%empluN +% > ?# F > 1,9 +% > 1# F > ?,9+% > ?# F > ?,9 +% > 1# F > 1,O

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    124/179

    • acest criteriu e%primă un de(iderat reu de reali(at !npractică datorită instruc7iunilor iterative.

    • -riteriul poate !nsă aplicat !n forme mai sla"e#select!nd pentru testare doar anumite drumuriconsiderate critice.

    • ei această selec7ie este dependentă de pro"lemă#

    ea poate totui 3idată de suestia ca datele de testsă provoace parcurerea unor drumuri ce corespund: – numărului minim de itera7ii +adică nici o itera7ie !n ca(ul

    !#ile i o itera7ie !n ca(ul repeat ,9 – numărului ma%im de itera7ii9

     – numărului mediu de itera7ii# dacă acesta poate sta"ilit !ntr&un fel oarecare9 !n ca( contrar se acceptă o e%ecutare cu unnumăr semnicativ de itera7ii.

    $%empluSă considerăm ca(ul unui aloritm de căutare secven7ială a unei valori % printre

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    125/179

    Să considerăm ca(ul unui aloritm de căutare secven7ială a unei valori % printrecomponentele v;1 1??9

    t'pe inde% > 1..dma%9numarcomponente > ?..dma%9element > inteer9vector > arraF;inde%< of  element9

    function secvential +% : element9 v : vector9n : numarcomponente , : "oolean9var asit : "oolean9

    po(itie : inde%9be(in

    asit :> false9 po(itie :> 19while   +not asit, and +po(itie C n, do be(inasit :> +v;po(itie< > %,9po(itie :> po(itie = 1end9secvential :> asit

    end9

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    126/179

    • @raful asociat acestui aloritm este

    pre(entat !n ura 2..1.2.2..• $ste important ca setul de date de testsă asiure: – parcurerea unui drum !n care instruc7iunea

    !#ile se e%ecută !n (ero itera7ii +n > 1 saun>?,9

     – parcurerea unui drum !n care instruc7iunea!#ile se e%ecută !n c!teva itera7ii# distin!nd

    situa7iile !n care % face sau nu parte dinsecven7a v;1dma%.

    0om considera deci testul:1.2.+,

    1? 1?

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    127/179

    % > 1?9 % > 1?9v > +,9 v > +1?,9n > ?9 n > 19

    ..% > 1?9 % > 2?9v > +1?# 2?# ?,9v > +1?# 2?# ?,9n > n >

    `.+,6.% > ?% > ?9v > +1?# 2?# ?,9v > +1?# 2?# ?,9n > n >

    H.

    % > ?9v > +1?,9n > 1.

    cesta este un test concludent# deoarece !n ca(urile 5 i N este semnalată o eroare.ceste eantioane au valoarea *  pe ultima po(i7ie a vectorului. epanareaaloritmului constă !n !nlocuirea condi7iei po(itie C n prin po(itie C>n.

    plicarea interată a criteriilor detestare

    >l it l d t idă (O i "2 t) t

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    128/179

    •  >lgoritmul de sortare rapidă (Ouic"2ort). cestaloritm a fost ela"orat de -..X. Goare ;Go 62

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    129/179

    p p pprocedură recursivă:

    procedure Sortare +S : sir9 var X : sir,9var S1# S2# X1# X2 : sir9

    be(in

    if  S are cel pu7in două elemente then be(in

    Partitionare +S# S1# S2,9Sortare +S1# X1,9Sortare +S2# X2,9

    -om"inare +X1# X2# X,endend9

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    130/179

    • ceastă procedură conduce la plasarea aloritmilorde sortare !n două cateorii: – aloritmi !n care partiționarea este dicilă# dar

    com"inarea uoară9 – aloritmi !n care parti7ionarea este uoară# dar

    combinarea este dicilă.•

    $%emplele repre(entative ale acestor cateorii s!ntaloritmii Ouic"2ort  i respectiv sortarea prininterclasare. – Ouic"2ort  procedura de parti7ionare este dicilă# sortarea

    prin interclasare !mparte pur i simplu lista !n două.

     – En compensa7ie# la aloritmul Ouic"2ort  com"inarea sereali(ea(ă prin simpla alăturare a listelor sortate !n timp cela cealaltă metodă se face mai reu# prin procedeul deinterclasare.

     Testare func7ională# uicISort• Presupunem ca dimensiunea ma%ima este dma%>.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    131/179

    Presupunem ca dimensiunea ma%ima este dma% .• etoda cutiei nere conduce la considerarea unor

    eantioane care să cuprindă:• iruri vide9 +din afara domeniului,• iruri cu un sinur element9 +marinea domeniului,• iruri de dimensiune ma%ima9 +marinea domeniului,• iruri cu cteva elemente +două, elemente9

    poi# ranare:• iruri constante9• iruri strict descrescătoare9• iruri strict crescătoare.

    •  vem deci 11 clase de ec3ivalen7ă i se poate utili(a testulurmător:

    1. I>?9 %>+,9

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    132/179

      1. I ?9 % +,92. I>19 %>+1?,9

      . I>29 %>+1?#1?,9  . I>29 %>+1?#2?,9  `. I>29 %>+2?#1?,9

      6. I>9 %>+1?#1?#1?,9  H. I>9 %>+1?#2?#?,9  . I>9 %>+?#2?#1?,9

      . I>9 %>+1?#1?#1?#1?,91?. I>9 %>+1?#2?#?#?,911. I>9 %>+?#?#2?#1?,.

     Testare structurală# uicISortpro(ram sort9

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    133/179

    pro(ram sort9const Ima% > 1?9 Nnumarul ma%im de elemente ale siruluiOt'pe  indice > ? .. Ima%=19

      element > inteer9var  %: arra';indice< of  element9

      I: indice9 Nnumarul real de elemente ale siruluiO 

    procedure Partitionare +m#n : indice9 var i#* :indice,9var t# pivot: element9

    be(ini:> m9 *:> n9 pivot:> %; +m=n, div 2 * do be(in while %;i< C pivot do i:> i=19while %;*< D pivot do *:> *&19if  i C> * then be(int:> %;i *1end

    end

    end9

    procedure uicISort +m#n: indice ,9var i *: indice9

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    134/179

    var i#*: indice9be(in

    if  m C n then be(inPartitionare+ m#n#i#*,9uicISort +m# *,9uicISort +i# n,end

    end9

      var i:indice9be(in

    write+j dati numarul de elemente ale sirului j,9readln+I,9write+j dati elementele sirului j,9

    for i:> 1 to I do read +%;i 1 to I do write + %;i< : ` ,9writeln

    end.

    •  Te%tul procedurii Partitionare# preluat din ;lr H< este at!t

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    135/179

    e u p ocedu a o a e# p e ua d ; < es e ade "ine conceput !nc!t aproape orice modicare !i afectea(ăcorectitudinea.

    • e pildă# s&ar putea !ncerca !nlocuirea condi7iei %;i< C pivotprin %;i< C> pivot i a condi _iei %;*< D pivot prin %;*< D>pivot9 această tentativă este *usticată prin inten7ia de asări i peste elementele eale cu pivotul pentru a acceleraprocesul de parcurere. Spre e%emplu# !n ca(ul irului1# 2# 2# 2# 2# 2# 2# `s&ar a*une la situa7ia nală1 *# 2# 2# 2# 2# 2# 2# `i !ntr&o sinură itera7ie.+!n forma ini7ială# procedura -artitionare a*une la forma

    nală1# 2# 2# 2 *# 2i# 2# 2# ` !n trei itera7ii.

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    136/179

    • J altă propunere de optimi(are s ar putea face

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    137/179

    • J altă propunere de optimi(are s&ar putea facerelativ la instruc7iunea

    if  i C> *then ...

    unde se o"servă că !n ca(ul i > *#intersc3im"area valorilor lui %;i< i %;*< este

    inutilă. – Se constată !nsă destul de uor că sc3im"area condi7iei

    i C> * prin i C * face ca procedura modicată să eincorectă. Entr&adevăr# dacă % > +1?# 2?,# atunci pivot >1? i după prima itera7ie se a*une la situa7ia:

    1?i *# 2? – in acest moment# instruc7iunea while i C> * ...

    ciclea(ă deoarece dacă i > *# atunci i i * nu mai s!ntmodicate.

    • Pentru a remedia acest nea*uns# se poate propune !nlocuirea instruc7iunii

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    138/179

    * p p p 7if  i C> * ...prin următoarele trei instruc7iuni:

    if  i C * then be(int :> %;i %;* t

    end9i :> i = 19 * :> * 1• )a7ă de propunerile anterioare# aceasta are anse mari de a acceptată ca indcorectă.

    • 4ici unul din eantioanele testului anterior nu semnalea(ă vreo eroare.• Totui# se poate constata că !n ca(ul c!nd% > +2# # 1# 1# 2# # 2# `# 6,i deci pivot > 2# după prima itera7ie se a*une la2# i# 1# 1# 2#  *# 2# `# 6

    e aici se o"7ine situa7ia nală2# 2# 1 *# 1# # i# 2# `# 6

    Se o"servă !nsă că elementele din su"irul % *=1#... %i&1 nu s!nt eale !ntre ele# deciprocedura modicată nu mai reali(ea(ă func7ia pentru care a fost creată.

    • Tre"uie recunoscut că dacă te%tul ini7ial al

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    139/179

     Tre"uie recunoscut că dacă te%tul ini7ial alprocedurii Partitionare ar fost cel propus prin

    ultima modicare# eroarea ar avut pu7ineanse de a descoperită prin teste.• ai mult# sensi"ilitatea te%tului acestei

    proceduri la modicări ce păreau plau(i"ile +cel

    pu7in la prima vedere, ne face să ne !ndoim decorectitudinea sa i să resim7im nevoia unei *usticări riuroase a "unei sale func7ionări.

    • ceasta poate o"7inută prin metode statice

    de vericare +metode formale de demonstrarea corectitudinii proramelor,.

    $%ercise: Xussian ultiplication+oa Ao3ansson# Qolfan 3rendt# 0ladimir Rle"anov: Testin# e"uin#

    and 0erication,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    140/179

    , Testin docs 2?1`Testin.pdf 

    Xussian ultiplication# control Mowrap3

    http://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Testing3.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Testing3.pdf

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    141/179

    Xussian ultiplication# coveraecriteria

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    142/179

    $valuarea testelor prin mutan7i utation testin +mutation analFsis,+curs )lorentin Upate,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    143/179

    +curs )lorentin Upate, 

    •  Te3nica de evaluare a unui set de teste pentru unproram +avand un set de teste enerat# putemevalua cat de ecient este# pe "a(a re(ultateloro"tinute de acest test asupra mutantilorproramului,

    • utation > modicare f. mica +din punct de vederesintactic, a unui proram

    • Pentru un proram P# un mutant al lui P este unproram o"tinut modicand f. usor P9 tre"uie sae corect din punct de vedere sintactic.

    $%empluro(ram

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    144/179

     ro(ram "ein

    int %# F9read+%# F,9if +% D ?,write+%=F,elsewrite+%F,

    end/utant /)"ein

    int %# F9read+%# F,9if +% % 012

    write+%=F,elsewrite+%F,

    end

    /utant /+

    " i

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    145/179

    "einint %# F9

    read+%# F,9if +% D ?,write+3'2elsewrite+%F,

    end/utant /,

    "einint %# F9read+%# F,9if +% D ?,

    write+4'4)2elsewrite+%F,

    end

     Te3nica utation testin

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    146/179

    • &@enerarea mutantilor pentruproramul P +folosind o multime deoperatori de mutatie,

    • &Xularea setului de teste asupraproramului P si setului de mutanti9daca un test distine intre P si un

    mutant spunem ca - omoarămutantul R/

    utanti de primul ordin / mutanti de ordinmai mare +rst&order/3i3er&order mutants,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    147/179

    )irst&order mutants > mutanti o"tinuti facand o sinura modicare inproram• n&order mutants > mutanti o"tinuti facand n modicari in proram• n&order mutant > rst&order mutant of a +n&1,&order mutant# n D 1• n&order mutant# n D 1# sunt numiti 3i3er&order mutantsutant de ordin 2

    "einint %# F9read+%# F,9if + %0 12 write+3'2else write+%F,

    endUn eneral# in practica sunt folositi doar mutantii de ordin 1. otive:& 4umarul mare de mutanti de ordin 2 sau mai mare& -ouplin&eect

    Principiile de "a(a ale mutation testin• -ompetent prorammer 3Fpot3esis +-PG,:

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    148/179

    • -ompetent prorammer 3Fpot3esis +-PG,: – Pentru o pro"lema data# proramatorul va scrie un proram

    care se aMa in vecinatatea unui proram care re(olva incorect pro"lema +si deci# erorile vor detectate folosindmunati de ordinul 1,

    • -ouplin eect – atele de test care distin orice proram care difera cu

    putin de proramul corect sunt sucient de puternicepentru a distine erori mai comple%e.

     – Xe(ultate e%perimentale arata ca un set de teste caredistine un proram de mutantii sai de ordin 1 este faproape de a distine proramul de mutantii de ordin 2

     – $%plicatie intuitiva: in eneral erorile simple sunt mai reude detectat. $rorile comple%e pot detectate de aproapeorice test

    Stron mutation/ weaI mutation

    • Yn test t omoara mutantul +distine fata de P,

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    149/179

    • Yn test t omoara mutantul +distine fata de P,daca cele doua se comporta diferit pentru testul t.

    • Untre"are: cand o"servam comportamentul celordoua prorame W –  Testul t aduce pe P si in stari diferite & se o"serva starea

    proramului +valorile varia"ilelor afectate, dupa e%ecutia

    instructiunii mutate. – Sc3im"area starii se propaa la sfarsitul proramului & seo"serva valoarile varia"ilelor returnate si alte efecte+sc3im"area varia"ilelor lo"ale# siere# "a(a de date,#imediat dupa terminarea proramului

    • Sea" mutation prima conditie este satisfacuta

    • 2trong mutation ambele conditii sunt satisfacute

    $%empluro(ram

    "ein

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    150/179

    int %# F9read+%# F,9F :> F=19

    if +% D ?, write+%,else write+F,

    end

    /utant /

    "ein

    int %# F9read+%# F,9F :> F&19if +% D ?, write+%,else write+F,

    end

    •  Testul +1# 1, distine intre P si d.p.d.v. weaI mutation# dar nudistine intre P si d.p.d.v. stron mutation

    •  Testul +?# 1, distinre intre P si d.p.d.v. stron mutation• Stron mutation: mai puternica. Se asiura ca testul t detectea(a cu

    adevarat pro"lema• QeaI mutation: necesita mai putina putere de calcul9 strans leata de

    ideea de acoperire

    utanti ec3ivalenti

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    151/179

    • Yn mutant a lui P se numeste ec3ivalent daca el se

    conporta identic cu proramul P pentru orice date deintrare/ >ltfel + se spune ca R poate distins de -/• in punct de vedere teoretic: in eneral# pro"lema

    determinarii daca un mutant este ec3ivalent cuproramul pari nte este nedecida"ila +este ec3ipaventa

    cu 3altin pro"lem,• Un practica: determinarea ec3ivalentei se face prin

    anali(a codului +formal met3ods,• eterminariea mutantilor ec3ivalenti poate un proces

    foarte comple% principala pro"lema practica a te3niciimutation testin +avem neoie sa decidem daca mutantiisunt sau nu ec3ivalenti pentru a putea evalua efeicientatestelor,

    Ytilitatea mutation testin• $valuarea unui set de date e%istent +si construirea de noi

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    152/179

    $valuarea unui set de date e%istent +si construirea de noiteste# daca testele e%istente nu omoara toti mutantii,

    • etectarea unor erori in cod• Evaluarea unui set de date eistent 5eemplu2

    "einint %# F9

    read+%# F,9if +% D ?, write+%=F,else write+%F,

    end• -onsideram urmatorii operatori de mutatie:• = inlocuit de • inlocuit de /• o varia"ila sau o constanta % este inlocuita de %=1

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    153/179

    "einint %# F9read+%# F,9if +% D ?, 1 if +%=1 D ?,2 if +%D ?=1,

    write+%=F, write+%=1=F, write+%=F=1,` write+%&F,elsewrite+%F, 6 write++%=1,F,H write+%+F=1,, write+%/F,

    end

    • Set de teste T > Nt1 t2 t tO

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    154/179

    Set de teste T Nt1# t2# t# tOt1 > +?# ?,# t2 > +?# 1,# t > +1# ?,# t > +&1# &1,

      t) t+ t, t6 /utant distinsP+t, ? ? 1 11+t, ? ) NE NE 72+t, ? ? 1 NE 7+t, ? ? + NE 7

    +t, ? ? + NE 7`+t, ? ? 1 1 N6+t, ? 1 4$ 4$ H+t, ? ? 1 1 7+t, 4 4$ 4$ 4$ • utanti nedistinsi +alive, > N`O• Untre"are: $ste ` mutant ec3ivalent W

    Xaspuns: 4u. +1# 1, distine intre P si `

    utation score

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    155/179

    • /utation score: /85T2 0 95;492"unde

    • numarul de mutanti distinsi

    • numarul de mutanti nedistinsi+live mutants, neec3ivalenti• Pentru e%emplu: S+T, > H/

    etectarea erorilor folosind mutatia +e%emplu,ro(ram

    "ein

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    156/179

    "einint %# F

    read+%,F > 1F > 2 C&&& $roare: instructiune lipsaif +% C ?, F > if +%D2, F > write+F,

    end/utant /

    ...if +% C 1, F >

    ...• ratam ca mutantul enerea(a teste care detectea(a eroarea• Pentru ca un test t sa distina intre P si tre"uie ca:

     – &Xeac3a"ilitF: Unstructiunea mutata sa e e%ecutata la aplicarea lui t – &State infection: Unstructiunea mutata sa afecte(e statea proramului – &State propaation: Sc3im"area de state sa se propae in e%terior

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    157/179

    • Pentru e%emplul dat# pentru ca un test t sadistina intre P si :• & Xeac3a"ilitF: TXY$• & State infection: +% C 1 +%C?,,• & State propaation: +% D 2,

    • -onditia re(ultata: +% >?, +% C>2, x % > ?

    • Pentru % > ? proramul corect intoarce 2 intimp ce proramul resit returnea(a

    Jperatori de muta7ie• Operator de mutatie

     – Jperator de mutatie > Xeula care se aplica unui

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    158/179

    p pproram pentru a crea mutanti +e..

    inlocuirea/adauarea/stererea unor operan(i# sterereaunor instructiuni# etc., – Proramul nou o"tinut tre"uie sa e valid din punct de

    vedere sintactic• Operator de mutatie din

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    159/179

    •  T3e class mutation operators are classied into fourroups# "ased on t3e lanuae features t3at areaected.

    1. $ncapsulation2. Un3eritance

    . PolFmorp3ism. Aava&Specifc )eatures• @enerallF# all t3e "e3aviors of mutation operators fall

    under one of t3e t3ree cateories:+1, delete#+2, insert# and+, c3anea taret sFntactic element.

     u&Seun a$lectronics and Telecommunications Xesearc3Unstitute# Rorea

     %smaTetri/re/"r 

     Ae JuttUnformation and Software $nineerin# @eore ason YniversitFo

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    160/179

    $ncapsulation

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    161/179

    • - N ccess modier c3ane: T3e -operator c3anes t3e access level forinstance varia"les and met3ods to ot3eraccess levels. T3e purpose of t3e -operator is to uide testers to eneratetest cases t3at ensure t3at accessi"ilitF iscorrect.

    UG

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    162/179

    UG N Gidin varia"le deletion: T3e UG operator deletes a 3idinvaria"le# a varia"le in a su"class t3at 3as t3e same name andtFpe as a varia"le in t3e parent class.

    UGU• UGU N Gidin varia"le insertion: T3e UGU operator inserts a 3idin

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    163/179

    • UGU N Gidin varia"le insertion: T3e UGU operator inserts a 3idinvaria"le into a su"class. Ut is a reverse case of UG.

    •  T3e a"ilitF of a su"class to override a met3od declared "F anancestor allows a class to modifF t3e "e3avior of t3e parent class.

    • Q3en t3ere are overridin met3ods# it is important for testers toensure t3at a met3od invocation actuallF invoIes t3e intendedmet3od.

    UJ• UJ N Jverridin met3od deletion: T3e UJ

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    164/179

    operator deletes an entire declaration of an over&

    ridin met3od in a su"class so t3at references tot3e met3od uses t3e parentjs version. T3e mutantact as if t3ere is no overridin met3od for t3emet3od.

    UJP• UJP N Jverridden met3od callin position c3ane:

    Sometimes# an overridin met3od in a c3ild class needs tocall t3e met3od it overrides in t3e parent class T3is maF

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    165/179

    call t3e met3od it overrides in t3e parent class. T3is maF3appen if t3e parentjs met3od uses a private varia"le v+!#ic# means t#e met#od in t#e c#ild class ma% not modif%v directl%/

    • Gowever# an easF mistaIe to maIe is to call t3e parentjsversion at t3e wron time# w3ic3 can cause incorrect state"e3avior.

    •  T3e UJP operator moves calls to overridden met3ods to t3erst and last statements of t3e met3od and up and downone statement.

    UJX

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    166/179

    • UJX N Jverridden met3od rename: T3e UJX operator is desined to c3ecIif an overridin met3od adverselF aects ot3er met3ods. -onsider amet3od m() t#at calls anot#er met#od f()+ bot# in a class ist. )urt3er#assume t3at m() is in#erited !it#out c#ange in a c#ild class 2tac"+ but f()is overridden in StacI. Q3en m() is called on an ob$ect of t%pe 2tac"+ itcalls 2tac"Is version of f() instead of ?istIs version. Un t3is case# StacIjsversion of f() ma% #ave an interaction !it# t#e parentIs version t#at #as

    unintended conseVuences.•  T3e UJX operator renames t3e parentjs versions of t3ese met3ods so t3at

    t3e overridin cannot aect t3e parentjs met3od. Ut models t3e situationt3at t3e overridin met3od is declared as a new met3od wit3 dierentname in t3e c3ild class.

    •  T3e super IeFword is used to access parentjs mem"ers +varia"les or

    met3ods, wit3in t3e c3ild class. Q3en t3ere is varia"le s3adowin ormet3od overridin# use of t3e super IeFword s3ould "e careful "ecause itc3ane t3e reference to varia"les or met3ods from t3e c3ild class tosuper class.

    UJX

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    167/179

    USU• USU N super IeFword insertion: T3e USU operator

    i t t3 I d t3 t f t

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    168/179

    inserts t3e super IeFword so t3at a reference to

    t3e varia"le or t3e met3od oes to t3e overriddeninstance varia"le or met3od.•  T3e USU operator is desined to ensure t3at

    3idin/3idden varia"les and overridin/overridden

    met3ods are used appropriatelF.

    US• US N super IeFword deletion: T3e US operator

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    169/179

    • US N super IeFword deletion: T3e US operator

    deletes occurrences of t3e super IeFword so t3ata reference to t3e varia"le or t3e met3od oes tot3e overridin instance varia"le or met3od. Ut is areverse case of t3e USU.

    lt3ou3 constructors are not in3erited t3e waFot3er met3ods are# a constructor of t3esuperclass is invoIed w3en su"classes areinstantiated.

    • Q3en we create new o"*ects of a derived class#t3e default constructor +no aruments, for t3eparent class is automaticallF called rst# t3en t3econstructor of t3e derived class is called.Gowever# t3e su"class can use t3e super IeFword

    t ll i t l t t T3i i

    US

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    170/179

    UP-• UP- : $%plicit call of a parentjs constructor deletion

  • 8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx

    171/179

    p p•  T3e UP- operator deletes super constructor calls# causin

    t3e default constructor of t3e parent class to "e called. ToIill mutants of t3is tFpe# it is necessarF to nd a test casefor w3ic3 t3e parentjs default constructor creates an initialstate t3at is incorrect.

    PolFmorp3ism• J"*ect references can 3ave dierent tFpes wit3

    dierent e ecutions T3at is o"*ect


Top Related