Professional Documents
Culture Documents
KHO LUN TT NGHIP I HC H CHNH QUY Ngnh : Cng Ngh Thng Tin
H NI - 2009
1
KHO LUN TT NGHIP I HC H CHNH QUY Ngnh: Cng Ngh Thng Tin Cn b hng dn : TS. Trng Ninh Thun Cn b ng hng dn: ThS. T Vn Khnh
H NI - 2009
2
LI CM N
Bn thn em t c thnh qu nh ngy hm nay l nh mt phn khng nh cng lao du dt ca cc thy c trong khoa Cng Ngh Thng Tin - i Hc Cng Ngh - i Hc Quc Gia H Ni. Em xin ghi nhn cng lao ca cc thy c v em xin gi li cm n su sc ti thy c. hon thnh c kho lun ny em xin gi li cm n chn thnh ti TS. Trng Ninh Thun v ThS. T Vn Khnh, hai thy hng dn, gip , ch bo rt tn tnh cho em. D c gng rt nhiu trong qu trnh lm kho lun, nhng cng khng th trnh khi nhng thiu st, em rt mong nhn c s gp ca cc thy, c gio em c th hon thin hn.
TM TT KHO LUN
Trong thi i cng ngh thng tin bng n nh hin nay, phn mm ng mt vai tr cc k quan trng trong hu ht cc lnh vc ca i sng. Phn mm l mt sn phm cn phi c m bo v cht lng. m bo cht lng phn mm (SQASoftware Quality Assuarance) l mt nhim v c bit quan trng trong pht trin phn mm v l vn sng cn i vi tt c cc cng ty phn mm. m bo cht lng phn mm th trong cc d n phn mm phi tin hnh xc minh v thm nh. Mt trong cc hot ng xc minh v thm nh quan trng l tin hnh kim th phn mm. Kim th cn c tin hnh nhiu mc v phi hp nhiu k thut khc nhau. Phn khng th thiu trong kim th l vic xy dng cc ca kim th. Cc ca kim th phi tt mi c th pht hin ra khim khuyt ca phn mm. Mt vn t ra y l lm th no xc nh c ca kim th l tt, nhng tiu ch no nh gi cht lng ca chnh ca kim th? V cng vic tin hnh kim tra khi no th dng li? Ni dung ca kho lun s cp n hai phng php nhm mc ch xy dng cc ca kim th tt l k thut phn tch bao ph code v k thut phn tch gi tr im bin. Phn tch bao ph code s phi tin hnh xy dng cc ca kim th tt c cc lung ng i c th qua chng trnh, cc lung ng i t input ti output c xc nh da trn cc nhnh r ca chng trnh. Thng thng cc li v lp trnh thng hay xy ra ti gi tr bin do vy ti gi tr bin cn phi thit k ca kim th kim tra n. Trong phm vi ca kho lun chng ti s tin hnh ci t mt chng trnh nhm tm ra cc cu lnh iu khin ca file ngun java v ch ra gi tr bin trong cc biu thc so snh nhm mc ch ch ra xut cc gi tr bin baseline v robust cn c kim tra.
Mc lc
4
Vng Th Qunh Dng............................................................................................2 CHNG 1. M U ..............................................................................................10 1.1 Bi cnh nghin cu..........................................................................................10 1.2 Ni dung bi ton...............................................................................................11 1.3 Cu trc ca kho lun.....................................................................................12 CHNG 2. GII THIU V BAO PH CODE...................................................14 2.1 Bao ph code l g ?...........................................................................................14 2.2 Ti sao cn o lng code c bao ph ?......................................................14 2.3 Lm th no xc nh lng code c bao ph ?.....................................15 2.4. Trong tin trnh test th bao ph code hp vi k thut kim th no ?.....15 2.4.1 Kim th hp en ......................................................................................15 2.4.2 Kim th hp trng ...................................................................................15 2.4.3 Bao ph code ..............................................................................................16 CHNG 3. GII THIU MT S PHNG PHP BAO PH.......................17 3.1 Bao ph cu lnh (Statement coverage)...........................................................17 3.2 Bao ph nhnh (Branch coverage)...................................................................17 3.3 Bao ph ng i (path coverage)...................................................................18 3.4 Bao ph iu kin (condition coverage)...........................................................18 3.5 Bao ph nhiu iu kin (multiple condition coverage)..................................18 CHNG 4. PHN TCH, NH GI CC PHNG PHP BAO PH.........19 4.1 Phn tch phng php bao ph cu lnh (statement coverage)....................19 4.2 Phn tch phng php bao ph nhnh (branch coverage)...........................23 4.3 Phn tch phng php bao ph ng i (path coverage)...........................28 .............................................................................................................................32 CHNG 5. PHN TCH GI TR IM BIN...................................................33 5.1 Gii thiu ...........................................................................................................33 5.2 Phn hoch tng ng(equivalence partitioning).......................................33 5.3 Phn tch gi tr bin (boundary value analysis).............................................34 5.3.1 Tng quan v phn tch gi tr im bin.................................................34 5.3.2 La chn cc ca kim th s dng phn tch gi tr im bin...............34 5.3.3 Phn tch gi tr bin n bin (Single-Variable BVA)............................34 5.3.4 Phn tch gi tr bin a bin (Multi Variable BVA)............................36 5.3.5 Kt lun ......................................................................................................40 CHNG 6. THC NGHIM..................................................................................41 6.1 V d mt chng trnh n gin ....................................................................41 6.1.1 Xy dng cc ca kim th cho chng trnh trn ...................................42 6.1.2 Kt lun ......................................................................................................45 6.2 Chng trnh ci t tm kim cc cu lnh r nhnh trong m ngun java. ...................................................................................................................................46 6.2.1 Gii thiu v chng trnh ........................................................................46 6.2.2 M t cc chc nng chnh .......................................................................46 6.2.3 Biu trnh t...........................................................................................47 6.2.4 Thut ton s dng ...............................................................................49 6.2.5 Cc lp ci t ............................................................................................51
6.2.5 Kt qu thao tc cc chc nng gia ngi dng v chng trnh nh sau ........................................................................................................................51 6.3 Kt lun..............................................................................................................56 CHNG 7: KT LUN KHO LUN..................................................................57 7.1 Kt lun v kho lun .......................................................................................57 7.2 Hng nghin cu pht trin trong tng lai ................................................57 TI LIU THAM KHO...........................................................................................58
Hnh 35: Nhp vo mt tn file ng c ............................................................52 Hnh 36 : Ni dung ca file TestFile.java..................................................................52 Hnh 37: Kt qu tm kim cu lnh iu khin.......................................................53 Hnh 38 : Ni dung ca file cha cu lnh iu khin c tm kim ...................53 Hnh 39 : Kt qu khi ngi dng mun thao tc vi cu lnh if............................54 Hnh 40 : Kt qu khi ngi dng mun thao tc vi cu lnh while.....................55 Hnh 41 : Kt qu khi ngi dng mun thao tc vi cu lnh for.........................55
DANH MC CC THUT NG
Thut ng Statement coverage Branch coverage Path coverage Condition coverage Boundary value analysis(BVA) Single-variable BVA Multi-variable BVA Equivalence partitioning Test case Valication Verification Test entropy Cyclomatic complextity Baseline Robust Module Khi nim Bao ph cu lnh Bao ph nhnh Bao ph ng i Bao ph iu kin Phn tch gi tr bin Phn tch gi tr bin n bin Phn tch gi tr bin a bin Phn hoch tng ng Ca kim th Xc minh Thm nh Kim tra bt nh trong cu trc ca h thng S ng c lp tuyn tnh i qua m ngun ng c s mnh m M un
CHNG 1. M U
1.1 Bi cnh nghin cu
Trong thi i cng ngh thng tin bng n nh ngy nay, phn mm ng vai tr v cng quan trng hu ht cc lnh vc ca cuc sng. c bit trong khi ngnh doanh nghip, dch v, qung co, n tr gip c lc nhm lm tng cht lng nghip v. Mi b phn u ph thuc vo phn mm h tr cho vic pht trin, sn xut, qung co nhm tip th cc sn phm v dch v ca h. Phn mm cng c xem l mt sn phm, nhng l loi hnh sn xut c bit. Trong mt quy trnh sn xut phn mm, giai on pht hin, xc nh v sa cc li phn mm c xem l phn khng th thiu nhm m bo cht lng phn mm. m bo cht lng phn mm l mt nhim v c bit quan trng trong pht trin phm mm v l vn sng cn i vi tt c cc cng ty phn mm. mc cao, vic m bo cht lng lin quan n mt lot cc vn nh chun v qui 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 mc thp hn, cht lng phn mm c m bo trn c s hiu ng yu cu ca khch hng, c t ng yu cu, to ra cc thit kt tt v chuyn ti n mt cch ng n thnh m ngun ca phn mm. Chi ph b ra cho giai on ny thng chim khng nh trong tng chi ph m cc t chc pht trin phn mm b ra cho ton b qui trnh. Vi tc pht trin chng mt ca lnh vc cng ngh thng tin trn c h thng phn cng v phn mm, kh nng xy ra nhiu li, c bit l nhng li phc tp l rt cao. Li c th gy thit hi to ln c v tin bc, thi gian v cng sc con ngi. Chnh v vy, cn c phng php pht hin ra li sm nhm gim cng sc sa chng. pht hin ra nhng li phn mm, phn mm cn phi c thm nh (Valication) v kim chng (Verification). Xc minh, thm nh gip ta pht hin v sa li phn mm t nh tnh dng c ca phn mm. Con ngi khng th khng mc sai lm, v phn mm m khng c kim tra s lm vic khng hiu qu. Thng thng, c t 20 n 50 li trn 1000 dng lnh c tm thy trong sut qu trnh pht trin, v vn cn t 1.5 n 4 li trn 1000 dng lnh sau khi kim th h thng [1]. Mi li ny u c th dn ti li tng th hay khng ng vi c t yu cu. Mc ch ca kim th phn mm l lm gim li phn mm xung mc c th chp nhn c, tu thuc vo mc phc tp ca d n. Chnh v vy, 10
kim th phn mm c vai tr v cng quan trng trong ton b quy trnh pht trin phn mm, v trong cng nghip phn mm hin nay, n ang thu ht s quan tm ca nhiu nh nghin cu. Trong quy trnh pht trin phn mm hin i c giai on kim th phn mm dng kim tra tnh ng n ca phn mm. Mc tiu chnh ca nhm pht trin phn mm l phi lm sao to ra c nhng sn phm phn mm c cht lng tt nht.Vic vit tp hp cc ca kim th (test cases) l mt phn quan trng khng th thiu trong phng php pht trin phn mm linh hot. Tp hp cc ca kim th ng n gip chng ta gim thiu ti a cc li, gim thi gian tm kim li, to ra c cc phn mm tt, tnh n nh cao. Mt cch l tng th ngi kim tra (tester) phi kim tra tt c cc gi tr ca bin u vo, tuy nhin iu ny l khng tng bi v thng th min gi tr ca bin u vo l rt ln, thm ch gn nh di v hn hoc v hn. Do ngi kim tra khng th km tra c tt c mi gi tr, mi trng hp m ch kim tra mt s trng hp i din m thi. Nh vy lun xut hin cu hi: xy dng nhng ca kim th no l hp l ? Bao gi c th ngng kim tra? Cc ca kim th to ra liu c tt hay khng? Gi tr c chn xy dng ca kim th l nhng gi tr no?... nhm gii p cc thc mc ny v xy dng ln cc ca kim th tt, trong ti liu ny chng ti s phn tch mt s xut c a ra nhm nh gi cht lng ca mt ca kim th: phn tch bao ph code (code coverage analysis), kim tra cc im c bit (particular point) c th l phn tch nh gi gi tr ti v tr bin.
bin ca cc vng. Trong ti liu ny cng s tin hnh phn tch nh gi cc gi tr bin s dng trong cc ca kim th. a ra cc gi tr bin xut cn phi c kim tra m bo phn mm vn hot ng tt v n nh trn cc gi tr . Lung chng trnh t input n output c cc cch i khc nhau ch yu c da vo cc cu lnh iu khin trong m ngun, chng ti s tin hnh ci t mt chng trnh tm kim cu lnh iu khin trong file m ngun java v xut ra gi tr bin trong cu lnh iu khin c cha ton t so snh. Tm li bi ton a ra y l lm sao xy dng c ca kim th tt, cc li lp trnh thng xy ra cc im bin ca di gi tr u vo, vy th ca kim th thit k kim tra gi tr bin l g? Gii quyt bi ton ny chng ti s phn tch k thut bao ph code v k thut phn tch gi tr bin, sau cng l ci t chng trnh tm kim cu lnh iu khin ca m file m ngun java, xut ra gi tr bin trong .
nhnh, chng ti s ci t mt chng trnh n gin gip xut ra ton b cu lnh r nhnh v gi tr bin trong cc biu thc iu kin trong file ngun cn kim tra. File ngun u vo c l file java. Chng 7 kt lun v kho lun v hng nghin cu tip theo.
13
Nhn chung bao ph code theo nguyn tc 80 20. Tng gi tr bao ph s dn tr ln kh khn, vi vic thc hin cc kim tra mi s cng ngy cng t lm tng gi tr 14
bao ph. Nu ta tun theo cc nguyn tc lp trnh, cc iu kin li thng s c kim tra nhiu cp trong phn mm ca ta, c nhng dng code c th rt kh t ti cc mc kim tra thc t. o bao ph khng phi l vic thay th bng code tt v phong cch lp trnh hay.
2.4.3 Bao ph code T nhng c im v k thut kim th hp en v kim th hp trng nh trn ta c th ni bao ph code l mt phng php kim th hp trng, bao ph code cn phi hiu v m ngun, c th truy cp vo m ngun hn l n gin s dng cc giao din c cung cp. C th ni bao ph code l phng php hu ch nht trong sut giai on kim th m un (module), tuy nhin n cng c nhng li ch trong kim th tch hp v trong cc ln kim th khc na, ph thuc vo chng ta kim tra ci g v kim tra nh th no. Kim th quy thng l kim th hp en do c th khng ph hp vi bao ph code.
16
mt ca kim th m a > b c th mang c hai gi tr, chng hn nu cu lnh ny nm trong mt vng lp th c th trong mt ln lp no ta c a > b mang gi tr true, nhng ln lp sau th a > b mang gi tr false.Cng thc tnh phn trm nhnh c bao ph [6]: S nhnh c thc thi Phn trm nhnh c bao ph = Tng s nhnh trong chng trnh *100%
18
public static void main (String [] args) { StatementCoverage hi=new StatementCoverage(); hi.FunctionPrint(); } } Trong chng trnh m ngun trn ta nhn thy c : o S lp : 1 lp (lp StatementCoverage). o S phng thc : 3 phng thc : Main() FunctionPrint() Println() o S dng lnh : 6 dng. S dng cng c EMMA (open source) o bao ph dng lnh,(phn gii thiu v cch ci t cng c EMMA s c gii thiu phn ph lc) kim tra cc dng m ngun c thc thi ta c bo co kt xut nh sau :
20
Kt qu kt xut trn thng bo c s gi c tm thy l mt, tng s lp c trong chng trnh l mt, tng s phng thc trong lp l ba, tng s file thc thi l mt v tng s dng thc thi l su. Vi kt qu bo co nh trn ta nhn thy 100% m ngun c thc thi. Tuy nhin bao ph dng lnh c nhc im l khng th nhn ra cc li xy ra t cu trc lung iu khin trong m ngun nh l khi ghp cc iu kin hay cc nhn switch lin tip. iu ny c ngha l bo co bao ph ca ta vn s kt sut ra kt qu bo co l 100% code c bao ph nhng thc t th cc li khng c bt. V d ta xt hm returnInput() sau: public int returnInput(int x, boolean condition1, boolean condition2, boolean condition3) { if (condition1) x++; if(condition2) x--; if(condition3) x=x; return x; } Trong phng thc returnInput() trn c 7 cu lnh trong n. Kt qu mong mun l gi tr u ra bng vi gi tr u vo. Ta s kim tra hot ng ca hm trn bng cch thit lp ca kim th vi cc gi tr truyn vo hm : int x=1; boolean condition1=true; boolean condition2=true; boolean condition3=true; Chng trnh m ngun y : public class Path { public int returnInput(int x, boolean condition1, boolean condition2, boolean condition3)
21
{if (condition1) x++; if(condition2) x--; if(condition3) x=x; return x; } public static void main (String [] args) {int x=0; boolean condition1=true; boolean condition2=true; boolean condition3=true; Path constructorInstance=new Path(); int methodReturn=constructorInstance.returnInput condition2,condition3); } } (x,condition1,
Kim tra cc cu lnh c thc thi ta c c kt qu bo co: tng s gi l 1, tng s lp l 1, tng s file l 1, tng s phng thc l 3, tng s dng thc thi l 16. Minh ho kt qu bo co bao ph cu lnh nh sau.
22
Hnh 2 : Kt qu o bao ph dng lnh Kt qu nhn c l chng trnh c bao ph 100% nhng thc t r rng c mt li trong hm returnInput(). Nu ta nh gi nhnh u tin hoc nhnh th hai l true th kt qu tr li ca hm khng nh mong mun, gi tr tr li khng bng vi gi tr u vo. Li ny tht nguy him, nu ngi qun l xem kt qu bao ph 100%, quyt nh vic test hon thnh th sn phm pht hnh s c li. Nh vy c th ni bao ph dng lnh khng bo co v cc vng lp ti cc iu kin lp, n ch bo co phn thn ca vng lp c c thc thi hay khng. Vi ngn ng C, C++ v Java th hn ch ny nh hng ti cc vng lp. i vi vng lp dowhile khi lnh sau do c thc hin t nht mt ln, bao ph dng lnh xem chng ging vi cc cu lnh khng r nhnh. Bao ph cu lnh khng th phn bit cc nhn switch lin tip[6]. Nhn chung cc ca kim th tng thch vi cc nhnh hn l vi cc cu lnh. Ta s khng th to ra 10 ca kim th ring bit cho 10 cu lnh khng r nhnh m ta s to ra mt ca kim tra chng. V d : xem xt cu lnh if-else. C mt cu lnh theo sau mnh if v c 99 cu lnh theo sau mnh else. Sau khi p dng mt trong hai ng i c th, bao ph cu lnh cho ta kt qu bao ph hoc 1% hoc l 99 %. Bao ph cu khi lnh thng l i vn ny. Trc nhng hn ch ca bao ph cu lnh ta c th tm n mt k thut bao ph khc tt hn l bao ph nhnh.
x++; if(condition2) x--; if(condition3) x =x; return x; } } Trong v d ny ta s c 7 nhnh: 3 nhnh true, 3 nhnh false v mt nhnh entry. Nhn thy rng bao ph 7 nhnh ny ta ch cn n 2 test case nh sau : Test case 1 : public void testReturnInputIntBooleanBooleanBoolean_Path1(){ int x=0; boolean condition1=true; boolean condition2=true; boolean condition3=true; Path contructorInstance=new Path(); Int methodReturn= constructorInstance.returnInput(x, condition1, condition2,condition3); } Test case 2 : public void testReturnInputIntBooleanBooleanBoolean_Path2(){ int x=0; boolean condition1=false; boolean condition2=false; boolean condition3=false; Path contructorInstance=new Path(); int methodReturn= constructorInstance.returnInput(x, condition1, condition2,condition3); } 24
Bin dch chng trnh y kim tra vi test case 1 public class Path { public int returnInput(int x, boolean condition1, boolean condition2, boolean condition3) { if(condition1) x++; if(condition2) x--; if(condition3) x=x; return x; } public static void main(String []args) { int x=0; boolean condition1=true; boolean condition2=true; boolean condition3=true; Path constructorInstance=new Path(); int methodReturn= constructorInstance.returnInput(x, condition1, condition2,condition3); System.out.println("Ket qua mong doi : output value = input value"); System.out.println("output value :"+methodReturn);} } Kt qu test 1:
Hnh 3 : Kt qu thc hin test case 1 Cho chy qua cng c o bao ph ta c kt qu 25
Hnh 4 : Kt qu o bao ph nhnh khi thc hin test case 1 Bin dch v chy chng trnh y vi test case 2 public class Path { public int returnInput(int x, boolean condition1, boolean condition2, boolean condition3) { if(condition1) x++; if(condition2) x--; if(condition3) x=x; return x; } public static void main(String []args) { System.out.println("Test case : false-false-false"); System.out.println("Cac cau lenh trong cac dieu kien se khong duoc thuc thi"); int x=0; 26
boolean condition1=false; boolean condition2=false; boolean condition3=false; Path constructorInstance=new Path(); int methodReturn= constructorInstance.returnInput(x, condition1, condition2,condition3); System.out.println("Ket qua mong doi : output value = input value"); System.out.println("output value :"+methodReturn); } } Kt qu test 2:
Hnh 5 : Kt qu khi thc hin test case 2 Cho chy qua cng c bao ph ta c kt qu :
Hnh 6 : Kt qu o bao ph nhnh khi thc hin test case 2 Vi 2 test case nh trn thm nh c yu cu gi tr output bng vi gi tr input v 100% nhnh c bao ph. Nhng d dng nhn thy ngay c khi 100% nhnh c bao ph th chng trnh vn c li c tm ra. Trong v d va cp, ta khng kim tra cc trng hp : TRUE-FALSE-TRUE hay FALSE-TRUE-TRUEVi 3 quyt nh trong mt phng thc nh trn ta s c 2^3=8 quyt nh. Kim tra 8 cch i l mt iu d dng, nhng c nhng phng thc c rt nhiu quyt nh th s ng i s tng theo hm m. V d mt phng thc c ti 10 quyt nh kiu boolean nh vy 27
ta s c 210=1024 cch i. Lc ny t c mc tiu bao ph 100% cu lnh v 100% nhnh l iu v cng kh khn v khng kh thi cho nhng phng thc phc tp[11].
ng c lp nhau. thc hin cng vic ny ta s chn bt k ng u tin lm ng c s v sau s lt cc quyt nh mt ln cho ti khi ta c cc ng thit lp c s. Path 1: Chn cc gi tr true cho cc quyt nh, biu din l TTT. y l ng u tin trong thit lp c s ca ta. Path 2 : Ta s tm ng c s tip theo, lt quyt nh u tin trong ng c s, em li gi tr FTT, gi tr ta mong mun quyt nh tc ng. Path 3 : Lt quyt nh th 2 trong ng c s, em li cho ta gi tr TFT Path 4 : Cui cng, lt quyt nh th 3 trong ng c s, ta c ng th 4 vi gi tr TTF. Vy c 4 ng l : TTT, FTT,TFT v TTF. Tip theo y ta s xy dng cc ca kim th v xem iu g xy ra. Hai ng i TTT v FFF c kim tra trong bao ph nhnh.Tin hnh kim tra ng i FTT v TFT: Test case 3: Kim tra FTT. Thc thi on code sau : public class Path { public int returnInput(int x, boolean condition1, boolean condition2, boolean condition3) { if(condition1) x++; if(condition2) x--; if(condition3) x=x; return x; } public static void main(String []args) { System.out.println("Test case : false-true-true"); System.out.println("Cac cau lenh trong cac dieu kien 1 se khong duoc thuc thi"); int x=0; boolean condition1=false; boolean condition2=true; 29
boolean condition3=true; Path constructorInstance=new Path(); int methodReturn= constructorInstance.returnInput(x, condition1, condition2,condition3); System.out.println("Ket qua mong doi : output value = input value"); System.out.println("output value :"+methodReturn); } } Kt qu :
Hnh 8 : Kt qu o bao ph khi thc hin test case 3 Test case 4 : Kim tra TFT.Thc thi on code sau : public class Path { public int returnInput(int x, boolean condition1, boolean condition2, boolean condition3) { if(condition1) x++; 30
if(condition2) x--; if(condition3) x=x; return x; } public static void main(String []args) { System.out.println("Test case : true-false-true"); System.out.println("Cac cau lenh trong cac dieu kien 2 se khong duoc thuc thi"); int x=0; boolean condition1=false; boolean condition2=true; boolean condition3=true; Path constructorInstance=new Path(); int methodReturn= condition1,condition2,condition3); constructorInstance.returnInput(x,
System.out.println("Ket qua mong doi : output value = input value"); System.out.println("output value :"+methodReturn);} } Kt qu :
31
Hnh 10 : Kt qu o bao ph khi thc hin test case 4 Vi kt qu ca test case 3 v 4 ta nhn c li chng trnh, cc li ny khng nhn ra trong bao ph cu lnh v bao ph nhnh. Kt qu mong i ca chng trnh l gi tr u vo v gi tr u ra phi bng nhau. y gi tr u vo l 0 nhng ta nhn c gi tr u ra l +1 v -1, vy l li c tm ra. Tng s ng c s s tng theo s quyt nh nhng lc ny khng tng theo hm m m vn m bo c yu cu bao ph y cc nhnh. Ta nhn thy rng bao ph ng i bao gm c bao ph cu lnh v bao ph nhnh trong phng thc. N tc ng gp ln c bao ph nhnh v bao ph cu lnh. Ta lun nh rng, mc ch kim tra ca cc ng c s l kim tra tt c cc nhnh tc ng c lp vi nhau. Kim tra 4 ng c s nhm t c mc ch ny. Ta c th xy dng cc ng i hon ton khc na, nu ta bt u vi ng c s FFF sau tin hnh flips nh lm trn ta s thit lp c 4 ng c s hon ton khc l : FFF, TFF, FTF,FFT. Kt qu ca b 4 ng mi ny vi b 4 ng trn l nh nhau, u tho mn tiu chun tc ng c lp ln cc quyt nh. Qua y d dng nhn thy vi Cyclomatic complexity (s ng c lp tuyn tnh i qua m ngun) gip ta gim mt na s test case cn tin hnh.
32
ch cn xy dng mt ca kim th i din. Gi tr bn trong mt vng d liu c xem l tng ng do s ca kim th s gim xung. Di d liu u vo bao gm di hp l v di khng hp l. Ta c v d : truyn tham s thng cho ngy. Trong v d ny ta c cc di gi tr hp l v khng hp l nh sau: Di gi tr hp l cho thng l t 1 n 12 tng ng t thng 1 n thng 12, c hai di gi tr khng hp l l nh hn hoc bng 0 v ln hn hoc bng 13. Vi 3 di d liu ny s c 3 ca kim th c d xut tng ng vi 3 di. Phn hoch tng ng khng n thun l phng php xc nh cc ca kim th mt cc y . Kt hp vi phn tch cc gi tr bin gii gia cc vng, ta s thm vo cc ca kim th gi tr bin, t tm ra cc ca kim th hiu qu nht cho tng vng[12].
Xem xt gi tr u vo ch ra gi tr bin. Tt c cc gi tr bin ny s c kt hp cht ch trong vic thit lp cc ca kim th. Nhng gi tr gn bin s c thm vo v s c s dng kim tra. Gi tr gn bin s tr gip kim sot logic cc ng bin ca chng trnh. V d khi kim tra di gi tr trong mt nhnh hoc cu lnh lp ngi pht trin c th s dng ton t nh hn (<), ton t nh hn hoc bng (), ton t ln hn (>). Cc on code c bin dch nhng chy khng chnh xc vi cc iu kin s dn n li. Cc gi tr gn gi tr bin phi c trong cc ca kim th kim tra cc loi li ny [4].Trong cc ca kim th thm vo ng bin cc gi tr gn bin, qu trnh phn tch gi tr bin baseline s gm mt vi gi tr u vo tn ti trn danh ngha. V d sau s minh ho cho qu trnh phn tch gi tr bin baseline: Xem xt chng trnh vi mt gi tr u vo N, di gi tr ca N l : a N c. Cc ca kim th c chn trong tp hp gi tr baseline ={a, a+, b, c-, c}. a+ l gi tr ln hn a, c- l gi tr nh hn c v b l mt gi tr tn ti trn danh ngha, b nm trong khong a+ v c-. Trong v d ny, qu trnh phn tch gi tr bin baseline s ch ra nm ca kim th. Minh ho bng hnh bn di.
baseline Hnh 11 : Tp hp cc gi tr bin baseline cho n bin trn mt khong u vo Nu nh qun l li l mt vic then cht sau khi kim tra phn mm th cn phi tng thm cc ca kim th kim tra mt cch mnh m thng qua qu trnh phn tch gi tr bin baseline, cn thm vo cc gi tr bn ngoi di cho php. Cc ca kim tra baseline c ch ra trn s c thm vo gi tr {a-,c+}, gi tr a- l gi tr bn di gi tr chp nhn a v c+ l gi tr ngay trn gi tr chp nhn c. C hai gi tr {a-,c+} dng trong cc ca kim th cn phi c thc thi x l trng hp ngoi l hoc che du khuyt im code. Quay tr li vi v d trn gi tr u vo n lc ny s gm by gi tr ht sc mnh m: robust={a-, a, a+, b, c-, c, c+}. Minh ho bng hnh bn di :
baseline
robust
35
Qu trnh phn tch gi tr bin baseline hay qu trnh phn tch bin rubust u c th c p dng cho gi tr u vo c nhiu di gi tr. Xem xt bin u vo n M vi hai di gi tr con lin nhau, di 1 c l d M < f v di 2 l f M h. Thit lp cc ca kim th lc ny l kt hp tt c cc ca kim th c ch ra khi cch p dng qu trnh phn tch gi tr bin i vi tng di gi tr ring l. Do vy kt hp kt qu tt c cc ca kim th p dng cho tng di ring r ta c : Mbaseline= {d, d+, e, f-, f} {f, f+, g, h-, h} = {d, d+, e, f-, f, f+, g, h-, h} p dng phn tch gi tr bin robust lm M baseline tng thm cc gi tr {d-, h+} mang li kt qu Mrobust = {d-, d, d+, e, f-, f, f+, g, h-, h, h+} c minh ho bng hnh bn di
baseline
robust augmentation
Hnh 13 : Tp hp cc gi tr baseline v rubust trng hp n bin trn hai khong u vo Thm vo nhiu di gi tr con hin nhin s lm tng s ca kim th. i vi hai di gi tr lin nhau ca mt bin u vo, phn tch gi tr bin baseline ch ra 9 ca kim th v phn tch gi tr bin rubust ch ra 11 ca kim th. 5.3.4 Phn tch gi tr bin a bin (Multi Variable BVA) i vi bi ton a bin qu trnh phn tch gi tr bin la chn ca kim th cn phi xem xt li c th xy ra, trong bi vit ny ta s cp n li ti bin vi a bin u vo l mt kiu li (ta s gi l multiple-fault). i vi kiu li multiple-fault [4] c cho rng nhiu li ng thi xy ra, do vy ta s thm vo cc ca kim th sot li trn ng thi nhiu bin. Ly ra t v d n bin trn, xt bi ton vi hai bin u vo N v M, vi di gi tr ca N: a N c v gi tr ca M tri di trn hai di, di #1:d M < f , di #2: f M h. Nh d tho lun trn, cc ca kim th n bin ch ra i vi N v M l : Nbaseline= {a, a+, b, c-, c} Mbaseline= {d, d+, e, f-, f, f+, g, h-, h} Cc ca kim th phn tch gi tr bin a bin s dng cch phn tch cc ng bin ca mt bin trong khi cc bin khc c gi l mt gi tr danh ngha. Hp tt c 36
cc ca kim th p dng cho tng bin u vo ta c tp cc ca kim th p dng cho a bin u vo. Trong v d trn ta s p dng cho tng bin u vo trn tng di gi tr con. Bi ton c hai gi tr u vo, cc ca kim th s gm cc cp gi tr u vo (m,n) trong n l thnh phn ca Nbaseline v m s l thnh phn ca Mbaseline . Quan st s di y :
Hnh 14 : Tp gi tr baseline v robust ca bin N trong trng hp hai bin u vo Trong hnh biu din trn ta biu din gi tr m thay i(m thay i trong min Mbaseline), ti di th nht (d m <f) m c biu din bng gi tr e, ti di th hai (f m h) m c biu din bng g, gi nguyn gi tr n, n c biu din bng gi tr b. Quan st s ta nhn thy c 9 ca kim th c ch ra, tng ng vi cc gi tr giao im ca ng thng qua b v giao vi cc ng trong min gi tr thay i ca m. Tip theo c nh gi tr m ti hai di gi tr, cho n thay i trong min Nbaseline, biu din n bng gi tr b, (a b c). Quan st s biu din di y :
37
Hnh 15 : Tp hp gi tr baseline v rubust trn hai khong ca bin M trong trng hp hai bin u vo Trong trng hp ny ta nhn c 10 ca kim th. Tng hp c 2 trng hp ta nhn c s sau :
Hnh 16 : Tng hp tt c cc gi tr ca hai bin N v M trn hai khong u vo Trng hp 1 cho ta 9 ca, trng hp 2 cho ta 10 ca, tng hp c 2 trng hp cho ta 19 ca, nhng ti cc v tr (e,b) v (g,b) c lp li 2 ln, nn tng c 2 trng hp ta c 17 ca kim th.
38
i vi vic kim tra mnh m (rubustness), p dng cch thc nh ta lm vi tng bin trc , kt qu c ch ra trong Mrubust v Nrubust. Lu rng trong qu trnh phn tch baseline vi tng bin th ng thi 6 gi tr rubust cng c ch ra (quan st trn hnh v). Nh vy n thi im ny ta c tng s 23 ca kim th tt c. Cc ca kim th trn di gi tr khng hp l cn phi c la chn kim sot ng thi vi c hai bin. Qu trnh phn tch gi tr bin multiple-fault s c bt u vi tp hp gi tr trong Mbaseline v Nbaseline trong trng hp cc ng bin khng c kim tra, cn trong trng hp vic kim tra cc ng bin c u tin cao th ta s s dng vi tp gi tr Mrubust v Nrubust . Tng ng vi hai trng hp va nu ta c c lng tch -cc (cartesian) Mbaselien x Nbaselien xc nh s ca kim th cho baseline multiple-fault, v tch cc Mrubust x Nrubust xc nh s ca kim th cho rubust multiple-fault. Vi hai tp gi tr M v N, tch -cc ca M v N c nh ngha l : M x N = {(m,n) | m M^n N} M x N l tp tt c cc cp phn t (m,n) c ly ra t tp M v tp N. Do , nu tp M c x phn t v tp N c y phn t, kt qu ca tp M x N s gm x * y phn t. Tr li bi ton v d, hnh di y s biu din tng hp cc ca kim th phn tch gi tr bin baseline v rubust c ch ra cho kiu li multiple-fault ca bi ton.
Hnh 17 : Tng hp ton b gi tr baseline, robust trng hp a bin u vo trn hai khong
39
S lng cc ca kim th tng ln ng k, 45 ca baseline c ch ra v trong trng hp xu nht (worst-case) c thm 32 ca rubust. Tng hp cc ca kim th cho bi ton 2 bin vi cc mc yu cu v tnh tin cy ta c bng nh sau :
Bng 1 : Tng hp cc ca kim th theo mc tin cy . Nhn thy rng, gi thuyt tnh hung bi ton c nhiu li ng thi xy ra cng mt lc dn n kh nhiu ca kim th, c bit nu nh bi ton xt trn nhiu di gi tr th s lng ca kim th tng ln l ng k. 5.3.5 Kt lun T nhng phn tch trnh by r rng phn tch gi tr im bin c nhiu u im qu trnh phn tch gi tr im bin ch ra cc kim tra l mt vic d s dng, thm ch c cc gi tr bin u vo cn c m t mt cch r rng trong ti liu yu cu. Vi phn tch gi tr bin, ta c th iu chnh s ca kim th do ti nguyn c s dng cho nghin cu cn ph thuc vo i hi v tnh cht mnh ca phn mm. Phn tch gi tr bin c li cho s bt u cc k thut kim th khc. Ti liu tho lun v phn tch gi tr bin thng ho ln v c lin h vi k thut kim th hp en phn hoch tng ng. Tuy nhin phn tch gi tr im bin c th nh hng ti vic nhn ra cc li. So vi vic kim tra gi tr ngu nhin v gi tr phn hoch tng ng th phn tch gi tr bin c s ln kim tra nhiu hn 6 ln so vi kim tra ngu nhin v gp 2 ln so vi kim tra theo phn hoch tng ng. Gi c kim tra cng tng theo s ca kim th. K thut phn tch gi tr bin cung cp mt qu trnh c h thng cho vic nh gi mc hon thnh v cht lng ca sn phm phn mm. i khi bng cch phn tch gi tr bin ta c th tm ra cc ca kim th d tha trong tp hp ca kim th c ch ra. Phn tch gi tr bin cung cp nn tng c bn cho vic hc cc k thut khc, c th l k thut phn hoch tng ng, trong vic ch ra li phn tch gi tr bin c hiu qu nh mt k thut kim tra chc nng.
40
Hnh 18 : V d cu trc mt chng trnh n gin Khi chy cc unit test ta mong mun kim tra c tt c cc cng vic trong cc khi lnh trong chng trnh. C th trong v d ang xt cn phi kim tra vic thc hin ca cc khi lnh A, B, C xy ra theo ng iu kin, khi lnh trong tng cng vic phi hot ng ng. Hnh v sau m t ni bt cc cng vic cn phi kim tra.
41
Hnh 19 : Cc cng vic cn thc hin (t m) 6.1.1 Xy dng cc ca kim th cho chng trnh trn Da vo cu trc ca chng trnh ngun nh trn xut cc ca kim th kim tra code trong tng nhnh c c thc thi hay khng. Test case 1 :Cng vic A c thc hin khi iu kin mt true do kim tra vic thc thi cng vic A chng ta cn gn sao cho iu kin mt true.
Hnh 20 : Test case 1 kim tra cng vic A Test case 2 :Khi iu kin mt false cu lnh r nhnh s thc hin cng vic trong khi lnh B. kim tra vic thc thi cng vic B ta cn gn cho iu kin mt l false
Hnh 21 : Test case 2 kim tra cng vic B Tng hp li i vi iu kin mt ta s c hai ca kim th kim tra 42
Testcase #1: Condition-1 l true. Testcase #2: Condition-1 l false Test case 3 :Xt n iu kin hai.Khi iu kin hai l true th khi lnh C s c thc hin. Do kim tra vic thc thi cng vic C ta s gn cho iu kin 2 l true.
Hnh 22 : Test case 3 kim tra cng vic C Testcase #3: condition-2 l true. kim tra cc cng vic A, B, C ba test case c xut. Tuy nhin c th d dng nhn thy iu kin 1 v l 2 b phn c lp nhau.
Hnh 23 : Hai iu kin mt v hai l c lp nhau Do bao ph ton b 3 cng vic ny ta ch cn dng n 2 test case l 100% cu lnh c bao ph. Test case 1 kim tra ng thi cng vic A v cng vic C
43
Hnh 24 : Kim tra ng thi cng vic A v cng vic C trong cng 1 test case Test case 2 kim tra cng vic B v cng vic C:
Hnh 25 : Test case kim tra ng thi cng vic B v C Test case #1 #2 Condition - 1 TRUE FALSE Condition-2 TRUE TRUE
Thit k 2 test case nh trn th 100% cu lnh c kim tra. Mc d bao ph 100% nhng c mt iu kin khng c bao ph v mt nhnh khng c bao ph. C th l trong iu kin th 2 iu kin false khng c bao ph. V nhnh khng c bao ph l :
44
Hnh 26 : Nhnh khng c bao ph Thay mt iu kin ca condition-2 l false ta c bng tng hp cc gi tr dng trong cc ca kim th nh sau: Test case #1 #2 Condition-1 TRUE FALSE Condition-2 TRUE FALSE
Nu xem nh cc biu thc trong cc iu kin ca ta l cc biu thc boolean nguyn t (tc l khng cha cc php ton logic nh and, or, xor) th lc ny ta nhn thy l ton b nhnh v ton b iu kin c bao ph. Tuy nhin mc d 100% cu lnh v 100% nhnh c bao ph th vn c li c tm ra. Chng ta mi bao ph c 2 ng i, vi 2 gi tr true false ca hai iu kin. T hp cc iu kin vi nhau ta c 4 cch i c th do s c 4 ca kim th c xut nh sau : Test case #1 #2 #3 #4 6.1.2 Kt lun Condition-1 TRUE FALSE TRUE FALSE Condition-2 TRUE FALSE FALSE TRUE
45
Nh vy da vo vic phn tch tng mc bao ph : bao ph dng lnh, bao ph nhnh, bao ph ng i ta thit k c mt b test case hon chnh, m bo tt c cc cu lnh c kim tra, cc nhnh, cc ng i c th u c bao ph.
s th t ca cu lnh. Chng trnh s xut ra cu lnh m ngi dng chn. Ch ra gi tr bin trong di gi tr u vo. 6.2.3 Biu trnh t Vi cc chc nng lit k trn trnh t tng tc gia ngi dng v h thng nh sau. Biu trnh t di y m t tng tc ca ngi dng mun tm ra ton b cu lnh iu khin c trong file ngun java, m tng loi cu lnh iu khin.
Hnh 27. Biu trnh t Biu trnh t di y th hin tng tc gia ngi dng v h thng khi ngi dng mun thao tc trn tng cu lnh if ch ra gi tr bin ca chnh cu lnh
47
Hnh 28: Biu trnh t khi tng tc cu lnh if Biu trnh t di y th hin tng tc gia ngi dng v h thng khi ngi dng mun thao tc trn cu lnh while v xut ra gi tr bin ca chnh cu lnh .
Biu trnh t di y th hin tng tc gia ngi dng v h thng khi ngi dng mun thao tc trn cu lnh for v xut ra gi tr bin ca chnh cu lnh
Hnh 30: Biu trnh t khi tng tc cu lnh for 6.2.4 Thut ton s dng Ci t chng trnh thc hin nhng chc nng trn ch yu dng kin thc v java core. S dng cc thuc tnh v cc phng thc ca lp vo ra chun (java.io.*;) l lp (java.lang.String;). Khi ngi dng nhp vo tn file cn c, mt i tng BufferedReader c khi to lu tn file nhp vo. Yu cu nh dng ca file nhp vo phi l file *.java. Kim tra phn m rng ca file dng hm: object. endsWith(.java) Yu cu tip theo ngi dng cn nhp vo tn file s lu ton b cc cu lnh iu khin ca file cn c. i tng BufferedReader lu tn file nhp vo hm createNewFile () to file vi tn va nhp s dng boolean exist=fout.createNewFile() kim tra tn file va nhp vo tn ti hay cha. 49
c file : s dng cc lp FileInputStream, DataInputStream v BufferedReader. Chng ti s tin hnh c tng dng trong file s dng hm readLine(). Duyt ton b file cho ti khi gp dng rng (null). Khi c tng dng s tin hnh c tng k t lu vo mt mng kiu char (mng token[]). Cu lnh r nhnh if s c dng if(biu thc logic boolean). Chng ti s tin hnh so snh phn t th (i) trong mng char token[], nu nh token[i] = = i v token[i+1]= = f th s thc hin vng lp in c cu lnh if ra file lu tr. lm c iu ny chng ti s dng hm charAt(i) chuyn phn t th (i) thnh kiu char, dng i tng thuc lp BufferedWriter ghi ra file lu tr.Vic tm kim cu lnh while v for cng tng t nh thc hin vi cu lnh if. i vi cu lnh while tin hnh so snh nu tt c cc phn t c dng sau s in ra cu lnh while: token[i]= = w token[i+1]= = h token[i+2]= = i token[i+3]= = l token[i+4]= = e Mt dng lnh l cu lnh for th cc phn t trong dng ang c phi c dng nh sau : token[i]= = f token[i+1]= = o token[i+2]= = r Khai bo cc bin m count_if, count_while, count_for, mi ln mt cu lnh iu khin c tm thy cc bin m ny s c tng ln mt theo ng loi cu if hay while hay for. Ngi dng mun tip tc thao tc. Cn phi nhp vo Yes, mun thot phi nhp vo No. Nu xu nhp vo l Yes s thc thi khi lnh tip theo: hi ngi dng la chn loi cu lnh iu khin s thao tc. Nu ngi dng mun thao tc cu lnh if th nhp vo if , khi mun thao tc trn while nhp vo while v nu l for th cn nhp vo for. bit ngi dng nhp vo nhng la chn no s dng n i tng lp BufferedReader c, hm so snh xu equals(String object) . Ngi dng chn cu lnh mun thao tc bng cch nhp vo mt s nguyn (kiu int). ly ra ng cu lnh
50
l s th t m ngi dng va nhp s phi dng n i tng kiu LineNumberReader v gi n hm getLineNumber(). Gi tr bin trong cc di gi tr ca bin lun nm ng sau cc ton t so snh >, >=, <, <= do thut ton ly ra cc gi tr bin trong cc cu lnh iu khin s l tin hnh c qua file, c tng dng mt, xt cu lnh c phi l cu lnh iu khin hay khng, nu l cu lnh iu khin s ly ra xu ng sau cc ton t so snh trn. Duyt qua file v c tng k t v cch lm tng t nh lm trn. 6.2.5 Cc lp ci t Ci t lp ly tn file cn c do ngi dng nhp vo
Hnh 31: Kin trc lp ci t Get_File_Name Ci t lp ReadContenFile thc thi cc chc nng ca chng trnh
Hnh 32: Kin trc lp ReadContentFile. 6.2.5 Kt qu thao tc cc chc nng gia ngi dng v chng trnh nh sau 51
Hnh 33: Giao din yu cu nhp tn file cn c Nhp vo mt file khng phi l nh dng *.java, h thng s xut ra thng bo This is not a java file y khng phi l mt file java.
Hnh 34: Nhp tn file khng ng nh dng *.java Nhp vo mt tn file ng c, chng ti th nghim bng cch c file TestFile.java.
Hnh 35: Nhp vo mt tn file ng c Ni dung bn trong ca file s dng (file TestFile.java) nh sau
52
Sau khi nhp vo tn file cn c, h thng s yu cu nhp vo mt tn file lu ton b cu lnh iu khin ca file cn c. Kt qu sau khi tm kim cu lnh iu khin nh sau
Hnh 37: Kt qu tm kim cu lnh iu khin M file ghi cu lnh iu khin, ni dung file nh sau
Sau khi tm kim cu lnh iu khin, h thng s hi ngi dng c mun tip tc thao tc. tip tc thao tc ngi dng phi nhp vo Yes. C ba la chn cho ngi dng, nhp vo if thao tc vi cu lnh if, nhp vo while thao tc vi cu lnh while, nhp vo for thao tc vi cu lnh for. Nhp vo tn file lu ton b lnh iu khin chn. Sau ngi dng phi nhp vo mt s nguyn chn cu lnh cn thao tc. V d khi mun thao tc vi cu lnh if s 2 th s phi nhp vo 2. Kt qu khi ngi dng tip tc mun thao tc vi cu lnh if.
Hnh 39 : Kt qu khi ngi dng mun thao tc vi cu lnh if Trong tng tc trn, ngi dng chn cu lnh iu khin if thao tc, dng file if_save.txt lu ton b cu lnh if trong . Nhp vo s nguyn 2 thao tc vi cu lnh if s 2. H thng xut ra ni dung ca cu lnh l if(a>b). Gi tr bin c ch ra y l b. Cc thao tc cng lm tng t nh cu lnh if khi ngi dng mun thao tc trn lnh while. Kt qu khi ngi dng tip tc mun thao tc vi cu lnh while nh sau.
54
Hnh 40 : Kt qu khi ngi dng mun thao tc vi cu lnh while Trong tng tc trn ngi dng chn tng tc vi cu lnh while, dng file while_save.txt lu ton b cu lnh while, nhp vo s nguyn 3 thao tc vi cu lnh while s 3. Ni dung ca cu lnh while ny l while(a>b). Gi g bin c ch ra y l b. Cc thao tc cng lm tng t nh cu lnh if khi ngi dng mun thao tc trn lnh for. Kt qu khi ngi dng tip tc mun thao tc vi cu lnh for
Hnh 41 : Kt qu khi ngi dng mun thao tc vi cu lnh for Trong tng tc trn, ngi dng chn tng tc vi cu lnh for, dng file for_save.txt lu ton b cu lnh for, nhp vo s nguyn 2 thao tc vi cu lnh for s 2. Ni dung ca cu lnh for ny l for(int i=0;a>121313;i++). Gi tr bin c ch ra y l 121313.
55
6.3 Kt lun
Nh vy chng ti ci t thnh cng chng trnh tm kim ton b cu lnh iu khin trong mt file java bt k. Xut ra c gi tr bin trong cc biu thc nh gi ca di gi tr u vo. Danh sch nhng cu lnh iu khin ny s c dng vo mc ch to ra cc ca kim th nhm t ti mc tiu thit k cc ca kim th tt bao ph ti a m ngun. Ch ra gi tr bin gip cho ngi kim tra xut cc gi tr kim tra baseline v robust.
56
ng java. Bn cnh l xy dng chng trnh t ng tm ra gi tr bin ngu nhin dng trong cc ca kim th bin.
[1] Study of Average Error Rates for Censorware Programs Bennett Haselton. [2] Introduce to code coverage Lasse K oskela Accenture Technology Solutions -2004 [6] Statement Coverage & Decision Coverage Shailaja Kiran [7] Statement, Branch, and Path Coverage Testing in Java Joe Ponczak [4] A Review of Boundary Value Analysis Techniques Dr. David J. Coe, The University of Alabama in Huntsville [5] http:// www. Wikipedia. Org [6] Measuring the multiple-condition converage with test suites for AspectJ programs Arnold Zanderink [3] Beizer, B.(1990). Software Testing Techniques. Boston, International Thompson Comtuter Press. [4] Beizer, B.(1995). Black Box Testing. New York, John Wiley & Sons, Inc. IEEE(1987). ANSI/IEEE Standard 1008-1987, IEEE Standard for Software Unit Testing. IEEE (1990). IEEE Standard 610.12 1990. IEEE Standard Glossary of Software Engineering Terminology. [5] Kaner, C., J. Falk, et al. (1999). Testing Computer Software. New York, Weley Computer Publishing. [10] Testing via Boundary Value Analysis Craig Borysowich Chief Technology Tactician. [11] PathExpander: Architectural Support for Increasing the Path Coverage of Dynamic Bug Detection - Shan Lu, Pin Xhou, Wei Liu, Yuanyuan Zhou and Josep Torrellas Department of Computer Science. [12] Equivalence partitioning and Boundary Value Analysis IOTAP Quality Assurance Team.
59