40
Cursul Cursul 4 : 4 : Testarea programelor (b) ~ Testarea programelor (b) ~ 18.03.2014 18.03.2014 ... Partea a II ... Partea a IIa: a: 1/40

Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

CursulCursul 4 :4 : Testarea programelor (b) ~Testarea programelor (b) ~ 18.03.201418.03.2014

... Partea a II... Partea a II‐‐a:a:

11/40

Page 2: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

CursulCursul 4 :4 : Testarea programelor (b) ~Testarea programelor (b) ~ 18.03.201418.03.2014

http://www.cs.ubbcluj.ro/~per/http://www.cs.ubbcluj.ro/~per/Web_Page/Cursuri.htmWeb_Page/Cursuri.htmhttp://www.cs.ubbcluj.ro/~per/Scs_Per/VvSs/VvSs.Htmlhttp://www.cs.ubbcluj.ro/~per/Scs_Per/VvSs/VvSs.Html

http://www.cs.ubbcluj.ro/~mfrentiu/http://www.cs.ubbcluj.ro/~mfrentiu/Lectures/VerVal/carte/HtmlLectures/VerVal/carte/Htmlh // bb l j / f i /L /V V l/ /V2 3 fh // bb l j / f i /L /V V l/ /V2 3 fhttp://www.cs.ubbcluj.ro/~mfrentiu/Lectures/VerVal/carte/V2cap3.rtfhttp://www.cs.ubbcluj.ro/~mfrentiu/Lectures/VerVal/carte/V2cap3.rtf

Cursuri 2013-2014TESTAREATESTAREA PROGRAMELOR (a)PROGRAMELOR (a) ... TESTAREA... TESTAREA PROGRAMELOR (b)PROGRAMELOR (b)

Prelucrarea Imaginilor Cr_Re_Im

Scientific Data Visualization

NoNoţţiuni de baziuni de bazăăCriterii de alegere a datelor de testCriterii de alegere a datelor de test

Criteriul cutiei negreCriteriul cutiei negreCriteriul cutiei Criteriul cutiei transparente transparente

Nivele de testareNivele de testareTestarea unui modulTestarea unui modulTestarea de integrare Testarea de integrare

Semestrul II

24 feb – 20 apr21 apr – 27 apr28 apr – 8 iun9 iun – 29 iun30 iun – 6 iul7 iul – 13 iul

28 apr – 25 mai26 iun – 8 iun9 iun – 19 iun

Scientific Data Visualization

Verificarea si validarea sistemelor softVisualization and Validation in Simulation

Structuri de Date şi Algoritmi

Oop

ppAcoperirea tuturorAcoperirea tuturor

instrucinstrucţţiunilor, iunilor, arcelor, arcelor, condicondiţţiilor simple iilor simple

ggTestarea de sistem Testarea de sistem Testarea de acceptareTestarea de acceptareAlte tipuri de testareAlte tipuri de testare

22/40

OopRezultate şi Planificări -_-

condicondiţţiilor simple, iilor simple, drumurilor drumurilor şşi i testarea aleatoare .testarea aleatoare .

ppOrganizarea testOrganizarea testaariiriiExerciExerciţţii si probleme propuse ii si probleme propuse

Page 3: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

CursulCursul 4 :4 : Testarea programelor (b) ~Testarea programelor (b) ~ 18.03.201418.03.2014

VerificareaVerificarea sisi validareavalidarea sistemelorsistemelor softsoft

Partea I. Corectitudinea programelor (F.M.)

Cap 1 Corectitudinea algoritmilor (Curs 1)Cap.1 Corectitudinea algoritmilor (Curs 1)Cap.2 Dezvoltarea programelor din specificatii (Curs 2)

Partea a II-a. Verificarea si validarea programelor (P.V.)

Cap.3Cap.3 Testarea programelor (Curs 3, Testarea programelor (Curs 3, 44) ) --__--Cap.2 Inspectarea programelor (Curs 5)

CCurs:- Cursul 1 : Corectitudinea algoritmilor ~ 25.02.2014

- Cursul 2 : Dezvoltarea programelor din specificatii ~ 4.03.2014

- CursulCursul 33 :: Testarea programelor (a) ~Testarea programelor (a) ~ 11.03.2014 11.03.2014 -- --

33/40

p g ( )p g ( ) __

- Cursul 4Cursul 4 :: Testarea programelor (Testarea programelor (bb) ~) ~ 18.03.201418.03.2014 --__--- Cursul 5 : Inspectarea programelor ~ 25.03.2014

- Cursul 6 : ...

Page 4: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

TipuriTipuri dede testaretestare (în(în funcţiefuncţie dede::

•• partea de program testată şi partea de program testată şi

•• momentul testăriimomentul testării ):): … …

-- testareatestarea unuiunui modulmodul;;

testareatestarea dede integrareintegrare;;-- testareatestarea dede integrareintegrare;;

-- testareatestarea întreguluiîntregului sistemsistem;;

-- testareatestarea regresivăregresivă;;

-- testareatestarea dede acceptareacceptare..

44/40

Page 5: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Testarea unui modul (Testarea unui modul (Unit testingUnit testing))

TestareaTestarea uneiunei unităţiunităţi micimici dede programprogram:: funcţie,funcţie, procedură,procedură, clasăclasă,,

Testarea unui modul (Testarea unui modul (Unit testingUnit testing))

ţţ p gp g f ţf ţ ppmodulmodul (orice(orice parteparte dede programprogram testabilătestabilă separat)separat)..

DeDe exemplu,exemplu, dacădacă dorimdorim săsă testămtestăm proceduraprocedura P(P(X,ZX,Z)),, înîn carecare înîn XXreprezintăreprezintă dateledatele dede intrare,intrare, iariar ZZ rezultatele,rezultatele, vomvom scriescrie unun micmicprogramprogram carecare săsă apelezeapeleze aceastăaceastă procedură,procedură, dupădupă cece aa iniţializatiniţializatvariabilelevariabilele dindin XX,, iariar apoiapoi săsă tipăreascătipărească rezultatelerezultatele dindin ZZ..

DeciDeci echivalentulechivalentul unuiunui algoritmalgoritm dede formaforma::Algoritmul Algoritmul DriverDriver este:este:

Citeste X;Citeste X;P (X,Z);P (X,Z);

55/40

Tipăreşte ZTipăreşte ZSfalgoritm.Sfalgoritm.

Page 6: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Testarea unui modul (Unit testing)Testarea unui modul (Unit testing)

ŞiŞi lala testareatestarea dede integrareintegrare aveavemm nevoienevoie dede astfelastfel dede algoritmialgoritmi((driveredrivere)) carecare săsă apelezeapeleze altealte unităţiunităţi dede programprogram pentrupentru aa lele testatesta..(( )) pp ţţ p gp g pp

EEsteste posibilposibil caca înîn proceduraprocedura PP săsă sese apelezeapeleze oo altăaltă procedurăprocedură GG,,carecare nunu esteeste încăîncă scrisăscrisă sisi vomvom simulasimula aceastăaceastă procedură,procedură, pentrupentru aaputeaputea faceface testareatestarea câtcât maimai simplusimplu ((fărăfără aa aveaavea procedurproceduraa realareala GG))puteaputea faceface testareatestarea,, câtcât maimai simplusimplu ((fărăfără aa aveaavea procedurproceduraa realareala GG))..

ProceduraProcedura temporaratemporara ((provizorieprovizorie)) GG poatepoate aveaavea formaforma::Procedura G(u,r) este:

Dacă u=c1 atunci r:=e1 sfdacă Dacă u=c2 atunci r:=e2 sfdacă

. . .

D ă t i fd ăDacă u=ck atunci r:=ek sfdacăsf-G.

AceastAceastăă componentăcomponentă provizorieprovizorie GG ((stubstub)) construităconstruită temporartemporar doardoar

66/40

pp pp (( )) pppentrupentru testaretestare vava fifi înlocuităînlocuită cucu proceduraprocedura realăreală GG pepe timpultimpul testăriitestării dedeintegrareintegrare..

Page 7: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Etape:Etape:a.a. PregătireaPregătirea testăriitestării:: completareacompletarea unităţilorunităţilor necesarenecesare lala construireaconstruirea unuiunui

... ... Testarea unui modul (Unit testing)Testarea unui modul (Unit testing)

a.a. PregătireaPregătirea testăriitestării:: completareacompletarea unităţilorunităţilor necesarenecesare lala construireaconstruirea unuiunuiprogramprogram executabilexecutabil..

b.b. AlegereaAlegerea cazurilorcazurilor dede testaretestare pepe principiulprincipiul cutieicutiei::negrenegre (după(după specificaţiaspecificaţia proceduriiprocedurii PP)) şişitransparentetransparente (după(după textultextul proceduriiprocedurii PP))..

cc PrecizareaPrecizarea rezultatelorrezultatelor aşteptateaşteptate (pentru(pentru fiecarefiecare cazcaz dede testaretestare pentrupentru aac.c. PrecizareaPrecizarea rezultatelorrezultatelor aşteptateaşteptate (pentru(pentru fiecarefiecare cazcaz dede testare,testare, pentrupentru aaputeaputea decidedecide uşoruşor dacădacă rezultatelerezultatele suntsunt corecte)corecte)..

d.d. ExecuţiiExecuţii cucu dateledatele dede intrareintrare stabilitestabilite (pentru(pentru celecele nn cazuricazuri dede testteststabilite)stabilite)..•• DacăDacă toatetoate execuţiileexecuţiile auau datdat rezultaterezultate corectcorecte,e, modululmodulul sese considerăconsideră

testat,testat, cazcaz înîn carecare considerămconsiderăm testareatestarea completăcompletă ((diferădiferă dede testareatestareatestat,testat, cazcaz înîn carecare considerămconsiderăm testareatestarea completăcompletă ((diferădiferă dede testareatestareaexhaustivăexhaustivă))..

•• DacăDacă amam depistatdepistat erorierori,, corectareacorectarea lorlor aa modificatmodificat textultextul algoritmuluialgoritmului şişill ăă b ib i ll dd ll i li l

77/40

sese trecetrece lala testareatestarea regresivăregresivă.. TestareaTestarea trebuietrebuie reluatăreluată dede lala primulprimul cazcazdede testtest sau,sau, celcel puţin,puţin, dede lala celecele corespunzătoarecorespunzătoare drumurilordrumurilor afectateafectate dedeaceastăaceastă schimbareschimbare..

Page 8: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Testarea unui moTestarea unui modul (Unit testing)dul (Unit testing)

ÎnÎn cazulcazul înîn carecare dorimdorim săsă testămtestăm oo clasăclasă ((dede obiecteobiecte)),,

•• oo testtestăămm caca pepe unun singursingur modulmodul ((dacdacăă acesteaceste modulemodule suntsunt simplesimple)),, sausau

•• săsă testămtestăm separatseparat fiecarefiecare metodămetodă maimai complicatăcomplicată,, iariar pentrupentru întreagîntreagaaclasclasăă facemfacem testaretestare dede integrareintegrare..

PrimaPrima variantăvariantă esteeste avantajoasăavantajoasă deoarecedeoarece nunu cerecere scriereascrierea multormultor stubstub--uriuri..

ÎnÎn general,general, testareatestarea esteeste oo activitateactivitate costisitoare,costisitoare, timpultimpul necesarnecesar fiindfiinddirectdirect proporţionalproporţional cucu numărulnumărul cazurilorcazurilor dede testtest.. DeDe aici,aici, oo primăprimăconsecinţăconsecinţă pentrupentru activitateaactivitatea dede programareprogramare esteeste cerinţacerinţa dede aa concepeconcepesubalgoritmisubalgoritmi câtcât maimai simplisimpli ÎnÎn uneleunele cărţicărţi sese limiteazălimitează textultextul acestoraacestora lalasubalgoritmisubalgoritmi câtcât maimai simplisimpli.. ÎnÎn uneleunele cărţicărţi sese limiteazălimitează textultextul acestoraacestora lala5050 liniilinii ((!!),), iariar numărulnumărul drumurilordrumurilor ((decideci alal cazurilorcazurilor dede testtest)) săsă fiefie câtcât maimaimicmic!! ChiarChiar proceduriproceduri multmult maimai simplesimple arar puteaputea aveaavea unun numărnumăr maremare dede

88/40

drumuridrumuri dede parcurs,parcurs, decideci foartefoarte multemulte cazuricazuri dede testtest..

Page 9: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Nivele de testare Nivele de testare Nivele de testare Nivele de testare 1.1. Testarea unui modul Testarea unui modul 2.2. Testarea de integrare Testarea de integrare 3.3. Testarea de sistem Testarea de sistem 4.4. Testarea de acceptare Testarea de acceptare

55 Alte tipuri de testare Alte tipuri de testare 5.5. Alte tipuri de testare Alte tipuri de testare

Organizarea testăriiOrganizarea testăriiExerciţii şi probleme propuse Exerciţii şi probleme propuse

99/40

Page 10: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Testarea de integrareTestarea de integrareTestareaTestarea produsuluiprodusului urmeazăurmează testăriitestării tuturortuturor modulelormodulelor salesale ((dupdupăă cece

modulelemodulele auau fostfost testatetestate individualindividual))..

esta ea de teg a eesta ea de teg a e

modulelemodulele auau fostfost testatetestate individualindividual))..FaptulFaptul căcă subalgoritmiisubalgoritmii şişi modulelemodulele ((cece sese vorvor asamblaasambla)) auau fostfost testatetestate

separatseparat nunu asigurăasigură funcţionareafuncţionarea corectăcorectă aa lorlor dupădupă asamblareasamblare.. ÎnÎn plusplus nunuî dî d d ăd ă d ld l i d di d d îî ll AdAd d ld lîntotdeaunaîntotdeauna douădouă modulemodule suntsunt independenteindependente întreîntre eleele.. AdeseaAdesea unun modulmodulinteracţioneazăinteracţionează cucu altealte modulemodule.. DeDe exemplu,exemplu, unulunul dintredintre cazurilecazurile::

•• MModululodulul MM11 apeleazăapelează oo operaţieoperaţie cece aparţineaparţine modululuimodulului MM22;;11 pp p ţp ţ p ţp ţ 22;;•• MModululodulul MM11 foloseştefoloseşte oo structurăstructură dede datedate cece nunu--ii aparţineaparţine;;•• OperaţiileOperaţiile // StructurileStructurile modululuimodulului MM11 suntsunt folositefolosite dede altealte modulemodule..

LaLa testareatestarea separatăseparată aa modululuimodulului MM11 trebuietrebuie săsă simulămsimulăm celelaltecelelaltemodulemodule cucu carecare interacţionează,interacţionează, maimai alesales căcă adeseaadesea acesteaacestea încăîncă nunu suntsuntdisponibiledisponibile..

1010/40

ppDupDupăă cece lele--amam realizatrealizat pepe toatetoate esteeste normalnormal săsă lele asamblămasamblăm şişi săsă

observămobservăm cumcum funcţioneazăfuncţionează împreunăîmpreună..

Page 11: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Testarea de integrareTestarea de integrare

TestareaTestarea dede integrareintegrare sese referăreferă lala asamblareaasamblarea tuturortuturor modulelormodulelorpentrupentru aa obţineobţine produsulprodusul finalfinal doritdorit..

DupăDupă cece fiecarefiecare modulmodul aa fostfost testattestat şişi corectatcorectat,, trebuietrebuie verificatăverificatăcomportareacomportarea globalăglobală aa programuluiprogramului.. ÎnÎn aceastăaceastă situaţie,situaţie, dacădacă sesed i t ăd i t ă itit ii tt ii difi ilădifi ilă d i td i t tt DDdepisteazădepistează anumiteanumite erorierori esteeste maimai dificilădificilă depistareadepistarea acestoraacestora.. DeDeaceeaaceea sese recomandărecomandă oo testaretestare succesivăsuccesivă aa integrăriiintegrării modulelormodulelor,, fiefieprinprin metodametoda toptop--downdown,, fiefie prinprin metodametoda bottombottom--upup..prinprin metodametoda toptop downdown,, fiefie prinprin metodametoda bottombottom upup..

DacăDacă lala adaugareaadaugarea unuiunui nounou modulmodul aparapar erorierori,, atunciatunci avemavem motivemotivesăsă credemcredem căcă erorileerorile provinprovin fiefie dindin interiorinteriorulul acestuiacestui modul,modul, fiefie dindinpp ,,interfaţainterfaţa cucu celelaltecelelalte modulemodule..

LaLa testareatestarea dede integrareintegrare trebuietrebuie săsă verificămverificăm şişi dacădacă funcţionareafuncţionarea

1111/40

programuluiprogramului esteeste conformăconformă cucu ceeaceea cece scriescrie înîn manualulmanualul dede utilizareutilizare aaprodusuluiprodusului..

Page 12: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

PrimaPrima grijăgrijă înîn aceastăaceastă etapăetapă esteeste dede aa verificaverifica dadacăcă toatetoate modulelemodulele

... ... Testarea de integrareTestarea de integrare

PrimaPrima grijăgrijă înîn aceastăaceastă etapăetapă esteeste dede aa verificaverifica dadacăcă toatetoate modulelemodulelenecesarenecesare suntsunt prezenteprezente şişi căcă eleele suntsunt corectcorect asamblateasamblate..

SeSe verificăverifică dacădacă interfeţeleinterfeţele dintredintre modulemodule suntsunt compatibilecompatibile şişifuncţioneazăfuncţionează corectcorect..

ExistăExistă maimai multemulte strategiistrategii dede asamblareasamblare aa modulelormodulelor::ii (( d l ld l l d d )d d )•• SStrategiatrategia BigBig--BangBang (toate(toate modulelemodulele deodată)deodată);;

•• TTestareaestarea incrementalăincrementală,, cucu adăugareaadăugarea aa câtecâte unun modulmodul;;•• AAdăugareadăugarea unuiunui grupgrup dede modulemodule apropiateapropiate întreîntre eleele•• AAdăugareadăugarea unuiunui grupgrup dede modulemodule apropiateapropiate întreîntre eleele..

StrategiaStrategia BigBig--BangBang eliminăelimină testareatestarea dede integrareintegrare,, trecândtrecând directdirect dede lalatestareatestarea fiecăreifiecărei componentecomponente lala testareatestarea întreguluiîntregului sistemsistem.. DacăDacă nunu suntsuntdescoperitedescoperite erorierori totultotul esteeste înîn ordine,ordine, altfelaltfel însăînsă esteeste aproapeaproape imposibilimposibil dededescoperitdescoperit carecare modulmodul ee cauzacauza eroriierorii.. ÎnÎn aceastăaceastă situaţiesituaţie trebuietrebuie săsă sese revinărevină lalaintegrareaintegrarea incrementalăincrementală aa modulelormodulelor pentrupentru aa descoperidescoperi carecare dintredintre eleele

1212/40

integrareaintegrarea incrementalăincrementală aa modulelormodulelor pentrupentru aa descoperidescoperi carecare dintredintre eleelecauzeazăcauzează eroareaeroarea..

Page 13: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

TTestareaestarea incrementalăincrementală (a(adăugareadăugarea unuiunui singursingur modul)modul) areare avantajulavantajul dede

... ... Testarea de integrareTestarea de integrare

(( gg gg )) jjaa punepune maimai uşoruşor înîn evidenţăevidenţă modululmodulul cucu probleme,probleme, dardar şişi dezavantajuldezavantajul dedeaa lungilungi multmult timpultimpul dede integrareintegrare.. ÎnÎn plus,plus, ultimeleultimele douădouă strategiistrategii maimai auauavantajulavantajul căcă permitpermit efectuareaefectuarea testăriitestării dede integrareintegrare înainteînainte dede aa fifiavantajulavantajul căcă permitpermit efectuareaefectuarea testăriitestării dede integrareintegrare înainteînainte dede aa fifidisponibiledisponibile toatetoate modulelemodulele..

AdăugareaAdăugarea unuiunui grupgrup dede modulemodule esteeste unun compromiscompromis întreîntre primeleprimeledouădouă strategiistrategii şişi esteeste potrivităpotrivită cândcând sistemulsistemul esteeste formatformat dindin subsistemesubsistemedouădouă strategiistrategii şişi esteeste potrivităpotrivită cândcând sistemulsistemul esteeste formatformat dindin subsistemesubsistemecarecare potpot fifi testatetestate separatseparat şişi apoiapoi asamblateasamblate..

SeSe ştieştie căcă celecele maimai frecventefrecvente şişi periculoasepericuloase erorierori,, decideci carecare trebuietrebuie înînmodmod specialspecial urmăriteurmărite lala testareatestarea dede integrare,integrare, suntsunt celecele dede interfaţăinterfaţă::corespondenţacorespondenţa întreîntre parametriiparametrii actualiactuali şişi ceicei formaliformali adeseaadesea nunu eerespectatărespectată..

SeSe recomandărecomandă schimbareaschimbarea (refacerea)(refacerea) componentelorcomponentelor carecare auau avutavutmultemulte defectedefecte pepe timpultimpul testăriitestării întrucâtîntrucât ss--aa constatatconstatat căcă astfelastfel dedecomponentecomponente auau avutavut şişi ulteriorulterior multemulte defectedefecte.. DupăDupă modificareamodificarea unuiunui

1313/40

componentecomponente auau avutavut şişi ulteriorulterior multemulte defectedefecte.. DupăDupă modificareamodificarea unuiunuimodulmodul (prin(prin depanare)depanare) trebuietrebuie săsă refacemrefacem testareatestarea acestuiacestui modulmodul,, apoiapoi săsăcontinuămcontinuăm testareatestarea dede integrareintegrare..

Page 14: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

IntegrareaIntegrarea incrementalăincrementală cerecere adăugareaadăugarea aa câtecâte unuiunui modulmodul lala

... ... Testarea de integrareTestarea de integrare

programulprogramul existentexistent.. EaEa poatepoate porniporni dede lala modululmodulul rădăcinărădăcină ((integrareintegrare toptop--downdown)) sausau dede lala celcel maimai inferiorinferior modulmodul,, (in(integraretegrare botbotttomom--upup))..

DeDe exemplu,exemplu, lala programulprogramulcucu structurastructura alaturatalaturată,ă, integraintegra--rearea toptop--downdown poatepoate începeîncepe cucurearea toptop--downdown poatepoate începeîncepe cucuadăugareaadăugarea modululuimodulului MM2222 lalaMM11,, iariar pentrupentru MM2121 şişi MM2323

f l if l i bb ii

M1M1

vomvom folosifolosi stubstub--uriuri.. EsteEstenevoienevoie şişi dede unun înlocuitorînlocuitor((stubstub)) pentrupentru MM3333..

M21M21 M22M22 M23M23

(( )) ppIntegrareaIntegrarea botbotttomom--upup poatepoate

începeîncepe cucu adăugareaadăugarea lala MM3333 aad l l id l l i MM2222 ii îî ll dd

M31M31 M32M32 M33M33

1414/40

modululuimodulului MM2222,, iariar înîn locloc dedeMM11 vomvom folosifolosi unun driverdriver..

Page 15: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Testarea de integrareTestarea de integrare

SeSe potpot folosifolosi oo parteparte dindin driveredrivere--lele şişi stubstub--urileurile dede lala testareatestareamodulelormodulelor dardar uneoriuneori ee nevoienevoie dede altealte astfelastfel dede componentecomponentemodulelor,modulelor, dardar uneoriuneori ee nevoienevoie dede altealte astfelastfel dede componentecomponenteauxiliareauxiliare,, ceeaceea cece măreştemăreşte duratadurata testăriitestării..

IntegrareaIntegrarea toptop downdown areare marelemarele avantajavantaj faţăfaţă dede integrareaintegrareaIntegrareaIntegrarea toptop--downdown areare marelemarele avantajavantaj faţăfaţă dede integrareaintegrareabottombottom--upup căcă punepune înîn evidenţăevidenţă erorileerorile dede concepţieconcepţie multmult maimaidevremedevreme,, fiindfiind vorbavorba dede erorierori făcutefăcute înîn modulelemodulele superioaresuperioare..,, pp

LaLa acestacest nivelnivel stabilireastabilirea cazurilorcazurilor dede testtest sese faceface dede obiceiobiceibazândubazându--nene pepe specificaţiaspecificaţia produsuluiprodusului.. NuNu maimai sese poatepoate vorbivorbi dedepp p ţp ţ pp ppanalizaanaliza întreguluiîntregului texttext alal programuluiprogramului,, carecare poatepoate fifi dede zecizeci sausau sutesutedede miimii dede liniilinii..

1515/40

Page 16: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Nivele de testare Nivele de testare Nivele de testare Nivele de testare 1.1. Testarea unui modul Testarea unui modul 2.2. Testarea de integrare Testarea de integrare 3.3. Testarea de sistem Testarea de sistem 4.4. Testarea de acceptare Testarea de acceptare

55 Alte tipuri de testare Alte tipuri de testare 5.5. Alte tipuri de testare Alte tipuri de testare

Organizarea testăriiOrganizarea testăriiExerciţii şi probleme propuse Exerciţii şi probleme propuse

1616/40

Page 17: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

T t d i tT t d i t

OdOd blbl d l ld l l ll b ib i

Testarea de sistemTestarea de sistem

OdatăOdată asamblateasamblate toatetoate modulelemodulele urmeazăurmează testareatestarea sistemuluisistemului obţinutobţinut..ProblemeleProblemele urmăriteurmărite suntsunt următoareleurmătoarele::

AA i li l f iilf iil d i ?d i ?•• AArere sistemulsistemul funcţiilefuncţiile dorite?dorite?•• FFuncţioneazăuncţionează sistemulsistemul normalnormal (uneori(uneori nicinici nunu porneşte,porneşte, sausau nunu poatepoate

fifi instalatinstalat sausau nunu îşiîşi revinerevine dupădupă oo căderecădere dede tensiune)tensiune)??fifi instalat,instalat, sausau nunu îşiîşi revinerevine dupădupă oo căderecădere dede tensiune)tensiune)??•• AArere performanţeleperformanţele necesarenecesare (timp(timp dede răspunsrăspuns corespunzător,corespunzător, acceptăacceptă

volumvolum maremare dede date)date)??•• RRăspundeăspunde adecvatadecvat lala condiţiicondiţii neprevăzute?neprevăzute?

ScopulScopul acesteiacestei testăritestări esteeste prevenireaprevenirea descopeririidescoperirii oricărororicăror erorierori lala

1717/40

testareatestarea dede acceptareacceptare..

Page 18: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Testarea de sistemTestarea de sistem

TestareaTestarea produsuluiprodusului urmeazăurmează testăriitestării dede integrareintegrare aa tuturortuturormodulelormodulelor salesale..

TestareaTestarea produsuluiprodusului sese faceface înîn ipotezaipoteza căcă modulelemodulele suntsunt corecte,corecte,ştiinduştiindu--sese căcă auau fostfost testatetestate individualindividual.. AceastaAceasta nunu înseamnăînseamnă căcă întregîntreg

d ld l bţi tbţi t d ăd ă i ti t tt ii ll t bilt bilprodusulprodusul obţinutobţinut dupădupă integrareintegrare esteeste şişi elel acceptabilacceptabil..SeSe vava faceface dindin nounou oo testaretestare pepe principiulprincipiul cutieicutiei negrenegre,, dede datadata astaasta

pentrupentru produsulprodusul integratintegratpentrupentru produsulprodusul integratintegrat..PePe lângălângă corectitudinecorectitudine sese vava verificaverifica robusteţearobusteţea acestuia,acestuia, timpultimpul dede

răspunsrăspuns atunciatunci cândcând existăexistă oo clauzăclauză contractualăcontractuală carecare cerecere cevaceva înînrăspunsrăspuns atunciatunci cândcând existăexistă oo clauzăclauză contractualăcontractuală carecare cerecere cevaceva înînaceastăaceastă direcţie,direcţie, comportareacomportarea produsuluiprodusului lala unun volumvolum maremare dede datedaterealereale.. SeSe poatepoate întâmplaîntâmpla caca produsulprodusul săsă funcţionezefuncţioneze corectcorect lala volumevolume

1818/40

micimici dede date,date, dardar incorectincorect pentrupentru unun volumvolum dede datedate cece depăşeştedepăşeşte ooanumităanumită limitălimită..

Page 19: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Testarea de sistemTestarea de sistem

TestareaTestarea produsuluiprodusului esteeste oo repetiţierepetiţie înainteaînaintea testăriitestării dede acceptareacceptare..PePe lângălângă corectitudineacorectitudinea rezultatelorrezultatelor obţinuteobţinute sese vava punepune unun accentaccent

maimai maremare pepe toatetoate calităţilecalităţile carecare arar trebuitrebui săsă lele aibăaibă produsulprodusul conformconformprevederilorprevederilor contractualecontractuale..

SS bb d l id l i b â db â d l il i llSeSe vava testatesta robusteţearobusteţea produsului,produsului, observândobservând comportareacomportarea luilui lalaintroducereaintroducerea unorunor datedate intenţionatintenţionat greşitegreşite..

SeSe vava testatesta comportareacomportarea luilui înîn situaţiisituaţii criticecritice caca::SeSe vava testatesta comportareacomportarea luilui înîn situaţiisituaţii criticecritice caca::•• prelucrareaprelucrarea unuiunui volumvolum maremare dede datedate (mult(mult pestepeste mediamedia

obişnuităobişnuită));;))•• clienţiclienţi mulţimulţi înîn sistemsistem ((perioadeperioade dede vârfvârf));;•• timpultimpul dede răspunsrăspuns înîn acesteaceste situaţiisituaţii criticecritice..

1919/40

DeDe asemenea,asemenea, sese vava testatesta modulmodul dede accesacces înîn sistemsistem,, securitateasecuritateadatelor,datelor, dacădacă aceastăaceastă problemăproblemă esteeste importantăimportantă pentrupentru beneficiarbeneficiar..

Page 20: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Nivele de testare Nivele de testare Nivele de testare Nivele de testare 1.1. Testarea unui modul Testarea unui modul 2.2. Testarea de integrare Testarea de integrare 3.3. Testarea de sistem Testarea de sistem 4.4. Testarea de acceptare Testarea de acceptare

55 Alte tipuri de testare Alte tipuri de testare 5.5. Alte tipuri de testare Alte tipuri de testare

Organizarea testăriiOrganizarea testăriiExerciţii şi probleme propuse Exerciţii şi probleme propuse

2020/40

Page 21: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

T t d t T t d t OriceOrice produsprodus programprogram esteeste testattestat şişi dede cătrecătre beneficiaribeneficiari înîn

Testarea de acceptare Testarea de acceptare

momentulmomentul recepţionăriirecepţionării produsuluiprodusului.. AceastăAceastă activitateactivitate sese numeştenumeştetestaretestare dede acceptareacceptare aa produsuluiprodusului respectivrespectiv..

TestareaTestarea dede acceptareacceptare sese faceface dede obiceiobicei cucu datedate realereale şişi lala aceastăaceastătestaretestare conteazăcontează nunu numainumai corectitudineacorectitudinea rezultatelorrezultatelor cici şişi formaforma subsubcarecare suntsunt prezentateprezentate acesteaceste rezultaterezultate câtcât şişi utilitateautilitatea lorlorcarecare suntsunt prezentateprezentate acesteaceste rezultaterezultate câtcât şişi utilitateautilitatea lorlor..

TestareaTestarea dede acceptareacceptare esteeste oo testaretestare caca oricareoricare alta,alta, făcutăfăcută dupădupăregulileregulile prezentateprezentate dardar celcel carecare oo faceface esteeste beneficiarulbeneficiarul produsuluiprodusuluiregulileregulile prezentate,prezentate, dardar celcel carecare oo faceface esteeste beneficiarulbeneficiarul produsuluiprodusului..DinDin aceastăaceastă cauzăcauză accentulaccentul ee puspus nunu pepe alegereaalegerea datelordatelor dede testtest dupădupăcriteriilecriteriile menţionate,menţionate, cici pepe oo testaretestare cucu datedate realereale.. EaEa urmăreşteurmăreşte atâtatât

2121/40

corectitudineacorectitudinea rezultatelorrezultatelor obţinuteobţinute câtcât şişi robusteţearobusteţea produsuluiprodusului şişiperformanţeleperformanţele salesale..

Page 22: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Testarea de acceptare Testarea de acceptare

DiferenţaDiferenţa majorămajoră întreîntre testareatestarea dede acceptareacceptare şişi testareatestareafăcutăfăcută dede realizatoriirealizatorii produsuluiprodusului constăconstă înîn execuţiaexecuţiaprogramuluiprogramului cucu datedate realereale nunu cucu datedate selectateselectate artificialartificial.. OO

bl ăbl ă tt ii didi l l il l i dd d td t tili ttili tproblemăproblemă poatepoate apareapare şişi dindin cauzacauza volumuluivolumului dede datedate utilizateutilizate,,înîn cazulcazul realreal fiindfiind uneoriuneori multmult maimai maremare decâtdecât volumulvolumuleşantioaneloreşantioanelor utilizateutilizate înîn timpultimpul testăriitestării dede integrareintegrare..eşantioaneloreşantioanelor utilizateutilizate înîn timpultimpul testăriitestării dede integrareintegrare..

ÎnÎn mare,mare, validareavalidarea produsuluiprodusului sese reducereduce lala testareatestarea dedeacceptareacceptare şişi verificareaverificarea documentaţieidocumentaţiei dede realizarerealizare şişi dedepp şş ff ţţ şşfolosirefolosire aa produsuluiprodusului.. SeSe verificăverifică dacădacă aceastăaceastă documentaţiedocumentaţieesteeste completăcompletă,, clarăclară şişi suficientsuficient dede detaliatădetaliată pentrupentru aa fifi utilăutilă pepe

2222/40

timpultimpul întreţineriiîntreţinerii programuluiprogramului..

Page 23: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Nivele de testare Nivele de testare Nivele de testare Nivele de testare 1.1. Testarea unui modul Testarea unui modul 2.2. Testarea de integrare Testarea de integrare 3.3. Testarea de sistem Testarea de sistem 4.4. Testarea de acceptare Testarea de acceptare

55 Alte tipuri de testare Alte tipuri de testare 5.5. Alte tipuri de testare Alte tipuri de testare

Organizarea testăriiOrganizarea testăriiExerciţii şi probleme propuse Exerciţii şi probleme propuse

2323/40

Page 24: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Alte tipuri de testareAlte tipuri de testareÎnÎn maimai multemulte situaţiisituaţii unun programprogram esteeste modificatmodificat..

ÎÎ

te t pu de testa ete t pu de testa e

•• ÎnÎn primulprimul rând,rând, dupădupă depanaredepanare suntsunt descoperitedescoperite erorierori carecare determinădeterminăschimbareaschimbarea programuluiprogramului..

•• InIn alal doileadoilea rândrând întreţinereaîntreţinerea cerecere modificareamodificarea perfectivăperfectivă adaptivăadaptivă•• InIn alal doileadoilea rând,rând, întreţinereaîntreţinerea cerecere modificareamodificarea perfectivă,perfectivă, adaptivă,adaptivă,sausau corectivăcorectivă aa programuluiprogramului..

NeNe întrebămîntrebăm:: dupădupă acesteaceste modificărimodificări noulnoul programprogram maimai dădă aceleaşiaceleaşiNeNe întrebămîntrebăm:: dupădupă acesteaceste modificărimodificări noulnoul programprogram maimai dădă aceleaşiaceleaşirezultaterezultate lala execuţiileexecuţiile dejadeja făcute?făcute?

TestăriTestărilele posibileposibile înîn asftelasftel dede situaţiisituaţii suntsunt::TestăriTestărilele posibileposibile înîn asftelasftel dede situaţiisituaţii suntsunt::

•• TestareaTestarea regresivăregresivă ~~ testareatestarea efectuatefectuatăă dupădupă astfelastfel dede schimbărischimbări..•• TestareaTestarea dede stressstress ~~ testareatestarea înîn condiţiicondiţii anormaleanormale..

2424/40

ţţ•• TestareaTestarea BetaBeta ~~ realizatărealizată dede cătrecătre beneficiarbeneficiar pepe cazuricazuri realereale..

Page 25: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Alte tipuri de testare Alte tipuri de testare

TestareaTestarea regresivăregresivă esteeste testareatestarea făcutăfăcută programuluiprogramului dupădupă astfelastfel dedeschimbărischimbări ExperienţaExperienţa aa arătatarătat căcă dede multemulte oriori încercândîncercând săsă sese corectezcorectezee ooschimbărischimbări.. ExperienţaExperienţa aa arătatarătat că,că, dede multemulte ori,ori, încercândîncercând săsă sese corectezcorectezee ooeroareeroare,, depanareadepanarea aa introdusintrodus altelealtele..

EEsteste normalnormal caca execuţiileexecuţiile ((testeletestele)) făcutefăcute săsă fiefie reluatereluate,, pentrupentru aaţţ (( )) ppverificaverifica dacădacă nunu cumvacumva modificărilemodificările efectuateefectuate auau introdusintrodus altealte eroeroriri..

DeDe celecele maimai multemulte oriori realitatearealitatea nunu nene lasălasă săsă reluămreluăm acesteaceste execuţiiexecuţiidindin crizăcriză dede timptimp.. ŞiŞi oareoare nunu eesteste maimai importantimportant săsă continuămcontinuăm cucu cazurilecazuriledede testtest neexecutateneexecutate?? ŞansaŞansa dede aa găsigăsi noinoi erorierori parepare maimai maremare înîn acesteacestecazuri!cazuri!cazuri!cazuri!

CorectCorect arar fifi caca toatetoate celecele nn cazuricazuri dede testtest săsă fiefie verificateverificate prinprin execuţiaexecuţiaprogramuluiprogramului cucu aceleacele datedate.. MaiMai mult,mult, eesteste posibilposibil caca înîn textultextul nounou săsă fiefie

2525/40

p gp g ,, ppintroduseintroduse cazuricazuri noinoi carecare trebuietrebuie adăugateadăugate celorcelor nn existenteexistente..

Page 26: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Alte tipuri de testare Alte tipuri de testare

ÎntrucâtÎntrucât testareatestarea regresivăregresivă urmeazăurmează dupădupă fiecarefiecare modificaremodificare aacodului,codului, eaea sese vava efectuaefectua dede multemulte ori,ori, chiarchiar dede sutesute dede oriori.. ReieseReiesefoartefoarte clarclar căcă esteeste utilutil caca execuţiileexecuţiile cazurilorcazurilor dede testtest săsă fiefie reluatereluateautomatautomat,, astfelastfel caca testareatestarea regresivăregresivă săsă cearăceară unun efortefort câtcât maimai micmic dindin

TT dd tt t tt t îî diţiidiţii ll îî

,, ggparteapartea omuluiomului.. Deci,Deci, sese recomandărecomandă automatizareaautomatizarea testăriitestării!!

TestareaTestarea dede stressstress esteeste testareatestarea înîn condiţiicondiţii anormaleanormale,, înîn carecarevolumulvolumul dede datedate esteeste foartefoarte maremare,, sausau numărulnumărul utilizatorilorutilizatorilor sistemuluisistemuluiesteeste multmult pestepeste celcel normalnormal..

DeDe exemplu,exemplu, unun programprogram carecare proceseazăprocesează oo secvenţăsecvenţă dede nn numerenumerefuncţioneazăfuncţionează normalnormal pentrupentru valorivalori obişnuiteobişnuite pentrupentru nn,, dardar poatepoate săsăfuncţionezefuncţioneze anormalanormal pentrupentru nn==2000020000funcţionezefuncţioneze anormalanormal pentrupentru nn==2000020000..

TestareaTestarea BetaBeta esteeste testareatestarea făcutăfăcută dede beneficiarbeneficiar prinprin folosireafolosirea

2626/40

programuluiprogramului înîn cazuricazuri realereale.. AdeseaAdesea înîn decursuldecursul utilizăriiutilizării unuiunui programprogrambeneficiarulbeneficiarul descoperădescoperă funcţionărifuncţionări defectuoasedefectuoase..

Page 27: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

EEsteste binebine caca activitateaactivitatea dede testaretestare săsă sese reflectereflecte întrîntr--unun documentdocument

... ... Alte tipuri de testare ~ Alte tipuri de testare ~ Testarea BetaTestarea Beta

scrisscris.. AcestaAcesta vava conţineconţine toatetoate cazurilecazurile dede testtest şişi rezultatulrezultatul testăriitestării.. CareCare auaufostfost execuţiileexecuţiile lala carecare rezultatelerezultatele nunu auau fostfost corectecorecte,, cece deciziidecizii ss--auau luat,luat, lalacece ss--aa ajunsajuns.. NuNu întotdeaunaîntotdeauna oo execuţieexecuţie incorectăincorectă sese datoreazădatorează uneiunei erorieroriînîn unitateaunitatea testatătestată.. MaiMai potpot fifi erorierori înîn driveredrivere,, stuburistuburi sausau înîn mediulmediul dedetestaretestare (de(de exemplu,exemplu, sese foloseştefoloseşte unun fişierfişier dede datedate carecare nunu există,există, sausau arearedatedate greşite)greşite)..g ş )g ş )

OO problemăproblemă importantăimportantă carecare intereseazăinteresează multemulte persoanepersoane esteesteevaluareaevaluarea erorilorerorilor rămaserămase dupădupă testareatestarea sistemuluisistemului.. OO metodămetodă dede aa aflaaflarăspunsulrăspunsul lala aceastăaceastă întrebareîntrebare esteeste ““însămânţareaînsămânţarea”” erorilorerorilor înîn produsprodusrăspunsulrăspunsul lala aceastăaceastă întrebareîntrebare esteeste însămânţareaînsămânţarea erorilorerorilor înîn produsprodusînainteînainte dede testaretestare.. FieFie kk numărulnumărul erorilorerorilor însămânţateînsămânţate.. DacăDacă înîn produsprodus seseaflăaflă nn erorierori dindin carecare prinprin testaretestare auau fostfost găsitegăsite tt,, iariar dindin celecele însămânţateînsămânţateauau fostfost găsitegăsite ss atunciatunci probabilprobabil căcăauau fostfost găsitegăsite ss,, atunciatunci probabilprobabil căcă

s / k = t / ns / k = t / n ddecieci n = kn = k ·· tt // ss

astfelastfel căcă înîn produsprodus auau rămasrămas dupădupă testaretestare

2727/40

astfelastfel căcă înîn produsprodus auau rămasrămas dupădupă testaretestare

nn –– tt == tt ·· (( kk // ss –– 11 )) erorierori..

Page 28: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Nivele de testare Nivele de testare Nivele de testare Nivele de testare 1.1. Testarea unui modul Testarea unui modul 22 T t d i t T t d i t 2.2. Testarea de integrare Testarea de integrare 3.3. Testarea de sistem Testarea de sistem 44 Testarea de acceptare Testarea de acceptare 4.4. Testarea de acceptare Testarea de acceptare

5.5. Alte tipuri de testare Alte tipuri de testare

Organizarea testăriiOrganizarea testăriiExerciţii şi probleme propuse Exerciţii şi probleme propuse Exerciţii şi probleme propuse Exerciţii şi probleme propuse

2828/40

Page 29: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Organizarea testăriiOrganizarea testăriiEsteEste binebine caca testareatestarea săsă fiefie efectuatefectuatăă dede oo echipăechipă formatăformată dindin persoanepersoane

specializatespecializate înîn activităţiactivităţi dede testaretestare.. MărimeaMărimea acesteiacestei echipeechipe depindedepinde dede

O ga a ea testăO ga a ea testă

complexitateacomplexitatea produsuluiprodusului şişi dede persoanepersoanelele disponibiledisponibile.. UnUn produsprodus micmic poatepoatefifi testattestat dede oo singurăsingură persoanăpersoană,, ununulul mediumediu poatepoate fifi testattestat dede doardoar douădouăpersoanepersoane ((întrîntr--oo organizaţieorganizaţie micămică)).. UnUn produsprodus maremare,, realizatrealizat întrîntr--oopp (( g ţg ţ )) pp ,,organizaţieorganizaţie mare,mare, vava fifi testattestat dede oo echipăechipă compusăcompusă dindin persoanepersoane specializate,specializate,instruiteinstruite înîn testaretestare,, ffăăcândcând parteparte dindin colectivulcolectivul dede verificareverificare şişi validarevalidare..

UnUn membrumembru alal echipeiechipei dede testaretestare trebuietrebuie săsă aibăaibă înclinaţiiînclinaţii şişi priceperepricepere înînUnUn membrumembru alal echipeiechipei dede testaretestare trebuietrebuie săsă aibăaibă înclinaţiiînclinaţii şişi priceperepricepere înînaa descoperidescoperi erorierori,, oo persoanăpersoană cucu experienţăexperienţă înîn programare,programare, nunu unun începătorîncepător..

PrimaPrima sarcinăsarcină aa acesteiacestei echipeechipe esteeste stabilireastabilirea unuiunui planplan dede testaretestare.. UnUnastfelastfel dede planplan trebuietrebuie săsă conţinăconţină::astfelastfel dede planplan trebuietrebuie săsă conţinăconţină::

-- scopulscopul testăriitestării;;-- descriereadescrierea proiectuluiproiectului cece trebuietrebuie testattestat;;

2929/40

-- activităţileactivităţile prevăzuteprevăzute aa aveaavea locloc;;-- documenteledocumentele cece sese vorvor redactaredacta pentrupentru aa reflectareflecta testareatestarea făcutăfăcută..

Page 30: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

PlanulPlanul testăriitestării trebuietrebuie săsă precizezeprecizeze::i i ili i il b ib i lili

... ... Organizarea testăriiOrganizarea testării

•• toatetoate activităţileactivităţile carecare trebuietrebuie realizate,realizate,•• cinecine faceface fiecarefiecare activitate,activitate,•• cândcând trebuietrebuie săsă aibăaibă locloc fiecarefiecare activitateactivitate ~~ ordinordineaea înîn carecare sese vorvor

efectuaefectua acesteaceste activităţiactivităţi ((sese vava aveaavea înîn vederevedere disponibilitateadisponibilitatea subproduselorsubproduselor))•• toatetoate nivelelenivelele dede testare,testare,

t tt t d l ld l l t b it b i t t tt t t•• toatetoate modulelemodulele cece trebuietrebuie testate,testate,•• criteriilecriteriile dede acceptareacceptare..•• unelteluneltelee softsoft dede testaretestare ((carecare suntsunt acesteaacestea şişi cândcând sese folosescfolosesc))(( ))•• activităţiactivităţi dede instruireinstruire aa persoanepersoanelorlor nounou venitevenite înîn activitateaactivitatea dede testaretestare..

PPlanlanulul dede testaretestare trebuietrebuie analizatanalizat (de(de echipaechipa dede testaretestare cucu şefulşefulproiectuluiproiectului şişi dezvoltatordezvoltator)) ::•• AActivităţilectivităţile prevăzuteprevăzute ssuntunt corectecorecte,, înîn ordineordine corespunzătoare,corespunzătoare,

completecomplete??

3030/40

pp•• RResurseesurse suntsunt suficientesuficiente ((timp,timp, persoane,persoane, echipamenteechipamente)?)?•• LListaista documentdocumentelorelor ((prevăzuteprevăzute aa fifi realizaterealizate)) eesteste completăcompletă??

Page 31: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

TestareaTestarea esteeste oo activitateactivitate complexăcomplexă ((conţineconţine))::

... ... Organizarea testăriiOrganizarea testării

TestareaTestarea esteeste oo activitateactivitate complexăcomplexă ((conţineconţine))::•• testareatestarea tuturortuturor modulelor,modulelor,•• testareatestarea dede integrare,integrare,•• testareatestarea dede regresie,regresie,•• testareatestarea sistemuluisistemului..

PlanulPlanul testăriitestării trebuietrebuie săsă iaia înîn considerareconsiderare şişi termenultermenul dede predarepredarePlanulPlanul testăriitestării trebuietrebuie săsă iaia înîn considerareconsiderare şişi termenultermenul dede predarepredareprevăzutprevăzut.. DacaDaca nunu potpot fifi realizaterealizate toatetoate activităţileactivităţile necesarenecesare,, sese vorvor căutacăutamodalităţimodalităţi dede economisireeconomisire aa timpuluitimpului..

DeDe exempluexemplu,, testareatestarea modulelomodulelorr poatepoate fifi redusăredusă lala inspectareainspectarea testăriitestăriifăcutăfăcută dede realizatorulrealizatorul fiecăruifiecărui modulmodul.. ÎnÎn aceaceaastăstă situasituaţţieie esteeste necesarănecesară oodocumentaţiedocumentaţie aa acesteiacestei testăritestări înîn carecare sese găsescgăsesc cazurilecazurile dede testtest folositefolositedocumentaţiedocumentaţie aa acesteiacestei testări,testări, înîn carecare sese găsescgăsesc cazurilecazurile dede testtest folosite,folosite,împreunăîmpreună cucu rezultatulrezultatul testăriitestării,, iariar eechipachipa dede testaretestare vava controlacontrola prinprin sondajsondajcâtevacâteva execuţiiexecuţii ((dacădacă vava considerconsideraa ccăă esteeste necesar,necesar, vava adăugaadăuga câtevacâteva cazuricazuri

3131/40

dede testtest))..

Page 32: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Organizarea testăriiOrganizarea testării

TestareaTestarea trebuietrebuie săsă porneascăpornească dede lala oo înţelegereînţelegere clarăclară aa cerinţelorcerinţelorproiectuluiproiectului.. EaEa trebuietrebuie săsă îmbineîmbine testareatestarea funcţionalfuncţionalăă cucu testareatestareastructuralăstructurală pentrupentru fiecarefiecare modulmodul.. IarIar pentrupentru întregulîntregul sistemsistem săsă realizezerealizezetestareatestarea performanţelorperformanţelor sistemuluisistemului.. StabilireaStabilirea cazurilorcazurilor dede testtest esteeste unaunadindin activităţileactivităţile dificiledificile înîn testareatestarea programelorprogramelor.. ScopulScopul testăriitestării esteestedescoperireadescoperirea deficienţelor,deficienţelor, iariar cazurilecazurile dede testtest trebuietrebuie săsă fiefie alesealese cucuacestacest scopscop.. SiSi dindin acestacest motivmotiv sese recomandărecomandă caca alegereaalegerea acestoracestor cazuricazuri şişitestareatestarea înîn întregimeîntregime săsă fiefie făcutefăcute dede altealte persoane,persoane, diferitediferite dede autorulautorulprodusuluiprodusului..

AdeseaAdesea unun programprogram foloseştefoloseşte bazebaze dede date,date, iariar execuţiaexecuţia luilui modificămodificăp gp g şş ,, ţţaproapeaproape întotdeaunaîntotdeauna bazabaza dede datedate.. LaLa testareatestarea dede regresie,regresie, câtcât şişi lala altealteexecuţiiexecuţii aleale programului,programului, esteeste nevoienevoie săsă folosimfolosim bazabaza dede datedate iniţialăiniţială..PlanulPlanul testăriitestării trebuietrebuie săsă aibăaibă înîn vederevedere şişi astfelastfel dede situaţiisituaţii..şş ţţ

TestareaTestarea cerecere resurseresurse importante,importante, timptimp şişi echipamenteechipamente.. SeSe ştieştie căcă eaeacerecere pestepeste 2525%% dindin efortulefortul dede realizarerealizare aa produsuluiprodusului.. TestareaTestarea înseamnăînseamnănumeroasenumeroase execuţiiexecuţii aleale modulelormodulelor sausau diferitelordiferitelor versiuniversiuni lala testareatestarea dede

3232/40

numeroasenumeroase execuţiiexecuţii aleale modulelormodulelor sausau diferitelordiferitelor versiuniversiuni lala testareatestarea dedeintegrareintegrare.. CeCe facemfacem atunciatunci cândcând resurseleresursele suntsunt limitate,limitate, cândcând procesulprocesulsoftsoft esteeste multmult înîn întârziere?întârziere?

Page 33: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

LipsaLipsa documentelordocumentelor esteeste unun altalt obstacolobstacol înîn desfăşurareadesfăşurarea normalănormală aa

... ... Alte tipuri de testare ~ Alte tipuri de testare ~ Organizarea testăriiOrganizarea testării

testăriitestării.. ÎnÎn primulprimul rândrând esteeste nevoienevoie dede specificareaspecificarea produsuluiprodusului,, dardar şişicelelaltecelelalte documente,documente, cucu proiectareaproiectarea dede ansambluansamblu şişi dede detaliudetaliu,, codulcodulsursăsursă suntsunt toatetoate necesarenecesare înîn diferitediferite fazefaze aleale testăriitestăriisursăsursă,, suntsunt toatetoate necesarenecesare înîn diferitediferite fazefaze aleale testăriitestării..

Evident,Evident, planulplanul testăriitestării trebuietrebuie îndeplinitîndeplinit.. ElEl cerecere stabilireastabilirea cazurilorcazurilordede testtest,, execuţiileexecuţiile corespunzătoare,corespunzătoare, raportarearaportarea deficienţelordeficienţelor observateobservateţţ pp pp f ţf ţcelorcelor vizaţi,vizaţi, redactarearedactarea concluziilorconcluziilor testăriitestării.. ExistenţaExistenţa uneiunei deficienţedeficienţeduceduce lala depanare,depanare, înîn vedereavederea eliminăriieliminării eiei.. AceastăAceastă depanaredepanare trebuietrebuiefăcutăfăcută dede autorulautorul produsuluiprodusului defectdefect nunu dede persoanelepersoanele carecare facfac testareatestareafăcutăfăcută dede autorulautorul produsuluiprodusului defectdefect nunu dede persoanelepersoanele carecare facfac testareatestarea..Evident,Evident, dupădupă depanaredepanare vava urmaurma testareatestarea dede regresieregresie..

TestareaTestarea trebuietrebuie săsă laselase înîn urmaurma eiei unun documentdocument alal testăriitestării.. AcestaAcesta vavaconţineconţine înîn detaliudetaliu toatetoate activităţileactivităţile desfăşurate,desfăşurate, toatetoate cazurilecazurile dede testaretestareefectuate,efectuate, cucu rezultatelerezultatele obţinuteobţinute şişi deciziiledeciziile luateluate.. DocumentulDocumentul dede testaretestare

tt didi ă ţilă ţil d t l id t l i dd ifiifi ii lidlid d l id l i

3333/40

esteeste unauna dindin părţilepărţile documentuluidocumentului dede verificareverificare şişi validarevalidare aa produsuluiprodusuluifinalfinal..

Page 34: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

PPrincipiirincipii înîn activitateaactivitatea dede testaretestare::

... ... Alte tipuri de testare ~ Alte tipuri de testare ~ Organizarea testăriiOrganizarea testării

testareatestarea trebuietrebuie săsă aibăaibă locloc înîn paralelparalel cucu dezvoltareadezvoltarea ;;testareatestarea unuiunui modulmodul sese vava faceface imediatimediat cece acestaacesta esteeste terminatterminat;;testareatestarea trebuietrebuie făcutăfăcută dede persoanepersoane independenteindependente ((nunu dede autoriautori));;pp pp (( ));;pentrupentru testareatestarea funcţionalăfuncţională cazurilecazurile dede testtest vorvor fifi alesealese imediatimediat cece existăexistăspecificareaspecificarea ((sese potpot depistadepista lipsurilipsuri înîn specificarespecificare))..testareatestarea trebuietrebuie săsă iaia înîn considerareconsiderare riscurileriscurile posibileposibile::testareatestarea trebuietrebuie săsă iaia înîn considerareconsiderare riscurileriscurile posibileposibile::–– schimbareaschimbarea cerinţelorcerinţelor beneficiaruluibeneficiarului,, decideci şişi aa specificăriispecificării,,–– pplanullanul testăriitestării nunu eesteste respectatrespectat dindin diferitediferite motivemotive caca::

întârzieriîntârzieri înîn realizarearealizarea proiectuluiproiectului determinădetermină lipsalipsa timpuluitimpului afectatafectattestăriitestării;;depanăridepanări repetaterepetate cercer testăritestări dede regresieregresie repetate,repetate, pestepeste celeceleprevăzuteprevăzute iniţialiniţial;;testareatestarea dede integrareintegrare esteeste întreruptăîntreruptă dindin lipsalipsa unorunor modulemodule;;lipsalipsa personaluluipersonalului (îmbolnăviri(îmbolnăviri plecăriplecări cost)cost);;

3434/40

lipsalipsa personaluluipersonalului (îmbolnăviri,(îmbolnăviri, plecări,plecări, cost)cost);;testareatestarea sese încîncheieheie cucu finalizareafinalizarea documentuluidocumentului testăriitestării,, strictstrict necesarnecesar înîndocumentaţiadocumentaţia produsuluiprodusului realizatrealizat..

Page 35: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Alte tipuri de testare ~ Alte tipuri de testare ~ Organizarea testăriiOrganizarea testării

TestareaTestarea esteeste oo activitateactivitate carecare cerecere timptimp şişi efortefort.. EaEa areare nevoienevoie dededocumentedocumente carecare săsă descriedescrie toatetoate activităţileactivităţile::

ifiifi•• specificarespecificare,,•• proiectareproiectare,,•• codificarecodificare..codificarecodificare..

TTestareaestarea completăcompletă esteeste practicpractic imposibilăimposibilă.. ÎnÎn realitaterealitate testareatestarea seseîncheieîncheie printrprintr--unun compromiscompromis întreîntre timptimp şişi calitatecalitate DeDe multemulte oriori niciniciîncheieîncheie printrprintr unun compromiscompromis întreîntre timptimp şişi calitatecalitate.. DeDe multemulte oriori nicinicifiabilitateafiabilitatea cerutăcerută nunu esteeste atinsăatinsă..

SubliniemSubliniem căcă testareatestarea aratăarată dede celecele maimai multemulte oriori prezenţaprezenţa erorilorerorilor nunulipsalipsa lorlor.. PentruPentru aa nene convingeconvinge dede lipsalipsa erorilorerorilor testareatestarea nunu esteeste suficientăsuficientă..

SuntSunt necesarenecesare şişi altealte metodemetode dede verificareverificare,, dardar şişi dede verificareaverificarea //dd i di iii di ii

3535/40

demonstrareademonstrarea corectitudiniicorectitudinii..

Page 36: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Nivele de testare Nivele de testare Nivele de testare Nivele de testare 1.1. Testarea unui modul Testarea unui modul 22 Testarea de integrare Testarea de integrare 2.2. Testarea de integrare Testarea de integrare 3.3. Testarea de sistem Testarea de sistem 4.4. Testarea de acceptare Testarea de acceptare pp

5.5. Alte tipuri de testare Alte tipuri de testare

Organizarea testăriiOrganizarea testăriiOrganizarea testăriiOrganizarea testăriiExerciţii şi probleme propuse Exerciţii şi probleme propuse

3636/40

Page 37: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Întrebări şi probleme propuseÎntrebări şi probleme propuse

CeCe înţelegeţiînţelegeţi prinprin testare?testare?

Întrebări şi probleme propuseÎntrebări şi probleme propuse

CareCare ee diferenţadiferenţa întreîntre testareatestarea completăcompletă şişi ceacea exhaustivăexhaustivă ??CumCum sese stabilescstabilesc cazurilecazurile dede testare?testare?CândCând sese considerăconsideră terminatăterminată testarea?testarea?CândCând sese considerăconsideră terminatăterminată testarea?testarea?CareCare ee diferenţadiferenţa dintredintre testareatestarea funcţională,funcţională, testareatestarea structuralăstructurală şişi testareatestareastatistică?statistică?DinDin cece cauzăcauză înîn locloc dede oo testaretestare funcţionalăfuncţională sausau unauna structuralăstructurală esteestepreferabilăpreferabilă oo testaretestare mixtă?mixtă?CareCare suntsunt nivelelenivelele dede testaretestare aa unuiunui produsprodus soft?soft?CareCare suntsunt nivelelenivelele dede testaretestare aa unuiunui produsprodus soft?soft?CumCum puteţiputeţi estimaestima numărulnumărul erorilorerorilor rămaserămase înîn urmaurma testării?testării?CumCum văvă explicaţiexplicaţi că,că, deşideşi testate,testate, programeleprogramele auau erorierori pepe timpultimpul folosiriifolosirii

3737/40

p ţp ţ şş p gp g pp pplorlor dede cătrecătre beneficiar?beneficiar?

Page 38: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Întrebări şi probleme propuseÎntrebări şi probleme propuse

StabiliţiStabiliţi dateledatele dede testtest pentrupentru subalgoritmulsubalgoritmul specificatspecificat înîncontinuare,continuare, folosindfolosind criteriulcriteriul cutieicutiei negrenegre..

SubalgoritmulSubalgoritmul Caută(m,Caută(m, n,n, A,A, i,j)i,j) esteeste::{{ϕϕ:: m>m>11,, n>n>11,, A(A(11....m,m,11....n)n) esteeste oo matricematrice cucu componentecomponente întregi}întregi}......{ψ{ψ:: A[i,j]A[i,j] esteeste componentacomponenta cucu ceicei maimai mulţimulţi divizoridivizori proprii}proprii}

sfsf--CautăCaută..

3838/40

Page 39: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

... ... Întrebări şi probleme propuseÎntrebări şi probleme propuse

DândDând oo proiectareproiectare dede ansambluansamblu aa unuiunui programprogram pentrupentrurezolvarearezolvarea problemelorproblemelor menţionatemenţionate maimai jos,jos, precizaţiprecizaţi nivelelenivelele dede

ll f if itestaretestare pepe carecare lele efectuaţiefectuaţi..PentruPentru unulunul dindin modulelemodulele considerateconsiderate precizaţiprecizaţi cazurilecazurile dede testtest

pepe carecare lele alegeţialegeţi lala testareatestarea luiluipepe carecare lele alegeţialegeţi lala testareatestarea luilui..LaLa testareatestarea dede integrare,integrare, arataţiarataţi cumcum veţiveţi realizarealiza integrareaintegrarea

primelorprimelor douădouă modulemodule..

11.. AdmitereaAdmiterea lala facultatefacultate;;

22.. AcordareaAcordarea burselorburselor întrîntr--oo facultatefacultate;;22.. AcordareaAcordarea burselorburselor întrîntr oo facultatefacultate;;

33.. CalcululCalculul taxelortaxelor lunarelunare lala unun blocbloc dede locuinţelocuinţe;;

44 MersulMersul trenurilortrenurilor

3939/40

44.. MersulMersul trenurilortrenurilor..

Page 40: Partea a II aper/Scs_Per/VvSs/C4 ~ VvSs.pdfPartea I. Corectitudinea programelor (F.M.) Cap 1Cap.1 Corectitudinea algoritmilor (Curs 1) Cap.2 Dezvoltarea programelor din specificatii

Index of Index of /~/~mfrentiumfrentiu/Lectures//Lectures/VerValVerVal/carte/cartehttp://www cs ubbcluj ro/http://www cs ubbcluj ro/~mfrentiu~mfrentiu/Lectures/VerVal/carte//Lectures/VerVal/carte/http://www.cs.ubbcluj.ro/http://www.cs.ubbcluj.ro/~mfrentiu~mfrentiu/Lectures/VerVal/carte//Lectures/VerVal/carte/

cap3.rtfcap3.rtfp3p3

4040/40