Documente Academic
Documente Profesional
Documente Cultură
costuri
cu c#t sunt detectate$reparate mai multe defecte n perioada critic de livrare% cu at#t cresc ansele ca livrarea s fie am#nat -> costuri de penalizare
un defect detectat din timp reduce costurile proiectului de & ori fa de un defect detectat t#rziu
)educerea costurilor
se caut defecte n cerine$specificaii ! cel mai ieftin la momentul proiectrii (costuri foarte mici ! se evit propa"area erorii
detectarea unui defect de ctre pro"ramator nainte testor ! reduce costurile considera*il (timp% *ani% persoane implicate
defecte nainte de livrare influeneaz -> divizia de mar+etin" (nu se pot realiza la timp pliante% demo-uri % divizia de documentare (documentaie% tutoriale % divizia de v#nz#ri
dup livrare costurile pot crete e,ponenial% dac nu este specificat altfel n contract- .rodusul software este actualizat (client unic vs- milioane de clieni% e-mail$we* vs- mail
procesul de dezvoltare a proiectului ! divizat n cicluri de scurt durat (pro"ramare% testare% verificare client% proiectare ! interaciune continu cu clientul
colarizarea celor implicai n proiect analiza cerinelor proiectare tolerant la defecte claritatea specificaiilor documentarea intern a proiectului
revizuirea proiectrii inspectarea codului testare w1ite *o, 2 *lac+ *o, colarizarea testorilor testare *eta testarea funcionalitii din punct de vedere al utilizatorilor propriu-zii testarea produsului de ctre client% nainte de livrare
)ezolvarea defectelor Testarea prin re"resie Timp pierdut n interiorul companiei (pro"ramator% testor Timp pierdut n mar+etin" i v#nzri Timp pierdut n pu*licitate .enalizri le"ate de livrarea nt#rziat
.ierderea *unvoinei clientului Telefoane pentru suport te1nic Scrierea documentaiei 3uestions 2 Answers 4nvesti"area pro*lemelor raportate de ctre client 5ferirea suportului pentru mai multe versiuni 6aranie% restituirea anumitor sume ctre client (ivrarea produselor actualizate
7otivarea necesitii rezolvrii defectului alturi de prile interesate pe *aza costurilor estimate
Pri interesate
/c1ipa de documentare /c1ipa de suport te1nic /c1ipa de mar+etin" /c1ipa de v#nzri 7ana"erii de proiect
Testare$Analiz$8erificare static
m*untete calitatea codului defecte software (implementare% editare verific codul pe anumite a*loane standardizate la nivelul or"anizaiei Testare static vs- Testare dinamic nu se ruleaz software-ul -> se verfic *uci de cod produce avertismente nainte de compilare
10
Testare$Analiz$8erificare static
9u e,ecut codul surs 7etode manuale (la inceput% costuri reduse 2 automate - complementare 'etecia *locurilor e,ecutate n timpul testrii /,amineaz codul
Criterii
Control-Flow
Data-Flow
11
Criteriul Control-:low
)eprezentarea "rafului Control-:low - noduri ; operaii$condiii e,ecutate secvenial - muc1ii ; flu,ul de control dintre operaii Scopul ! acoperirea "rafului C-:% prin reducerea cazurilor de test
Tipuri de acoperire< - acoperirea operaiilor e,ecuta*ile - acoperirea ramurilor - acoperirea deciziilor i a condiiilor -> independena su*e,presiilor - acoperirea rutelor de e,ecuie -> posi*ilele rute activate n e,ecuia codului surs
/,< condiii% cicluri% ieire din condiie$ciclu%--'ezavanta=e< - necesitatea nele"erii codului de ctre testor pt- producerea "rafului C-: - multe linii de cod (module$uniti -> numrul mare de cazuri de test
12
a>10
Acoperire complet a operaiilor e,ecuta*ile Acoperire incomplet a rutelor de e,ecuieComportamentul codului poate fi diferit pentru alte perec1i (a%*
13
a=5, b=2
a=1, b=0, c=-2, d=-3 a>10 && b==0 x+=2 c<0 || d>=0 x-=2
16
o*inerea "rafului Control-:low din codul software calcularea Comple,itii Ciclomatice (C selectarea unei mulimi de rute de *az (nceput$sf#rit crearea unui caz de test pentru fiecare rut de *az e,ecutarea testelor
17
Comple,itate ciclomatic (C
C ; muc1ii ! noduri D A sau C ; p D > $ p ! numrul de decizii *inare (vala*il pt- tipuri de decizii e,clusiv *inare C ; A@ - >E D A ; F sau C;GD>;F C ; numrul minim de rute de *az independente neciclice% care mpreun traverseaz toate muc1iile% av#nd proprietatea c oricare dou rute au cel puin o muc1ie diferit6aranteaz >??% acoperirea operaiilor e,ecuta*ile i a condiiilor
18
19
C = 22 16 + 2 =
20
21
...
if (c1) * /0ile (c2) * if (c3) * )1; )2; if (c5) )5; el)e ),; "'ea&;- 44 ; 5nd /0ile el)e if (c+) * el)e * )3; )+; b'ea&;- 44 5nd /0ile - 44 5nd if )7; if (c,) ).; )1; )10;
)i = o9e'aia i c: = condiia :
23
Criteriul 'ata-:low
24
Criteriul 'ata-:low
Posibiliti de prim apariie a unei ariabile !n cod >- ~d varia*ila nu e,ist (notat prin ~ % apoi este definit (d A- ~u varia*ila nu e,ist% apoi este utilizat (u 3. ~k varia*ila nu e,ist% apoi este distrus (k Perec"i #d$u$%& dd definire succesiv -> posibil eroare de codare du definire apoi utilizare -> corect dk definire apoi distrugere -> posibil eroare de codare ud utilizare apoi (re)definire -> ok uu utilizare succesiv -> ok uk utilizare apoi distrugere -> ok kd distrugere apoi (re)definire -> ok ku distrugere apoi utilizare -> eroare major kk distrugere succesiv -> posibil eroare de codare
25
(#) &(?)
du ! o+ Cazuri particulare)
- utilizarea vectorilor ( aB=C ! depinde de conte,t - anumite rute ce conin perec1i eronate (d%u%+ nu sunt folosite niciodat -> cod nu neaparat incorect ;;> Criteriul 'ata-:low ('inamic
26
varia*il
definiie
predicat
!"ang #iu$ %&eac"ing '(ata )lo* &esting' in an +oft*are,ngineering !ourse-$ .uss !ollege of ,ngineering and &ec"nolog/
27
28
30
)ecursivitate infinit 5 sin"ur instruciune return la nivel de funcie ! depanare uoar 6reeli de editare (;% ;; - tQpos Comparaii ntre o*iecte diferite /vitarea erorii 9ull.ointer/,ception Cod redundant
31
32
33
;; 9P((
34
Uinclude Vstrin"-1> void f( R c1ar *uffB>LCS sprintf(*uff% Z%s %sZ% ZJello% [orldOZ S T
35
36
37
38
39
40
41
42
43
)ezumat 2 _ntre*ri
44