Professional Documents
Culture Documents
ti:
Phng php kim th hp trng (white box testing)
Ni dung trnh by
Cc khi nim ca phng phng php kim th hp trng Cc k thut c s dng khi xy dng cc ca kim th theo phng php kim th hp trng u, nhc im ca phng php. Gii php
t vn
Bi ton v cht lng phn mm lun c t ra trong mi d n phn mm vi mong mun l ngy cng sn sut ra c nhng phn mm c cht lng tt hn vi chi ph thp hn. Vic m bo cht lng phn mm mm lin quan n rt nhiu yu t nh: chun v quy trnh qun l ca cng ty, mi trng v cng c pht trin, m hnh pht trin phn mm c la chn, k nng ca nhn vin, Xc minh v thm nh l tn gi chung ca cc hot ng m bo cht lng phn mm.
3
t vn
Kim th phn mm l mt phn quan trng trong hot ng m bo cht lng phn mm nhm to ra nhng sn phm c cht lng tt, gp phn to nn thnh cng ca cc d n phn mm Cng vic m ha mt chng trnh theo ng thit k l mt trong nhng giai on quan trng trong qu trnh sn xut phn mm. ti: Phng php kim th hp trng l mt trong nhng phng php dng thit k cc ca kim th nhm kim tra xem cc on m chng trnh c vn hnh ng nh thit k hay khng.
4
t vn
Ni dung chnh ca tiu lun:
Tm hiu v phng php kim th hp trng ang rt ph bin hin nay trong ngnh cng ngh phn mm.
Trn c s kin thc kim th tip thu c s gip cho bn thn to ra nhng sn phm phn mm c cht lng cao hn trong tng lai.
Cc khi nim
Kim th hp trng: kim tra cc on m chng trnh xem n c vn hnh ng nh thit k hay khng.
Kim th hp trng da trn vic xem xt cu trc bn trong ca chng trnh theo cu trc iu khin v hot ng ca chng
6
Cc tn gi khc: kim th cu trc (structural testing), kim th hp knh (glass box), kim th r rng (clear box testing). i tng chnh ca kim th hp trng l tp trung vo cu trc bn trong chng trnh v tm ra tt c nhng li bn trong chng trnh. Vic kim tra tp trung ch yu vo: Cu trc chng trnh: Nhng cu lnh v cc nhnh, cc loi ng dn chng trnh. Logic bn trong chng trnh v cu trc d liu. Nhng hnh ng v trng thi bn trong chng trnh.
7
th lung Ma trn kim th Kim th iu kin Kim th lung d liu Kim th vng lp
1. th lung
a)
-
Cu trc ca th lung
th lung (flow graph) l mt k thut kim th hp trng c Tom McCabe xut nm 1976 th lung c xy dng t th lung iu khin ca chng trnh bng cch gp cc lnh tun t lin tip v lnh r nhnh sau n thnh mt nt, thay cc lnh r nhnh (c lp) hay im hp nht ca cc ng r nhnh bng mt nt.
10
11
12
L s o s phc tp logic ca chng trnh. L s cc ng i c lp c bn trong tp cc con ng c lp ca mt chng trnh. L s ng c lp nh nht ph ht cc cnh ca th lung. S o ny l gii hn trn ca s ca kim th cn phi tin hnh m bo rng, tt c cc cu lnh trong chng trnh u c thc hin t nht mt ln.
13
14
c)
V d
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. th lung iu khin i = 1; total_input = total_valid = 0; sum = 0; while(value[i] != -999 && total_input < 100) { total_input++; if(value[i] >= min && value[i] <= max) { total_valid++; sum += value[i]; } //Endif i++; } //Endwhile if(total_valid > 0) average = sum/total_valid; else average = -999; return average;
15
16
phc tp chu trnh V(G) ca th ny bng 4, l s min phng ca n, hay c th tnh theo cc cng thc khc di y: V(G) = E N + 2 = 10 8 + 2 = 4 V(G) = P 1 = 5 1 = 4 V(G) = C + 1 = 3 + 1 = 4 4 ng c lp c bn tm c ( lp cc ca kim th) t th lung l: ng 1: 1 2 3 4 1; ng 2: 1 2 4 1; ng 3: 1 5 6 8; ng 4: 1 5 7 8.
17
Kt lun: thit lp cc ca kim th khi s dng k thut th lung, cn tin hnh theo 5 bc sau:
1) 2) 3)
4)
5)
T thit k hoc m ngun ca mdun, ta lp th lung iu khin. Xy dng th lung tng ng vi th lung iu khin. Xc nh phc tp chu trnh V(G) ca th lung . Xc nh tp c bn ca cc con ng c lp. Chun b cc ca kim th tng ng mi con ng c bn.
18
2. Ma trn kim th
c xy dng da trn th lung. L mt ma trn vung, c kch thc bng s cc nt ca th lung: + Mi dng/ct ng vi tn mt nt. + Mi c ghi s 1 nu c mt cung ni nt dng n nt ct. Dng tnh phc tp chu trnh: cng s 1 trn mi dng ri tr i 1, sau ly tng cc dng cng thm 1 ta c kt qu.
21
22
3. Kim th iu kin
Ngi ta xut ra 2 chin lc kim th iu kin: Kim th r nhnh (Branch testing). Kim th min (Domain testing).
a)
Kim th r nhnh
L chin lc tp trung vo kim th tng iu kin r nhnh c trong chng trnh. m bo kim tra mi nhnh t nht mt ln. Xc nhn tnh ng n ca tt c cc r nhnh trong m lnh v khng nh khng c nhnh no dn ti mt hnh vi bt thng ca ng 23 dng.
V d: kim th on m sau:
1: function hello($sDate, $sTime) { 2: echo Hello World!<br>; 3: if ($sDate == "01-01-2010" && $sTime == "00:00:00") { 4: echo "Happy New Year<br>"; 5: } 6: echo The date is: $sDate >; 7: echo The time is: $sTime<br>; 8: }
24
b)
Nhn xt: Khi mt biu thc iu kin phc hp gm n iu kin n m s n ln, th vic tin hnh y 2n ca kim th l rt kh thc hin. L mt k thut lm gim s ca kim th cn tin hnh trong kim th iu kin. BRO dng n rng buc iu kin cho iu kin kim th. T tng kim th ca chin lc BRO l cho php th nhy cm sai ca biu thc bool.
25
b)
Chng hn: 1) Xt iu kin C l mt bin bool, khi rng buc u ra ca C l mt cp gi tr t hoc f. V d: Xt iu kin C = (A and B) vi A v B l 2 bin bool. Chin lc kim th BRO i hi rng, tp ba rng buc u ra {(t, t), (t, f), (f, t)} u c ph bi cc thi hnh ca C, cn (f, f) l tha.
Nu C khng ng n do t nht mt php ton bool sai, th trong 3 cp trn c t nht mt cp lm C tht bi. 26
2) Xt iu kin n C = (A = B) vi A v B l biu thc s hc. Khi rng buc ca C l mt trong ba quan h: <, >, = 2) Xt iu kin C l hi ca hai biu thc bool C = (A and (B = E)). Khi cc rng buc ca C l cc cp (t, t), (t, f) v (f, t) ; vi (B = E), ta c gi tr t tng ng vi =, v gi tr f tng ng vi < hoc >. Tng t nh trng hp trn xt i vi iu kin hai bin bool c rng buc u ra l {(t, t), (t, f), (f, t)}, khi ta c tp cc rng buc ca C trong trng hp ny phi gm 4 phn t: {(t, =), (t, <), (t, >), (f, =)}. 27
Kt lun: Chin lc kim th iu kin c hai thun li: Th 1, o mc bao ph ca mt iu kin l n gin. Th 2, bao ph kim th ca iu kin trong mt chng trnh cho ta cc hng dn to ra cc ca kim th y cho chng trnh.
28
Vi mi cu lnh S, ta nh ngha:
DEF(S) = {X | cu lnh S cha nh ngha ca X USE(S) = {X | cu lnh S cha mt s dng X}
30
31
5. Kim th vng lp
l mt k thut kim th hp trng tp trung hon ton vo tnh hp l ca kt cu vng lp. Ta phn cc vng lp thnh 4 lp khc nhau:
32
33
34
Gii php
Kt hp kim th hp trng vi kim th hp en. C th vit cc ca kim th hp en trc sau s dng phng php kim th hp trng loi b i nhng ca kim th khng cn thit v b sung nhng ca cn thiu. Kim th hp en thng c thc hin sau khi kim th hp trng hon thnh.
37
Nguyn Vn V - Nguyn Vit H, Gio trnh k ngh phn mm, NXB Gio dc Vit nam, 2009 ftp://ftp.csc.ncsu.edu/pub/tech/2006/TR-2006-22.pdf http://agile.csc.ncsu.edu/SEMaterials/WhiteBox.pdf
38
39