You are on page 1of 44

CHNG 3: KIM TH PHN MM Mc tiu ca chng ny l m t qu trnh kim th phn mm v a ra cc k thut kim th.

Khi c chng ny, bn s: - Hiu c s khc bit gia kim th hp l v kim th khim khuyt. - Hiu c cc nguyn l ca kim th h thng v kim th b phn. - Hiu c ba chin lc c th s dng sinh cc trng hp kim th h thng. - Hiu c cc c im bn cht ca cng c phn mm c s dng kim th t ng. 3.1. Qu trnh kim th Qu trnh kim th phn mm c hai mc tiu ring bit: 1. Chng minh cho ngi pht trin v khch hng thy cc yu cu ca phn mm. Vi phn mm truyn thng, iu ny c ngha l bn c t nht mt th nghim cho mi yu cu ca ngi dng v ti liu h thng yu cu.Vi cc sn phm phn mm chung, iu c ngha l bn nn th nghim tt c cc c tnh ca h thng s c kt hp trong sn phm pht hnh. 2. Pht hin cc li v khim khuyt trong phn mm: phn mm thc hin khng ng, khng nh mong i hoc khng lm theo nh c t. Kim tra khim khuyt tp trung vo vic tm ra tt c cc kiu thc hin khng nh mong i ca h thng, nh s v h thng, s tng tc khng mong mun vi h thng khc, tnh ton sai v sai lc d liu.

Hnh 3.2 Mt m hnh ca qu trnh kim th phn mm Mc tiu th nht dn n kim th hp l, s dng tp cc th nghim phn nh mong mun ca ngi dng kim tra xem h thng c thc hin ng khng. Mc tiu th hai dn n kim th khim khuyt: cc trng hp kim th c thit k tm ra cc khim khuyt. Cc trng hp kim th c th c lm khng r v khng cn phn nh cch h thng bnh thng c s dng. Vi kim th hp l, mt th nghim thnh cng l th nghim m h thng thc hin ng n. Vi kim th khim khuyt, mt th nghim thnh cng l mt th nghim tm ra mt khim khuyt, nguyn nhn lm cho h thng thc hin khng chnh xc. Kim th c th khng chng minh c phn mm khng c khim khuyt, hoc n s thc hin nh c t trong mi trng hp. Rt c th mt th nghim bn b qua c th pht hin ra cc vn khc trong h thng. Nh Dijstra, mt ngi i u trong vic pht trin k ngh phn mm, tuyn b (1972): kim th ch c th pht hin ra cc li hin ti, ch khng th a ra tt c cc li. Ni chung, v vy, mc tiu ca kim th phn mm l thuyt phc ngi pht trin phn mm v khch hng rng phn mm l tt cho cc thao tc s dng. Kim th l mt qu trnh c dng to nn s tin tng trong phn mm. M hnh tng qut ca qu trnh kim th c m t trong hnh 3.2. Cc trng hp kim th s ch r ca u vo th nghim v u ra mong i t h thng cng vi mt bn bo co sn phm c kim th. D liu kim th l u vo, c ngh ra kim th h thng. D liu kim th thnh thong c th c t ng sinh ra. Sinh cc trng hp kim th t ng l iu khng lm c. u ra ca th nghim ch c th c d on bi ngi him bit v hot ng ca h thng. Kim th ton din: mi chng trnh c th thc hin tun t c kim tra, l iu khng th lm c. V vy, kim th, phi c thc hin trn mt tp con cc trng hp kim th c th xy ra. Trong l tng, cc cng ty phn mm c nhng iu khon la chn tp con ny hn l giao n cho i pht trin. Nhng iu khon ny c th da trn nhng iu khon kim th chung, nh mt iu khon l tt c cc cu lnh trong chng trnh nn c thc thi t nht mt ln. Mt s la chn l nhng iu khon kim th c th s trn kinh nghim s dng h thng, v c th tp trung vo kim th cc c trng hot ng ca h thng. V d:

1. Tt c cc c trng ca h thng c truy cp thng qua thc n nn c kim th. 2. Kt hp cc chc nng (v d nh dng vn bn) c truy cp thng qua cng thc n phi c kim th. 3. Khi u vo c a vo, tt c cc chc nng phi c kim th vi cng mt th nghim ng n v th nghim khng ng n. iu r rng t kinh nghim vi sn phm phn mm ln nh phn mm x l vn bn, hoc bng tnh c th so snh cc nguyn tc thng thng c s dng trong lc kim th sn phm. Khi cc c trng ca phn mm c s dng c lp, chng lm vic bnh thung. Cc vn pht sinh, nh Whittaker gii thch (Whittaker, 2002), khi lin kt cc c trng khng c kim th cng nhau. ng a ra mt v d, khi s dng phn mm x l vn bn s dng s dng li ch thch cui trang vi cch sp xp nhiu ct lm cho vn bn trnh by khng ng. Khi mt phn ca qu trnh lp k hoch V & V, ngi qun l phi a ra cc quyt nh ai l ngi chu trch nhim trong tng bc kim th khc nhau. Vi hu ht cc h thng, cc lp trnh vin chu trch nhim kim th cc thnh phn m h trin khai. Khi cc lp trnh vin hon thnh cc cng vic , cng vic c giao cho i tng hp, h s tch hp cc mun t nhng ngi pht trin khc nhau to nn phn mm v kim th ton b h thng. Vi h thng quan trng, mt qu trnh theo nghi thc c th c s dng, cc ngi th c lp chu trch nhim v tt c cc bc ca qu trnh kim th. Trong kim th h thng quan trng, cc th nghim c kim th ring bit v h s chi tit ca kt qu kim th c duy tr. Kim th cc thnh phn c thc hin bi nhng ngi pht trin thng da trn hiu bit trc gic v cch hot ng ca cc thnh phn. Tuy nhin, kim th h thng phi da trn vn bn c t h thng. c th l mt c t chi tit yu cu h thng, hoc n c th l c t hng ngi s dng mc cao ca cc c tnh c thc hin trong h thng. Thng c mt i c lp chu trch nhim kim th h thng, i kim th h thng lm vic t ngi s dng v ti liu yu cu h thng lp k hoch kim th h thng. Hu ht cc tho lun v kim th bt u vi kim th thnh phn v sau chuyn n kim th h thng. Ti o ngc th t cc tho lun trong chng ny bi v rt nhiu qu trnh pht trin phn mm bao gm vic tch hp cc thnh phn s dng li v c lp vo phn mm to nn cc yu cu c th. Tt c cc kim th trong trng hp ny l kim th h thng, v khng c s tch ri trong qu trnh kim th thnh phn.

3.2. Kim th h thng H thng gm hai hoc nhiu thnh phn tch hp nhm thc hin cc chc nng hoc c tnh ca h thng. Sau khi tch hp cc thnh phn to nn h thng, qu trnh kim th h thng c tin hnh. Trong qu trnh pht trin lp i lp li, kim th h thng lin quan vi kim th mt lng cng vic ngy cng tng phn phi cho khch hng; trong qu trnh thc nc, kim th h thng lin quan vi kim th ton b h thng. Vi hu ht cc h thng phc tp, kim th h thng gm hai giai on ring bit: 1. Kim th tch hp: i kim th nhn m ngun ca h thng. Khi mt vn c pht hin, i tch hp th tm ngun gc ca vn v nhn bit thnh phn cn phi g li. Kim th tch hp hu nh lin quan vi vic tm cc khim khuyt ca h thng. 2. Kim th pht hnh: Mt phin bn ca h thng c th c pht hnh ti ngi dng c kim th. i kim th tp trung vo vic hp l cc yu cu ca h thng v m bo tnh tin cy ca h thng. Kim th pht hnh thng l kim th hp en, i kim th tp trung vo m t cc c tnh h thng c th lm c hoc khng lm c. Cc vn c bo co cho i pht trin g li chng trnh. Khch hng c bao hm trong kim th pht hnh, thng c gi l kim th chp nhn. Nu h thng pht hnh tt, khch hng c th chp nhn n s dng. V c bn, bn c th ngh kim th tch hp nh l kim th h thng cha y bao gm mt nhm cc thnh phn. Kim th pht hnh lin quan dn kim th h thng pht hnh c nh phn phi ti khch hng. Tt nhin, c s gi chng ln nhau, c bit khi pht trin h thng v h thng uc pht hnh khi cha hon thnh. Thng thng, s u tin hng u trong kim th tch hp l pht hin ra khim khuyt trong h thng v s u tin hng u trong kim th h thng l lm hp l cc yu cu ca h thng. Tuy nhin trong thc t, c vi kim th hp l v vi kim th khim khuyt trong cc qu trnh. 3.3. Kim th tch hp Qu trnh kim th tch hp bao gm vic xy dng h thng t cc thnh phn v kim th h thng tng hp vi cc vn pht sinh t s tng tc gia cc thnh phn. Cc thnh phn c tch hp c th trng vi chnh n, cc thnh phn c th dng li c c th thm vo cc h thng ring bit hoc thnh phn mi c pht trin. Vi rt nhiu h thng ln, c tt c 3 loi thnh phn c s dng. Kim th tch hp kim tra trn thc t cc thnh phn lm vic vi nhau, c gi l chnh xc v truyn d liu ng vo lc thi gian ng thng qua giao din ca chng. H thng tch hp bao gm mt nhm cc thnh phn thc hin vi chc nng ca h thng v c tch hp vi nhau bng cch gp cc m chng lm vic cng vi nhau. Thnh thong, u tin ton b khung ca h thng c pht trin, sau cc thnh phn

c gp li to nn h thng. Phng php ny c gi l tch hp t trn xung (top-down). Mt cch la chn khc l u tin bn tch hp cc thnh phn c s cung cp cc dch v chung, nh mng, truy cp c s d liu, sau cc thnh phn chc nng c thm vo. Phng php ny c gi l tch hp t di ln (bottom-up). Trong thc t, vi rt nhiu h thng, chin lc tch hp l s pha trn cc phng php trn. Trong c hai phng php top-down v bottom-up, bn thng phi thm cc m m phng cc thnh phn khc v cho php h thng thc hin. Mt vn ch yu ny sinh trong lc kim th tch hp l cc li cc b. C nhiu s tng tc phc tp gia cc thnh phn ca h thng, v khi mt u ra bt thng c pht hin, bn c th kh nhn ra ni m li xut hin. vic tm li cc b c d dng, bn nn thng xuyn tch hp cc thnh phn ca h thng v kim th chng. Ban u, bn nn tch hp mt h thng cu hnh ti thiu v kim th h thng ny. Sau bn thm dn cc thnh phn vo h thng v kim th sau mi bc thm vo. Trong v d trn hnh 2.3, A,B,C,D l cc thnh phn v T1, T2, T3, T4, T5 l tp cc th nghim kt hp cc c trng ca h thng. u tin, cc thnh phn A v B c kt hp to nn h thng (h thng cu hnh ti thiu), v cc th nghim T1, T2, T3 c thc hin. Nu pht hin c khim khuyt, n s c hiu chnh. Sau , thnh phn C c tch hp v cc th nghim T1, T2 v T3 c lm lp li m bo n khng to nn cc kt qu khng mong mun khi tng tc vi A v B. Nu c vn ny sinh trong cc kim th ny, n hu nh chc chn do s tng tc vi cc thnh phn mi. Ngun gc ca vn c khoanh vng, v vy lm n gin vic tm v sa li. Tp th nghim T4 cng c thc hin trn h thng. Cui cng, thnh phn D c tch hp vo h thng v kim th c thc hin trn cc th nghim c v cc th nghim mi. Khi lp k hoch tch hp, bn phi quyt nh th t tch hp cc thnh phn. Trong mt qu trnh nh XP, khch hng cng tham gia trong qu pht trin, khch hng quyt nh cc chc nng nn c thm vo trong mi bc tch hp h thng. Do , tch hp h thng c iu khin bi s u tin ca khch hng. Trong cch tip cn khc pht trin h thng, khi cc thnh phn v cc thnh phn ring bit c tch hp, khch hng c th khng tham gia vo qu trnh tch hp h thng v i tch hp quyt nh th t tch hp cc thnh phn. Trong trng hp ny, mt quy tc tt l u tin tch hp cc thnh phn thc hin hu ht cc chc nng thng s dng ca h thng. iu ny c ngha l cc thnh phn thng c s dng hu ht c kim th. V d, trong h thng th vin, LIBSYS, u tin bn nn tch hp chc nng tm kim trong h thng ti thiu, ngi dng c th tm kim cc ti m h cn. Sau , bn nn tch hp cc chc nng cho php ngi dng ti ti liu t trn Internet v dn thm cc thnh phn thc hin cc chc nng khc ca h thng.

Hnh 3.3 Kim th tch hp ln dn Tt nhin, thc t t khi n gin nh m hnh trn. S thc hin cc chc nng ca h thng c th lin quan n nhiu thnh phn. kim th mt c tnh mi, bn c th phi tch hp mt vi thnh phn khc nhau. Kim th c th pht hin li trong khi tng tc gia cc thnh phn ring bit v cc phn khc ca h thng. Vic sa li c th kh khn bi v mt nhm cc thnh phn thc hin chc nng c th phi thay i. Hn na, tch hp v kim th mt thnh phn mi c th thay i tng tc gia cc thnh phn c kim th. Cc li c th c pht hin c th khng c pht hin trong khi kim th h thng cu hnh n gin. Nhng vn ny c ngha l khi mt h thng tch hp mi c to ra, cn phi chy li cc th nghim trong h thng tch hp c m bo cc yu cu cc th nghim vn thc hin tt, v cc kim th mi thc hin tt c chc nng mi ca h thng. Vic thc hin kim th li tp cc th nghim c gi l kim th hi quy. Nu kim th hi quy pht hin c vn , th bn phi kim tra c li trong h thng c hay khng m h thng mi pht hin ra, hoc c li do thm cc chc nng mi. R rng, kim th hi quy l qu trnh tn km, khng kh thi nu khng c s h tr

t ng. Trong lp trnh cc , tt c cc th nghim c vit nh m c th thc thi, cc u vo th nghim v kt qu mong i c xc nh r v c t ng kim tra. Khi c s dng cng vi mt khung kim th t ng nh Junit (Massol v Husted, 2003), iu ny c ngha l cc th nghim c th c t ng thc hin li. y l nguyn l c bn ca lp trnh cc , khi tp cc th nghim ton din c thc hin bt c lc no m mi c tch hp v cc m mi ny khng c chp nhn cho n khi tt c cc th nghim c thc hin thnh cng. 3.4. Kim th pht hnh Kim th pht hnh l qu trnh kim th mt h thng s c phn phi ti cc khch hng. Mc tiu u tin ca qu trnh ny l lm tng s tin cy ca nh cung cp rng sn phm h cung cp c y cc yu cu. Nu tha mn, h thng c th c pht hnh nh mt sn phm hoc c phn phi n cc khch hng. chng t h thng c y cc yu cu, bn phi ch ra n c cc chc nng c t, hiu nng, v tnh tin cy cao, n khng gp sai st trong khi c s dng bnh thng. Kim th pht hnh thng l qu trnh kim th hp en, cc th nghim c ly t c t h thng. H thng c i x nh chic hp en, cc hot ng ca n ch c th c nhn bit qua vic nghin cu u vo v u ra ca n. Mt tn khc ca qu trnh ny l kim th chc nng, bi v ngi kim tra ch tp trung xem xt cc chc nng v khng quan tm s thc thi ca phn mm.

Hnh 3.4 Kim th hp en Hnh 3.4 minh ha m hnh mt h thng c kim th bng phng php kim th hp en. Ngi kim tra a u vo vo thnh phn hoc h thng v kim tra u ra tng ng. Nu u ra khng nh d bo trc (v d, nu u ra thuc tp Oe), kim th pht hin mt li trong phn mm. Khi h thng kim th c thc hin, bn nn th m s phn mm bng cch la chn cc trng hp th nghim trong tp Ie (trong hnh 3.4). Bi v, mc ch ca chng ta l la chn cc u vo c xc sut sinh ra li cao (u ra nm trong tp Oe). Bn s dng cc kinh nghim thnh cng trc v cc nguyn tc kim th a ra cc la chn. Cc tc gi nh Whittaker (Whittaker, 2002) tm lc nhng kinh nghim kim th ca h trong mt tp cc nguyn tc nhm tng kh nng tm ra cc th nghim khim khuyt. Di y l mt vi nguyn tc:

1. La chn nhng u vo lm cho h thng sinh ra tt c cc thng bo li. 2. Thit k u vo lm cho b m u vo b trn. 3. Lm lp li vi cc u vo nh nhau hoc mt dy cc u vo nhiu ln. 4. Lm sao u ra khng ng c sinh ra. 5. Tnh ton kt qu ra rt ln hoc rt nh. xc nhn h thng thc hin chnh xc cc yu cu, cch tip cn tt nht vn ny l kim th da trn kch bn, bn a ra mt s kch bn v to nn cc trng hp th nghim t cc kch bn . V d, kch bn di y c th m t cch h thng th vin LIBSYS, tho lun trong chng trc, c th c s dng: Mt sinh vin Sct-len nghin cu lch s nc M c yu cu vit mt bi lun v Tm l ca ngi min Ty nc M t nm 1840 n nm 1880. lm vic , c y cn tm cc ti liu t nhiu th vin. C y ng nhp vo h thng LIBSYS v s dng chc nng tm kim tm xem c y c c truy cp vo cc ti liu gc trong khong thi gian y khng. C y tm c cc ngun ti liu t rt nhiu th vin ca cc trng i hc ca M, v c y ti mt vi bn sao cc ti liu . Tuy nhin, vi mt vi ti liu, c y cn phi c s xc nhn t trng i hc ca c y rng c y tht s l mt sinh vin v cc ti liu c s cho nhng mc ch phi thng mi. Sau , sinh vin s dng cc phng tin ca LIBSYS yu cu s cho php v ng k cc yu cu ca h. Nu c xc nhn, cc ti liu s c ti xung t my ch ca th vin v sau c in. C y nhn c mt thng bo t LIBSYS ni rng c y s nhn c mt e-mail khi cc ti liu in c gi tr tp hp. T kch bn trn, chng ta c th p dng mt s th nghim tm ra mc ch ca LIBSYS: 1. Kim th c ch ng nhp bng cch thc hin cc ng nhp ng v ng nhp sai kim tra ngi dng hp l c chp nhn v ngi dng khng hp l khng c chp nhn. 2. Kim th c ch tm kim bng cch s dng cc cu hi bit cc ti liu cn tm kim tra xem c ch tm kim c thc s tm thy cc ti liu . 3. Kim th s trnh by h thng kim tra cc thng tin v ti liu c c hin th ng khng.

4. Kim th c ch cho php yu cu ti ti liu xung. 5. Kim th e-mail tr li cho bit ti liu ti xung l sn sng s dng.

Hnh 3.5 Biu dy tp hp d liu v thi tit Vi mi th nghim, bn nn thit k mt tp cc th nghim bao gm cc u vo hp l v u vo khng hp l sinh ra cc u ra hp l v u ra khng hp l. Bn cng nn t chc kim th da trn kch bn, v th u tin cc kch bn thch hp c th nghim, sau cc kch bn khc thng v ngoi l c xem xt, v vy s c gng ca bn dnh cho cc phn m h thng thng c s dng. Nu bn s dng trng hp ngi dng m t cc yu cu ca h thng, cc trng hp ngi dng v biu lin kt ni tip c th l c s kim th h thng. minh ha iu ny, ti s dng mt v d t h thng trm d bo thi tit, Hnh 3.5 ch ra cc thao tc ln lt c thc hin ti trm d bo thi tit khi n p ng mt yu cu tp hp d liu cho h thng bn v. Bn c th s d biu ny nhn bit cc thao tc s c th nghim v gip cho vic thit k cc trng hp th nghim thc hin cc th nghim. V vy a ra mt yu cu cho mt

bo co s dn n s thc hin ca mt chui cc thao tc sau: CommsController:request WheatherStation:report WeatherData:summarise Biu c th c s dng nhn bit u vo v u ra cn to ra cho cc th nghim: 1. Mt u vo ca mt yu cu bo co nn c mt s tha nhn v cui cng bo co nn xut pht t yu cu. Trong lc kim th, bn nn to ra d liu tm tt, n c th c dng kim tra xem bo co c t chc chnh xc. Hnh 3.5 Biu dy tp hp d liu v thi tit. 2. Mt yu cu u vo cho mt bo co v kt qu ca WeatherStation trong mt bo co tm tt c sinh ra. Bn c th kim th iu ny mt cch c lp bng cch to ra cc d liu th tng ng vi bn tm tt, bn chun b kim tra CommosController v kim tra i tng WeatherStation c a ra chnh xc trong bn tm tt. 3. D liu th trn cng c s dng kim th i tng WeatherData. Tt nhin, ti lm n gin biu trong hnh 3.5 v n khng ch ra cc ngoi l. Mt kch bn kim th hon chnh cng phi c trong bn k khai v m bo nm bt c ng cc ngoi l. 3.5. Kim th hiu nng Ngay khi mt h thng c tch hp y , h thng c th c kim tra cc thuc tnh ni bt nh hiu nng v tin cy. Kim th hiu nng phi c thit k m bo h thng c th x l nh mong mun. N thng bao gm vic lp mt dy cc th nghim, gnh nng s c tng cho nn khi h thng khng th chp nhn c na. Cng vi cc loi kim th khc, kim th hiu nng lin quan n c vic kim chng cc yu cu ca h thng v pht hin cc vn v khim khuyt trong h thng. kimth cc yu cu hiu nng t c, bn phi xy dng m t s lc thao tc. M t s lc thao tc l tp cc th nghim phn nh s ha trn cc cng vic s c thc hin bi h thng. V vy, nu 90% giao dch trong h thng c kiu A, 5% kiu B v phn cnli c kiu C, D v E, th chng ta phi thit k m t s lc thao tc phn ln tp trungvo kim th kiu A. Nu khng th bn s khng c c th nghim chnh xc v hiu nng hot ng ca h thng.

Tt nhin, cch tip cn ny khng nht thit l tt kim th khim khuyt. Nh ti tho lun, theo kinh nghim ch ra cch hiu qu pht hin khim khuyt l thit k cc th nghim xung quanh gii hn ca h thng. Trong kim th hiu nng, iu ny c ngha l nhn mnh h thng (v th n c tn l kim th nhn mnh) bng cch to ra nhng i hi bn ngoi gii hn thit k ca phn mm. V d, mt h thng x l cc giao dch c th c thit k x l n 300 giao dch mi giy; mt h thng iu khin c th c thit k iu khin ti 1000 thit b u cui khc nhau. Kim th nhn mnh tip tc cc th nghim bn cnh vic thit k ln nht c np vo h thng cho n khi h thng gp li. Loi kim th ny c 2 chc nng: 1. N kim th vic thc hin li ca h thng. Trng hp ny c th xut hin qua vic phi hp cc s kin khng mong mun bng cch np vt qu kh nng ca h thng. Trong trng hp ny, sai st ca h thng lm cho d liu b h hng hoc khng p ng c yu cu ca ngi dng. Kim th nhn mnh kim tra s qu ti ca h thng dn ti tht bi mm hn l lm sp di lng ti ca n. 2. N nhn mnh h thng v c th gy nn khim khuyt tr nn r rng m bnh thng khng pht hin ra. Mc d, n chng t nhng khim khuyt khng th dn n s sai st ca h thng trong khi s dng bnh thng, c th him gp trong trng hp bnh thng m kim th gay cn ti to. 32 Kim th gay cn c lin quan c bit n vic phn phi h thng da trn mt mt mng li my x l. Cc h thng thng a ra i hi cao khi chng phi thc hin nhiu cng vic. Mng tr thnh b lm mt tc dng vi d liu kt hp m cc qu trnh khc nhau phi trao i, v vy cc qu trnh tr nn chm hn, nh khi n i d liu yu cu t qu trnh khc. 3.6. Kim th thnh phn Kim th thnh phn (thnh thong c gi l kim th n v) l qu trnh kim th cc thnh phn ring bit ca h thng. y l qu trnh kim th khim khuyt v vy mc tiu ca n l tm ra li trong cc thnh phn. Khi tho lun trong phn gii thiu, vi hu ht cc h thng, ngi pht trin cc thnh phn chu trch nhim kim th cc

thnh phn. C nhiu loi thnh phn khc nhau, ta c th kim th chng theo cc bc sau: 1. Cc chc nng v cch thc ring bit bn trong i tng. 2. Cc lp i tng c mt vi thuc tnh v phng thc. 3. Kt hp cc thnh phn to nn cc i tng v chc nng khc nhau. Cc thnh phn hn hp c mt giao din r rng c s dng truy cp cc chc nng ca chng. Cc chc nng v phng thc ring l l loi thnh phn n gin nht v cc th nghim ca bn l mt tp cc li gi ti cc th tc vi tham s u vo khc nhau. Bn c th s dng cch tip cn ny thit k trng hp kim th (c tho lun trong phn sau), thit k cc th nghim chc nng v phng thc. Khi bn kim th cc lp i tng, bn nn thit k cc th nghim cung cp tt c cc chc nng ca i tng. Do , kim th lp i tng nn bao gm: 1. Kim th tt c cc thao tc c lp lin kt to thnh i tng. 2. B tr v kim tra tt c cc thuc tnh lin kt to thnh i tng. 3. Kim tra tt c cc trng thi ca i tng. iu ny c ngha l tt c cc s kin gy ra cc trng thi khc nhau ca i tng nn c m phng.

Hnh 3.6 Giao din ca i tng WeatherStation

V d, trm d bo thi tit c giao din trnh by trn hnh 3.6. N ch c mt thuc tnh, l nh danh ca n. N c mt hng s l tp thng s khi trm d bo thi tit c thit t. Do , bn ch cn mt th nghim kim tra n c thit t hay

cha. xc nh cc trng hp kim th kim tra reportWeather, calibrate, test, startup v shutdown. Trong trng hp l tng, bn nn kim th cc phng thc ring bit, nhng trong mt vi trng hp, cn c vi th nghim lin tip. V d kim th phng thc shutdown bn cn thc hin phng thc startup. S dng m hnh ny, bn c th nhn bit th t ca cc trng thi chuyn tip phi c kim th v xc nh th t chuyn tip cc s kin. Trong nguyn tc ny, bn nn kim th mi trng thi chuyn tip c th xy ra, mc d trong thc t, iu ny c th rt tn km.V d dy trng thi nn kim th trong trm d bo thi tit bao gm: Shutdown Waiting Shutdown Waiting Calibrating Testing Transmitting Waiting Waiting Collecting Waiting Summarising Transmitting Waiting Nu bn s dng s k tha s lm cho vic thit k lp i tng kim th kh khn hn. Mt lp cha cung cp cc thao tc s c k tha bi mt s lp con, tt c cc lp con nn c kim th tt c cc thao tc k tha. L do l cc thao tc k tha c th thay i cc thao tc v thuc tnh sau khi c k tha. Khi mt thao tc ca lp cha c nh ngha li, th n phi c kim th. Khi nim lp tng ng, c tho lun trong phn 23.3.2, c th cng c p dng cho cc lp i tng. Kim th cc lp tng ng ging nhau c th s dng cc thuc tnh ca i tng. Do , cc lp tng ng nn c nhn bit nh s khi to, truy cp v cp nht tt c thuc tnh ca lp i tng. 3.7. Kim th giao din Nhiu thnh phn trong mt h thng l s kt hp cc thnh phn to nn bi s tng tc ca mt vi i tng. Kim th cc thnh phn hn hp ch yu lin quan n kim th hot ng giao din ca chng thng qua cc c t. Hnh 3.7 minh ha qu trnh kim th giao din. Gi s cc thnh phn A, B, v C c tch hp to nn mt thnh phn ln hoc mt h thng con. Cc th nghim khng ch p dng vo cc thnh phn ring l m cn c p dng vo giao din ca cc thnh phn hn hp c to nn bng cch kt hp cc thnh phn . Kim th giao din c bit quan trng trong vic pht trin phn mm hng i tng v cc thnh phn c s. Cc i tng v cc thnh phn c xc nh qua giao din ca chng v c th c s dng li khi lin kt vi cc thnh phn khc trong cc h

thng khc nhau. Cc li giao din trong thnh phn hn hp khng th c pht hin qua vickim th cc i tng v cc thnh phn ring l. S tng tc gia cc thnh phn trong thnh phn hn hp c th pht sinh li. C nhiu kiu giao din gia cc thnh phn chng trnh, do c th xut hin cc kiu li giao din khc nhau:

Hnh 3.7 Kim th giao din

1. Giao din tham s: Khi d liu hoc tham chiu chc nng c a t thnh phn ny ti thnh phn khc. 2. Giao din chia s b nh: Khi mt khi b nh c chia s gia cc thnh phn. D liu c trong b nh bi mt h thng con v c truy xut bi mt h thng khc. 3. Giao din th tc: Mt thnh phn bao gm mt tp cc th tc c th c gi bi cc thnh phn khc. Cc i tng v cc thnh phn dng li c dng giao din ny. 4. Giao din truyn thng ip: Mt thnh phn yu cu mt dch v t mt thnh phn khc bng cch gi mt thng ip ti thnh phn . Thng ip tr li bao gm cc kt qu thc hin dch v. Mt vi h thng hng i tng c dng giao

din ny nh trong h thng ch-khch (client-server). Cc li giao din l mt dng li thng gp trong cc h thng phc tp (Lutz, 1993). Cc li ny c chia lm 3 loi: 1. Dng sai giao din: Mt thnh phn gi ti thnh phn khc v to nn mt li trong giao din ca chng. y l loi li rt thng gp trong giao din tham s: cc tham s c th c truyn sai kiu, sai th t hoc sai s lng tham s. 2. Hiu sai giao din: Mt thnh phn gi ti thnh phn khc nhng hiu sai cc c t giao din ca thnh phn c gi v lm sai hnh vi ca thnh phn c gi. Thnh phn c gi khng hot ng nh mong i v lm cho thnh phn gi cng hot ng khng nh mong i. V d, mt th tc tm kim nh phn c th c gi thc hin trn mt mng cha c xp theo th t, kt qu tm kim s khng ng. 3. Cc li trong b m thi gian: Cc li ny xut hin trong cc h thng thi gian thc s dng giao din chia s b nh hoc giao din truyn thng ip. D liu ca nh sn xut v d liu ca khch hng c th c iu khin vi cc tc khc nhau. Nu khng ch n trong thit k giao din, th khch hng c th truy cp thng tin li thi bi v thng tin ca nh sn xut cha c cp nht trong giao din chia s. Kim th nhng khim khuyt trong giao din rt kh khn bi v mt s li giao din ch biu l trong nhng iu kin c bit. V d, mt i tng c cha mt danh sch hng i vi cu trc d liu c chiu di c nh. Gi s danh sch hng i ny c thc hin vi mt cu trc d liu v hn v khng kim tra vic trn hng i khi mt mc c thm vo. Trng hp ny ch c th pht hin khi kim th vi nhng th nghim lm cho trn hng i v lm sai hnh vi ca i tng theo nhng cch c th nhn bit c. Nhng li khc c th xut hin do s tng tc gia cc li trong cc mun v i tng khc nhau. Nhng li trong mt i tng c th ch c pht hin khi mt vi i tng khc hot ng khng nh mong mun. V d, mt i tng c th gi mt i tng khc nhn c mt vi dch v v gi s c p ng chnh xc. Nu n hiu sai v gi tr c tnh, th gi tr tr v l hp l nhng khng ng. iu ny ch c pht hin khi cc tnh ton sau c kt qu sai. Sau y l mt vi nguyn tc kim th giao din:

1. Kho st nhng m c kim th v danh sch li gi ti cc thnh phn bn ngoi. 2. Vi nhng tham s trong mt giao din, kim th giao din vi tham s a vo rng. 3. Khi mt thnh phn c gi thng qua mt giao din th tc, thit k th nghim sao cho thnh phn ny b sai. Cc li khc hu nh l do hiu sai c t chung. 4. S dng kim th gay cn, nh tho lun phn trc, trong h thng truyn thng ip. Thit k th nghim sinh nhiu thng ip hn trong thc t. Vn b m thi gian c th c pht hin theo cch ny. 5. Khi mt vi thnh phn tng tc thng qua chia s b nh, thit k th nghim vi th t cc thnh phn c kch hot thay i. Nhng th nghim ny c th pht hin nhng gi s ngm ca cc lp trnh vin v th t d liu chia s c s dng v c gii phng. K thut hp l tnh thng hiu qu hn kim th pht hin li giao din. Mt ngn ng nh kiu cht ch nh JAVA cho php ngn chn nhiu li giao din bi trnh bin dch. Khi mt ngn ng khng cht ch nh C c s dng, mt phn tch tnh nh LINTc th pht hin cc li giao din. S kim tra chng trnh c th tp trung vo cc Giao din gia cc thnh phn v cu hi v hnh vi giao din xy ra trong qu trnh kim tra. 3.8. Thit k trng hp th (Test case design) Thit k trng hp th nghim l mt phn ca kim th h thng v kim th thnh phn, bn s thit k cc trng hp th nghim (u vo v u ra d on) kim th h thng. Mc tiu ca qu trnh thit k trng hp kim th l to ra mt tp cc trng hp th nghim c hiu qu pht hin khim khuyt ca chng trnh v ch ra cc yu cu ca h thng. thit k mt trng hp th nghim, bn chon mt chc nng ca h thng hoc ca thnh phn m bn s kim th. Sau bn chn mt tp cc u thc hin cc chc nng , v cung cp ti liu v u ra mong mun v gii hn ca u ra, v im m c th thit k t ng kim tra th nghim vi u ra thc t v u ra mong i vn nh

th. C nhiu phng php khc nhau gip bn c th thit k cc trng hp th nghim: 1. Kim th da trn cc yu cu: Cc trng hp th nghim c thit k kim th cc yu cu h thng. N c s dng trong hu ht cc bc kim th h thng bi v cc yu cu h thng thng c thc hin bi mt vi thnh phn. Vi mi yu cu, bn xc nh cc trng hp th nghim c th chng t c h thng c yu cu . 2. Kim th phn hoch: bn xc nh cc phn hoch u vo v phn hoch u ra v thit k th nghim, v vy h thng thc hin vi u vo t tt c cc phn hoch v sinh ra u ra trong tt c cc phn hoch. Cc phn hoch l cc nhm d liu c chung c tnh nh tt c cc s u m, tt c tn u c u c di nh hn 30 k t, tt c cc s kin pht sinh t vic chn cc mc trn thc n 3. Kim th cu trc: Bn s dng nhng hiu bit v cu trc chng trnh thit k cc th nghim thc hin tt c cc phn ca chng trnh. V c bn, khi kim th mt chng trnh, bn nn kim tra thc thi mi cu lnh t nht mt ln. Kim th cu trc gip cho vic xc nh cc trng hp th nghim. Thng thng, khi thit k cc trng hp th nghim, bn nn bt u vi cc th nghim mc cao nht ca cc yu cu, sau thm dn cc th nghim chi tit bng cch s dng kim th phn hoch v kim th cu trc. 3.8.1. Kim th da trn cc yu cu Mt nguyn l chung ca cc yu cu k ngh l cc yu cu phi c kh nng kim th c. Cc yu cu nn c vit theo cch m mt th nghim c th c thit k, do quan st vin c th kim tra xem yu cu tha mn cha. V vy, kim th da trn cc yu cu l mt tip cn c h thng thit k trng hp th nghim gip cho bn xem xt mi yu cu v tm ra cc th nghim. Kim th da trn cc yu cu c hiu qu hn kim th khim khuyt bn ang chng t h thng thc hin c y cc yu cu. V d, hy xem xt cc yu cu cho h thng LIBSYS. 1. Ngi dng c th tm kim hoc tt c cc tp ban u ca c s d liu hoc la chn mt tp con t . 2. H thng s cung cp cc khung nhn hp l cho ngi dng c ti liu trong

kho ti liu. 3. Mi yu cu s c cp pht mt nh danh duy nht (ORDER_ID) ngi dng c th c php sao chp qua ti khon ca vng lu tr thng trc. Gi s chc nng tm kim c kim th, th cc th nghim c th chp nhn c cho yu cu th nht l: - Ban u, ngi dng tm kim cc mc m bit s c mt v bit khng c trong tp c s d liu ch gm c mt c s d liu. 37 - Ban u, ngi dng tm kim cc mc m bit s c mt v bit khng c trong tp c s d liu gm c hai c s d liu. - Ban u, ngi dng tm kim cc mc m bit s c mt v bit khng c trong tp c s d liu gm c nhiu hn hai c s d liu. - La chn mt c s d liu t tp c s d liu, ngi dng tm kim cc mc m bit s c mt v bit khng c trong c s d liu . - La chn nhiu hn mt c s d liu t tp c s d liu, ngi dng tm kim cc mc m bit s c mt v bit khng c trong c s d liu . T , bn c th thy kim th mt yu cu khng c ngha l ch thc hin kim th trn mt th nghim. Thng thng, bn phi thc kim th nghim trn mt vi th nghim m bo bn kim sot c yu cu . Kim th cc yu cu khc trong h thng LIBSYS c th c thc hin theo ging nh trn. Vi yu cu th hai, bn s son ra cc th nghim phn phi tt c cc kiu ti liu c th c x l bi h thng v kim tra s hin th cc ti liu . Vi yu cu th ba, bn gi v a vo mt vi yu cu, sau kim tra nh danh yu cu c hin th trong giy chng nhn ca ngi dng, v kim tra nh danh yu cu c l duy nht hay khng. 3.8.2. Kim th phn hoch D liu u vo v kt qu u ra ca chng trnh thng c phn thnh mt s loi khc nhau, mi loi c nhng c trng chung, nh cc s u dng, cc s u m, v cc thc n la chn. Thng thng, cc chng trnh thc hin theo cch c th so snhc vi tt c thnh vin ca mt lp. Do , nu chng trnh c kim th thc hinnhng tnh ton v yu cu hai s dng, th bn s mong mun chng trnh thc hin theo cch nh nhau vi tt c cc s dng.

Bi v cch thc hin l tng ng, cc loi ny cn c gi l phn hoch tng ng hay min tng ng (Bezier, 1990). Mt cch tip cn c h thng thit k cc trng hp kim th l da trn s nh danh ca tt c cc phn hoch trong mt h thng hoc mt thnh phn. Cc trng hp th nghim c thit k sao cho u vo v u ra nm trong phn hoch . Kim th phn hoch c th c s dng thit k cc trng hp th nghim cho cc h thng v cc thnh phn. Trong hnh 3.8, mi phn hoch tng ng c biu th nh mt elp. u vo cc phn hoch tng ng l nhng tp d liu, tt c cc tp thnh vin nn c x l mt cch tng ng. u ra phn hoch tng l u ra ca chng trnh v chng c cc c trng chung, v vy chng c th c kim tra nh mt lp ring bit. Bn cng xc nh cc phn hoch c u vo bn ngoi cc phn hoch khc. Kim tra cc th nghim m chng trnh s dng u vo khng hp l c thc hin ng cch thc khng. Cc u vo hp l v u vo khng hp l cng c t chc thnh cc phn hoch tng ng. Hnh 3.8 Phn hoch tng ng

Khi bn xc nh c tp cc phn hoch, bn c th la chn cc trng hp th nghim cho mi phn hoch . Mt quy tc tt la chn trng hp th nghim l lachn cc trng hp th nghim trn cc gii hn ca phn hoch cng vi cc th nghim gn vi im gia ca phn hoch. L do cn bn l ngi thit k v lp trnh vin thng xem xt cc gi tr u vo in hnh khi pht trin mt h thng. Bn kim th iu bng cch la chn im gia ca h thng. Cc gi tr gii hn thng khng in hnh(v d, s 0 c th c s dng khc nhau trong cc tp cc s khng

m), v vy n khng c ngi pht trin ch ti. Cc li ca chng trnh thng xut hin khi n x l cc gi tr khng in hnh. Bn xc nh cc phn hoch bng cch s dng c t chng trnh hoc ti liu hng dn s dng, v t kinh nghim ca mnh, bn d on cc loi gi tr u vo thch hp pht hin li. V d, t c trng ca chng trnh: chng trnh chp nhn t 4 n 8 u vo l cc s nguyn c 5 ch s ln hn 10 000. Hnh 3.9 ch ra cc phn hoch cho tnh hung ny v cc gi tr u vo c th xy ra. minh ha cho ngun gc ca nhng trng hp th nghim ny, s dng cc c t ca thnh phn tm kim (trn hnh 3.10). Thnh phn ny tm kim trn mt dy cc phn t a ra phn t mong mun (phn t kha). N tr li v tr ca phn t trong dy.Ti ch r y l mt cch tru tng xc nh cc iu kin tin quyt phi ng trc khi thnh phn c gi, v cc hu iu kin phi ng sau khi thc hin.

Hnh 3.9 Cc phn hoch tng ng iu kin tin quyt: Th tc tm kim s ch lm vic vi cc dy khng rng. Hu iu kin: bin Found c thit t nu phn t kha thuc dy. Phn t kha c ch s L. Gi tr ch s khng c xc nh nu phn t khng thuc dy.

T c trng , bn c th nhn ra hai phn hoch tng ng: 1. Cc u vo c phn t kha l mt phn t ca dy (Found = true).

2. Cc u vo c phn t kha khng phi l mt phn t ca dy (Found = false). Procedure Search (Key : ELEM ; T: SEQ of ELEM; Found : in out BOOLEAN; L: in out ELEM_INDEX) ; Tin iu kin -- Dy c t nht mt phn t TFIRST <= TLAST Hu iu kin -- Phn t c tm thy v c ch bi L ( Found and T (L) = Key) hoc -- Phn t khng thuc dy ( not Found and not (exists i, TFIRST >= i <= TLAST, T (i) = Key )) Hnh 3.10 c t chng trnh tm kim

Khi bn th nghim chng trnh vi cc dy, mng hoc danh sch, mt s nguyn tc thng c s dng thit k cc trng hp kim th:

1. Kim th phn mm vi dy ch c mt gi tr. Lp trnh vin thng ngh cc dy gm vi gi tr, v thnh thong, h cho rng iu ny lun xy ra trong cc chng trnh ca h. V vy, chng trnh c th khng lm vic chnh xc khi dy c a vo ch c mt gi tr. 2. S dng cc dy vi cc kch thc khc nhau trong cc th nghim khc nhau. iu ny lm gim c hi mt chng trnh khim khuyt s ngu nhin a ra u ra chnh xc bi v cc u vo c cc c tnh ngu nhin. 3. Xut pht t cc th nghim c phn t u tin, phn t gia, v phn t cui cng c truy cp. Cch tip cn ny bc l cc vn ti cc gii hn phn hoch. T cc nguyn tc trn, hai phn hoch tng ng c th c xc nh: 1. Dy u vo c mt gi tr. 2. S phn t trong dy u vo ln hn 1. Sau khi, bn xc nh thm cc phn hoch bng cch kt hp cc phn hoch c, v d, kt hp phn hoch c s phn t trong dy ln hn 1 v phn t kha khng thuc Dy. Hnh 3.11 a ra cc phn hoch m bn xc nh kim th thnh phn tm kim.

Hnh 3.12 Kim th cu trc Mt tp cc trng hp th nghim c th da trn cc phn hoch cng c a ra trn hnh 3.11. Nu phn t kha khng thuc dy, gi tr ca L l khng xc nh (??). Nguyn tc cc dy vi s kch thc khc nhau nn c s dng c p dng trong cc trng hp th nghim ny. Tp cc gi tr u vo s dng kim th th tc tm kim khng bao gi ht. Th tc

ny c th gp li nu dy u vo tnh c gm cc phn t 1, 2, 3 v 4. Tuy nhin, iu l hp l gi s: nu th nghim khng pht hin khim khuyt khi mt thnh vin ca mt loi c x l, khng c thnh vin khc ca lp s xc nh cc khim khuyt. Tt nhin, cc khim khuyt s vn tn ti. Mt vi phn hoch tng ng c th khng c xc nh, cc li c th c to ra trong phn hoch tng ng hoc d liu th nghim c th c chun b khng ng. 3.8.3. Kim th cu trc

Hnh 3.13 Cc lp tng ng trong tm kim nh phn Kim th cu trc (hnh 3.12) l mt cch tip cn thit k cc trng hp kim th, cc th nghim c xc nh t s hiu bit v cu trc v s thc hin ca phn mm. Cch tip cn ny thnh thong cn c gi l kim th hp trng, hp knh, hoc kim th hp trong phn bit vi kim th hp en. Class BinSearch { // y l mt hm tm kim nh phn c thc hin trn mt dy cc // i tng c th t v mt kha, tr v mt i tng vi 2 thuc // tnh l: // index gi tr ch s ca kha trong dy // found c kiu logic cho bit c hay khng c kha trong dy // Mt i tng c tr v bi v trong Java khng th thng qua cc // kiu c bn bng tham chiu ti mt hm v tr v hai gi tr // Gi tr index = -1 nu kha khng c trong dy

public static void search( int key, int[] elemArray, Result r) { 1. 2. int bottom = 0; int top = elemArray.length 1; int mid; 3. r.found = false; 4. r.index = -1; 5. while (bottom <= top) { 6. mid = (top + bottom) / 2; 7. if (elemArray[mid] = key) { 8. r.index = mid; 9. r.found = true; 10. return; } // if part else { 11. if (elemArray[mid] < key) 12. bottom = mid + 1; else 13. top = mid -1; } } // while loop 14. }// search }// BinSearch Hnh 3.14 Chng trnh tm kim nh phn c vit bng Java. Hiu c cch s dng thut ton trong mt thnh phn c th gip bn xc nh thm cc phn hoch v cc trng hp th nghim. minh ha iu ny, ti thc hin cch c t th tc tm kim (hnh 3.10) nh mt th tc tm kim nh phn (hnh 3.14). Tt nhin, iu kin tin quyt c bo m nghim ngt. Dy c thc thi

nh mt mng v mng ny phi c sp xp v gi tr gii hn di phi nh hn gi tr gii hn trn. kim tra m ca th tc tm kim, bn c th xem vic tm kim nh phn chia khng gian tm kim thnh 3 phn. Mi phn c to bi mt phn hoch tng ng (hnh 3.13). Sau , bn thit k cc trng hp th nghim c phn t kha nm ti cc gii hn ca mi phn hoch. iu ny a n mt tp sa li ca cc trng hp th nghim cho th tc tm kim, nh trn hnh 3.15. Ch , sa i mng u vo v vy n c sp xp theo th t tng dn v thm cc th nghim c phn t kha k vi phn t gia ca mng. 3.8.4. Kim th ng dn Kim th ng dn l mt chin lc kim th cu trc. Mc tiu ca kim th ng dn l thc hin mi ng dn thc hin c lp thng qua mt thnh phn hoc chng trnh. Nu mi ng dn thc hin c lp c thc hin, th tt c cc cu lnh trong thnh phn phi c thc hin t nht mt ln. Hn na, tt c cu lnh iu kin phi c kim th vi c trng hp ng v sai. Trong qu trnh pht trin hng i tng, kim th ng dn c th c s dng khi kim th cc phng thc lin kt vi cc i tng. S lng ng dn qua mt chng trnh thng t l vi kch thc ca n. Khi tt c cc mun c tch hp trong h thng, n tr nn khng kh thi s dng k thut kim th cu trc. V th, k thut kim th ng dn hu nh c s dng trong lc kim th thnh phn. Kim th ng dn khng kim tra tt c cc kt hp c th ca ca cc ng dn qua chng trnh. Vi bt k thnh phn no ngoi cc thnh phn rt tm thng khng c vng lp, y l mc tiu khng kh thi. Trong chng trnh c cc vng lp s c mt s

v hn kh nng kt hp ng dn. Thm ch, khi tt c cc lnh ca chng trnh c thc hin t nht mt ln, cc khim khuyt ca chng trnh vn c th c a ra khi cc ng dn c bit c kt hp.

Hnh 3.15 Cc trng hp kim th cho chng trnh tm kim im xut pht kim th ng dn l th lung chng trnh. y l m hnh khung ca tt c ng dn qua chng trnh. Mt th lung cha cc nt miu t cc quyt nh v cc cnh trnh by lung iu khin. th lung c xy dng bng cch thay i cc cu lnh iu khin chng trnh s dng biu tng ng. Nu khng c cc cu lnh goto trong chng trnh, l mt qu trnh n gin xut pht t th lung. Mi nhnh trong cu lnh iu kin (if-then-else hoc case) c miu t nh mt ng dn ring bit. Mi mi tn tr li nt iu kin miu t mt vng lp. Ti v th lung cho phng thc tm kim nh phn trn hnh 3.16. to nn s tng ng gia th ny v chng trnh trn hnh 3.14 c r rng, ti miu t mi cu

lnh nh mt nt ring bit, cc s trong mi nt tng ng vi s dng trong chng trnh. Mc ch ca kim th ng dn l m bo mi ng dn c lp qua chng trnh c thc hin t nht mt ln. Mt ng dn chng trnh c lp l mt ng i ngang qua t nht mt cnh mi trong th lung. C nhnh ng v nhnh sai ca cc iu kin phi c thc hin. th lung cho th tc tm kim nh phn c miu t trn hnh 3.16, mi nt biu din mt dng trong chng trnh vi mt cu lnh c th thc hin c. Do , bng cch ln vt trn th lung, bn c th nhn ra cc ng dn qua th lung tm kim nh phn: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 1, 2, 3, 4, 5, 14 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, 1, 2, 3, 4, 5, 6, 7, 11, 13, 5, Hnh 2.16 th lung ca chng trnh tm kim nh phn. Nu tt c cc ng dn c thc hin, chng ta c th m bo mi cu lnh trong phng thc c thc hin t nht mt ln v mi nhnh c thc hin vi cc iu kin ng v sai. Bn c th tm c s lng cc ng dn c lp trong mt chng trnh bng tnh ton vng lin hp (McCabe, 1976) trong th lung chng trnh. Vi chng trnh khng c cu lnh goto, gi tr vng lin hp l nhiu hn s cu lnh iu kin trong chng trnh. Mt iu kin n l mt biu thc lgc khng c cc lin kt and hoc or. Nu chng trnh bao gm cc iu kin phc hp, l cc biu thc lgc bao gm cc lin kt and v or, th bn phi m s iu kin n trong cc iu kin phc hp khi tnh s vng lin hp. V vy, nu c 6 cu lnh if v 1 vng lp while v cc biu thc iu kin l n, th s vng lin hp l 8. Nu mt biu thc iu kin l biu thc phc hp nh if A and B or C, th bn tnh n nh 3 iu kin n. Do , s vng lin hp l 10. S vng lin hp ca thut ton tm kim nh phn (hnh 3.14) l 4 bi v n c 3 iu kin n ti cc dng 5, 7, 11. Sau khi tnh c s ng dn c lp qua m chng trnh bng tnh ton s vng lin hp, bn thit k cc trng hp th nghim thc hin mi ng

dn . S lng trng hp th nghim nh nht bn cn kim tra tt c cc ng dn tng chng trnh bng s vng lin hp. Thit k trng hp th nghim khng kh khn trong trng hp chng trnh l th tc tm kim nh phn. Tuy nhin, khi chng trnh c cu trc nhnh phc tp, c th rt kh khn d on c bao nhiu th nghim c thc hin. Trong trng hp , mt ngi phn tch chng trnh nng ng c th c s dng pht hin s tho s thc thi ca chng trnh. Nhng ngi phn tch chng trnh nng ng l cc cng c kim th, cng lm vic vi trnh bin dch. Trong lc bin dch, nhng ngi phn tch ny thm cc ch th ph sinh ra m. Chng m s ln mi cu lnh c thc hin. Sau khi chng trnh thc hin, mt bn s tho thc thi c th c in ra. N ch ra nhng phn chng trnh thc thi v khng thc thi bng cch s dng cc trng hp th nghim c bit. V vy, bn s tho thc thi cho php pht hin cc phn chng trnh khng c kim th. 3.9. T ng ha kim th (Test automation) Kim th l mt giai on tn km v nng n trong quy trnh phn mm. Kt qu l nhng cng c kim th l mt trong nhng cng c phn mm u tin c pht trin. Hin nay, cc cng c ny bc l nhiu s thun tin v chng lm gim ng k chi ph kim th. Ti tho lun mt cch tip cn t ng ha kim th (Mosley v Posey, 2002) vi mt khung kim th nh JUnit (Massol v Husted, 2003) c s dng kim th phc hi. JUnit l mt tp cc lp Java c ngi dng m rng to nn mi trng kim th t ng. Mi th nghim ring l c thc hin nh mt i tng v mt chng trnh ang chy th nghim chy tt c cc th nghim . Cc th nghim nn c vit theo cch chng ch ra h thng kim th c thc hin nh mong mun khng. Mt phn mm kim th workbench l mt tp tch hp cc cng c phc v cho qu trnh kim th. Hn na vi cc khung kim th cho php thc hin kim th t ng, mt workbench c th bao gm cc cng c m phng cc phn khc ca h thng v sinh ra d liu th nghim h thng. Hnh 3.17 a ra mt vi cng c c th bao gm trong mt workbench kim th:

1. Ngi qun l kim th: qun l qu trnh chy cc th nghim. H gi vt ca d liu th nghim, cc kt qu mong i v chng trnh d dng kim th. Cc khung kim t ng ha th nghim nh JUnit l v d ca cc ngi qun l th nghim. 2. My sinh d liu th nghim: sinh cc d liu th nghim chng trnh. iu ny c th thc hin bng cch la chn d liu t c s d liu hoc s dng cc mu sinh ngu nhin d liu vi khun dng ng n. 3. H tin on (Oracle): a ra cc d on v kt qu kim th mong mun. Cc h tin on c th l phin bn trc ca chng trnh hoc h thng bn mu. Kim th back-to-back , bao gm vic thc hin kim th song song h tin on v chng trnh . Cc khc bit trong cc u ra ca chng c lm ni bt. 4. H so snh tp tin: so snh cc kt qu th nghim chng trnh vi cc kt qu th nghim trc v bo co cc khc bit gia chng. Cc h so snh c s dng trong kim th hi quy (cc kt qu thc hin trong cc phin bn khc nhau c so snh). Khi kim th t ng c s dng, h so snh c th c gi t bn trong cc kim th . 5. H sinh bo co: cung cp cc bo co xc nh v a ra cc tin li cho kt qu th nghim. 6. H phn tch ng: thm m vo chng trnh m s ln mi cu lnh c thc thi. Sau khi kimth, mt bn s tho thc thi c sinh ra s cho bit mi cu lnh trong chng trnh c thc hin bao nhiu ln. 7. H m phng (Simulator): Cc loi h m phng khc nhau c th c cung cp. Mc ch ca cc h m phng l m phng cc my khi chng trnh c thc thi. H m phng giao din ngi dng l cc chng trnh iu khin kch bn m phng nhiu tng tc ng thi ca ngi dng. S dng h m phng cho I/O c ngha l b nh thi gian ca dy giao dch c th c lp i lp li.

Hnh 3.17 Mt workbench kim th Khi s dng cho kim th h thng ln, cc cng c phi c nh dng v ph hp vi h thng c th. V d: 1. Cc cng c mi c th c thm vo kim th cc c trng ng dng c th, mt vi cng c hin c c th khng cn n. 2. Cc kch bn c th c vit cho h m phng giao din ngi dng v cc mu xc nh cho h sinh d liu th nghim. Cc khun dng bo co c th cng phi c xc nh. 3. Cc tp kt qu th nghim mong mun c th phi chun b bng tay nu khng mt phin bn chng trnh no trc c th dng c nh mt h tin on. 4. H so snh tp tin mc ch c bit c th c vit bao gm hiu bit v cu trc ca kt qu th nghim trn tp tin.

Mt lng ln thi gian v cng sc thng cn to nn mt workbench th nghim ton din. Do , cc workbench hon chnh, nh trn hnh 3.17, ch c s dng khi pht trin cc h thng ln. Vi cc h thng , ton b chi ph kim th c th ln ti 50% tng gi tr pht trin, v vy, n l hiu qu u t cho cng c cht lng cao CASE h tr vic kim th. Tuy nhin, v cc loi h thng khc nhau yu cu s h tr cc loi kim th khc nhau, cc cng c kim th c th khng sn c dng. Rankin (Rankin, 2002) tho lun mt tnh hung trong IBM v miu t thit k ca h thng h tr kim th, m h pht trin cho my ch kinh doanh in t. Cc im chnh: - Kim th c th ch ra s hin din ca cc li trong chng trnh. N khng th chng t khng cn li trong chng trnh. - Kim th thnh phn l trch nhim ca ngi pht trin thnh phn. Mt i kim th khc thng thc hin kim th h thng. - Kim th tch hp l hot ng kim th h thng ban u khi bn kim th khim khuyt ca cc thnh phn tch hp. Kim th pht hnh lin quan n kim th ca khch hng v kim th pht hnh nn xc nhn h thng c phn phi c y cc yu cu. - Khi kim th h thng, bn nn c gng ph h thng bng cch s dng kinh nghim v cc nguyn tc la chn cc kiu th nghim c hiu qu pht hin khim khuyt trong h thng. - Kim th giao din dng pht hin cc khim khuyt trong giao din ca cc thnh phn hn hp. Cc khim khuyt trong giao din c th ny sinh bi li trong khi c cc c t chng trnh, hiu sai cc c t chng trnh, cc li khc hoc do tha nhn b m thi gian khng hp l. - Phn hoch tng ng l mt cch xc nh cc th nghim. N ph thuc vo vic xc nh cc phn hoch trong tp d liu u vo v u ra, s thc hin chng trnh vi cc gi tr t cc phn hoch . Thng thng, cc gi tr l gi tr ti gii hn ca phn hoch. - Kim th cu trc da trn phn tch chng trnh pht hin ng dn qua chng trnh v s dng nhng phn tch la chn cc th nghim. - T ng ha th nghim lm gim chi ph kim th bng cch h tr qu trnh kim th bng cch cng c phn mm.

4. KIM TH HP TRNG. Chng ny tp trung vo cc k thut to ra cc trng hp kim th tt v t chi ph nht, tt c chng phi tho nhng mc tiu kim th chng trc. Nhc li cc mc tiu kim th phn mm l thit k cc trng hp kim th c kh nng tm kim nhiu li nht trong phn mm v vi t thi gian v cng sc nht. Hin ti pht trin rt nhiu phng thc thit k cc trng hp kim th cho phn mm. Nhng phng php ny u cung cp mt hng kim th c tnh h thng. Qua trng hn na l chng cung cp mt h thng c th gip m bo s hon chnh ca cc trng hp kim th pht hin li cho phn mm. Mt sn phm u c th c kim th theo 2 cch: - Hiu r mt chc nng c th ca mt hm hay mt module. Cc trng hp kim th c th xy dng kim th tt c cc thao tc . - Hiu r cch hot ng ca mt hm/module hay sn phm. Cc trng hp kim th c th c xy dng m bo tt c cc thnh phn con khp vi nhau. l tt c cc thao tc ni b ca hm da vo cc m t v tt c cc thnh phn ni b c kim th mt cch tho ng. Cch tip cn u tin c gi l kim th hp en ( black box testing ) v cch tip cn th hai l gi l kim th hp trng ( white box testing). Khi cp n kim th phn mm, black box testing cn c bit nh l kim th mc giao din ( interface ). Mc d tht s th chng c thit k pht hin li. Black box testing cn c s dng chng minh kh nng hot ng ca hm hay module chng trnh v c th c mt chng trnh ln: cc thng s u vo c chp nhn nh m t ca hm, gi tr tr v cng hot ng tt, m bo cc d liu t bn ngoi v d nh file d liu c gi/m bo tnh nguyn vn ca d liu khi thc thi hm. While box testing l k thut tp trung vo kho st chc ch th tc mt cch chi tit. Tt c nhng ng din tin logic trong chng trnh c kim tra bng nhng trng hp kim th kim tra trn cc tp iu kin v cu trc lp c th. k thut ny s kim tra trng thi ca chng trnh ti rt nhiu im trong chng trnh nhm xc gi tr mong i ti cc im nay c khp vi gi tr thc t hay khng. Vi tt c cc mc tiu kim nh trn th k thut while box testing c l s dn n mt chng trnh chnh xc tuyt i. Tt c nhng g chng ta cn by gi l thit k tt c

cc ng logic ca chng trnh v sau l ci t tt c cc trng hp kim nh c c. Tuy nhin vic kim nh mt cch thu o tt c cc trng hp l mt bi ton qu ln v tn rt nhiu chi phi. Chng ta hay xem xt v d sau: Bn tri l flowchart cho mt chng trnh n gin c vit bng khon 100 dng m vi mt vng lp chnh thc thi on m bn trong v lp li khng qu 20 ln. Tuy nhin khi tnh ton cho thy i vi chng trnh ny c n khong 1014 ng c th c thc hin. Chng ta lm tip mt php tnh nhanh thy c chi ph dng kim th on chng trnh nay mt cch thu o v chi tit. Ta gi s rng kim nh mt trng hp cn chy trung bnh tn mt giy. V chng trnh kim th s c chy 24 gi mt ngy v chy sut 365 ngy mt nm. Vy th chy kim th cho tt c cc trng hp ny cng cn phi tn khon 3170 nm. Do kim th mt cch thu o l mt vic bt kh thi cho nhng h thng ln. Mc d k thut ny khng th hin thc c trong thc t vi lng ti nguyn c hn, tuy nhin vi mt s lng c gii hn cc ng din tin logic quan trng c chn la trc kim th. Phng php ny c th l rt kh thi Ngoi ra cc trng hp kim th cn c th l s kt hp ca c hai k thut trn nhm t c cc mc tiu ca vic kim th. V by gi chng ta s i v chi tit tho lun v k thut kim th hp trng.

4.1. Phng php white-box: (Kim th hp trng) L phng php kim nghim da vo cu trc/m lnh chng trnh. Phng php white-box kim nghim mt chng trnh (mt phn chng trnh, hay mt h thng, mt phn ca h thng) p ng tt tt c cc gi tr input bao gm c cc gi tr khng ng hay khng theo d nh ca chng trnh. Phng php kim nghim white-box da trn: - Cc cu lnh (statement) - ng dn (path) - Cc iu kin (condition) - Vng lp (loop) - Ng r (branch) 4.1.1 M t mt s cu trc theo lc : Trong cc phng php kim tra tnh ng n ca chng trnh, lc c dng : - Tru tng ha c php ca m lnh. - Lm khun mu c bn cho cc nguyn tc kim tra theo trng hp. - Kim tra tnh ng n trn ton b lc .

4.1.2 Kim tra theo cu lnh: (Statement Testing) Thit k qu trnh kim tra sao cho mi cu lnh ca chng trnh c thc hin t nht mt ln. Phng php kim tra ny xut pht t tng: - T phi mt cu lnh c thc hin, nu khng ta khng th bit c c li xy ra trong cu lnh hay khng. - Nhng vic kim tra vi mt gi tr u vo khng m bo l s ng cho mi trng hp. V d: on chng trnh thc hin tnh: result = 0+1++|value|, nu result <= maxint, bo li trong trng hp ngc li. 1 PROGRAM maxsum ( maxint, value : INT ) 2 3 4 5 6 7 8 OD; INT result := 0 ; i := 0 ; IF value < 0 THEN value := - value ; WHILE ( i < value ) AND ( result <= maxint ) DO i := i + 1 ; result := result + i ;

9 10 11

IF result <= maxint. THEN OUTPUT ( result ) ELSE OUTPUT ( too large )

12 END.

V d vi cc b gi tr input: maxint = 10, value = -1 Hay

maxint = 0, value = -1 s kim tra c ton b cc cu lnh trong on chng trnh trn.

Cc vn i vi phng php kim tra theo cu lnh: nh gi phng php ny ta xem qua v d sau:

Vi cu hi u tin Lc no phc tp hn, ta c cu tr li l B. V vi cu hi tip theo Lc no cn cc bc kim tra nhiu hn? ta cng tr li l B.

Tuy nhin, ta thy s ln kim tra ti thiu c th kim tra ton b cc cu lnh nh trn cho c 2 hm u l 2. V vy, phng php ny khng tng ng vi s phc tp ca m lnh.

4.1.3 Kim tra theo ng dn: (Path Testing) L phng php kim tra bao trm mi ng dn ca chng trnh v cn kt hp vi lc tin trnh.

Nhn xt: Phng php kim tra theo ng dn ph thuc nhiu vo cc biu thc iu kin. Tuy nhin, c nhng trng hp s lng ng dn qu ln (trng hp vng lp). V vy thng khng phi l la chn thc t tin hnh vic kim tra tnh ng n ca chng trnh.

4.1.4 Kim tra theo iu kin: (Condition Testing) L phng php kim tra cc biu thc iu kin trn 2 gi tr true v false. Ta xt cc v d sau: V d 1:

Cc b kim tra { (x>0, y>0), (x <=0, y>0) } s kim tra ton b cc iu kin. Tuy nhin: Khng tha mn vi mi gi tr input, cn kt hp c x v y thc hin bc kim tra. V d 2:

Vi b kim tra { (x>0) } s kim tra bao trm c cc iu kin. Tuy nhin: Khng kim tra c gi tr y. V d 3:

Vi b kim tra {(x=0,z=1), (x=1, z=0)} s kim tra bao trm c cc iu kin. Tuy nhin: Khng kim tra c trng hp li chia cho 0 (khi x=0). Nhn xt: Khi kim tra bng phng php kim tra theo iu kin cn xem xt kt hp cc iu kin vi nhau. 4.1.5 Kim tra theo vng lp: (Loop Testing) L phng php tp trung vo tnh hp l ca cc cu trc vng lp.

- Cc bc cn kim tra cho vng lp n: + B qua vng lp. + Lp mt ln. + Lp hai ln. + Lp m ln (m<n). + Lp (n-1), n, (n+1) ln. Trong n l s ln lp ti a ca vng lp. - Cc bc cn kim tra cho vng lp dng lng nhau: + Khi u vi vng lp nm bn trong nht. Thit lp cc tham s lp cho cc vng lp bn ngoi v gi tr nh nht. + Kim tra vi tham s min+1, 1 gi tr tiu biu, max-1 v max cho vng lp bn trong nht trong khi cc tham s lp ca cc vng lp bn ngoi l nh nht. + Tip tc tng t vi cc vng lp lin ngoi tip theo cho n khi tt c vng lp bn ngoi c kim tra. - Cc bc cn kim tra cho vng lp ni tip: + Nu cc vng lp l c lp vi nhau th kim tra nh trng cc vng lp dng n, nu khng th kim tra nh trng hp cc vng lp lng nhau. V d: // LOOP TESTING EXAMPLE PROGRAM import java.io.*; class LoopTestExampleApp { // ------------------ FIELDS ---------------------public static BufferedReader keyboardInput = new BufferedReader(new InputStreamReader(System.in)); private static final int MINIMUM = 1; private static final int MAXIMUM = 10; // ------------------ METHODS --------------------/* Main method */ public static void main(String[] args) throws IOException { System.out.println("Input an integer value:"); int input = new Integer(keyboardInput.readLine()).intValue(); int numberOfIterations=0; for(int index=input;index >= MINIMUM && index <= MAXIMUM;index++) { numberOfIterations++; } // Output and end System.out.println("Number of iterations = " + numberOfIterations);

} } Gi tr u vo 11 10 9 5 2 1 0 Kt qu (S ln lp) 0 (b qua vng lp) 1 (chy 1 ln lp) 2 (chy 2 ln lp) 6 (trng hp chy m ln lp khi m<n) 9 (chy N-1 ln lp) 10 (chy N ln lp) 0 (b qua vng lp)

You might also like