thiết kế testcase trong kiểm thử phần mềm
TRANSCRIPT
-
7/31/2019 Thit k testcase trong kim th phn mm
1/55
MC LC
MC LC ........................................................................................................... 1DANH MC CC HNH ...................................................................................2LI NI U ....................................................................................................3TM TT NI DUNG ....................................................................................... 4CHNG 1. TNG QUAN V KIM TH PHN MM ...............................6CHNG 2. THIT K TEST CASE ...........................................................20CHNG 3. P DNG ....................................................................................41
KT LUN .......................................................................................................53TI LIU THAM KHO .................................................................................54
NHN XT CA GIO VIN HNG DN ..............................................55
-
7/31/2019 Thit k testcase trong kim th phn mm
2/55
DANH MC CC HNH
Hnh 1.1 S cc cp kim th..................................................................10Hnh 2.1 Mt chng trnh nh kim th .....................................................22
Hnh 2.2 M my cho chng trnh trong Hnh 2.1...........................................26Hnh 2.3 Mt mu cho vic lit k cc lp tng ng...................................30Hnh 2.4 Cc k hiu th nguyn nhn kt qu c bn...............................34Hnh 2.5 Cc k hiu rng buc.........................................................................35Hnh 2.6 Nhng xem xt c s dng khi d theo th................................37Hnh 3.1 th nguyn nhn kt qu:.............................................................44Hnh 3.2 Bng quyt nh...................................................................................44
2
-
7/31/2019 Thit k testcase trong kim th phn mm
3/55
LI NI U
Trong ngnh k ngh phn mm, nm 1979, c mt quy tc ni ting l: Trongmt 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 thutkim 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
3
-
7/31/2019 Thit k testcase trong kim th phn mm
4/55
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 trongtng 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
4
-
7/31/2019 Thit k testcase trong kim th phn mm
5/55
mt bi ton c th : Thit k cc test case cho chng
trnh Tam gic.
5
-
7/31/2019 Thit k testcase trong kim th phn mm
6/55
CHNG 1. TNG QUAN V KIM TH
PHN MM
1.1 Cc khi nim c bn v kim th phn mm
1.1.1 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. (TheoBch 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?
6
-
7/31/2019 Thit k testcase trong kim th phn mm
7/55
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.
7
-
7/31/2019 Thit k testcase trong kim th phn mm
8/55
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 hpen. 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
8
-
7/31/2019 Thit k testcase trong kim th phn mm
9/55
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 gingnh 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, mtkhc 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 kimth 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.
9
-
7/31/2019 Thit k testcase trong kim th phn mm
10/55
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 thutbn 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
testinggia 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
10
-
7/31/2019 Thit k testcase trong kim th phn mm
11/55
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
11
-
7/31/2019 Thit k testcase trong kim th phn mm
12/55
(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 lmt 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
12
-
7/31/2019 Thit k testcase trong kim th phn mm
13/55
-
7/31/2019 Thit k testcase trong kim th phn mm
14/55
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 Testthng 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.
14
-
7/31/2019 Thit k testcase trong kim th phn mm
15/55
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 hthng 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).
15
-
7/31/2019 Thit k testcase trong kim th phn mm
16/55
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
Testv 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 nghonn, 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
16
-
7/31/2019 Thit k testcase trong kim th phn mm
17/55
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 phic 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.
MtInspection 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.
17
-
7/31/2019 Thit k testcase trong kim th phn mm
18/55
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 trongnhm 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.
18
-
7/31/2019 Thit k testcase trong kim th phn mm
19/55
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.
19
-
7/31/2019 Thit k testcase trong kim th phn mm
20/55
CHNG 2. THIT K TEST CASE
2.1 Khi nim
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.
20
-
7/31/2019 Thit k testcase trong kim th phn mm
21/55
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 thmnhng 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 Hp trng1. Phn lp tng ng
2. Phn tch gi tr bin3. th nguyn nhn kt qu
4. on li
1. Bao ph cu lnh
2. Bao ph quyt nh3. 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 dngphng 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 victhc 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.
21
-
7/31/2019 Thit k testcase trong kim th phn mm
22/55
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).
22
-
7/31/2019 Thit k testcase trong kim th phn mm
23/55
Thng tiu chun ny kh km. V d, c l nu quyt nh u tin l php or
ch khng phi php andth 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 1li, 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 chngtrnh 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.
23
-
7/31/2019 Thit k testcase trong kim th phn mm
24/55
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) ifhoc cc lnh tnh ton hay shc 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 abdhoc acdv abe. Nu chng ta chn kh nng th hai,th 2 u vo test-case lA=3, B=0, X=3 vA=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 lx1), 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 lundn 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
-
7/31/2019 Thit k testcase trong kim th phn mm
25/55
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 mA>1, A1, X
-
7/31/2019 Thit k testcase trong kim th phn mm
26/55
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 nht1 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 qufalse ca quyt nh H v kt qu true ca quyt nh K.
26
-
7/31/2019 Thit k testcase trong kim th phn mm
27/55
L do, nh c ch ra trong hnh 2.2, l nhng kt qu ca cc iu kin
trong cc biu thc andv orc th cn tr hay ngn chn vic c lng cc quyt
nh khc. V d, nu 1 iu kin andl sai, khng cn kim tra cc iu kin tip
theo trong biu thc. Tng t nh vy, nu 1 iu kin orl ng th cng khngcn 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. ITABSIZEv NOTFOUND c gi tr sai (mc vo l ci cui cng
trong bng).
27
-
7/31/2019 Thit k testcase trong kim th phn mm
28/55
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, B0
3. A
-
7/31/2019 Thit k testcase trong kim th phn mm
29/55
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 Kim th hp en
2.3.2.1 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:
29
-
7/31/2019 Thit k testcase trong kim th phn mm
30/55
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 Mt mu cho vic lit k cc lp tng ng
iu kin bn ngoi Cc lp tng nghp l
Cc lp tng ngkhng 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.
30
-
7/31/2019 Thit k testcase trong kim th phn mm
31/55
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 miloi 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 vcc 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.
31
-
7/31/2019 Thit k testcase trong kim th phn mm
32/55
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 kinm 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 tcchung 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
32
-
7/31/2019 Thit k testcase trong kim th phn mm
33/55
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.
33
-
7/31/2019 Thit k testcase trong kim th phn mm
34/55
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 hthng). 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 notl ni nu a l 1 th
b l 0; ngc li th b l 1. Hm orkhng nh rng nu a hoc b hoc c l 1, th dl
1; ngc li dl 0. Hm andkhng nh nu c a v b l 1 th c l 1; ngc li c l 0.
Hai hm orv andc php c s lng u vo bt k.
Hnh 2.4 Cc k hiu th nguyn nhn kt qu c bn
34
-
7/31/2019 Thit k testcase trong kim th phn mm
35/55
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 cphi 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 lnu kt qu a l 1, kt qu b s bt buc phi l 0.
Hnh 2.5 Cc k hiu rng buc
35
-
7/31/2019 Thit k testcase trong kim th phn mm
36/55
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 orm u ra ca n l 1, khng bao gi
thit lp nhiu hn 1 u vo cho nt orl 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 andm 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
36
-
7/31/2019 Thit k testcase trong kim th phn mm
37/55
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 andm 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 xtc 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.
Nux =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
37
-
7/31/2019 Thit k testcase trong kim th phn mm
38/55
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 mnglogic 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 ccgi 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).
38
-
7/31/2019 Thit k testcase trong kim th phn mm
39/55
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 ca 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.
39
-
7/31/2019 Thit k testcase trong kim th phn mm
40/55
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 cckim 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. Sdng 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.
40
-
7/31/2019 Thit k testcase trong kim th phn mm
41/55
CHNG 3. P DNG
T nhng phng php thit k test case tm hiu trn, em vn dngchng 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
41
-
7/31/2019 Thit k testcase trong kim th phn mm
42/55
{ 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
beginif (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
42
-
7/31/2019 Thit k testcase trong kim th phn mm
43/55
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.
43
-
7/31/2019 Thit k testcase trong kim th phn mm
44/55
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 2 3 4 5
1 1 1 1 1 0
44
-
7/31/2019 Thit k testcase trong kim th phn mm
45/55
2 1 1 0
3 0 1
4 1
R1 1 0 0 0 0
R2 0 1 0 0 0
R3 0 0 1 0 0
R4 0 0 0 1 0
R5 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 Cc iu kin Ca kim th Hnh ng
1 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.
2,3,4
2,4,3
3,2,4
3,4,2
4,2,3
4,3,2
R1
45
-
7/31/2019 Thit k testcase trong kim th phn mm
46/55
2 C 3 gi tr nhp vo u l s
nguyn dng, v tng cu 2 s
bt k trong 3 s lun ln hn s
th 3, v tn ti mt cp 2 s
trong 3 s l = nhau.
3,3,4
3,4,3
4,3,3
R2
3 C 3 gi tr nhp vo u l s
nguyn dng, v c 3 s c gi
tr bng nhau.
3,3,3 R3
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.
1,2,4
V 5 hon v ca
n
R4
5 Tn ti mt gi tr nhp vo
khng phi l s nguyn dng.
A,2,2
-1,1,1
1.1,1,1V 2 hon v ca
mi trng hp
R5
3.2.2 Phn lp tng ng
3.2.2.1 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
46
-
7/31/2019 Thit k testcase trong kim th phn mm
47/55
nguyn (4)
Cc gi tr l dng C 3 gi tr u dng (5) Tn ti 1 gi tr
-
7/31/2019 Thit k testcase trong kim th phn mm
48/55
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.
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
48
-
7/31/2019 Thit k testcase trong kim th phn mm
49/55
-
7/31/2019 Thit k testcase trong kim th phn mm
50/55
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. -1, 1, 1 v cc hon v (abdl)
50
a+b>c anda+c>b and
b+c>a
l
j
S
k
S i
e
h
fg
-
7/31/2019 Thit k testcase trong kim th phn mm
51/55
2. 1, 1, 1 (abefhl)
3. 2, 2, 1 v cc hon v (abefijl)
4. 2, 3, 4 v cc hon v (abefikl)
5. 1, 2, 4 v cc hon v (abegl)6. A, 1, 1 v cc hon v (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. -32768, -32768, -32768 v cc hon v (abdl)
2. 32767, 32767 , 32767 v cc hon v (abefhl)
3. 32767, 32767, 327676 v cc hon v (abefijl)
4. 32767, 32766, 32765 v cc hon v (abefikl)
5. 32767, 1, 2 v cc hon v (abegl)
6. A, 1, 1 v cc hon v (acl)
7. 1.1, 1, 1 v cc hon v (a,c,l)
3.2.4.3 Bao ph iu kin
Cc ca kim th thu c l:
1. -1, 1, 1 v cc hon v.
2. 2, 3, 4 v cc hon v.3. 1, 2 , 4 v cc hon v.
4. 2, 2, 1 v cc hon v.
5. 1, 1, 1 v cc hon v.
6. A, 1, 1 v cc hon v.
7. 1.1, 1, 1 v cc hon v.
51
-
7/31/2019 Thit k testcase trong kim th phn mm
52/55
3.2.4.4 Bao ph quyt nh iu kin
Cc ca kim th thu c l:
1. -1, 1, 1 v cc hon v.
2. 2, 3, 4 v cc hon v.
3. 1, 2 , 4 v cc hon v.
4. 2, 2, 1 v cc hon v.
5. 1, 1, 1 v cc hon v.
6. A, 1, 1 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 v cc hon v.
2. 2, 3, 4 v cc hon v.
3. 1, 2 , 4 v cc hon v.
4. 2, 2, 1 v cc hon v.
5. 1, 1, 1 v cc hon v.
6. A, 1, 1 v cc hon v.
7. 1.1, 1, 1 v cc hon v.
52
-
7/31/2019 Thit k testcase trong kim th phn mm
53/55
KT LUN
Kim th phn mm, mt hng i khng cn mi m trn th gii, nhng lil 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 biton 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
53
-
7/31/2019 Thit k testcase trong kim th phn mm
54/55
TI LIU THAM KHO
1. The Art of Software Testing, Glenford J. Myers, Second Edition, John Wileyand 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. Software Testing,Ron Patton, Second Edition, Sam Publishing.
6. http://www.vietnamesetestingboard.org/
7. http://en.wikipedia.org/wiki/Software_testing
8. Mt s trang web v kim th phn mm khc.
54
http://www.vietnamesetestingboard.org/http://en.wikipedia.org/wiki/Software_testinghttp://www.vietnamesetestingboard.org/http://en.wikipedia.org/wiki/Software_testing -
7/31/2019 Thit k testcase trong kim th phn mm
55/55
NHN XT CA GIO VIN HNG DN
Thi Nguyn, ngy thng 09 nm 2009
Gio vin hng dn