You are on page 1of 57

KHOA CNG NGH THNG TIN I HC THI NGUYN

ti thc tp chuyn ngnh:

MC LC
MC LC...........................................................................................................2 DANH MC CC HNH...................................................................................4 LI NI U....................................................................................................5 TM TT NI DUNG.......................................................................................6 CHNG 1. TNG QUAN V KIM TH PHN MM...............................8 CHNG 2. THIT K TEST CASE...........................................................22 CHNG 3. P DNG....................................................................................43 KT LUN.......................................................................................................55 TI LIU THAM KHO.................................................................................56

THIT K TEST-CASE TRONG KIM TH PHN MM

Sinh vin thc hin : Phm Th Trang Lp : HCQ K4A

Gio vin hng dn : Nguyn Hng Tn B mn : Cng ngh phn mm

Thi Nguyn, thng 9 nm 2009 2

NHN XT CA GIO VIN HNG DN..............................................57

DANH MC CC HNH
Hnh 1.1 S cc cp kim th..................................................................12 Hnh 2.1 Mt chng trnh nh kim th .....................................................24 Hnh 2.2 M my cho chng trnh trong Hnh 2.1...........................................28 Hnh 2.3 Mt mu cho vic lit k cc lp tng ng...................................32 Hnh 2.4 Cc k hiu th nguyn nhn kt qu c bn...............................36 Hnh 2.5 Cc k hiu rng buc.........................................................................37 Hnh 2.6 Nhng xem xt c s dng khi d theo th................................39 Hnh 3.1 th nguyn nhn kt qu:.............................................................46 Hnh 3.2 Bng quyt nh...................................................................................46

LI NI U
Trong ngnh k ngh phn mm, nm 1979, c mt quy tc ni ting l: Trong mt d n lp trnh in hnh, th xp x 50% thi gian v hn 50% tng chi ph c s dng trong kim th cc chng trnh hay h thng c pht trin. V cho n nay, sau gn mt phn 3 th k, quy tc vn cn ng. c rt nhiu ngn ng, h thng pht trin mi vi cc cng c tch hp cho cc lp trnh vin s dng pht trin ngy cng linh ng. Nhng kim th vn ng vai tr ht sc quan trng trong bt k d n pht trin phn mm no. Rt nhiu cc gio s, ging vin tng than phin rng: Sinh vin ca chng ta tt nghip v i lm m khng c c nhng kin thc thc t cn thit v cch kim th mt chng trnh. Hn na, chng ta him khi c c nhng li khuyn b ch cung cp trong cc kha hc m u v cch mt sinh vin nn lm v kim th v g li cc bi tp ca h. Cc tc gi ca cun sch ni ting The Art of Software Testing Ngh thut kim th phn mm, Glenford J. Myers, Tom Badgett, Todd M. Thomas, Corey Sandler khng nh trong cun sch ca mnh rng: Hu ht cc thnh phn quan trng trong cc th thut ca mt nh kim th chng trnh l kin thc v cch vit cc ca kim th c hiu qu. Vic xy dng cc test case l mt nhim v rt kh khn. c th xy dng c tp cc test case hu ch cho kim th, chng ta cn rt nhiu kin thc v kinh nghim. l nhng l do thc y em thc hin ti ny. Mc ch ca ti l tm hiu nhng kin thc tng quan nht v kim th, v cch thit k test case trong kim th phn mm. Vic thc hin ti s gip em tm hiu su hn v lnh vc rt hp dn ny, vn dng c cc kin thc hc c th thit k c cc test case mt cch c hiu qu v p dng vo nhng bi ton thc t. Bn bo co c hon thnh di s ch bo tn tnh ca thy gio, ThS Nguyn Hng Tn, s gip nhit tnh ca cc thy c trong b mn Cng ngh 5

phn mm, v tt c cc bn. Em hi vng s nhn c s ng gp kin ca cc thy c v cc bn bn bo co c hon thin hn. Nhng ng gp s l kinh nghim qu bu cho em. V t , em c th tip tc pht trin ti ny cho t thc tp tt nghip v n tt nghip sp ti, cng nh cho cng vic trong tng lai. Em xin chn thnh cm n. Sinh vin Phm Th Trang

TM TT NI DUNG
Bn bo co c chia thnh 3 chng vi ni dung nh sau: Chng 1: Tng quan v kim th phn mm. Chng ny l ci nhn tng quan v kim th phn mm: cc khi nim c bn v kim th phn mm, cc quy tc trong kim th, v cc phng php kim th phn mm tiu biu. Chng 2: Thit k test case trong kim th phn mm. Trong chng ny, em i tm hiu cc phng php thit k test case c hiu qu. T rt ra nhn xt v u nhc im ca tng phng php. Chng 3: p dng. T nhng phng php thit k test case tm hiu trong Chng 2, em p dng xy dng tp cc test case cho 6

mt bi ton c th : Thit k cc test case cho chng trnh Tam gic.

CHNG 1.

TNG QUAN V KIM TH PHN MM

1.1
1.1.1

Cc khi nim c bn v kim th phn mm


Kim th phn mm l g?
Kim th phn mm l qu trnh kho st mt h thng hay thnh phn di

nhng iu kin xc nh, quan st v ghi li cc kt qu, v nh gi mt kha cnh no ca h thng hay thnh phn . (Theo Bng ch gii thut ng chun IEEE ca Thut ng k ngh phn mm- IEEE Standard Glossary of Software Engineering Terminology). Kim th phn mm l qu trnh thc thi mt chng trnh vi mc ch tm li. (Theo The Art of Software Testing Ngh thut kim th phn mm). Kim th phn mm l hot ng kho st thc tin sn phm hay dch v phn mm trong ng mi trng chng d nh s c trin khai nhm cung cp cho ngi c li ch lin quan nhng thng tin v cht lng ca sn phm hay dch v phn mm y. Mc ch ca kim th phn mm l tm ra cc li hay khim khuyt phn mm nhm m bo hiu qu hot ng ti u ca phn mm trong nhiu ngnh khc nhau. (Theo Bch khoa ton th m Wikipedia). C th nh ngha mt cch d hiu nh sau: Kim th phn mm l mt tin trnh hay mt tp hp cc tin trnh c thit k m bo m ha my tnh thc hin theo ci m chng c thit k lm, v khng thc hin bt c th g khng mong mun. y l mt pha quan trng trong qu trnh pht trin h thng, gip cho ngi xy dng h thng v khch hng thy c h thng mi p ng yu cu t ra hay cha?

1.1.2

Cc phng php kim th


C 2 phng php kim th chnh l: Kim th tnh v Kim th ng.

1.1.2.1

Kim th tnh Static testing

L phng php th phn mm i hi phi duyt li cc yu cu v cc c t bng tay, thng qua vic s dng giy, bt kim tra logic, ln tng chi tit m khng cn chy chng trnh. Kiu kim th ny thng c s dng bi chuyn vin thit k ngi m vit m lnh mt mnh. Kim th tnh cng c th c t ng ha. N s thc hin kim tra ton b bao gm cc chng trnh c phn tch bi mt trnh thng dch hoc bin dch m xc nhn tnh hp l v c php ca chng trnh.

1.1.2.2

Kim th ng Dynamic testing

L phng php th phn mm thng qua vic dng my chy chng trnh iu tra trng thi tc ng ca chng trnh. l kim th da trn cc ca kim th xc nh bng s thc hin ca i tng kim th hay chy cc chng trnh. Kim th ng kim tra cch thc hot ng ng ca m lnh, tc l kim tra s phn ng vt l t h thng ti cc bin lun thay i theo thi gian. Trong kim th ng, phn mm phi thc s c bin dch v chy. Kim th ng thc s bao gm lm vic vi phn mm, nhp cc gi tr u vo v kim tra xem liu u ra c nh mong mun hay khng. Cc phng php kim th ng gm c kim th Unit Unit Tests, Kim th tch hp Intergration Tests, Kim th h thng System Tests, v Kim th chp nhn sn phm Acceptance Tests.

1.1.3

Cc chin lc kim th
Ba trong s nhng chin lc kim th thng dng nht bao gm: Kim th

hp en, Kim th hp trng, v Kim th hp xm. 9

1.1.3.1

Kim th hp en Black box testing

Mt trong nhng chin lc kim th quan trng l kim th hp en, hng d liu, hay hng vo/ra. Kim th hp en xem chng trnh nh l mt hp en. Mc ch ca bn l hon ton khng quan tm v cch c x v cu trc bn trong ca chng trnh. Thay vo , tp trung vo tm cc trng hp m chng trnh khng thc hin theo cc c t ca n. Theo hng tip cn ny, d liu kim tra c ly ch t cc c t.

Cc phng php kim th hp en


Phn lp tng ng Equivalence partitioning. Phn tch gi tr bin Boundary value analysis. Kim th mi cp All-pairs testing. Kim th fuzz Fuzz testing. Kim th da trn m hnh Model-based testing. Ma trn du vt Traceability matrix. Kim th thm d Exploratory testing. Kim th da trn c t Specification-base testing. Kim th da trn c t tp trung vo kim tra tnh thit thc ca phn mm theo nhng yu cu thch hp. Do , kim th vin nhp d liu vo, v ch thy d liu ra t i tng kim th. Mc kim th ny thng yu cu cc ca kim th trit c cung cp cho kim th vin m khi c th xc minh l i vi d liu u vo cho, gi tr u ra (hay cch thc hot ng) c ging vi gi tr mong mun c xc nh trong ca kim th hay khng. Kim th da trn c t l cn thit, nhng khng ngn chn nhng ri ro chc chn.

u, nhc im

10

Kim th hp en khng c mi lin quan no ti m lnh, v kim th vin ch rt n gin tm nim l: mt m lnh phi c li. S dng nguyn tc Hy i hi v bn s c nhn, nhng kim th vin hp en tm ra li m nhng lp trnh vin khng tm ra. Nhng, mt khc, ngi ta cng ni kim th hp en ging nh l i trong bng ti m khng c n vy, bi v kim th vin khng bit cc phn mm c kim tra thc s c xy dng nh th no. l l do m c nhiu trng hp m mt kim th vin hp en vit rt nhiu ca kim th kim tra mt th g m ng l c th ch cn kim tra bng 1 ca kim th duy nht, v/hoc mt s phn ca chng trnh khng c kim tra cht no. Do vy, kim th hp en c u im ca mt s nh gi khch quan, mt khc n li c nhc im ca thm d m.

1.1.3.2

Kim th hp trng White box testing

L mt chin lc kim th khc, tri ngc hon ton vi kim th hp en, kim th hp trng hay kim th hng logic cho php bn kho st cu trc bn trong ca chng trnh. Chin lc ny xut pht t d liu kim th bng s kim th tnh logic ca chng trnh. Kim th vin s truy cp vo cu trc d liu v gii thut bn trong chng trnh (v c m lnh thc hin chng).

Cc phng php kim th hp trng


Kim th giao din lp trnh ng dng - API testing (application programming interface): l phng php kim th ca ng dng s dng cc API cng khai v ring t. Bao ph m lnh Code coverage: to cc kim tra p ng mt s tiu chun v bao ph m lnh. Cc phng php gn li Fault injection. Cc phng php kim th hon chuyn Mutation testing methods.

11

Kim th tnh Static testing: kim th hp trng bao gm mi kim th tnh. Phng php kim th hp trng cng c th c s dng nh gi s hon thnh ca mt b kim th m c to cng vi cc phng php kim th hp en. iu ny cho php cc nhm phn mm kho st cc phn ca 1 h thng t khi c kim tra v m bo rng nhng im chc nng quan trng nht c kim tra.

1.1.3.3

Kim th hp xm Gray box testing

Kim th hp xm i hi phi c s truy cp ti cu trc d liu v gii thut bn trong cho nhng mc ch thit k cc ca kim th, nhng l kim th mc ngi s dng hay mc hp en. Vic thao tc ti d liu u vo v nh dng d liu u ra l khng r rng, ging nh mt chic hp xm, bi v u vo v u ra r rng l bn ngoi hp en m chng ta vn gi v h thng c kim tra. S khc bit ny c bit quan trng khi qun l kim th tch hp Intergartion testing gia 2 modun m lnh c vit bi hai chuyn vin thit k khc nhau, trong ch giao din l c a ra kim th. Kim th hp xm c th cng bao gm c thit k i chiu quyt nh, v d, gi tr bin hay thng bo li.

1.1.4

Cc cp kim th phn mm
Kim th phn mm gm c cc cp : Kim th n v, Kim th tch hp,

Kim th h thng v Kim th chp nhn sn phm.

Hnh 1.1

S cc cp kim th

12

1.1.4.1

Kim th n v Unit test

Mt n v l mt thnh phn phn mm nh nht m ta c th kim th c. V d, cc hm (Function), th tc (Procedure), lp (Class) hay phng thc (Method) u c th c xem l Unit. V Unit c chn kim tra thng c kch thc nh v chc nng hot ng n gin, chng ta khng kh khn g trong vic t chc kim th, ghi nhn v phn tch kt qu kim th. Nu pht hin li, vic xc nh nguyn nhn v khc phc cng tng i d dng v ch khoanh vng trong mt n th Unit ang kim tra. Mt nguyn l c kt t thc tin: thi gian tn cho Unit Test s c n b bng vic tit kim rt nhiu thi gian v chi ph cho vic kim th v sa li cc mc kim th sau . Unit Test thng do lp trnh vin thc hin. Cng on ny cn c thc hin cng sm cng tt trong giai on vit code v xuyn sut chu k pht trin phn mm. Thng thng, Unit Test i hi kim th vin c kin thc v thit k v code ca chng trnh. Mc ch ca Unit Test l bo m thng tin c x l v xut 13

(khi Unit) l chnh xc, trong mi tng quan vi d liu nhp v chc nng ca Unit. iu ny thng i hi tt c cc nhnh bn trong Unit u phi c kim tra pht hin nhnh pht sinh li. Mt nhnh thng l mt chui cc lnh c thc thi trong mt Unit. V d: chui cc lnh sau iu kin If v nm gia then ... else l mt nhnh. Thc t vic chn la cc nhnh n gin ha vic kim th v qut ht Unit i hi phi c k thut, i khi phi dng thut ton chn la. Cng vi cc mc kim th khc, Unit Test cng i hi phi chun b trc cc ca kim th (Test case) hoc kch bn kim th (Test script), trong ch nh r d liu u vo, cc bc thc hin v d liu u ra mong mun. Cc Test case v Test script ny nn c gi li ti s dng.

1.1.4.2

Kim th tch hp Intergration Test

Integration test kt hp cc thnh phn ca mt ng dng v kim th nh mt ng dng hon thnh. Trong khi Unit Test kim tra cc thnh phn v Unit ring l th Intgration Test kt hp chng li vi nhau v kim tra s giao tip gia chng. Hai mc tiu chnh ca Integration Test: Pht hin li giao tip xy ra gia cc Unit. Tch hp cc Unit n l thnh cc h thng nh (Subsystem) v cui cng l nguyn h thng hon chnh (System) chun b cho kim th mc h thng (System Test). Trong Unit Test, lp trnh vin c gng pht hin li lin quan n chc nng v cu trc ni ti ca Unit. C mt s php kim th n gin trn giao tip gia Unit vi cc thnh phn lin quan khc, tuy nhin mi giao tip lin quan n Unit ch tht s c kim tra y khi cc Unit tch hp vi nhau trong khi thc hin Integration Test. Tr mt s t ngoi l, Integration Test ch nn thc hin trn nhng Unit c kim tra cn thn trc bng Unit Test, v tt c cc li mc Unit c 14

sa cha. Mt s ngi hiu sai rng Unit mt khi qua giai on Unit Test vi cc giao tip gi lp th khng cn phi thc hin Integration Test na. Thc t vic tch hp gia cc Unit dn n nhng tnh hung hon ton khc. Mt chin lc cn quan tm trong Integration Test l nn tch hp dn tng Unit. Mt Unit ti mt thi im c tch hp vo mt nhm cc Unit khc tch hp trc v hon tt cc t Integration Test trc . Lc ny, ta ch cn kim th giao tip ca Unit mi thm vo vi h thng cc Unit tch hp trc , iu ny s lm cho s lng can kim th gim i rt nhiu, v sai st s gim ng k. C 4 loi kim th trong Integration Test: Kim th cu trc (Structure Test): Tng t White Box Test, kim th cu trc nhm bo m cc thnh phn bn trong ca mt chng trnh chy ng v ch trng n hot ng ca cc thnh phn cu trc ni ti ca chng trnh chng hn cc cu lnh v nhnh bn trong. Kim th chc nng (Functional Test): Tng t Black Box Test, kim th chc nng ch ch trng n chc nng ca chng trnh, m khng quan tm n cu trc bn trong, ch kho st chc nng ca chng trnh theo yu cu k thut. Kim th hiu nng (Performance Test): Kim th vic vn hnh ca h thng. Kim th kh nng chu ti (Stress Test): Kim th cc gii hn ca h thng.

1.1.4.3

Kim th h thng System Test

Mc ch System Test l kim th thit k v ton b h thng (sau khi tch hp) c tha mn yu cu t ra hay khng. System Test bt u khi tt c cc b phn ca phn mm c tch hp thnh cng. Thng thng loi kim th ny tn rt nhiu cng sc v thi gian. Trong nhiu trng hp, vic kim th i hi mt s thit b ph tr, phn mm 15

hoc phn cng c th, c bit l cc ng dng thi gian thc, h thng phn b, hoc h thng nhng. mc h thng, ngi kim th cng tm kim cc li, nhng trng tm l nh gi v hot ng, thao tc, s tin cy v cc yu cu khc lin quan n cht lng ca ton h thng. im khc nhau then cht gia Integration Test v System Test l System Test ch trng cc hnh vi v li trn ton h thng, cn Integration Test ch trng s giao tip gia cc n th hoc i tng khi chng lm vic cng nhau. Thng thng ta phi thc hin Unit Test v Integration Test bo m mi Unit v s tng tc gia chng hot ng chnh xc trc khi thc hin System Test. Sau khi hon thnh Integration Test, mt h thng phn mm c hnh thnh cng vi cc thnh phn c kim tra y . Ti thi im ny, lp trnh vin hoc kim th vin bt u kim th phn mm nh mt h thng hon chnh. Vic lp k hoch cho System Test nn bt u t giai on hnh thnh v phn tch cc yu cu. System Test kim th c cc hnh vi chc nng ca phn mm ln cc yu cu v cht lng nh tin cy, tnh tin li khi s dng, hiu nng v bo mt. Mc kim th ny c bit thch hp cho vic pht hin li giao tip vi phn mm hoc phn cng bn ngoi, chng hn cc li "tc nghn" (deadlock) hoc chim dng b nh. Sau giai on System Test, phn mm thng sn sng cho khch hng hoc ngi dng cui cng kim th chp nhn sn phm (Acceptance Test) hoc dng th (Alpha/Beta Test). i hi nhiu cng sc, thi gian v tnh chnh xc, khch quan, System Test thng c thc hin bi mt nhm kim th vin hon ton c lp vi nhm pht trin d n. Bn thn System Test li gm nhiu loi kim th khc nhau, ph bin nht gm: Kim th chc nng (Functional Test): Bo m cc hnh vi ca h thng tha mn ng yu cu thit k.

16

Kim th hiu nng (Performance Test): Bo m ti u vic phn b ti nguyn h thng (v d b nh) nhm t cc ch tiu nh thi gian x l hay p ng cu truy vn... Kim th kh nng chu ti (Stress Test hay Load Test): Bo m h thng vn hnh ng di p lc cao (v d nhiu ngi truy xut cng lc). Stress Test tp trung vo cc trng thi ti hn, cc "im cht", cc tnh hung bt thng nh ang giao dch th ngt kt ni (xut hin nhiu trong kim tra thit b nh POS, ATM...)... Kim th cu hnh (Configuration Test). Kim th bo mt (Security Test): Bo m tnh ton vn, bo mt ca d liu v ca h thng. Kim th kh nng phc hi (Recovery Test): Bo m h thng c kh nng khi phc trng thi n nh trc trong tnh hung mt ti nguyn hoc d liu; c bit quan trng i vi cc h thng giao dch nh ngn hng trc tuyn... Nhn t quan im ngi dng, cc cp kim th trn rt quan trng: Chng bo m h thng kh nng lm vic trong mi trng thc. Lu l khng nht thit phi thc hin tt c cc loi kim th nu trn. Ty yu cu v c trng ca tng h thng, tu kh nng v thi gian cho php ca d n, khi lp k hoch, ngi Qun l d n s quyt nh p dng nhng loi kim th no.

1.1.4.4

Kim th chp nhn sn phm Acceptance Test

Thng thng, sau giai on System Test l Acceptance Test, c khch hng thc hin (hoc y quyn cho mt nhm th ba thc hin). Mc ch ca Acceptance Test l chng minh phn mm tha mn tt c yu cu ca khch hng v khch hng chp nhn sn phm (v tr tin thanh ton hp ng).

17

Acceptance Test c ngha ht sc quan trng, mc d trong hu ht mi trng hp, cc php kim th ca System Test v Acceptance Test gn nh tng t, nhng bn cht v cch thc thc hin li rt khc bit. i vi nhng sn phm dnh bn rng ri trn th trng cho nhiu ngi s dng, thng thng s thng qua hai loi kim th gi l kim th Alpha Alpha Test v kim th Beta Beta Test. Vi Alpha Test, ngi dng kim th phn mm ngay ti ni pht trin phn mm, lp trnh vin s ghi nhn cc li hoc phn hi, v ln k hoch sa cha. Vi Beta Test, phn mm s c gi ti cho ngi dng kim th ngay trong mi trng thc, li hoc phn hi cng s gi ngc li cho lp trnh vin sa cha. Thc t cho thy, nu khch hng khng quan tm v khng tham gia vo qu trnh pht trin phn mm th kt qu Acceptance Test s sai lch rt ln, mc d phn mm tri qua tt c cc kim th trc . S sai lch ny lin quan n vic hiu sai yu cu cng nh s mong ch ca khch hng. V d i khi mt phn mm xut sc vt qua cc php kim th v chc nng thc hin bi nhm thc hin d n, nhng khch hng khi kim th sau cng vn tht vng v b cc mn hnh ngho nn, thao tc khng t nhin, khng theo tp qun s dng ca khch hng v.v... Gn lin vi giai on Acceptance Test thng l mt nhm nhng dch v v ti liu i km, ph bin nh hng dn ci t, s dng v.v... Tt c ti liu i km phi c cp nht v kim th cht ch.

1.1.4.5

Mt s cp kim th khc

Ngoi cc cp trn, cn mt s cp kim th khc nh:

Kim th hi quy Regression Testing:


Theo chun IEEE610.12-90, kim th hi quy l s kim tra li c la chn ca mt h thng hay thnh phn xc minh l nhng s thay i khng gy ra 18

nhng hu qu khng mong mun. Trn thc t, quan nim ny l ch ra rng phn mm m qua c cc kim tra trc vn c th c kim tra li. Beizer nh ngha l s lp li cc kim tra ch ra rng cch hot ng ca phn mm khng b thay i, ngoi tr ti mc nh yu cu. Hin nhin l s tha hip phi c thc hin gia s m bo c a ra bi kim th hi quy mi ln thc hin mt s thay i v nhng ti nguyn c yu cu thc hin iu .

Kim th tnh ng Correctness testing:


Tnh ng n l yu cu ti thiu ca phn mm, l mc ch ch yu ca kim th. Kim th tnh ng s cn mt kiu ngi ng tin no , ch ra cch hot ng ng n t cch hot ng sai lm. Kim th vin c th bit hoc khng bit cc chi tit bn trong ca cc modun phn mm c kim th, v d lung iu khin, lung d liu, v.v . Do , hoc l quan im hp trng, hoc l quan im hp en c th c thc hin trong kim th phn mm.

1.1.5

Cc phng php kim th con ngi


Hai phng php kim th con ngi ch yu l Code Inspections v

Walkthroughs. Hai phng php ny bao gm mt nhm ngi c v kim tra theo m lnh ca chng trnh. Mc tiu ca chng l tm ra li m khng g li. Mt Inspection hay Walkthrough l 1 s ci tin ca phng php kim tra m lp trnh vin c chng trnh ca h trc khi kim th n. Inspections v Walkthroughs hiu qu hn l bi v nhng ngi khc s kim th chng trnh tt hn chnh tc gi ca chng trnh . Inspections/Walkthroughs v kim th bng my tnh b sung cho nhau. Hiu qu tm li s km i nu thiu i 1 trong 2 phng php. V i vi vic sa i chng trnh cng nn s dng cc phng php kim th ny cng nh cc k thut kim th hi quy.

19

1.1.5.1

Tng duyt Walkthrough

Walkthrough l mt thut ng m t s xem xt k lng ca mt qu trnh mc tru tng trong nh thit k hay lp trnh vin lnh o cc thnh vin trong nhm v nhng ngi c quan tm khc thng qua mt sn phm phn mm, v nhng ngi tham gia t cu hi, v ghi ch nhng li c th c, s vi phm cc chun pht trin v cc vn khc. Walkthrough m lnh l 1 tp cc th tc v cc cng ngh d li cho vic c nhm m lnh. Trong mt Walkthrough, nhm cc nh pht trin vi 3 hoc 4 thnh vin l tt nht thc hin xt duyt li. Ch 1 trong cc thnh vin l tc gi ca chng trnh. Mt u im khc ca walkthroughs, hiu qu trong chi ph g li, l 1 thc t m khi mt li c tm thy, n thng c nh v chnh xc trong m lnh. Thm vo , phng php ny thng tm ra 1 tp cc li, cho php sau cc li c sa tt c vi nhau. Mt khc, kim th da trn my tnh,ch tm ra triu chng ca li (chng trnh khng kt thc hoc a ra kt qu v ngha), v cc li thng c tm ra v sa ln lt tng li mt.

1.1.5.2

Thanh tra m ngun Code Inspection

Thanh tra m ngun l 1 tp hp cc th tc v cc k thut d li cho vic c cc nhm m lnh. Mt nhm kim duyt thng gm 4 ngi. Mt trong s ng vai tr l ngi iu tit mt lp trnh vin lo luyn v khng c l tc gi ca chng trnh v phi khng quen vi cc chi tit ca chng trnh. Ngi iu tit c nhim v: phn phi nguyn liu v lp lch cho cc bui kim duyt, ch o phin lm vic, ghi li tt c cc li c tm thy v m bo l cc li sau c sa. Thnh vin th hai l mt lp trnh vin. Cc thnh vin cn li trong nhm thng l nh thit k ca chng trnh ( nu nh thit k khc lp trnh vin) v mt chuyn vin kim th.

20

1.2

Nguyn tc kim th phn mm


kim th t hiu qu th khi tin hnh kim th phn mm cn phi tun

th mt s quy tc sau: Quy tc 1: Mt phn quan trng ca 1 ca kim th l nh ngha ca u ra hay kt qu mong mun. Quy tc 2: Lp trnh vin nn trnh t kim tra chng trnh ca mnh. Quy tc 3: Nhm lp trnh khng nn kim th chng trnh ca chnh h. Quy tc 4: Kim tra thu o mi kt qu ca mi kim tra. Quy tc 5: Cc ca kim th phi c vit cho cc trng thi u vo khng hp l v khng mong mun, cng nh cho cc u vo hp l v mong mun. Quy tc 6: Kho st 1 chng trnh xem liu chng trnh c thc hin ci m n cn thc hin ch l 1 phn, phn cn li l xem liu chng trnh c thc hin ci m n khng cn phi thc hin hay khng. Quy tc 7: Trnh cc ca kim th bng qu tr khi chng trnh thc s l 1 chng trnh bng qu. Quy tc 8: Khng d kin kt qu ca kim th theo gi thit ngm l khng tm thy li. Quy tc 9: Xc sut tn ti li trong 1 on chng trnh l tng ng vi s li tm thy trong on . Quy tc 10: Kim th l 1 nhim v cc k sng to v c tnh th thch tr tu.

21

CHNG 2.
2.1 Khi nim

THIT K TEST CASE

Thit k test case trong kim th phn mm l qu trnh xy dng cc phng php kim th c th pht hin li, sai st, khuyt im ca phn mm xy dng phn mm t tiu chun.

2.2

Vai tr ca thit k test case


To ra cc ca kim th tt nht c kh nng pht hin ra li, sai st ca phn mm mt cch nhiu nht. To ra cc ca kim th c chi ph r nht, ng thi tn t thi gian v cng sc nht.

2.3

Quy trnh thit k test case


Mt trong nhng l do quan trng nht trong kim th chng trnh l thit k

v to ra cc ca kim th - cc Test case c hiu qu. Vi nhng rng buc v thi gian v chi ph cho, th vn then cht ca kim th tr thnh: Tp con no ca tt c ca kim th c th c kh nng tm ra nhiu li nht? Thng thng, phng php km hiu qu nht l kim tra tt c u vo ngu nhin qu trnh kim th mt chng trnh bng vic chn ngu nhin mt tp con cc gi tr u vo c th. V mt kh nng tm ra nhiu li nht, tp hp cc ca kim th c chn ngu nhin c rt t c hi l tp hp ti u hay gn ti u. Sau y l mt s phng php chn ra mt tp d liu kim th mt cch thng minh.

22

kim th hp en v kim th hp trng mt cch thu o l khng th. Do , mt chin lc kim th hp l l chin lc c th kt hp sc mnh ca c hai phng php trn: Pht trin 1 cuc kim th nghim ngt va bng vic s dng cc phng php thit k ca kim th hng hp en no v sau b sung thm nhng ca kim th ny bng vic kho st tnh logic ca chng trnh, s dng phng php hp trng. Nhng chin lc kt hp bao gm: Hp en 1. Phn lp tng ng 2. Phn tch gi tr bin 3. th nguyn nhn kt qu 4. on li Hp trng 1. Bao ph cu lnh 2. Bao ph quyt nh 3. Bao ph iu kin 4. Bao ph iu kin quyt nh 5. Bao ph a iu kin. Mi phng php c nhng u im cng nh khuyt im ring, do c c tp cc ca kim th ti u, chng ta cn kt hp hu ht cc phng php. Quy trnh thit k cc ca kim th s bt u bng vic pht trin cc ca kim th s dng phng php hp en v sau pht trin b sung cc ca kim th cn thit vi phng php hp trng.

2.3.1

Kim th hp trng - Kim th bao ph logic


Kim th hp trng c lin quan ti mc m cc ca kim th thc hin hay

bao ph tnh logic (m ngun) ca chng trnh. Kim th hp trng c bn l vic thc hin mi ng i trong chng trnh, nhng vic kim th y ng i l mt mc ch khng thc t cho mt chng trnh vi cc vng lp. Cc tiu chun trong kim th bao ph logic gm c:

2.3.1.1

Bao ph cu lnh Statement Coverage

T tng: Thc hin mi cu lnh trong chng trnh t nht 1 ln. 23

Xt v d vi on m lnh JAVA sau: public void foo (int a, int b, int x){ if (a>1 && b==0) { x=x/a;} if (a==2||x>1){ x=x+1; } } Hnh 2.1 Mt chng trnh nh kim th

Bn c th thc hin mi cu lnh bng vic vit 1 ca kim th n i qua ng ace. Tc l, bng vic t A=2, B=0 v X=3 ti im a, mi cu lnh s c thc hin 1 ln (thc t, X c th c gn bt k gi tr no).

24

Thng tiu chun ny kh km. V d, c l nu quyt nh u tin l php or ch khng phi php and th li ny s khng c pht hin. Hay nu quyt nh th hai m bt u vi x>0, li ny cng s khng c tm ra. Cng vy, c 1 ng i qua chng trnh m x khng thay i (ng i abd). Nu y l 1 li, th li ny c th khng tm ra. Hay ni cch khc, tiu chun bao ph cu lnh qu yu n ni m n thng l v ch.

2.3.1.2

Bao ph quyt nh Decision coverage

T tng: Vit cc ca kim th m mi quyt nh c kt lun ng hay sai t nht 1 ln. Ni cch khc, mi hng phn nhnh phi c xem xt k lng t nht 1 ln. Cc v d v cu lnh r nhnh hay quyt nh l cc cu lnh switch, do-while, v if-else. Cc cu lnh a ng GOTO thng s dng trong mt s ngn ng lp trnh nh FORTRAN. Bao ph quyt nh thng tha mn bao ph cu lnh. V mi cu lnh l trn s bt ngun mt ng i ph no hoc l t 1 cu lnh r nhnh hoc l t im vo ca chng trnh, mi cu lnh phi c thc hin nu mi quyt nh r nhnh c thc hin. Tuy nhin, c t nht 3 ngoi l: Nhng chng trnh khng c quyt nh. Nhng chng trnh hay thng trnh con/phng thc vi nhiu im vo. Mt cu lnh cho c th c thc hin nu v ch nu chng trnh c nhp vo ti 1 im u vo ring. Cc cu lnh bn trong cc ON-unit. Vic i qua mi hng r nhnh s l khng nht thit lm cho tt c cc ON-unit c thc thi. V chng ta thy rng bao ph cu lnh l iu kin cn thit, nn mt chin lc tt hn l bao ph quyt nh nn c nh ngha bao hm c bao ph cu lnh. Do , bao ph quyt nh yu cu mi quyt nh phi c kt lun ng hoc sai, v mi cu lnh phi c thc hin t nht 1 ln. 25

Phng php ny ch xem xt nhng quyt nh hay nhng s phn nhnh 2 ng v phi c sa i cho nhng chng trnh c cha nhng quyt nh a ng. V d, cc chng trnh JAVA c cha cc lnh select (case), cc chng trnh FORTRAN cha cc lnh s hc (ba ng) if hoc cc lnh tnh ton hay s hc GOTO, v cc chng trnh COBOL cha cc lnh GOTO bin i hay cc lnh GO-TO-DEPENDING-ON (cc lnh goto ph thuc). Vi nhng chng trnh nh vy, tiu chun ny ang s dng mi kt lun c th ca tt c cc quyt nh t nht 1 ln v gi mi im vo ti chng trnh hay thng trnh con t nht 1 ln. Trong hnh 2.1, bao ph quyt nh c th t c bi t nht 2 ca kim th bao ph cc ng ace v abd hoc acd v abe. Nu chng ta chn kh nng th hai, th 2 u vo test-case l A=3, B=0, X=3 v A=2, B=1, X=1. Bao ph quyt nh l 1 tiu chun mnh hn bao ph cu lnh, nhng vn kh yu. V d, ch c 50% c hi l chng ta s tm ra con ng trong x khng b thay i (v d, ch khi bn chn kh nng th nht). Nu quyt nh th hai b li (nu nh ng l phi ni l x<1 thay v x>1), li ny s khng c pht hin bng 2 ca kim th trong v d trc.

2.3.1.3

Bao ph iu kin Condition coverage

T tng: Vit cc ca kim th m bo rng mi iu kin trong mt quyt nh m nhn tt c cc kt qu c th t nht mt ln. V vy, nh vi bao ph quyt nh, th bao ph iu kin khng phi lun lun dn ti vic thc thi mi cu lnh. Thm vo , trong tiu chun bao ph iu kin, mi im vo chng trnh hay thng trnh con, cng nh cc ON-unit, c gi t nht 1 ln. V d, cu lnh r nhnh do k=0 to 50 while (j+k<quest) c cha 2 iu kin l k<=50, v j+k<quest. Do , cc ca kim th s c yu cu cho nhng tnh hung k<=50, k>50 ( n ln lp cui cng ca vng lp), j+k<quest, v j+k>=quest.

26

Hnh 2.1 c 4 iu kin: A>1, B=0, A=2, X>1. Do cc ca kim th y l cn thit thc y nhng trng thi m A>1, A<=1, B=0 v B<>0 c mt ti im a v A=2, A<>2, X>1, X<=1 c mt ti im b. S lng y cc ca kim th tha mn tiu chun v nhng ng i m c i qua bi mi ca kim th l: 1. A=2, B=0, X=4 2. A=1, B=1, X=1 ace abd

Ch l, mc d cng s lng cc ca kim th c to ra cho v d ny, nhng bao ph iu kin thng tt hn bao ph quyt nh l v n c th (nhng khng lun lun) gy ra mi iu kin ring trong 1 quyt nh thc hin vi c hai kt qu, trong khi bao ph quyt nh li khng. V d trong cng cu lnh r nhnh: DO K=0 TO 50 WHILE (J+K<QUEST) l 1 nhnh 2 ng (thc hin thn vng lp hay b qua n). Nu bn ang s dng kim th quyt nh, th tiu chun ny c th c tha mn bng cch cho vng lp chy t K=0 ti 51, m cha tng kim tra trng hp trong mnh WHILE b sai. Tuy nhin, vi tiu chun bao ph iu kin, 1 ca kim th s cn phi cho ra 1 kt qu sai cho nhng iu kin J+K<QUEST. Mc d nu mi nhn thong qua, tiu chun bao ph iu kin xem ra tha mn tiu chun bao ph quyt nh, nhng khng phi lc no cng vy. Nu quyt nh IF (A&B) c kim tra, th tiu chun bao ph iu kin s cho php bn vit 2 ca kim th - A ng, B sai, v A sai, B ng nhng iu ny s khng lm cho mnh THEN ca cu lnh IF c thc hin. V d, 2 ca kim th khc: 1. A=1, B=0, X=3 2. A=2, B=1, X=1 bao ph tt c cc kt qu iu kin, nhng chng ch bao ph 2 trong 4 kt qu quyt nh (c 2 u bao ph ng i abd v do , khng s dng kt qu true ca quyt nh u tin v kt qu false ca quyt nh th hai).

27

2.3.1.4

Bao ph quyt nh/iu kin Decision/condition coverage

T tng: Thc hin cc ca kim th m mi iu kin trong 1 quyt nh thc hin trn tt c cc kt qu c th t nht 1 ln, v mi im vo c gi t nht 1 ln. im yu ca bao ph quyt nh/iu kin l mc d xem ra n c th s dng tt c cc kt qu ca tt c cc iu kin, nhng thng khng phi vy v nhng iu kin chc chn cn cc iu kin khc. Hnh 2.2 M my cho chng trnh trong Hnh 2.1

Biu tin trnh trong hnh 2.2 l cch 1 trnh bin dich to ra m my cho chng trnh trong Hnh 2.1. Cc quyt nh a iu kin trong chng trnh ngun b chia thnh cc quyt nh v cc nhnh ring v hu ht cc my khng c ch to c th thc hin cc quyt nh a iu kin. Khi 1 bao ph kim th t m hn xut hin l vic s dng tt c cc kt qu c th ca mi quyt nh gc. Hai ca kim th bao ph quyt nh trc khng lm c iu ny; chng khng th s dng kt qu false ca quyt nh H v kt qu true ca quyt nh K.

28

L do, nh c ch ra trong hnh 2.2, l nhng kt qu ca cc iu kin trong cc biu thc and v or c th cn tr hay ngn chn vic c lng cc quyt nh khc. V d, nu 1 iu kin and l sai, khng cn kim tra cc iu kin tip theo trong biu thc. Tng t nh vy, nu 1 iu kin or l ng th cng khng cn kim tra cc iu kin cn li. Do , cc li trong biu thc logic khng phi lc no cng c pht hin bng cc tiu chun bao ph iu kin v bao ph quyt nh/iu kin.

2.3.1.5

Bao ph a iu kin Multiple condition coverage

T tng: Vit cc ca kim th m tt c nhng s kt hp ca cc kt qu iu kin c th trong mi quyt nh, v tt c cc im vo phi c gi t nht 1 ln. V d, xt chui m lnh sau: NOTFOUND = TRUE; DO I=1 TO TABSIZE WHILE (NOTFOUND); /*SEARCH TABLE*/ searching logic; END; Bn tnh hung kim th l: 1. I<= TABSIZE v NOTFOUND c gi tr ng (ang duyt) 2. 3. I<= TABSIZE v NOTFOUND c gi tr sai (tm thy I>TABSIZE v NOTFOUND c gi tr ng (gp cui mc vo trc khi gp cui bng). bng m khng tm thy mc vo). 4. I>TABSIZE v NOTFOUND c gi tr sai (mc vo l ci cui cng trong bng).

29

D nhn thy l tp hp cc ca kim th tha mn tiu chun a iu kin cng tha mn cc tiu chun bao ph quyt nh, bao ph iu kin v bao ph quyt nh/iu kin. Quay li hnh 2.1, cc ca kim th phi bao ph 8 s kt hp: 1. A>1, B= 0 2. A>1, B<>0 3. A<=1, B=0 4. A<=1, B<>0 5. A=2, X>1 6. A=2, X<=1 7. A<>2, X>1 8. A<>2, X<=1 V l ca kim th sm hn, nn cn ch l cc trng hp t 5 n 8 biu din cc gi tr ti v tr cu lnh IF th hai. V X c th thay i trn cu lnh IF ny, nn gi tr cn ti cu lnh IF ny phi c sao d phng thng qua tnh logic tm ra cc gi tr u vo tng ng. Nhng s kt hp c kim tra ny khng nht thit ng rng cn thc hin c 8 ca kim th. Trn thc t, chng c th c bao ph bi 4 ca kim th. Cc gi tr u vo kim th, v s kt hp m chng bao ph, l nh sau: A=2, B=0, X=4 A=2, B=1, X=1 A=1, B=0, X=2 A=1, B=1, X=1 Bao ph trng hp 1, 5 Bao ph trng hp 2, 6 Bao ph trng hp 3, 7 Bao ph trng hp 4, 8

Thc t l vic c 4 ca kim th v 4 ng i ring bit trong hnh 2.1 ch l s trng hp ngu nhin. Trn thc t, 4 ca kim th ny khng bao ph mi ng i, chng b qua ng i acd. V d, bn s cn 8 ca kim th cho quyt nh sau mc d n ch cha 2 ng i:

30

If (x==y&&length(z)==0&&FLAG) { J=1;} Else { I=1;} Trong trng hp cc vng lp, s lng cc ca kim th c yu cu bi tiu chun a iu kin thng t hn nhiu s lng ng i. Tm li, i vi nhng chng trnh ch cha 1 iu kin trn 1 quyt nh, th 1 tiu chun kim th nh nht l mt s lng cc ca kim th (1) gi tt c cc kt qu ca mi quyt nh t nht 1 ln v (2) gi mi im ca mc vo (nh l im vo hay ON-unit) t nht 1 ln, m bo l tt c cc cu lnh c thc hin t nht 1 ln. i vi nhng chng trnh cha cc quyt nh c a iu kin th tiu chun ti thiu l s lng cc ca kim th gi tt c nhng s kt hp c th ca cc kt qu iu kin trong mi quyt nh, v tt c cc im vo ca chng trnh t nht 1 ln.

2.3.2 2.3.2.1

Kim th hp en Phn lp tng ng Equivalence Patitioning

Phn lp tng ng l mt phng php kim th hp en chia min u vo ca mt chng trnh thnh cc lp d liu, t suy dn ra cc ca kim th. Phng php ny c gng xc nh ra mt ca kim th m lm l ra mt lp li, do lm gim tng s cc trng hp kim th phi c xy dng. Thit k ca kim th cho phn lp tng ng da trn s nh gi v cc lp tng ng vi mt iu kin vo. Lp tng ng biu th cho tp cc trng thi hp l hay khng hp l i vi iu kin vo. Mt cch xc nh tp con ny l nhn ra rng 1 ca kim th c la chn tt cng nn c 2 c tnh khc:

31

1. Gim thiu s lng cc ca kim th khc m phi c pht trin hon thnh mc tiu nh ca kim th hp l. 2. Bao ph mt tp rt ln cc ca kim th c th khc. Tc l, n ni cho chng ta mt th g v s c mt hay vng mt ca nhng li qua tp gi tr u vo c th. Thit k Test-case bng phn lp tng ng tin hnh theo 2 bc: (1). Xc nh cc lp tng ng v (2). Xc nh cc ca kim th.

Xc nh cc lp tng ng
Cc lp tng ng c xc nh bng bng cch ly mi trng thi u vo (thng l 1 cu hay 1 cm t trong c t) v phn chia n thnh 2 hay nhiu nhm (c th s dng bng 2.3 lit k cc lp tng ng). Hnh 2.3 iu kin bn ngoi Mt mu cho vic lit k cc lp tng ng Cc lp tng ng hp l Cc lp tng ng khng hp l

Ch l hai kiu lp tng ng c xc nh: lp tng ng hp l m t cc u vo hp l ca chng trnh, v lp tng ng khng hp l m t tt c cc trng thi c th khc ca iu kin (v d, cc gi tr u vo khng ng). Vi 1 u vo hay iu kin bn ngoi cho, vic xc nh cc lp tng ng hu nh l 1 quy trnh mang tnh kinh nghim. xc nh cc lp tng ng c c th p dng tp cc nguyn tc di y: 1. Nu 1 trng thi u vo nh r gii hn ca cc gi tr, xc nh 1 lp tng ng hp l v 2 lp tng ng khng hp l.

32

2. Nu 1 trng thi u vo xc nh s gi tr, xc nh 1 lp tng ng hp l v 2 lp tng ng bt hp l. 3. Nu 1 trng thi u vo ch nh tp cc gi tr u vo v chng trnh s dng mi gi tr l khc nhau, xc nh 1 lp tng ng hp l cho mi loi v 1 lp tng ng khng hp l. 4. Nu 1 trng thi u vo ch nh mt tnh hung chc chn must be, xc nh 1 lp tng ng hp l v 1 lp tng ng khng hp l. Nu c bt k l do no tin rng chng trnh khng x l cc phn t trong cng 1 lp l nh nhau, th hy chia lp tng ng thnh cc lp tng ng nh hn.

Xc nh cc ca kim th
Vi cc lp tng ng xc nh c bc trn, bc th hai l s dng cc lp tng ng xc nh cc ca kim th. Qu trnh ny nh sau: 1. Gn 1 s duy nht cho mi lp tng ng. 2. Cho n khi tt c cc lp tng ng hp l c bao ph bi (hp nht thnh) cc ca kim th, vit 1 ca kim th mi bao ph cng nhiu cc lp tng ng cha c bao ph cng tt. 3. Cho n khi cc ca kim th ca bn bao ph tt c cc lp tng ng khng hp l, vit 1 ca kim th m bao ph mt v ch mt trong cc lp tng ng khng hp l cha c bao ph. 4. L do m mi ca kim th ring bao ph cc trng hp khng hp l l v cc kim tra u vo khng ng no che giu hoc thay th cc kim tra u vo khng ng khc. Mc d vic phn lp tng ng l rt tt khi la chn ngu nhin cc ca kim th, nhng n vn c nhng thiu st. V d, n b qua cc kiu test case c li no . Hai phng php tip theo, phn tch gi tr bin v th nguyn nhn kt qu , bao ph c nhiu nhng thiu st ny. 33

2.3.2.2

Phn tch gi tr bin Boundary Value Analysis

Kinh nghim cho thy cc ca kim th m kho st t m cc iu kin bin c t l phn trm cao hn cc ca kim th khc. Cc iu kin bin l nhng iu kin m cc tnh hung ngay ti, trn v di cc cnh ca cc lp tng ng u vo v cc lp tng ng u ra. Phn tch cc gi tr bin l phng php thit k ca kim th b sung thm cho phn lp tng ng, nhng khc vi phn lp tng ng 2 kha cnh: 1. Phn tch gi tr bin khng la chn phn t bt k no trong 1 lp tng ng l in hnh, m n yu cu l 1 hay nhiu phn t c la chn nh vy m mi cnh ca lp tng ng chnh l i tng kim tra. 2. Ngoi vic ch tp trung ch vo cc trng thi u vo (khng gian u vo), cc ca kim th cng nhn c bng vic xem xt khng gian kt qu (cc lp tng ng u ra). Phn tch gi tr bin yu cu c sng to v lng chuyn mn ha nht nh v n l mt qu trnh mang tnh kinh nghim rt cao. Tuy nhin, c mt s quy tc chung nh sau: 1. Nu 1 trng thi u vo nh r gii hn ca cc gi tr, hy vit cc ca kim th cho cc gi tr cui ca gii hn, v cc ca kim th u vo khng hp l cho cc trng hp va ra ngoi phm vi. 2. Nu 1 trng thi u vo nh r s lng gi tr, hy vit cc ca kim th cho con s ln nht v nh nht ca cc gi tr v mt gi tr trn, mt gi tr di nhng gi tr ny. 3. S dng quy tc 1 cho mi trng thi u vo. V d, nu 1 chng trnh tnh ton s khu tr FICA hng thng v nu mc ti thiu l 0.00$, v ti a l 1,165.25$, hy vit cc ca kim th m khu tr 0.00$ v 1,165.25, khu tr m v khu tr ln hn 1,165.25$. Ch l vic xem xt gii hn ca khng gian kt qu l quan trng v khng phi lc no cc bin ca 34

min u vo cng m t cng mt tp s kin nh bin ca gii hn u ra (v d, xt chng trnh con tnh SIN). Ngoi ra, khng phi lc no cng c th to ra 1 kt qu bn ngoi gii hn u ra, nhng tuy nhin rt ng xem xt tim n . 4. S dng nguyn tc 2 cho mi trng thi u ra. 5. Nu u vo hay u ra ca 1 chng trnh l tp c sp th t ( v d,1 file tun t hay 1 danh sch nh tuyn hay 1 bng) tp trung ch vo cc phn t u tin v cui cng ca tp hp. 6. S dng s kho lo ca bn tm cc iu kin bin.

2.3.2.3

th nguyn nhn kt qu - Cause & Effect Graphing

Mt yu im ca phn tch gi tr bin v phn lp tng ng l chng khng kho st s kt hp ca cc trng hp u vo. Vic kim tra s kt hp u vo khng phi l mt nhim v n gin bi v nu bn phn lp tng ng cc trng thi u vo, th s lng s kt hp thng l rt ln. Nu bn khng c cch la chn c h thng mt tp con cc trng thi u vo, c l bn s chn ra mt tp ty hng cc iu kin, iu ny c th dn ti vic kim th khng c hiu qu. th nguyn nhn kt qu h tr trong vic la chn mt cch c h thng tp cc ca kim th c hiu qu cao. N c tc ng c li nh hng ti vic ch ra tnh trng cha y v nhp nhng trong c t. N cung cp c cch biu din chnh xc cho cc iu kin logic v hnh ng tng ng Qu trnh di y c s dng xy dng c cc test case: 1. c t c chia thnh cc phn c th thc hin c. iu ny l cn thit bi v th nguyn nhn kt qu tr nn kh s dng khi c s dng trn nhng c t ln.

35

2. Nguyn nhn v kt qu trong cc c t c nhn bit. Mt nguyn nhn l mt trng thi u vo nht nh hay mt lp tng ng ca cc trng thi u vo. Mt kt qu l mt trng thi u ra hay 1 s bin i h thng (kt qu cn li m 1 u vo c trng thi ca 1 chng trnh hay h thng). Bn nhn bit nguyn nhn v kt qu bng vic c tng t ca c t v gch chn cc t hoc cm t m t nguyn nhn v kt qu. Khi c nhn bit, mi nguyn nhn v kt qu c gn cho 1 s duy nht. 3. Xy dng th nguyn nhn kt qu bng cch pht trin v bin i ni dung ng ngha ca c t thnh th Boolean ni gia nguyn nhn v kt qu. 4. th c c din gii vi cc rng buc m t nhng s kt hp ca nguyn nhn v/hoc kt qu l khng th v cc rng buc ng ngha v mi trng. 5. Bng vic d theo cc iu kin trng thi trong th mt cch cn thn, bn chuyn i th thnh mt bng quyt nh mc vo gii hn. Mi ct trong bng m t mt ca kim th. 6. Cc ct trong bng quyt nh c chuyn thnh cc ca kim th. K hiu c bn cho th c ch ra trong hnh 2.4. Tng tng mi nt c gi tr l 0 hoc 1; 0 m t trng thi vng mt v 1 m t trng thi c mt. Hm ng nht ni l nu a l 1 th b l 1; ngc li, b l 0. Hm not l ni nu a l 1 th b l 0; ngc li th b l 1. Hm or khng nh rng nu a hoc b hoc c l 1, th d l 1; ngc li d l 0. Hm and khng nh nu c a v b l 1 th c l 1; ngc li c l 0. Hai hm or v and c php c s lng u vo bt k. Hnh 2.4 Cc k hiu th nguyn nhn kt qu c bn

36

Trong hu ht cc chng trnh, s kt hp no ca mt s nguyn nhn l khng th bi v l do ng ngha v mi trng (v d, mt k t khng th ng thi va l A va l B). khi , ta s dng k hiu trong Hnh 2.5. Rng buc E (Exclude loi tr) khng nh rng ti a, ch c hoc a hoc b c th l 1 (a v b khng th ng thi l 1). Rng buc I (Include bao hm) khng nh t nht mt trong a, b hoc c phi lun lun l 1 (a, b hoc c khng th ng thi l 0). Rng buc O (Only ch mt) khng nh mt v ch mt hoc a hoc b phi l 1. Rng buc R (Request yu cu) khng nh rng khi a l 1, th b phi l 1 (v d, khng th c trng hp a l 1, cn b l 0). Rng buc M (Mask mt n) khng nh l nu kt qu a l 1, kt qu b s bt buc phi l 0. Hnh 2.5 Cc k hiu rng buc

37

Bc tip theo l to bng quyt nh mc vo gii hn limited-entry decision table. Tng t vi cc bng quyt nh, th nguyn nhn chnh l cc iu kin v kt qu chnh l cc hnh ng. Quy trnh c s dng l nh sau: 1. Chn mt kt qu l trng thi c mt (1). 2. Ln ngc tr li th, tm tt c nhng s kt hp ca cc nguyn nhn (i tng cho cc rng buc) m s thit lp kt qu ny thnh 1. 3. To mt ct trong bng quyt nh cho mi s kt hp nguyn nhn. 4. Vi mi s kt hp, hy quy nh trng thi ca tt c cc kt qu khc v t chng vo mi ct. Trong khi biu din bc 2, cn quan tm cc vn sau: 1. Khi ln ngc tr li qua mt nt or m u ra ca n l 1, khng bao gi thit lp nhiu hn 1 u vo cho nt or l 1 mt cch ng thi. iu ny c gi l path sensitizing lm nhy ng i. Mc tiu ca n l ngn chn d li tht bi v mt nguyn nhn che i mt nguyn nhn khc. 2. Khi ln ngc tr li qua mt nt and m u ra ca n l 0, d nhin, phi lit k tt c cc s kt hp u vo dn ti u ra 0. Tuy nhin, nu bn 38

ang kho st trng thi m 1 u ra l 0 v mt hay nhiu u ra khc l 1, th khng nht thit phi lit k tt c cc iu kin m di iu kin cc u vo khc c th l 1. 3. Khi ln ngc tr li qua mt nt and m u ra ca n l l 0, ch cn lit k 1 iu kin trong tt c u vo bng 0. (Nu nt and chnh gia ca th nh vy th tt c cc u vo ca n xut pht t cc nt trung gian khc, c th c qu nhiu trng thi m trong trng thi tt c cc u vo ca n bng 0.) Hnh 2.6 Nhng xem xt c s dng khi d theo th Nu x=1, khng quan tm v trng hp a=b=1 (s xem xt th 1) Nu x=0, lit k tt c cc trng hp trong a=b=0. Nu x =1, lit k tt c cc trng hp trong a=b=c=1. Nu x=0, bao gm ch 1 trng hp m a=b=c=0 (s xem xt 3). i vi cc trng thi m abc l 001, 010, 100, 011, 101 v 110 , bao gm ch 1 trng hp mi trng thi (s xem xt 2). Nhng s xem xt ny c th xut hin tht thng, nhng chng c mt mc ch rt quan trng: gim bt cc kt qu c kt hp ca th. Chng lit k cc trng hp m hng v cc ca kim th t c li. Nu cc ca kim th t c li khng c lit k, mt th nguyn nhn kt qu ln s to ra mt s lng ca kim th cc k ln. Nu s lng cc ca kim th trn thc t l qu ln, bn s chn ra 1 tp con no , nhng khng m bo l cc ca kim th t c li s l

39

nhng ca kim th c lit k. Do , tt hn ht l lit k chng trong sut qu trnh phn tch ca th.

NHN XT
V th nguyn nhn kt qu l phng php to cc ca kim th c h thng m t s kt hp ca cc iu kin. S thay i s l 1 s la chn kt hp khng th d tnh trc, nhng khi thc hin nh vy, c v nh bn s b st nhiu ca kim th th v c xc nh bng th nguyn nhn kt qu . V v th nguyn nhn kt qu yu cu chuyn mt c t thnh mt mng logic Boolean, n cung cp mt trin vng khc v s hiu bit su sc hn na v c t. Trn thc t, s pht trin ca 1 th nguyn nhn kt qu l cch hay khm ph s m h v cha y trong cc c t. Mc d vic v th nguyn nhn kt qu to ra tp cc ca kim th hu dng, nhng thng thng n khng to ra tt c cc ca kim th hu dng m c th c nhn bit. Ngoi ra, th nguyn nhn kt qu khng kho st tha ng cc iu kin gii hn. D nhin, bn c th c gng bao ph cc iu kin gii hn trong sut qu trnh. Tuy nhin, vn trong vic thc hin iu ny l n lm cho th rt phc tp v dn ti s lng rt ln cc ca kim th. V th, tt nht l xt 1 s phn tch gi tr gii hn tch ri nhau. V th nguyn nhn kt qu lm chng ta mt thi gian trong vic chn cc gi tr c th cho cc ton hng, nn cc iu kin gii hn c th b pha trn thnh cc ca kim th xut pht t th nguyn nhn kt qu. V vy, chng ta t c mt tp cc ca kim th nh nhng hiu qu m tha mn c 2 mc tiu. Ch l vic v th nguyn nhn kt qu ph hp vi mt s quy tc trong Chng 1. Vic xc nh u ra mong i cho mi ca kim th l mt phn c hu ca k thut (mi ct trong bng quyt nh biu th cc kt qu c mong i). 40

Cng ch l n khuyn khch chng ta tm kim cc kt qu c tc dng khng mong mun. Kha cnh kh nht ca k thut ny l qu trnh chuyn i th thnh bng quyt nh. Qu trnh ny c tnh thut ton, tc l bn c th t ng ha n bng vic vit 1 chng trnh. Trn th trng c mt vi chng trnh thng mi tn ti gip cho qu trnh chuyn i ny.

2.3.2.4

on li Error Guessing

Mt k thut thit k test-case khc l error guessing on li. Tester c a cho 1 chng trnh c bit, h phng on, c bng trc gic v kinh nghim, cc loi li c th v sau vit cc ca kim th a ra cc li . Tht kh a ra mt quy trnh cho k thut on li v n l mt quy trnh c tnh trc gic cao v khng th d on trc. tng c bn l lit k mt danh sch cc li c th hay cc trng hp d xy ra li v sau vit cc ca kim th da trn danh sch . Mt tng khc xc nh cc ca kim th c lin i vi cc gi nh m lp trnh vin c th thc hin khi c c t (tc l, nhng th b b st khi c t, hoc l do tnh c, hoc l v ngi vit c cm gic nhng c t l r rng). Ni cch khc, bn lit k nhng trng hp c bit m c th b b st khi chng trnh c thit k.

2.3.3

Chin lc
Cc phng php thit k test-case c tho lun c th c kt hp thnh

mt chin lc ton din. V mi phng php c th ng gp 1 tp ring cc ca kim th hu dng, nhng khng ci no trong s chng t n ng gp mt tp trn vn cc cc ca kim th. Chin lc hp l nh sau: 1. Nu c t c cha s kt hp ca cc iu kin u vo, hy bt u vi vic v th nguyn nhn kt qu. 41

2. Trong trng hp bt k, s dng phng php phn tch gi tr bin. Hy nh rng y l mt s phn tch ca cc bin u vo v u ra. Phng php phn tch gi tr bin mang li mt tp cc iu kin kim tra b sung, v rt nhiu hay ton b cc iu kin ny c th c hp nht thnh cc kim th nguyn nhn kt qu. 3. Xc nh cc lp tng ng hp l v khng hp l cho u vo v u ra, v b sung cc ca kim th c xc nh trn nu cn thit. 4. S dng k thut on li thm cc ca kim th thm vo. 5. Kho st tnh logic ca chng trnh lin quan n tp cc ca kim th. S dng tiu chun bao ph quyt nh, bao ph iu kin, bao ph quyt nh/iu kin, hay bao ph a iu kin ( trong bao ph a iu kin l c s dng nhiu nht ). Nu tiu chun bao ph khng t c bi cc ca kim th c xc nh trong bn bc trc, v nu vic t c tiu chun l khng th ( tc l, nhng s kt hp chc chn ca cc iu kin c th l khng th to v bn cht ca chng trnh), hy thm vo cc ca kim th c kh nng lm cho tha mn tiu chun. Tuy vic s dng chin lc ny s khng m bo rng tt c cc li s c tm thy, nhng n c xc minh l i din cho mt s tha thun hp l.

42

CHNG 3.

P DNG

T nhng phng php thit k test case tm hiu trn, em vn dng chng vo thit k test case cho chng trnh Tam gic.

3.1

c t
Chng trnh c vo 3 gi tr nguyn t hp thoi vo. Ba gi tr ny tng

ng vi chiu di 3 cnh ca 1 tam gic. Chng trnh hin th 1 thng ip cho bit tam gic l tam gic thng, cn, hay u. Ba gi tr nhp vo tha mn l 3 cnh ca mt tam gic khi v ch khi c 3 s u l s nguyn dng, v tng ca 2 s bt k trong 3 s phi ln hn s th 3. Khi , mt tam gic u l tam gic c 3 cnh bng nhau, tam gic cn l tam gic c 2 trong 3 cnh bng nhau, v tam gic thng th c 3 cnh khc nhau. M lnh ca chng trnh:
unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMainForm = class(TForm) AEdit: TLabeledEdit; BEdit: TLabeledEdit; CEdit: TLabeledEdit; btnTest: TButton; procedurebtnTestClick(Sender: TObject); private { Private declarations } public

43

{ Public declarations } end; var MainForm: TMainForm; implementation {$R *.dfm} Procedure TMainForm.btnTestClick(Sender: TObject); var a, b, c: Integer; begin try a := StrToInt(AEdit.Text); b := StrToInt(BEdit.Text); c := StrToInt(CEdit.Text); if (a < 0) Or (b < 0) Or (c < 0) then ShowMessage('3 canh A, B, C khong thoa man la 3 canh cua mot tam giac.') else if (a + b > c) And (a + c > b) And (b + c > a) then begin if (a = b) And (b = c) then ShowMessage('3 canh A, B, C lap thanh mot tam giac deu.') else if (a=b) Or (b=c) Or (c=b) then ShowMessage('3 canh A, B, C lap thanh mot tam giac can.') else ShowMessage('3 canh A, B, C lap thanh mot tam giac thuong.'); end else ShowMessage('3 canh A, B, C khong thoa man la 3 canh cua mot tam giac.'); except

44

ShowMessage('Loi dinh dang du lieu. De nghi ban xem va nhap lai.'); end; end; end.

3.2

Thit k test case


p dng chin lc kim th trnh by trong Chng 2, cc ca kim th

c xy dng nh sau:

3.2.1

V th nguyn nhn kt qu
Do c t c s kt hp u vo nn trc tin, p dng phng php v th

nguyn nhn kt qu. Nguyn nhn l: 1. C 3 gi tr nhp vo u l s nguyn dng. 2. Tng 2 s bt k trong 3 s ln hn s cn li. 3. Hai trong 3 s c gi tr bng nhau. 4. Ba s c gi tr bng nhau. Kt qu l: R1. Thng bo ba gi tr nhp vo lp thnh tam gic thng. R2. Thng bo ba gi tr nhp vo lp thnh tam gic cn. R3. Thng bo ba gi tr nhp vo lp thnh tam gic u. R4. Thng bo ba gi tr nhp vo khng lp thnh mt tam gic. R5. Thng bo li nhp d liu. 45

Hnh 3.1

th nguyn nhn kt qu:

Bc tip theo l to bng quyt nh mc vo gii hn. Chn kt qu R1 l u tin. R1 c mt nu nt cc nt 12 v 3 = 1,0. Nt 12 = 1 khi 1 v 2 = 1,1. p dng ln lt cho s c mt ca tng kt qu u vo, ta c bng quyt nh nh sau: Hnh 3.2 Bng quyt nh

1 1
1

2
1

3
1

4
1

5
0

46

2 3 4

1 0

1 1 1

R1 R2 R3 R4 R5

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

Bc cui cng l chuyn i bng quyt nh thnh cc ca kim th. Cc ca kim th thu c nh sau:

STT 1

Cc iu kin C 3 gi tr nhp vo u l s nguyn dng, v tng ca 2 s bt k trong 3 s lun ln hn s th 3, v khng c cp 2 s bt k no trong 3 s l = nhau.

Ca kim th 2,3,4 2,4,3 3,2,4 3,4,2 4,2,3 4,3,2 3,3,4

Hnh ng R1

C 3 gi tr nhp vo u l s nguyn dng, v tng cu 2 s 47

R2

bt k trong 3 s lun ln hn s th 3, v tn ti mt cp 2 s trong 3 s l = nhau. 3 C 3 gi tr nhp vo u l s nguyn dng, v c 3 s c gi tr bng nhau. 4 C 3 gi tr nhp vo u l s nguyn dng, v tn ti 2 s trong 3 s c tng nh hn hoc bng s cn li. 5 Tn ti mt gi tr nhp vo khng phi l s nguyn dng.

3,4,3 4,3,3

3,3,3

R3

1,2,4 V 5 hon v ca n

R4

A,2,2 -1,1,1 1.1,1,1 V 2 hon v ca mi trng hp

R5

3.2.2 3.2.2.1

Phn lp tng ng Xc nh cc lp tng ng

Cc gi tr nhp vo l s

C 3 gi tr u l s (1)

Tn ti 1 gi tr khng phi l s (2)

Cc gi tr l nguyn

C 3 gi tr u nguyn (3) Tn ti 1 gi tr khng nguyn (4)

Cc gi tr l dng

C 3 gi tr u dng (5) 48

Tn ti 1 gi tr <=0 (6)

Hng s

-32768 : 32767 (7)

<-32768 (8), >32767 (9) Nh hn hoc bng (11)

Tng 2 s bt k so vi s Ln hn (10) th 3

3.2.2.2

Xc nh cc ca kim th

Cc ca kim th bao ph cc lp tng ng hp l:


Ca kim th 2,3,4 v 5 hon v bao ph cc lp (1), (3), (5), (7), (10).

Cc ca kim th tng ng vi tng ca kim th khng hp l:


(2) A, 1, 1 v 2 hon v. (4) 1.1, 1, 1 v 2 hon v. (6) -1, 1, 1 v 2 hon v. (8) -32769, 1, 1 v 2 hon v. (9) 32768, 1, 1 v 2 hon v. (11) 1, 2, 4 v 5 hon v.

3.2.3 3.2.3.1

Phn tch gi tr bin Xt cc trng thi u vo

Xt cc trng thi u vo thu c cc ca kim th nh sau: 1. 1, 1, 1 2. A, 1, 1 v 2 hon v. 3. 1.1, 1, 1 v 2 hon v. 4. 0, 1, 1 v 2 hon v. 49

5. -1, 1, 1 v 2 hon v. 6. -32768, 1, 1 v 2 hon v. 7. -32769, 1, 1 v 2 hon v. 8. 32767, 1, 1 v 2 hon v. 9. 32768, 1, 1 v 2 hon v. 10. 1, 2, 3 v 5 hon v. 11. 1, 2, 4 v 5 hon v.

3.2.3.2

Xt khng gian kt qu

Xt khng gian kt qu, thu c cc ca kim th nh sau: Ba s u vo tha mn l 3 cnh ca mt tam gic u 12. 1, 1, 1 13. 32767, 32767, 32767 Ba s u vo tha mn l 3 cnh ca mt tam gic cn 14. 1, 1, 2 v 2 hon v. 15. 32767, 32767, 32766 v 2 hon v. Ba s u vo tha mn l 3 cnh ca mt tam gic thng 16. 2, 3, 4 v 5 hon v. 17. 32767, 32766, 32765 v 5 hon v. Ba s u vo khng tha mn l 3 cnh ca 1 tam gic 18. 1, 2, 3 v 5 hon v. 19. 1, 2, 4 v 5 hon v. 20. 32767, 1, 32765 v 5 hon v.

50

21. 32767, 1, 32766 v 5 hon v. Li nh dng d liu vo 22. A, 1, 1 v 2 hon v. 23. 0, 1, 1 v 2 hon v. 24. -1, 1, 1 v 2 hon v. 25. 1.1, 1, 1 v 2 hon v.

3.2.4 3.2.4.1

Cc phng php hp trng Bao ph cu lnh

Lu thut ton cho chng trnh tam gic:

a a,b,c:integer Lu thut ton cho on code ca chng trnh ;


a:= StrToInt(AEdit.Text); b:= StrToInt(BEdit.Text); c:= StrToInt(CEdit.Text);

Khng c ngoi l S c ShowMessage M5

b a<0 or b<0 or c<0 d ShowMessag e M1

Show Message

a+b>c and a+c>b and b+c>a 51 a=b or b=c a=b and or c=b b=c Show Message S

Show Message Show Message

h S i

S j k

l Trong : M1: Ba cnh A, B, C khng tha mn l 3 cnh ca 1 tam gic. M2: Ba cnh A, B, C lp thnh 1 tam gic u. M3: Ba cnh A, B, C lp thnh 1 tam gic cn. M4: Ba cnh A, B, C lp thnh 1 tam gic thng. M5: Li nh dnh d liu. ngh bn xem v nhp li. Cc ca kim th thu c: 1. 2. 3. 4. 5. 6. -1, 1, 1 1, 1, 1 2, 2, 1 2, 3, 4 1, 2, 4 A, 1, 1 v cc hon v v cc hon v v cc hon v v cc hon v 52 v cc hon v (abdl) (abefhl) (abefijl) (abefikl) (abegl) (acl)

7.

1.1, 1, 1 v cc hon v

(a,c,l)

3.2.4.2

Bao ph quyt nh

Cc ca kim th thu c: 1. 2. 3. 4. 5. 6. 7. -32768, -32768, -32768 32767, 32767 , 32767 32767, 32767, 327676 32767, 32766, 32765 32767, 1, 2 A, 1, 1 1.1, 1, 1 v cc hon v v cc hon v v cc hon v v cc hon v v cc hon v v cc hon v v cc hon v (abdl) (abefhl) (abefijl) (abefikl) (abegl) (acl) (a,c,l)

3.2.4.3

Bao ph iu kin

Cc ca kim th thu c l: 1. -1, 1, 1 2. 2, 3, 4 3. 1, 2 , 4 4. 2, 2, 1 5. 1, 1, 1 6. A, 1, 1 v cc hon v. v cc hon v. v cc hon v. v cc hon v. v cc hon v. v cc hon v.

7. 1.1, 1, 1 v cc hon v.

3.2.4.4

Bao ph quyt nh iu kin

Cc ca kim th thu c l: 1. -1, 1, 1 2. 2, 3, 4 v cc hon v. v cc hon v.

53

3. 1, 2 , 4 4. 2, 2, 1 5. 1, 1, 1 6. A, 1, 1

v cc hon v. v cc hon v. v cc hon v. v cc hon v.

7. 1.1, 1, 1 v cc hon v.

3.2.4.5

Bao ph a iu kin

Cc ca kim th thu c l: 1. -1, 1, 1 2. 2, 3, 4 3. 1, 2 , 4 4. 2, 2, 1 5. 1, 1, 1 6. A, 1, 1 v cc hon v. v cc hon v. v cc hon v. v cc hon v. v cc hon v. v cc hon v.

7. 1.1, 1, 1 v cc hon v.

54

KT LUN
Kim th phn mm, mt hng i khng cn mi m trn th gii, nhng li l mt hng i rt mi Vit Nam. N ha hn mt tng lai mi cho cc hc sinh, sinh vin ngnh CNTT. Qua tm hiu v xy dng ti ny, em thy mnh t c mt u im cng nh vn cn mt s tn ti. Nhng im t c: Nm c tng quan v kim th phn mm: Cc khi nim c bn, cc phng php kim th phn mm, v cc vn lin quan Tm hiu v nm c cc phng php v chin lc thit k test case trong kim th phn mm, v p dng c cc phng php tm hiu xy dng cc test case cho 1 bi ton c th - Chng trnh Tam gic. B sung v rn luyn thm k nng s dng phn mm Word v Powerpoint. Nng cao kh nng c hiu ti liu Ting Anh. Nhng im cha t: S p dng nhng kin thc tm hiu c mi ch dng li mt bi ton nh, m vn cha th p dng cho cc bi ton hay ng dng ln. T nhng im t v cha t trn, em hi vng s nhn c s gp chn thnh ca cc thy c v cc bn bn bo co c hon thin hn. Sinh vin Phm Th Trang 55

TI LIU THAM KHO


1. The Art of Software Testing, Glenford J. Myers, Second Edition, John Wiley and Sons, Inc. 2. Software Engineering - A Practitioners Approach, Roger S.Pressman, Sixth Edition, Ph.D, McGraw-Hill, Inc. 3. A Practitioner's Guide to Software Test Design, Lee Copeland, First Edition, Artech House Publishers Boston, London. 4. Effective methods for Software Testing, William E. Perry, 3rd Edition, Wiley Publishing, Indian. 5. 6. 7. 8. Software Testing, Ron Patton, Second Edition, Sam Publishing. http://www.vietnamesetestingboard.org/ http://en.wikipedia.org/wiki/Software_testing Mt s trang web v kim th phn mm khc.

56

NHN XT CA GIO VIN HNG DN


Thi Nguyn, ngy thng 09 nm 2009 Gio vin hng dn

Nguyn Hng Tn

57

You might also like