Đồ án tìm hiểu về công cụ tự động sinh test case tự động kiểm thử phần...

Upload: tinh-lang

Post on 13-Jan-2016

28 views

Category:

Documents


1 download

DESCRIPTION

Đồ án tốt nghiệp đại học

TRANSCRIPT

M UKim th phn mm l qu trnh thc hin mt chng trnh hoc h thng vi mc ch tm kim li. Khng ging nh cc h thng vt l, hu ht cc li trong phn mm l li do thit k. Xy dng d liu th nghim trong kim th phn mm i hi chi ph ln v bit s dng phng php to ra cc d liu th nghim l rt quan trng. Theo cc nghin cu: 50% chi ph pht trin phn mm l dnh cho phn th nghim. V vy, vic sinh d liu t ng s gip chng trnh th nghim cung cp cc d liu th nghim cho phn mm do s hiu qu i vi vic gim chi ph v tng cht lng kim th.Mc d vic nghin cu v cc phng php v k thut sinh Test case t ng t yu cu ngi dng c quan tm nhiu trn th gii, nhng Vit Nam cc nghin cu v ng dng ch mi bc u. Thc vy, cng vic sinh Test case t ng t yu cu ngi dng mt cch c hiu qu trong qu trnh kim th l vn cn thit v bc xc ca cc cng ty sn xut phn mm v cc t chc thc hin pht trin d n phn mm. Trong qu trnh pht trin d n phn mm, thng cng vic to ra cc Test case t yu cu ngi dng do cc Tester ph trch. Nhng khng phi Tester no vit cc ti liu Test case ny cng nh nhau. V vy trong cc cng ty phn mm cng nh cc t chc thc hin pht trin cc d n phn mm s pht sinh mt vn l: Tester no vit ti liu Test case tt, c hiu qu th cht lng phn mm s tt hn nhng d n vit Test case ti. Vy ti sao chng ta khng ng nht ha cng vic vit Test case bng cc phng php v k thut t ng nhm gim bt cng sc v thi gian ca cc tester, lm cho cht lng ca Test case tt hn. n gm cc phn sau:M u: Gii thiu v ti.Chng 1: C s l lun.Chng 2: Tng quan v qu trnh sinh test case t ng.Chng 3: Cc k thut v phng php sinh test case t ng.Chng 4: Java path finder v thc thi tng trng.Chng 5: Mt s v d thc thi tng trng vi jpf.Kt lun: Trnh by kt qu v nu nhn xt.

CHNG 1: C S L LUN1.1. Tng quan kim th phn mm.Kim th phn mm l mt cuc kim tra c tin hnh cung cp cho cc bn lin quan thng tin v cht lng ca sn phm hoc dch v c kim th. Kim th c th cung cp cho doanh nghip mt quan im, mt cch nhn c lp v phn mm t cho php nh gi v thu hiu c nhng ri ro trong qu trnh trin khai phn mm.Trong k thut kim th khng ch gii hn vic thc hin mt chng trnh hoc ng dng vi mc ch i tm cc li phn mm (bao gm cc li v cc thiu st) m cn l mt qu trnh ph chun v xc minh mt chng trnh my tnh / ng dng / sn phm nhm: p ng c mi yu cu hng dn khi thit k v pht trin phn mm. Thc hin cng vic ng nh k vng. C th trin khai c vi nhng c tnh tng t. V p ng c mi nhu cu ca cc bn lin quan.Ty thuc vo tng phng php, vic kim th c th c thc hin bt c lc no trong qu trnh pht trin phn mm. Theo truyn thng th cc n lc kim th c tin hnh sau khi cc yu cu c xc nh v vic lp trnh c hon tt nhng trong Agile (l mt tp hp cc phng php pht trin phn mm linh hot da trn vic lp i lp li v gia tng gi tr) th vic kim th c tin hnh lin tc trong sut qu trnh xy dng phn mm. Nh vy, mi mt phng php kim th b chi phi theo mt quy trnh pht trin phn mm nht nh.V vy tch hp vi qu trnh pht trin phn mm, c mt s li ch: Pht hin ra li c nguy c cao sm, cho nhm pht trin thi gian pht trin mt gii php ton din hn l mt sa cha tm thi thch ng vi thi hn pht trin. y l li th chnh ca kim chng phn mm. Cung cp thng tin qun l lin tc v ton din v cht lng v tin trnh n lc pht trin. Cung cp cho ngi s dng xem trc gia tng hiu nng h thng, vi c hi thc hin iu chnh sm. nh gi cc sn phm da vo cc yu cu hthng.

1.2. Khi nim Test CaseTrong qu trnh pht trin d n phm mm, thng thng mt quy trnh kim th c cc bc c bn nh sau: lp k hoch, thit k Test, pht trin test script, thc hin test v nh gi:

Hnh 1: Mt quy trnh kim tra c bn. Trong Test case c vit trong bc thit k test. Mc ch ca thit k test l vit v ch nh cc Test case trong cc bc kim tra chi tit cho mi phin bn phn mm. Giai on thit k test l ht sc quan trng, n bo m tt c cc tnh hung kim tra "qut" ht tt c yu cu cn kim tra.V vy cng vic to ra cc Test case hiu qu l c bit quan trng m bo cht lng phn mm. lm c vic , trc ht phi hiu Test case l g?Mt Test case c th coi l mt tnh hung kim th, c thit k kim th mt i tng c tha mn yu cu t ra hay khng. Mt Test case thng bao gm 3 phn c bn: M t: c t cc iu kin cn c tin hnh kim th. u vo: c t i tng hay d liu cn thit, c s dng lm u vo thc hin vic kim th. Kt qu mong mun: kt qu tr v t i tng kim th, chng t i tng tha mn yu cu.Test case c mt ngha v cng quan trng, mc ch a ra cc trng hp test nhm pht hin ra cc li nhiu nht c th, cho cht lng cc d n pht trin phn mm c tt hn.

1.3. Cc nhm kim nh phn mmTrong lnh vc kim nh cht lng phn mm hin nay trn th gii, hin c nhiu k thut nhng tu chung c th phn theo ba nhm chnh: Phn tch m ngun tnh (static code analysis), kim th d liu ng (dynamic data testing) v k thut hnh thc da trn m hnh (model-based verification). Hai nhm u tp trung vo vic nng cao cht lng phn mm ti mc m ngun, trong khi nhm cui cng x l phn mm ti mc tru tng cao hn m hnh.Phn tch m ngun tnh l k thut pht hin li chng trnh m khng yu cu chy chng trnh . Khng ging nh k thut kim th d liu ng i hi phi chy chng trnh vi d liu u vo tht, k thut phn tch m ngun tnh ch xem xt m ngun ca chng trnh. K thut kim th phn mm da trn m hnh: khc vi hai nhm trn im i tng c kim th l cc m hnh c tru tng ha t h thng c xem xt. Qu trnh tru tng ha l vic lc b nhng chi tit ca h thng trong khi ch gi li nhng thng tin/kha cnh quan trng cn c lu tm. K thut tru tng ha n gin ha h thng c xem xt v do gim khng gian tm kim v thi gian phn tch chng trnh i nhiu ln so vi lc thc hin cng vic phn tch trn m ngun.Khi xy dng xong phn mm, chng ta phi s dng cc testcase (trng hp kim th) cho vic kim th. Cht lng ca vic kim th ph thuc rt ln vo tp hp cc testcase m chng ta s dng. Hai tiu ch chnh ca vic nh gi cht lng kim th l hiu qu cho cht lng phn mm c kim th l ph dng chy (control flow coverage) v ph d liu (data coverage). Tiu ch th nht tp trung vo vic kim th tt c cc im iu khin trn chng trnh (v d: cc nhnh r kh t trong cu trc chng trnh reachable control points). Trong khi tiu ch th hai tp trung vo tp d liu kim th ng vi mi im iu khin trong cu trc chng trnh.Bng k thut phn tch chng trnh da trn m hnh sau khi tru tng ha m ngun ca chng trnh c kim th, vic phn tch cu trc logic ca chng trnh v tp d liu ng vi mi im iu khin trong chng trnh s d dng hn. Qua , qu trnh sinh ra tp cc testcase s nhanh chng v chnh xc, m bo cc tiu ch control flow v data coverage tt hn nhiu so vi cch tip cn mc m ngun truyn thng. Hn na, nu qu trnh ny c thc hin mt cch t ng s gim thiu nhiu cng sc cho cc chuyn gia kim th chng trnh. Vi cch tip cn nh vy, phn mm c th c kim th mt cch t ng bng my, em li kt qu chun hn, xt c nhiu trng hp hn, t bit l cc li logic, tit kim chi ph sn xut.nh gi tp d liu kim th: Ngoi tr nhng chng trnh n gin, s l khng thc t nu kim chng phn mm trn tp tt c d liu u vo c th. Ngay c khi ch tnh t hp ca cc d liu u vo hoc t hp ca cc hm, s lng u vo v s lng cc trng thi cng l qu ln. Khi h thng c b nh ln, cc d liu u vo, u ra s c log li theo di trng thi. Trong khi khng c mt cng c to ra mt thit k phn mm chun, hon chnh v chc chn th vic kim th l mt khu khng th thiu c th nh gi c cht lng phn mm. V th ngi ta phi tm cch chn c mt tp d liu nh m c th kim th mang li c tin cy cao vi mi h thng. ph hay mc y bng trc quan nh gi c phm vi hay mc kim th. Nu kim th khng y c ht mi kha cnh ca phn mm ng ngha vi vic chng ta b st nhiu li. Cc tn sut ca cc trng hp cng khng ging nhau. Khi nim ca kim th n gin l kim chng cc trng thi a ra th hin cho hot ng ca h thng. Chng ta c th to ra ca kim th t c trng thi c th bng cch a vo cc bin c bit, trng thi iu khin h thng.

1.4. Vn sinh Test case t yu cu phn mmTrong qu trnh pht trin d n phn mm, thng cng vic to ra cc Test case t yu cu ngi dng do cc Tester ph trch. Nhng khng phi Tester no vit cc ti liu Test case ny cng nh nhau.V vy trong cc cng ty phn mm cng nh cc t chc thc hin d n phn mm s pht sinh mt vn l: Tester no vit ti liu Test case tt, c hiu qu th cht lng phn mm s tt hn nhng d n c cc Tester vit Test case ti (c nhiu trng hp test trng lp nhau). Vy chng ta phi chun ha v ng b ha lm sao to ra Test case mt cch hiu qu v c chun v cht lng. lm iu ny, chng ta phi nghin cu cc phng php v k thut t ng to ra cc Test case. Vic to ra Test case mt cch t ng cng lm gim bt cng sc v thi gian ca cc tester, gip gim bt chi ph pht trin phn mm.Qa trnh to ra cc Test case s gip cc tester pht hin ra cc vn mu thun hoc cha r rng ca yu cu phn mm. Nu bc ny c lm sm, cc vn c th c loi b sm, tit kim thi gian v ngun lc. Vy vic nghin cu cc phng php v cng c sinh Test case mt cch t ng t yu cu ngi dng rt hu ch v cn thit trong qu trnh pht trin cc d n phn mm. Qu trnh ny nhm mc ch to ra Test case mt cch c hiu qu, c cht lng. Gip gim bt cng sc v thi gian ca cc tester, lm gim bt chi ph pht trin phn mm v cht lng phn mm c nng cao hn.

CHNG 2: TNG QUAN V QU TRNH SINH TEST CASE T NG2.1. Gii thiuVic test phn mm l mt cng vic rt quan trng trong vng i pht trin ca phn mm. ct gim chi ph ca vic test bng tay v tng tin cy ca phn mm th chng ta ang c gng thc hin t ng ha n. Mt trong nhng cng vic quan trng trong mi trng test l to ra Test case mt cch t ng m t v cch thc test, mi mt h thng phn mm nht nh c thit lp theo mt cch thc c lp. Chng ny trnh by cch nhn tng quan v k thut to Test case mt cch t ng. Cc t chc phn mm s dng mt phn ngn sch ng k ca mnh thc hin cc cng vic lin quan n test. Mt h thng phn mm test tt s c kim chng bi khch hng trc khi chp nhn, lm tha mn yu cu ca khch hng. Tnh hiu qu ca qa trnh xc nhn v kim chng ny ph thuc vo s lng li c pht hin v chnh sa trc khi cng b h thng. iu ny ln lt ph thuc vo cht lng ca cc Test case c to ra.Cc phng php khc nhau v vic sinh ra Test case c xut. Mt Test case l mt s miu t cch thc test, mi mt h thng phn mm nht nh c thit lp theo mt cch thc c lp. Test case c th c vit ra trc tip t yu cu ngi dng, t cc yu cu h thng, hoc t cc use case. Mt trong nhng li th ca vic to ra Test case t cc c t v thit k l chng c th c sinh ra sm hn trong vng i pht trin v sn sng s dng trc khi cc chng trnh c to ra. Thm vo , khi cc Test case c sinh ra ban u cc k s phn mm pht hin ra s khng nht qun v mp m trong c t cc yu cu v cc ti liu thit k. iu ny s chc chn s lm gim chi ph ca vic xy dng h thng phn mm khi cc li c loi b sm trong vng i pht trin ca sn phm.

2.2. Tng quan v cc phng php sinh Test caseMt vi cch tip cn c a ra trong vic to ra Test case, mt s mang tnh ngu nhin, c mc ch, nh hng v mt s rt thng minh. K thut ngu nhin xc nh cc Test case da trn cc gi nh. K thut nh hng ng dn s dng cc lung thng tin kim sot xc nh mt tp hp cc ng dn c bao qut v to ra cc Test case ph hp cho cc ng dn ny. Nhng k thut ny c th c phn chia thnh tnh v ng. K thut tnh thng c da trn thc thi cc k hiu m t, ngc li cc k thut ng t c t cc d liu cn thit bng vic chy chng trnh trong khi test. K thut nh hng mc tiu xc nh cc Test case bao gm mt mc tiu c la chn chng hn mt cu lnh hoc nhnh cu lnh. Cc k thut thng minh ca cc Test case c sinh ra t ng l thuc vo cc tnh ton phc tp xc nh Test case.Rt nhiu nghin cu v vic sinh ra cc Test case ti u da trn cc c t, tuy nhin khng th t 100% cc Test case ti u. Ngn ng m hnh c s dng c c c t v sinh ra cc Test case. K t khi UML (Unified Modeling Language) l ngn ng c s dng rng ri nht th nhiu nghin cu s dng lc UML nh state-chart diagrams, use-case diagrams, sequence diagrams, sinh ra cc Test case v dn n vic sinh ra Test case da trn m hnh.

2.2.1.Sinh Test case da trn c tSinh Test case da trn c t l phng php sinh Test case m phng theo trng thi c xc nh trc da trn c t to ra Test case t biu trng thi UML. Vic kim th cc thuc tnh, cc cp chuyn tip v chnh sa cc cu lnh l cc k thut c a ra trong Chng 3. Cc k thut s dng cc biu trng thi UML nh mt c s v t ng sinh ra cc b phn iu khin test v test script xc nhn cc thnh phn khi test. Cch tip cn trong mt mu, ch ra cc lp v c t biu trng thi tng ng cho hnh vi ca lp , nh r nh x a ra bng s kt hp cc m vi c t. Sau tester chn cc tiu chun chnh sa. Tm li, cc li c pht hin ra nh s khng nht qun gia hnh vi v c t biu trng thi c a ra bi ngi s dng. Mc tiu l xc nh cc c t c ci tin c da trn cc tiu chun chnh sa thch hp cho h thng v pht trin cc k thut cho vic to ra b iu khin test vi t nht thao tc ca con ngi.

2.2.2.Sinh Test case da trn m hnhUML nhn c mt s quan tm ln t cc cng ng pht trin v thit k phn mm, v cc cng vic ang c thc hin tng cng v m rng cc tnh nng ca n. Tuy nhin, cng ng test phn mm khng quan tm nhiu v tho lun nhiu v UML, s thiu ht ln khi tiu chun m hnh ha c pht trin. y l vn cn quan tm, bi v trong cc t chc pht trin phn mm, chi ph ca vic test c th chim hn 40% tng chi ph pht trin cho mt h thng phn mm. a ra cc thc t ny pht hin ra kh nng s dng UML cho vic test phn mm.a phn cng vic test da trn m hnh ca cc h thng tp trung vo vic s dng ca cc biu trng thi hoc lp.Cc biu lp ch mt tp cc lp, cc giao din v cc s cng tc, cc mi quan h ca chng. Cc biu trng thi biu din dng iu khin t trng thi ny n trng thi khc, n nhn mnh dng iu khin t hot ng ny n hot ng khc xy ra bn trong mt my trng thi. UML c mt phng php m hnh trc c bit n l k thut m hnh i tng (Object Modeling Technique) m thm mt m hnh chc nng cng c s dng cho qu trnh test.

2.2.3.Sinh Test case hng ng dnMt khung chun s dng chin lc tm kim nh nguyn ni ting trong vic sinh ra Test case hng ng dn c a ra. Ton t c xut c th c phn loi nh cch tip cn hng ti ng dn. Phng php ny nu vn ca cc cch tip cn sinh ra Test case t ng v cung cp mt gii php vi thut ton sinh ra Test case da trn phng thc tm kim nh nguyn. ng dn c bao qut c xem xt tng bc tng bc mt v cc Test case sau c nghin cu hon thin chng. Phng thc tm kim nh nguyn c s dng xc nh cc Test case, i hi cc gi nh nht nh nhng cho php sinh ra Test case hiu qu. Cc li th ca phng php ny l n khng i hi bt c mt mt s iu chnh tham s no v khng cn bt c k thut ti u no to ra d liu test.

2.3.Kim th phn mm v UMLC nhiu giai on trong qu trnh test phn mm gm n v, chc nng, h thng, hi qui, v test gii php. Bng sau minh ha nhng s khc bit gia cc giai on, cng nh biu UML tim nng cho vic s dng trong cc giai on.

Test Type(Loi test)Coverage Criteria

Fault Model(m hnh li)UML Diagram(biu UML)

UnitCodeCorrectness, error handling pre/post conditions, invariantsClass and state diagrams

FunctionFunctionalFunctional and API behavior, intergration issusesInteraction and class diagrams

SystemOperational scenariosWorkload, contention, synchron, recoveryUse case, activity, and interaction diagrams

RegresstionFunctionalUnexpected behavior from new/changed functionSAME AS FUNCTION

SolutionInter-System communInterop. ProblemsUse case and deployment diagrams

Bng 1: Phn bit cc biu UML v cc mc test

Tuy nhin, vn ca vic s dng UML khng kt thc bng s ch n thun trong qu trnh test m cc biu c th c s dng hu ch trong nhiu giai on khc nhau ca qu trnh ny. Mt vi vn phi c gii quyt trc khi UML c th c p dng hiu qu trong qu trnh test.C 2 vn sau: Vn u tin quan tm l cc vn lin quan n vic s dng cc m hnh UML trong qu trnh test. Tester hiu c s quan trng ca vic xy dng hoc chnh sa c bn cc m hnh c s dng trong qu trnh test. Th hai, cc m hnh t qu trnh pht trin thiu i cc chi tit v tnh nng c th m c yu cu pht trin cc Test case.

CHNG 3: CC K THUT V PHNG PHP SINH TEST CASE T NG

3.1. K thut sinh Test case da trn c tKim th da trn c t ly c cc thng tin test t mt c t ca phn mm khi test.Tuy nhin, khi vic thc hin c pht trin khng chun mc t mt c t chun mc, c t c th ng mt vai tr ch yu trong qu trnh test bng cch cho php chng ta thu c cc u vo test v cc kt qu mong i t cc u vo ny. C hai vai tr chnh mt c t c th ng vai tr trong test phn mm. u tin l cung cp cc cng tin cn thit kim tra hoc l u ra ca chng trnh c ng hay khng. Th hai l cung cp thng tin la chn cc Test case v nh gi s ph hp ca test.Kim th da trn c t a ra nhiu u im trong test phn mm. c t chun ca mt sn phm phn mm c th c s dng nh mt s hng dn cho vic thit k cc test chc nng cho sn phm. c t xc nh chnh xc cc kha cnh c bn ca phn mm, trong khi thng tin cu trc v chi tit b loi b. D , tester c cc thng tin thit yu v tnh nng ca sn phm khng phi trit xut n ra t cc chi tit thit yu.Kim th da trn c t t cc c t chun a ra mt cch tip cn chun hn, c cu trc v n gin hn cho s pht trin ca cc test chc nng hn l cc k thut test khng da trn c t. Mi quan h mnh m gia c t v test gip pht hin ra cc li v c th n gin qu trnh hi quy. c t l mt bn m t thm quyn ca hnh vi h thng v c th c s dng ly c cc kt qu mong mun cho cc d liu test. Cc li ch khc ca kim th da trn c t gm pht trin test cng lc vi vic thc hin v thit k, s dng cc test ly c ph chun c t gc, v kim nh c n gin ca qu trnh test. c t c th cng c phn tch tng ng vi kh nng test n nh.C ba cch tip cn chnh ti cc c t chc nng phn mm chun: (1) cc c t da trn m hnh, (2)cc c t nh hng n thuc tnh chng hn cc c t thut ton v c nhiu ngn ng, v (3) cc c t da trn trng thi.Cc ngn ng c t da trn m hnh, c gng c c cc c t chun ca phn mm da trn cc m hnh ca cc i tng thc t. Ngn ng c t thut ton m t phn mm bng vic a ra cc cu lnh chun, v cc mi quan h trong s cc thao tc v cc chc nng m c tc dng ln chng. Cc c t da trn trng thi m t phn mm trong iu kin ca cc chuyn tip trng thi. Cc c t c da trn trng thi tiu biu xc nh iu kin trc trn cc chuyn tip, m l cc gi tr m cc bin xc nhn phi c cho cc chuyn tip c th c php, cc thay i trong cc gi tri bin i m khin cc chuyn tip c din ra.

3.1.1.Cc phng thc c t trng thi SCRC mt vi phng php xc nh cc h thng trng thi c bn. Phng php ny xc nh cc tiu chun test da trn c t, v pht trin mt m hnh sinh Test case cho cc c t SCR.c t Software Cost Reducation (SCR) xy dng cc bng xc nh cc yu cu hnh vi cho cc h thng phn mm c gn vo thi gian thc t. Mt li ch ca phng php SCR l cu trc c xc nh tt cho php cc phn tch cu trc c s dng kim tra s ng nht, tnh hon chnh ca c t. Bn cnh , cc ng dng SCR cung cp kh nng pht hin du vt t cc yu cu phn mm ti m ngun. Nhiu loi ca cc phn tch c p dng ti cc c t SCR.Trong mt c t SCR, mt mode class l mt my trng thi m trng thi ca n c gi l system modes hoc modes. Hnh vi ca Complex system c th c xc nh bi mt vi mode class hot ng song song. Mi mode class m t mt kha cnh ca hnh vi ca h thng, v hnh vi bao trm ca ton b h thng c xc nh bi thnh phn ca cc mode class ca h thng. Mi trng ca h thng c a ra bi mt tp hp ca cc iu kin mi trng Boolean. Mt event xut hin khi cc gi tr ca mt iu kin thay i t True thnh False hoc ngc li. Do , cc event xc nh cc thi im, trong khi cc iu kin xc nh khong thi gian. Thng thng, mt conditional event l mt event m xut hin khi cc iu kin nht nh tip tc.Cc mode v mode transitions xc nh cc thuc tnh ca h thng m gi nhng iu kin nht nh. Mt mode invariant phi l True khi h thng tham gia vo mode, phi duy tr True trong khi h thng trong mode , v c th hoc l True hoc l False khi h thng khng cn trong mode . S khng thay i ca mode l cc thuc tnh bt bin ca mt mode h thng. Nu cc iu kin nht nh tip tc sau h hoc l h thng l trong mt mode c th, cc iu kin h thng nht nh c cc gi tr bt bin. Cc c t SCR xc nh hnh vi chc nng h thng phn mm. S bt bin ca h thng l r rng hoc i khi l r rng c xc nh trong c t. Mt c t SCR c th gm mt b ca cc bin khng i an ton nh mt s khng nh, nhng h thng cc bin khng i ny khng phi l cc rng buc thm vo ca hnh vi uc yu cu, chng khng uc tnh vo, ch l cc mc tiu m cc yu cu c trnh by thnh dng bng c mong mun c a n. Thm vo , nu cc bin bt bin ny khng uc lit k r rng, sau chng ta c th nn ly chng t c t. Cc bin khng i c c c th c so snh vi cc bin r khng i r rng ging nh cc tiu chun xc nh.

3.1.2.K thut sinh ra Test case da theo c tnh ca SCRKim th cc mc trong pht trin phn mm thc t c thc hin t lu c da trn cc phn tch khng chun mc ca cc yu cu phn mm. iu ny dn n cc kt qu khng thng nht, cc vn trong vic hiu mc ch v kt qu ca vic kim th, hon thnh thiu tnh hiu qu trong vic kim th. Vic xc nh ng cho mt yu cu r rng thc hin kim th bi chng m t chnh xc phn mm ng vai tr nh th no trong vic tr gip vic cung cp mt mu ci m c th t ng iu khin. K thut sinh Test case da theo c t SCR thit lp cc tiu chun v gii quyt vic sinh ra cc ca kim th mc h thng t cc xc nhn/cc yu cu chc nng. Nhng tiu chun ny cung cp mt qu trnh chun, mt phng php o lng vic kim th, v mt nn tng cho vic t ng ha hon ton vic to ra cc ca kim th.

M hnh kim th:Tha mn thuc tnh s dng cc iu kin u vo, cc bin, v lun lun ng to ra kt qu, sau sinh ra cc Test case tha mn cc yu cu ring bit trong mt kt qu xc nhn. Cng vic ny lin quan cht ch n vic nghin cu s to ra kim th t ng c da trn m ha trc . M hnh c a ra y pht trin thm cc tng trc v s tha mn cc kt qu xc nhn theo mt s cch.Thay cho vic ch bao hm cc iu kin trc v sau th rt quan trng s dng vic kim th lin h cht ch cc iu kin trc v sau. Vic kim th nhm mc ch pht hin ra cc li, bao gm c vng d liu a vo. Phn ny a ra cc v d s dng Software Cost Reduction Specifications (SCR).Trong m hnh ny, cc vic kim th c to ra nh mt sn phm a mc , nhiu bc thc hin v nhiu phn. Nhiu phn c ngha l mt Test case sinh ra mt vi thnh phn. Cc gi tr u vo l cc gi tr u vo ca Test case, nhng gi tr ny cn c tha mn trc tip cc yu cu. Cc thnh phn khc cung cp cc gi tr h tr, gm cc kt qu u ra c mong i, cc d liu u vo cn thit c trng thi ph hp. Nhiu bc c ngha l vic kim th sinh ra mt s bc t cc c tnh chc nng bi mt qu trnh x l. Cc c tnh chc nng c lc trong cc c tnh kim th, ci m sau c lc trong cc tp lnh. a mc c ngha l vic kim th to ra kim th phn mm mt s mc tru tng ha.M hnh ny nh ngha Test case ti bn mc : (1) mc chnh sa k tip, (2) mc chnh sa y cc thuc tnh, (3) mc chnh sa tng cp k tip, v (4) mc th t hon thnh. Cc nh ngha v tng mc c nh ngha di. p dng nhng mc ny, cc c tnh/yu cu c da trn trng thi c nhn nhn nh mt th trc tip, c gi l th c t. Mi nt cho thy mt trng thi trong c tnh/yu cu, v cc cnh a ra nhng s chuyn tip c th.C th p dng tt c cc mc ny, hoc la chn mt mc c da trn s cn bng li ch v chi ph. Hai mc u tin l c mi lin quan n nhau, mc chnh sa k tip i hi cc Test case t hn nhiu so vi mc chnh sa y cc thuc tnh, nhng nu mc chnh sa y cc thuc tnh c s dng, vic kim th s tha mn c mc chnh sa k tip. Do vy ch mt trong hai mc nn c s dng. Hai mc sau c ngha c lp, chnh sa cc cp chuyn tip hng n kim th cc giao din gia cc trng thi; v kim th cc kt qu hon thnh l hng n kim th phn mm bng vic thc thi phn mm thng qua cc lung x l hon chnh. Nh n din ra, chnh sa cc cp chuyn tip vo trong s chuyn tip, nhng chng c thit lp kim th phn mm trong rt nhiu cch khc nhau.(1) Mc chnh sa k tipMc ny l tng t vi tiu chun chnh sa nhnh trong kim th cu trc. Yu cu y l mi s chuyn tip trong th c t c thc hin t nht mt ln. iu ny l mt cch khc ca vic i hi rng mi iu kin ban u trong mt c t c tha mn t nht mt ln.Tm li, mc chnh sa k tip i hi mi s chuyn tip trong th c t c thc hin t nht mt ln.(2) Mc chnh sa y cc thuc tnhMt cu hi trong khi kim th l cc thuc tnh trong c t c c lp cng thc chnh xc hay khng. Nhng sai xt nh trong cc c t c th dn ti rc ri ln khi pht trin sn phm phn mm. Mc chnh sa y cc thuc tnh thc hin vai tr kim th phn mm, t nht chng ta nn cung cp cc d liu u vo kim th mi mnh . Mc ny i hi rng mi mnh trong mi thuc tnh trn mi s chuyn tip c kim th mt cch c lp, do c gng nu r cu hi v mnh no l cn thit v n c lp cng thc chnh xc hay cha. Mt mnh l mt biu thc Boolean m khng bao gm nhng ton t Boolean. V d, cc biu thc lin quan v cc bin s Boolean l cc mnh . Mt thuc tnh l mt biu thc Boolean n gm cc mnh v khng hoc nhiu ton t Boolean. Mt thuc tnh khng c mt ton t Boolean cng l mt mnh . Nu mt mnh xut hin hn mt ln trong mt thuc tnh, mi s xut hin l mt mnh ring bit.Quan im v chnh sa cc thuc tnh y c da trn tiu chun kim th cu trc ca vic sa quyt nh/iu kin, m i hi mi quyt nh v rt nhiu iu kin trong quyt nh dn n mi kt qu t nht mt ln, v mi iu kin cho thy nh hng c lp i vi quyt nh ca n. Sa y cc thuc tnh c nh ngha nh sau:Sa y cc thuc tnh: Mi mnh ln lt ly gi tr ng v sai trong khi tt c cc mnh khc trong thuc tnh u ln lt c cc gi tr, gi tr ca thuc tnh s lun lun ging nh mnh c kim th.S nh ngha ny bo m rng mi mnh c kim th khng b nh hng bi nhng mnh khc. Nh rng nu chnh sa y cc thuc tnh c thc hin, s chnh sa k tip s c thc hin. tha mn i hi th kim tra mnh kim sot tr ca thuc tnh, cc mnh khc phi l ng hoc l sai. Nu thuc tnh l (X^Y), v mnh kim th l X, th Y phi ng. Tng t nh vy, nu thuc tnh l (X v Y), Y phi l sai.Cch n gin tha mn y cc thuc tnh l s dng mt cy biu thc tng phn. Mt cy biu thc tng phn l mt cy nh phn m c nhiu ton t nh phn v nhiu ton hng cho cc nt ni b, v cc bin hoc cc hng s ti cc nt l. Cc ton t nh phn lin quan l And (^), Or (v), v cc ton t lin quan {> , < , , , =, }; ton t Not. V d, cy biu thc tng phn cho (A v B)^C l:

a ra mt cy tng phn, mt s chnh sa y thuc tnh bng vic i trn cy. u tin, mt mnh kim th c chn. Sau cy tng phn c i t mnh kim th ti gc, sau t gc i ti mi mnh . Nu m ca n l V, anh ch em ca n phi c gi tr False, nu cha m ca n l ^, anh ch em ca n phi c gi tr True. Nu mt nt l ton t not, nt m c cho gi tr ngc ca nt con. iu ny lp li cho mi nt gia mnh kim th v mnh gc.Mt khi mnh gc t c, cc gi tr c th c sinh ngc tr li s dng vic di chuyn cy n. Nu mt nt ^ c gi tr True, th c hai con phi c gi tr True, nu mt nt ^ c gi tr False (xem hnh 4), th mt trong hai con cng phi c gi tr False (ci no cng c). Nu mt nt V c gi tr False, th c hai con phi c gi tr False; nu mt nt V c gi tr True, th mt trong hai con phi c gi tr False (ci no cng c). Nu mt nt l ton t Not, nt m cho gi tr ngc ca nt con.

Hnh 4: Xy dng cc yu cu Test case t cy biu thc c php

Hnh s 4 minh ha qu trnh cho biu thc bn trn, ch ra c B v C ca mnh kim th. Trong trnh t trn, B l mnh kim th (c ch ra trong hp c c gch). Trong cy 2, nhnh ca n, A c gn cho gi tr False, v trong cy 3, C c gn gi tr True. Trong trnh t cui cng, C l mnh kim th. Trong cy 2, nhnh ca C l mt nt V, v c gn cho gi tr True. Trong cy 3, A c gn gi tr True. Ghi nh rng trong cy 3, A hoc B c th c gn gi tr True; ty vo s la chn.Mu Test case y thuc tnh t c s dch chuyn ph hp v khng ph hp, vi ch mt s chuyn tip l ph hp mi ln. Thm vo , cc k s kim th c th chn nhng s kt hp y ngha ca cc iu kin. Kim th vi nhng d liu u vo khng ph hp c th gip tm ra cc li trong khi thc hin cng nh s trnh by r rng ca cc c t. Rt nhiu nh pht trin tin rng mt thnh phn phn mm c cc trng thi ban u tt, n l trch nhim ca ngi s dng bo m rng cc iu kin ban u c p ng. iu ny c ngha rng thnh phn khng cn c kim th vi cc d liu u vo m vi phm cc iu kin u tin. Khng gii quyt mt kha cnh ca vn ny, cng ngh c m t y cung cp mt c ch cho vic pht trin cc d liu u vo khng ph hp; chng c th c s dng hoc khng khi nhng ngi kim th nhn thy l ph hp.Nh mt v d r rng, xem xt cng thc ca cy phn on c cp trn, (A v B) ^ C. Bng gi tr ng sau y cung cp cc gi tr cho mnh kim th:

chc chn yu cu m mnh kim th phi kim sot kt qu cui cng, bng ng tng phn phi c lm rng ra nh sau (cho hai thc th cui cng, l A hoc B c th l True, hoc c hai c gn gi tr True):

Mt s ngn ng c th, chng hn nh SCR, xem xt cc bin khi ng s kin khc bit so vi cc bin khc trong thuc tnh chuyn tip. Khi trong trng hp ny, mnh m tng ng vi cc bin khi ng s kin nn a ra gi tr khc nhau, nhng nn duy tr cc bin . Nu n khng cn l mt bin khi ng na, tng ng vi vic khng Test case. Thm vo , mt bin khi ng s kin thc t xc nh hai gi tr, mt gi tr trc v mt gi tr sau. kim th y cc thuc tnh vi cc bin khi ng s kin, c gi tr trc v sau nn c kim th. iu ny c thc hin bng vic gi nh hai phin bn ca bin khi ng s kin, A v A, A a ra gi tr trc v A cho ra gi tr sau ca n.(3) Mc chnh sa cc cp chuyn tipCc mc kim th trc l kim th vic chuyn tip c lp, nhng khng kim th trnh t ca cc chuyn tip trng thi. Mc ny i hi cc cp chuyn tip thc hin.Mc chnh sa cp chuyn tip: Cho mi trng thi S, to nn cc yu cu kim th chng hn cho mi chuyn tip n v i, c hai s chuyn tip phi c thc hin tun t. Xem trng thi sau:

kim th trng thi S mc cp chuyn tip, phi kim th su ln: (1) t 1 n i, (2) 2 ti i, (3) 1 ti ii, (4) 2 ti ii, (5) 1 ti iii, v (6) 2 ti iii. Vic kim th ny i hi cc u vo phi tha mn cc thuc tnh: P1:Pi,:P1:Pii, P1:Piii, P2:Pi, P2:Pii v P2:Piii.(4) Mc tun t hon chnhKhng th chc chn rng bt k kim th thnh cng no cng c th da trn cc phng php thng thng, i khi kinh nghim v s hiu bit ca cc k s kim th phi c s dng. c bit mc h thng, vic kim th hiu qu c th i hi mt kin thc chi tit v lnh vc . Mt mc trnh t hon chnh l mt tun t ca cc chuyn tip trng thi m to ra mt s s dng thc tin hon chnh ca h thng. Trong hu ht cc ng dng thc t, s lng cc tun t c th l qu ln chn tt c cc tun t hon chnh. Trong nhiu trng hp, s cc tun t hon chnh l c xc nh.Mc tun t hon chnh: Cc k s kim th phi xc nh cc tun t y ca cc chuyn tip trn th c t bng vic chn cc tun t trng thi nn c a vo.i khi vic chn cc tun t no ch c th c quyt nh bi k s kim th vi vic s dng kin thc v kinh nghim ca mnh. y l mt mc t ng ha t nht ca qu trnh kim th.3.1.3 K thut to Test case cho c t UMLPhn ny trnh by mt cch chi tit v lm th no c th s dng c t UML to ra Test case, v qui trnh lm nh th no.M hnh kim th:UML c th c s dng xc nh mt vng rng cc kha cnh ca mt h thng. Cc biu trng thi l mt ni r rng nht bt u vi vic to ra d liu kim th. Cc biu UML c da trn cc my trng thi hn ch s dng mt k hiu biu trng thi c m rng, v c s dng a hnh vi ca mt i tng. Hnh vi gn kt cu trc ca mt i tng ti cc thuc tnh ca n v cc mi quan h i tng c th p ng c nhng trch nhim ca n. Cc phng php ca mt i tng thc hin hnh vi ca n. Bng vic test mi phng php, chng ta c th kim th mt vi mc ca hnh vi ca mt i tng, nhng khng phi l ton b cc hnh vi. Cc my trng thi m t ton b hnh vi ca mt i tng, do vy Test case c to ra t cc my trng thi kim th ton b hnh vi ca mt i tng. Li th khc ca biu UML l chng c cng ng ngha nh cc c t c da trn trng thi khc. iu ny lm cho n c th sinh ra m hnh th h Test case c miu t cc biu UML. sa m hnh ti cc biu UML, chng ta gii thch cng ng ngha v c php ca biu trng thi trong cc c t UML.Trng thi ca mt i tng l s kt hp ca tt c cc gi tr ca thuc tnh v cc i tng m i tng c; mt trng thi l tnh, ti mt thi im, khng phi l ng. Trng thi ng ca i tng c m hnh ha thng qua s chuyn tip, l mt s chuyn ng t mt trng thi ny sang mt trng thi khc. Khi mt i tng trong mt trng thi nht nh, mt s kin xut hin dn n lm n chuyn ng sang mt trng thi khc (hoc tr li trng thi c). Trong khi chuyn tip t trng thi ny ti trng thi khc, mt hnh ng xut hin. S chuyn tip trong UML c c php nh sau: Event (arguments) [condition] target.sendEvent (argments)/operation (arguments)Mi trong s cc trng ny l mt ty chn-thm ch tn c th c b i nu n r rng khi s vic chuyn tip xy ra.S kin l tn ca vic chuyn tip. Thng thng y ch l mt th c xc nh cho chuyn tip. Chuyn tip c mt danh sch i s ty chn ch ra khi no d liu c a ra trong chuyn tip, chng hn mt m b li hoc mt gi tr c gim st. Danh sch i s ny c a vo trong ngoc n ging nh vic gi chc nng chun. iu kin bo m c a ra trong du ngoc vung. Mt bo m l mt iu kin m phi c tha mn trc khi vic chuyn tip c thc hin. Danh sch sendEvent l mt danh sch c ngn cch bi du phy. Mi s kin c hng ti mt i tng mc tiu, v c th c cc i s. Nhng s kin nh vy s c ph bin bn ngoi ca cc i tng i km nh mt kt qu ca s chuyn tip ny. y l mt cch m cc trng thi ang xy ra lin lc vi nhau, cho php mt s chuyn tip trong mt my trng thi nh hng ti cc my trng thi ang tn ti khc. Cui cng, danh sch ton t xc nhn danh sch c ngn cch bi du hai chm ca cc chc nng (mi ci i vi mt i s) m s c gi l mt kt qu ca s chuyn tip c thc hin. Trong cc trng thi, c cc hnh ng vo v ra, cng nh cc hnh ng sp din ra, c th c ch r. Mt hnh ng vo l mt chc nng m c gi khi trng thi c a vo (thm ch khi s chuyn tip c t nh hng). Mt hnh ng thot l mt chc nng m c thc hin khi trng thi c thot (thm ch vic chuyn tip c t nh hng). Cc hnh ng chng t vic x l ang tip tc c hon thnh, hoc cho n khi c ngn chn bi mt s chuyn tip (thm ch khi s chuyn tip bn thn n c t nh hng).Cc i tng kim th cho m hnh chuyn tip trng thi l cc ng dn chuyn tip, cc ng dn thng qua biu a ra mt chu k sng ton b ca i tng t lc sinh ra n lc b ph hy. l, mi i tng kim th a ra mt trnh t c th ca cc trng thi gia vic sinh ra v mt i ca mt i tng. Chng ta khng th kim th mt m hnh chu k sng ca i tng vi m hnh hin c, m ch l mt phn ca n thi.UML phn loi cc chuyn trng thi vo trong nm loi sau: chuyn trng thi mc cao, chuyn trng thi phc hp, chuyn trng thi bn trong, chuyn trng thi hon thnh, chuyn trng thi kh nng. S chuyn trng thi mc cao c ngun gc t ng bin ca cc trng thi ghp li. Mt trng thi ghp li l mt trng thi gm c hoc l cc trng thi ph xy ra cng mt thi im hoc cc trng thi ph tch ri. Nu c khi ng, n thot tt c cc trng thi ph ca trng thi ghp bt u vic thot vi cc trng thi tn trong cng trong cu hnh trng thi hot ng. S chuyn trng thi phc hp bt ngun t mt tp hp cc trng thi v hng n mt tp hp ca cc trng thi. Mt s chuyn trng thi bn trong thc hin m khng thot hoc vo li trng thi m n xc nh. Mt s chuyn trng thi hon thnh l mt s chuyn tip khng c khi ng r rng, mc du n c th c mt s bo m c xc nh. Khi tt c chuyn tip v cc thao tc a vo v cc hnh ng a vo trong trng thi hnh ng hin c c hon thnh. Mt s chuyn trng thi kh nng c cho php bi mt s kin, v n bt ngun t mt trng thi hot ng. Mt s chuyn trng thi kh nng c khi ng khi tn ti t nht mt ng dn hon chnh t trng thi gc ti trng thi mc tiu.Phn ny ch quan tm n s chuyn trng thi kh nng. M hnh trc c da ch yu trn s tha mn thuc tnh. Trong UML, cc s chuyn trng thi kh nng l tng t cc chuyn tip m c da trn khi nim v s tha mn thuc tnh.V mc ch sinh ra m hnh, cc loi khc ca chuyn tip l khng c xem xt.Bn loi s kin c th c xc nh trong UML: s kin gi (call event), s kin bo hiu (signal event), s kin thi gian (time event), v s kin thay i (change event). Mt s kin gi a ra s tip nhn ca mt yu cu thc hin mt hot ng nht nh. Kt qu mong i l mt s thc hin ca mt trnh t cc hnh ng m tiu biu l hnh vi ti mt trng thi c th. S to v ph hy i tng l hai trng hp c bit ca mt s kin gi. Hnh 6 minh ha mt s kin gi.

Hnh 6: S kin gi (call events)

Hnh 7: S kin bo hiu (signal events)

Mt s kin bo hiu a ra s chp nhn ca mt du hiu ng b c th. Mt v d s kin bo hiu khng nn c nhm ln vi hnh ng (v d hnh ng Send) m to ra n. Cc ngoi l l cc v d ca cc s kin bo hiu. Cc s kin bo hiu c m hinh ha nh cc loi c dp khun, c a ra trong hnh 7. S ph thuc ca s kin send ch ra rng mt thao tc a mt du hiu c th.Mt s kin thi gian a ra s chuyn qua ca mt khong thi gian c ch nh sau mt s kin c ch nh (thng l u vo ca mt trng thi hin ti) hoc s kin ca mt thi gian nht nh. Trong UML, s kin thi gian c m hnh ha bng s dng cc t kha after c theo sau bi mt vi biu thc m nh gi ti mt khong thi gian. Hnh 8 minh ha mt s kin thi gian.

Hnh 8: S kin thi gian (time Events)

Mt s kin thay i xut hin khi mt biu thc boolean r rng tr thnh ng nh mt kt qu ca mt s thay i trong gi tr ca mt hoc nhiu cc thuc tnh hoc cc kt hp. Mt s kin thay i c a r rng v khng l kt qu ca mt hnh ng thay i s kin. S kin thay i th khc vi mt s bo v. Mt s bo v khng ch c nh gi ti thi im mt s kin c gi i, ngc li, da trn cc khi nim biu thc Boolean kt hp vi mt s kin thay i c nh gi lin tc cho ti khi n tr thnh ng. S kin m c to ra vn cn cho ti khi n c s dng thm ch nu biu thc Boolean bin thnh sai. Trong UML, s kin thay i c m hnh ha bi vic s dng t kha when c theo sau bi mt vi biu thc Boolean. Hnh 9 minh ha mt s kin thay i.

Hnh 9: S kin thay i (Change Events)

Trong s bn loi s kin, s kin thay i c th din t nh mt thuc tnh. Sau y, chng ta p dng m hnh to Test case c t da trn trng thi ti s chuyn trng thi kh nng vi s kin thay i.(1) Mc chnh sa chuyn tipChnh sa chuyn tip: Mi chuyn tip c php trong biu trng thi c thc hin t nht mt ln.(2) Mc chnh sa thuc tnh y Chnh sa thuc tnh y : Mi mnh ln lt ly gi tr ng v sai trong khi tt c cc mnh khc trong thuc tnh c cc gi tr chng hn gi tr ca thuc tnh s lun nh l gi tr mnh c kim th.(3) Mc chnh sa cp chuyn tipMc chnh sa cp chuyn tip: Vi mi trng thi S, to thnh cc yu cu kim th chng hn cho mi chuyn tip tip theo v mi chuyn tip trong tng lai, c hai chuyn tip phi c thc hin tun t.Ch : Tiu chun chnh sa cp chuyn tip c th khng kh thi trong biu trng thi m c cc loi c pha trn ca cc chuyn tip. K thut to ra d liu kim th ch cho cc chuyn tip kh nng. 3.1.4. Cc thun ton sinh Test case da trn c t.Trong phn ny, u tin chng ta m t cu trc ca cc gi nh v cc file c t SCR v UML m ta s thc hin trong thit k. Sau chng ta a ra thit k cu trc, cui cng l cc thut ton m phn tch cc file c t v sinh ra cc Test case cho vic chnh sa y thuc tnh v tiu chun chnh sa cp chuyn tip c a ra.3.1.4.1. Cc files c t UML v SCRCc file c t c lu gi nh cc file vn bn ASCII. u tin, chng ta phn tch c php file c t c c ngha ca n. Vic phn tch cc file text c t ph thuc rt nhiu vo cu trc ca chng. Trong phn ny, chng ta s a ra mt ci nhn tng quan tng i chi tit v vic lm th no cc file text c t c to ra.(1) Cu trc ca cc file c t SCR File c t c cc mc ring bit sau y: T in loi ( Type Dictionary) T in lp trng thi (Mode Class Dictionary) T in hng s (Constant Dictionary) T in bin (Variable Dictionary) T in xc nhn c t (Specification Assertion Dictionary) T in xc nhn mi trng (Environmental Assertion Dictionary) T in bin gim st lit k (Enumerated Monitored Variable Dictionary) T in bin iu khin (Controlled Class Table) Cc bng loi trng thi (Mode Class Table) Cc bng bin iu kin (Term Variable Table)Cc c t cho tt c cc mc ny c lu gi nh cc ASCII text file trong trt t bn trn. Khng c s hn ch trong tn file, hoc phn ui file m rng. Cu trc ca file text c ch ra bn di.- Cc gi nh cho cc c t SCRCc gi nh sau y c thc hin trong khi phn tch c t SCR trong file text. @T, @F biu th cho cc s kin khi ng AND biu th cho s logic v Ch c mt loi lp Cc bin Boolean Thay i bin n trong s kin Khng c bin no hoc cc bin n hoc a bin trong iu kin Nhng s chuyn tip trng thi c xc nh.Type DictionaryTYPE Type NameBASETYPE Base Type NameUNITS Unit NameCOMMENT Comments for the type usageMode Class DictionaryMODECLASS Mode Class NameMODES List of modes separated by commaINITMODE Initial ModeCOMMENT Comments for the mode class usageConstant DictionaryCONSTANT Constant NameTYPE Type NameVAL ValueCOMMENT Comments for the constantVariable DictionaryMON Name of a monitored variableTYPE Type NameINITVAL Initial valueACCURACY AccuracyCOMMENT Rules for value assignmentCON Name of a controlled variableTYPE Type NameINITVAL Initial valueACCURACY AccuracyCOMMENT Rules for value assignmentSpecification Assertion DictionaryASSERTION Name of an assertionEXPR ExpressionCOMMENT Explanation of assertionEnvironmental Assertion DictionaryEnumerated Monitored Variable TableEvent, Mode Transition, and Condition FunctionsEVENTFUNC Event function table nameMCLASS Mode class nameMODES Mode nameEVENTS Event1, Event2ASSIGNMENTS Value1, Value2CONDFUNC Condition function table nameCONDITIONS Condition1, Condition2ASSIGNMENTS Value1, Value2MODETRANS Mode transition table nameFROM State nameEVENT EventWHEN List of Disjunctive ConditionsTO State name

Cu trc ca file text trong c t SCR.

(2) Cu trc ca cc file UML MDLCc file c t UML c to ra bi Rational Rose thng c ui file m rng mdl. Cc file MDL lu gi thng tin c t t cc hnh phi cnh khc nhau. C hai loi ch yu ca thng tin: vt cht v logic. c t bn thn c nhm vo trong hai gi: biu cng tc i tng v use case. Chng ta quan tm n cc biu chuyn tip trng thi, do , chng ta ch a ra cu trc ca phn logical view ca file MDL. Hnh 11 cho thy cu trc bn trong ca biu lp v biu chuyn trng thi trong mt file MDL. Hnh 11: Cu trc ca file MDL cho biu lp v biu chuyn trng thi.

- Cc gi nh cho cc c t UMLTrong phn ny chng ta ch quan tm n cc chuyn tip khi ng bi mt vi s kin thay i, chng ta khng xem xt cc loi chuyn tip khc. Vi cc u vo file c t UML, s c cc gi nh sau: Tt c cc chuyn tip l c khi ng bng cc s kin thay i. Cc s kin v cc iu kin c din t thng qua cc thuc tnh phn loi Boolean. c t c vit ra ht sc cht ch sau cc ch gii UML. V d, when gii thch mt s kin thay i, cc iu kin l trong ngoc n, vn vn Bi v khng c cch no kim th mt c t c hnh thnh hoc thng nht hay khng, gi nh ny khng th c kim th. Cc chuyn tip trng thi c nh trc.

3.1.4.2.Thit k cu trc

Chng ta gii thch m hnh thit k thng qua mt biu lp v ba biu cng tc i tng c to ra bi Rose.(1) Biu lpHnh 12 l mt biu lp UML c thit k. Cc lp c a ra nh cc hp m c ba phn: tn lp, cc thnh vin d liu c khai bo trong lp, v cc phng thc ca lp. C bn i tng: mt phn tch c t UML, mt phn tch c t SCR, mt my to ra Test case c t y , v mt my to Test case cp chuyn tip.

Hnh 12: Biu lp ca m hnh thit k

UMLSpecParser c mt file text c t UML, phn tch n, v to ra bng chuyn tip trng thi cho cc lp c my trng thi. SCRSpecParser c cc file text c t SCR, phn tch chng, v to ra cc bng chuyn tip trng thi cho cc lp. FullPredicate ly mt bng chuyn tip trng thi nh mt u vo, to ra cc Test case cho cc tiu chun chnh sa thuc tnh y , v lu gi cc Test case trong mt file. Cp chuyn tip ly mt bng chuyn tip trng thi nh mt u vo, to ra cc Test case cho tiu chun chnh sa cp chuyn tip, v lu gi cc Test case trong mt file text.(2) Cc biu cng tc i tngCc biu cng tc i tng (OCD) cho vic sinh ra cc Test case chnh sa cp chuyn tip, chnh sa chuyn tip, chnh sa thuc tnh y c a ra trong hnh 13, 14, v 15.Trong hnh 13 N tng tc vi ngi s dng, c cc lnh c mt file c t SCR hoc UML v FullPredicate, gi bng chuyn tip trng thi nh mt tham s. FullPredicate sinh ra cc Test case cho cc tiu chun chnh sa thuc tnh y , lu gi cc Test case trong cc file, v tr thng ip m Test case c th c sinh ra.

Hnh 13: OCD cho vic sinh ra cc Test case chnh sa y cc thuc tnh

Hnh 14: OCD cho vic sinh ra cc Test case chnh sa chuyn tip

Hnh 15: OCD cho vic sinh ra cc Test case chnh sa cp chuyn tip.

3.1.4.3. Cc thut tonPhn ny a ra cc thut ton, cc thut ton c pht trin phn tch cc file text c t SCR v UML to ra cc Test case.(1). Thut ton phn tch c t SCRHnh 16 a ra mt thut ton phn tch cc file text c t SCR. Thut ton SCRSpecparser ly mt file c t SCR nh mt u vo, sau phn tch file rt ra t in lp, t in bin v bng chuyn i trng thi v lu gi chng trong cc cu trc d liu.

Hnh 16: Thut ton phn tch c t SCR

(2). Thut ton phn tch c t UML Hnh 17 cho mt thut ton phn tch file c t UML (MDL files). Thut ton UMLSpecParser ly mt file c t UML nh mt u vo, sau phn tch file rt ra thng tin cn thit cho vic to ra Test case. N ly tn lp, thuc tnh v my trng thi, v lu gi chng trong cc cu trc d liu. Trong thut ton ny, cc lp UML c ghp vi cc lp ch ca SCR, cc thuc tnh lp ti cc t in bin, v cc my trng thi ti cc bng chuyn tip trng thi.

Hnh 17: Thut ton phn tch c t UML3.2 K thut sinh Test case da trn m hnhK thut sinh Test case da trn m hnh l k thut tp trung vo vic s dng cc biu trong UML nh biu trng thi, biu lp sinh Test case. Trong phn 3.3.1 trnh by t vic s dng cc biu trng thi trong vic to ra cc Test case n vic phn tch mc tch hp s dng biu cng tc. K thut nh ra cc tiu chun cho c test tnh v ng ca cc biu cng tc cc mc. Phn 3.3.2 a ra c s to ra test case t vic ci tin cc use case, use case ng vai tr nh u vo cho vic test thng k t ng. K thut ny c th sinh ra c cc test case mang tnh h thng gip trong vic dn chng cc ti liu v cch s dng v hnh vi tng tc. Quy trnh ny gip cho vic nng cao cht lng phn mm mt cch hiu qu.

3.2.1 To ra Test case bng vic s dng cc biu cng tc UMLCc Test case c to ra bng cch s dng cc biu cng tc UML lmt trong nhng cch tiu biu trong k thut sinh Test case da trn m hnh. Cc biu cng tc UML cho thy mt ch quan trng cho vic sinh test case bi v chng m t chnh xc cc chc nng phn mm c thc hin nh th no, cc biu ny cung cp mt kt ni trong mt hnh thc m c th d dng c vn dng bi cc phng php t ng. Phn ny cn a ra cc tiu chun test mi m da trn cc biu cng tc UML. Cc tiu chun c xc nh cho c vic test tnh v ng ca cc biu cng tc mc v d v mc c t [4]. Cc tiu chun ny cho php mt s tch hp chnh thc cc test c da trn cc ch gii thit k mc cao, lm cho phn mm ng tin cy hn.3.2.1.1 Cc biu cng tcTrong pht trin phn mm hng i tng, cc i tng tng tc vi nhau thc hin hnh vi. S tng tc ny c th c m t trong hai cch b sung, mt tp trung vo cc i tng ring v cch cn li tp trung vo mt tp hp ca vic kt hp cc i tng. Mt my trng thi xem xt mi i tng ring bit. Hnh vi ca tp hp ca mt b cc i tng c th c m hnh ha trong iu kin ca vic lm th no chng cng tc vi nhau.Mt s cng tc l mt phn m t ca mt tp hp ca cc i tng m tng tc thc hin mt vi hnh vi bn trong mt ng cnh. N gm cc ng rnh (Slots) m l c in vo bi cc i tng v cc ng link ti thi im chy. Mt rnh cng tc c gi l mt vai tr (role) bi v n m t mc ch ca mt i tng hoc ng link bn trong cng tc.Mt s cng tc gm cc ClasssifierRoles, AssociationRoles, v Interaction. Mt ClassifierRole xc nh mt vai tr c tham gia bi mt i tng (Object) bn trong mt s cng tc. Mt AssociationRole xc nh cc quan h ca ClassifierRole ti cc vai khc. AssociationRole l mt ch th ca cc ng link ang tn ti. Mt ng link l mt s kt ni ring trong hai hoc nhiu hn cc i tng, v l mt trng hp ca mt Association. Cc i tng phi l cc trng hp nh hng hoc khng ca cc lp ti cc v tr tng ng trong mt s kt hp. Mt Association l mt s quan h trong s hai hoc nhiu cc classifiers c th m m t cc kt ni trong s cc trng hp. Cc classifier tham gia c xp vo cc v tr bn trong s kt hp.Mt interaction l mt c t hnh vi m l gm mt chui ca cc lin kt trong mt b ca cc i tng bn trong mt c t thc hin mt mc tiu c th. Mi s tng tc cha ng mt b c sp xp tng phn ca cc thng ip. Mt thng ip l mt c t ca mt tc nhn hot ng, ni mt cch khc, s lin kt gia mt ngi gi v mt ngi nhn. Thng ip xc nh vai tr tham gia bi i tng gi v i tng nhn v n cho thy thao tc no nn c p dng cho ngi nhn bi ngi gi. Mt tc nhn hot ng l mt s lin kt gia hai i tng m gy ra mt thao tc mt i tng c to ra hoc ph hy.Mt thao tc l mt c t ca mt s chuyn i hoc xp hng m mt i tng c th c yu cu thc hin. N c mt ci tn v mt danh sch cc tham s. Mt phng php l mt th tc m thc hin mt thao tc . N l mt thut ton hoc mt phn m t th tc. Mt biu cng tc l mt s m t ha ca mt s cng tc. Cc i tng trong mt biu cng tc l cc trng hp ca cc lp trong mt biu lp. Khng c cc phn tng tc, mt biu cng tc tng t vi mt biu lp. Tuy nhin, chng khng ging nhau. Vi mt s cng tc, khng cn mt i tng ca mi lp, bi v mt vi lp s l khng lin quan ti s cng tc c th m c xem xt. C th l hai hoc nhiu hn cc i tng khc nhau ca cng lp.Mt biu s cng tc c hai dng. Mt biu cng tc mc c t cho thy ClassifierRoles, AssociationRoles, v Messages, y biu cng tc mc v d cho cc Object, Link, v Stimuli. Cc phn ph gii thiu cc biu cng tc mc c t v mc v d tch bit nhau, v khai thc cc tnh cht ca chng cho vic sinh ra Test case.V d cc biu cng tc v c tCc biu cng tc mc c t cho thy cc vai tr c xc nh bn trong mt s cng tc. Biu gm mt tp hp ca cc lp v cc ng tng ng ti ClassifierRoles v AssociationRoles trong s cng tc. Cc mi tn c gn km ti bn trn cc thng ip. Hnh 18 l mt biu cng tch mc c t m c phng theo t Unified Modeling language Specification. V mt ha, mt ClassifierRole s dng mt biu tng lp, m l mt hnh ch nht. C php ca tn ca mt ClassifierRole l: /ClassifierRoleName :ClassifierName [, ClassifierName]*

Hnh 18. Biu cng tc mc c tBng vic kim tra biu cng tc, chng ta c th ly c t cc rng buc sau: (1) Cc i tng Teacher v Student l cc trng hp ca lp Person, nhng chng c mt vi thuc tnh khc nhau, (2) i tng Student khng th l mt Faculty, (3) mi student phi c ging vin/gia s, v (4) mi kha hc phi c mt bi ging. S thc hin c th c test theo nhng rng buc ny. V d, mt Student khng th l mt Faculty. Mt Course khng th c hn mt Lecturer; mt Student nn c mt Tutor; mt Student khng th c hn mt Tutor, vn vnMt biu cng tc mc v d cho thy s cng tc ca cc trng hp ClassifierRoles v AssociationRoles. N cng gm cc trng hp ca thng ip lin kt qua cc trng hp AssociationRole. Mt i tng ng vai tr c xc nh bi mt ClassifierRole c m t bi mt i tng.

Hnh 19: Biu cng tc cho mt thao tc

Hnh 19 l mt v d v mt biu c t mc v d. Trong biu ny, cc mi tn ch dc theo ng trong hng ca i tng nhn. Cc u mi tn c cc bin i m c th c s dng cho thy cc loi khc nhau ca s lin kt. Cc u mi tn c a ra trong biu ny, ch ra lung phng ca kim sot. Mi mi tn cho thy mt tin trnh ti bc tip theo trong chui. Thng thng tt c cc thng ip l khng ng b. Mt s dng m thanh ni c gn km ti cc ng link: ch ra cc tham s phng php; c ngha l bin cc b ca mt phng php. Cc biu cng tc mc v d v c t m t cc mui quan h mang tnh cu trc gia nhng ngi tham gia ca mt cng tc v cc kiu lin kt ca h. Mt s hiu r l mt mi quan h gia mt c t v vic thc hin ca n. Khi cc biu cng tc c s dng m t v vic hiu r cc use case, chng m t ch cc hnh ng hu hnh bn ngoi v cc chui ca chng. Khi cc biu cng tc c s dng m t vic hiu r v mt thao tc trn mt i tng, chng cung cp thm cc thng tin xc nh, chng hn nh (1) cc tham s cho thao tc v cch s dng ca chng, (2) cc tnh cht ca vic tham gia vo cc bin, v d cc b hoc ton cc, (3) cc rng buc qua cc kt hp, v (4) vic xy dng v/hoc b i ca cc i tng trong qu trnh. Bi v cc biu cng tc gm c cc thng ip m qua gia cc i tng v cc chui ca chng, cc biu cng tc cung cp c lung d liu mc thit k v thng tin lung kim sot mc thit k. Theo truyn thng, thng tin lung kim sot v lung d liu c c t m ngun. Thng tin lung kim sot v lung d liu c tc ng quan trng ln vic test. Do , s dng biu cng tc trong vic test gip chng ta trong nhiu cch. u im r rng l: (1) to ra d liu test s dng cc k thut test lung kim sot v lung d liu c trc khi to ra m, (2) kim tra tnh v bn thn c t, v (3) kim tra tnh ca m.

3.2.1.2. Cc tiu chun testCc biu cng tc m t cu trc v hnh vi ca h thng. Mt biu cng tc UML xc nh nhng yu cu g phi c hon thnh bi cc i tng trong mt h thng, v nhng lin kt g phi c thc hin gia cc i tng cho mt cng vic c th c thc hin. Cc biu cng tc UML c s dng cc mc tru tng c t khc nhau. V d, chng m t s hiu r v cc use case, m c c tnh nng h thng mc cao. Cc biu cng tc UML cng xc nh vic thc hin ca mt thao tc lp nh mt s tng tc. Cc c t lin kt, v d, cc use case. Vi cc biu cng tc hoc cc biu lp vi cc biu cng tc, c th c s dng kim tra tnh m v test vic chy ng dng. (1) Mt s nh nghaHnh 19 l mt biu cng tc, trong biu ny: processOrder (0) l mt thao tc c xc nh s thc hin ca n c m hnh ha bi biu cng tc: Company l mt i tng m thao tc c xc nh c gi l processOrder(0). Do , processorOrder thuc v lp Company. Chng ta phn bit bn loi ca thng ip trong biu ny. Mt cch gi ca mt phng php qua mt i tng m c xc nh trong i tng gi l mt local method invocation. Trong hnh 19, d v s l cc b :Company, 0 l mt tham s ti :Company v delivery v store khng phi l local. Bn loi thng ip l: (1) cc dn chng phng php cc b khng c cc gi tr tr v, v d deliver (d) trong hnh 19, (2) cc dn chng phng php cc b vi cc gi tr tr v, (3) cc dn chng phng php ca i tng tham s, v d pNr:=getpNr(), v (4) to ra i tng, v d: delivery(o,s). Cc thng ip trn cc ng link, cc tham s, v s lng cc chui m c m t trong biu cng tc l cc mc ch test.Cc iu kin sau s c s dng trong nh ngha v cc tiu chun test. Trc khi xc nh cc tiu chun test, chng ta xc nh 12 loi c th kt ni trong cc biu cng tc. Cc loi ca cc cp, hoc cc ng link, l gi li v cc nh ngha v lung d liu, nhng a ra cc tng tc d liu m xut hin mt mc thit k cao hn lung d liu truyn thng (intra-procedural). Chng c phn loi da trn thng tin t cc biu lp v cc biu cng tc, nhng mt khi nh ngha, ch cc biu cng tc c cn to ra cc test.Mt cp cng tc l mt cp ca ClassifierRolers hoc AssociationRoles m c kt ni thng qua mt ng link trong biu cng tc. Phn ClassifierRole m t loi ca Object vi mt b ca cc thao tc v thuc tnh c yu cu.

Hnh 20. Cc cp cng tc

Mt ng link nh ngha bin s l mt ng link m cc tc nhn hot ng ca n c mt gi tr tr li v c gn vo bin cc b. Mt ng link cch s dng bin s l mt ng link m danh sch i s ca cc tc nhn hot ng gm mt bin cc b. Mt ng link nh ngha i tng l mt tc nhn hot ng m a li mt tham chiu ti mt i tng m c th s dng c cho i tng mc tiu. Mt ng link to ra i tng l mt ng link cc tc nhn hot ng ca n dn chng to ra ca lp CollaborationRole. Mt ng link cch s dng i tng l mt ng link m cc tc nhn hot ng ca n dn chng mt phng thc v mt i tng c th s dng cc b. Mt ng link ph hy i tng l mt ng link m cc tc nhn hot ng ca n dn chng ph hy v mt i tng c th s dng cc b.i khi chng ta quan tm n cc cp ca cc ng link. Mt cp ng link s dng khc ca bin s l mt cp ca cc ng link m trong mt i tng trc tin c s dng v sau b b i. Mt ng dn chui cc tin nhn l mt ng dn m gm tt c cc tin nhn trong mt cng tc theo mt trt t c xc nh bi biu cng tc.Cc cp ng link cch s dng nh ngha bin s, cc cp ng link cch s dng to ra i tng c th c s dng kim tra tnh cc m. Cc ng dn chui tin nhn c th c s dng to ra cc Test case.(2) Kim tra tnhKim tra c th thc hin tnh hoc ng. kha cnh no phn mm c thc hin trn mt vi d liu nhp. Kim tra tnh lin quan ti vic kim tra mt vi kha cnh ca phn mm m khng cn thc hin, thng bng cch nh gi m ngun.Cc biu cng tc cung cp cc rng buc trn mt h thng. V d, mt biu cng tc cho mt thao tc m t thng tin c th m cn thit cho thao tc ny c hon thnh, chng hn cc gi tr tr li cho mt phng thc trong mt qu trnh, cc loi tham s, vn vnChng ta xc nh bn mc nn c s dng kim tra m tnh, c m t nh sau:1. ClassifierRoles: Trong mt cng tc, nu hai ClassifiierRoles bt ngun t cng mt lp c s ging nhau, chng nn c phn bit trong iu kin ca cc thc thao tc c yu cu ca chng v cc gi tr ca cc thuc tnh. Bi v chng bt u t cng lp, c kh nng rng chng c th b nhm ln vi nhau. V l do ny, ClassifierRoles m bt u t cng lp nn c test bit nu chng c tt c cc thuc tnh v cc thao tc c yu cu.2. Collaborating Pairs: Cc ng link trn mt biu cng tc m t cc rng buc cu trc ca mt cp cng tc v cc thng ip lin kt ca chng. S kt hp ny ni nu n l mt mi quan h mt ti mt, mt ti mt vi, hoc mt vi ti mt vi. Mi quan h phn nh mt rng buc trong c t yu cu. Do , test mi quan h cu trc gia cc i tng c th nh l s xc nhn ca cc yu cu. Mi cp cng tc trn biu cng tc nn c kim tra hoc test t nht mt ln.3. Thng ip hoc cc tc nhn kch thch: Cc thng ip cung cp thng tin v: Loi gi tr tr li Chui kim sot Thao tc hoc tn phng php c dn chng trn i tng mc tiu Cc tham s ti cc ton t hoc phng thc.Test ca mt thng ip bn thn n c bc l nhiu vn tch hp nht. Mt tc nhn hot ng l mt v d v mt thng ip. Mt tc nhn hot ng c th l mt du hiu, mt phng thc hoc vic gi ton t, hoc mt s kin m khin mt i tng c to ra hoc b ph hy. Bn cnh mang theo mt d liu xc nh, cc thng ip c mt ng. l, mt tc nhn hot ng bt ngun t mt i tng ngun (sender) v c tr trn mt i tng ch (receiver). Chng ta c th nhn thy rng cc tc nhn hot ng cung cp thng tin ban u cho vic test tch hp, do mi tc nhn hot ng nn c s dng nh mt c s cho vic to ra cc u vo test.4. Local variable Definition-Usage Link Pairs: kim tra ng link cch s dng nh ngha bin s cho chng ta tm thy nhng s khng bnh thng ca lung d liu mc thit k. Cc cp ng link sau y tt c nn c check cho cc bt thng ca lung d liu: Global Variable Definition-Use Pairs Object Creation-Use Pairs Object Use-Destruction Pairs Object Creation-Destruction Pairs

(3) Kim tra ngCc biu cng tc cung cp mt ng dn hon chnh cho mt use case hoc mt s hiu r v mt ton t. V mc ch ca kim tra ng, ta tp trung vo cc biu cng tc cho s hiu r ca cc ton t. Chng ta gi nh rng c mt biu cng tc mi thao tc, v s thc hin ca mt thao tc khng nh ti s cng tc. Thm na, cc biu cng tc cung cp thng tin cn thit test s tng tc i tng.Tiu chun test: vi mi biu cng tc trong c t, phi c t nht mt Test case t nh vy khi phn mm c thc hin s dng t, phn mm m thc hin ng dn chui thng ip ca biu cng tc phi c thc hin.Mi biu cng tc m t mt du vt hon chnh ca cc thng ip trong khi thc hin mt ton t. Do , mt ng dn chui thng ip gm tt c cc cp ng link s dng khc nhau bin s, cc cp ng link s dng khc nhau cc i tng, cc cp ng link cch s dng to ra i tng, v cc cp ng link ph hy cch s dng i tng.Chng ta c th to ra mt ng dn chui thng ip bng vic s dng cc thng ip v s lng trong chui . Cc ng dn chui thng ip c th l du vt ca cc tng tc mc h thng hoc cc tng tc mc thnh phn (i tng). Hnh 21 cho thy mt ng dn chui thng ip m c ly t hnh 19. Trong biu ny, cc nt m t phng php cc hng ti v cc cnh m t lung kim sot. Mi nt c thng tin v tn thao tc v tn i tng m thao tc c thc hin.Cc tiu chun ca loi ny l thng c s dng theo mt trong hai cch sau y. Tiu chun c th c s dng l mt hng dn cho vic to ra cc test, hoc tiu chun c th c s dng nh l mt h cho vic nh gi cc test c to ra bn ngoi. y tp trung vo vic s dng khun kh ca tiu chun; to ra test .

Hnh 21. Mt ng chui thng ip

test m h thng s a ra mt du vt ca s kin m khng nh cho ng dn chui thng ip chng ta ly c t biu cng tc, chng ta a cc cu lnh vo trong chng trnh gc.

Hnh 22. Thut ton instrumentation

Hnh 22 a ra mt thut ton , thut ton c gng t c cc mc ch sau:1. Chn cc cu lnh cho mi ng link2. Gip tester theo di du vt ca s tng tc trong thi gian chyThut ton ny c th c minh ha thng qua mt v d. Xem biu cng tc trong hnh 19, v ng dn chui thng ip ca n trong hnh 22. Thut ton s bt u vi biu cng tc, sau sp xp tt c cc tc nhn hot ng ca chng v cc i tng kt thc ng link ca chng vo trong mt danh sch link msPath. Thut ton ly nt u tin trong msPath, {processOrder(o), Company, next}. T thng tin c trong nt msPath, thut ton quyt nh chn vo trong vic thc hin ca phng thc processOrder() trong lp Company. Sau , thut ton ly nt tip theo trong msPath v chn vo tip theo. Thut ton x l tt c cc nt trong msPath theo th t ca s cc chui thng ip.

3.2.2 To Test case da trn Use case ci tin3.2.2.1. Cc nguyn tc c bnTrong phn ny, c ba khi nim chnh lin quan trong cch tip cn c m t chi tit. Mi khi nim tng ng vi mt bc lm m hnh xc nh, nh trong Hnh 23.

Hnh 23: M hnh ha cc vng trong thit k phn mm

Cch tip cn c m t trong ti liu ny tp trung vo vic h thng ha hoc thm ch t ng ha cc bc c ch ra trong qu trnh thc hin c s m rng mt cch ti a. (vic pht hin li c thit lp trong phn ngoc n bi v kim th s dng thng k tp trung vo cc thc o tin cy v c th xc nh ch cc li km).3.2.2.2.Cc m hnh s dng v kim tra cch s dng thng k Kim tra cch s dng thng k l mt k thut mc h thng cho vic bit chc chn rng cc sn phm phn mm p ng mt mc nht nh ca s tin cy[6]. iu ny v cc hot ng nh gi khc cho php cc bin php th hai c xc nh, chng hn s sn sng ca phn mm v, thm ch, mt quyt nh t ri ro trn vic phn pht phn mm cho khch hng.Kim tra cch s dng thng k c da trn tng m cc phn khc nhau ca mt chng trnh khng cn c test k lng ging nh vy. C mt nguyn tc ni ting l 90-10 m bt u rng phn mm tiu biu dng 90% thi gian thc hin v 10% ca vic m ha. iu ny c ngha l, nhng phn chia khc nhau ca phn mm c thc hin vi mt tn sut cao hn nhng phn chia khc. Kim tra cch s dng thng k hng ti xc nh nhng phn chia ny v iu chnh b test theo, buc cc phn c thc hin thng xuyn hn test k lng hn.Bi v s lng ca Test case mt h thng c th ti l v hn, cc k thut mu c yu cu la chn mt tp hp ph hp ca cc Test case. Mt k thut mu thng thng trong ng cnh ca statistic usage testing l mt s phn tch cch s dng v m hnh cch s dng. M hnh cch s dng xc nh hin trng cch s dng nh ci gi l cc m hnh cch s dng.M hnh s dng (Usage models): Mt usage model l tiu biu cho vic s dng ton t ca mt h thng phn mm. operational use l s s dng c mong i ca phn mm trong mi trng c mong i. Usage models s dng ci gi l cc hin trng s dng m t lm th no mt h thng phn mm c th c s dng bi nhng ngi s dng khc nhau v s s dng c th khc nhau th no. Chng c da trn cc c t s dng v cc chc nng cho phn mm. Thng tin ny c th c c thm ch trc khi s thc hin c bt u. Kt qu l, cc n lc cho s pht trin phn mm v m hnh ha cch s dng tr nn c lp, do cho php lp k hoch test xut hin song song vi hoc thm ch u tin ti s pht trin phn mm, gim bt thi gian pht trin ton din v cung cp thm cc thng tin cho ngi pht trin.

Hnh 24. Cc hot ng ca cch tip cn c xut bn trong qu trnh pht trin phn mm.

Trong hnh cc chui c mt khi u duy nht v mt trng thi cui cng duy nht miu t s kt thc v s dn chng ca phn mm. Cc trng thi khi u ging vi cc trng thi cch s dng c lin h vi nhau bng cc chuyn tip (hnh dung theo mt hng duy nht trong mt miu t ha). Thuc tnh i hi s c lp ca trng thi k tip t tt c cc trng thi trc a trng thi hin ti.Mt khi cu trc ca m hnh cch s dng c xc nh, cc kh nng c th c gn ti tt c ca cc chuyn tip, c da trn s s dng c mong i ca phn mm. Cc kh nng c th ca tt c cc chuyn tip a n vic mt i mt trng thi cn thm vo.Thng thng c mt s loi ngi dng (trong cc biu use case UML, nhng ngi ny c m t nh cc tc nhn) mt h thng c th tng tc vi, v thm ch mt vi loi ph mi loi ring ca ngi s dng c xc nh bi tiu chun th yu, chng hn nh kinh nghim. Mt hin trng cch s dng n l tiu biu s khng gii thch cc kt qu khc bit. Thay vo , mt vi m hnh cch s dng khc bit s c to ra.3.2.2.3. Ngun gc ca cc m hnh test v cch s dng da trn cc biu UMLTrong phn ny, nhng hng dn tng bc mt c a ra m t mt cch tip cn c th dn ti mt h thng t cc biu use case c a ra ti mt c s cho vic sinh t ng ca cc Test case. Biu hot ng (hnh 24) cho thy trnh t ca cc hot ng trong ng cnh ca qu trnh pht trin phn mm. Vi cc mc ch minh ha, mt v d n gin c ly t mt d n th vin c s dng.(1) Ci tin cc use caseKhi u bng vic nh ngha cc use case, mt quan im ton din c n gin ha v cc chc nng c yu cu ca h thng c to ra. Do s gii hn ca vic din t, cc biu use case bn thn chng s dng rt t-tr khi cc use case ring bit c ci tin trong mt dng nguyn vn thng thng, v thng c ng k.Mc ch ca h thng ha bt ngun t cc m hnh cch s dng cho mt h thng phn mm m i hi cc din mo ng c m hnh ha t mt im c nh hng ti cch s dng ca quan im, c th s tng tc ca h thng vi mi trng, v d, s phn hi ca n ti tc nhn hot ng; cc phn hi bn trong th ch lin quan n bi v chng cho ra cc kt qu bn ngoi.Mt mu c trnh by thnh dng bng ph hp cho vic ci tin nguyn bn cc use case. tng ng sau l t c mt s m t hon chnh n nht ca mt use case bng vic xc nh v lin h ln nhau ti tt c ca cc kch bn n a vo. Thm vo , cc iu kin trc v sau xc nh trng thi cch s dng trc v sau tng ng, vic thc hin cc th tc use case tng t nh vy. K c cc use case ph bn trong mt use case cho php cc lin h c th bc trong s cc use case. Mt phin bn mu (bng 2) c m rng bi cc tc nhn v cc lng bt bin c cho thy hnh 25; mt v d minh ha y na ca mt mu c cho trong hnh 26.

Bng 2: Mu ci tin cc use case

Mt mu nh c ni trong cng vic c t tn cn c m rng cho nhiu iu kin:Nhiu iu kin trc: iu kin trc xc nh ng cnh, v d, trng thi cch s dng, trong mt use case c th c thc hin; s m rng ny cho php a ng cnh.Nhiu iu kin cao hn: Mt use case n nht c th dn ti mt vi trng thi c th cao hn (thng qua nhng bin i hoc nhng s m rng); cc v tr cao hn c th khc bit ph thuc vo kch bn no c p dng. Cho s dng sau ; nhiu iu kin cao hn nn c nh s, v vic nh ngha cc kch bn nn c lm r iu kin cao hn no chng a n.Mt mu chi tit nh vy phi c in vo trong cho mi use case. Tnh cht nh ht ca cc c t kch bn xc nh tnh cht c ht ca cc cng vic test thm ch cch tip cn dn n, v d, mt bc kch bn tng t mt tc nhn kch thch s c a vo trong mt u vo test nguyn t v mt bc kch bn m t mt cu tr li s tr thnh mt cu tr li c th quan st c nguyn t.(2) T use case ti cc biu trng thiTrong bc k tip cc mu c chuyn vo trong cc biu trng thi. Mc ch ca vic ly c cc Test case da vo cc m hnh cch s dng i hi mt s miu t ging th hn ca quan im hng n cch s dng. Cc biu trng thi to ra mt bc khi u ph hp vi hai l do: Quan im l hng n trng thi v s ph hp a ra cc trng thi khc nhau ca cch s dng. Nguyn mu ca cc chuyn tip trng thi l mt bin khi ng, l, mt tc nhn khin cho h thng m hnh thay i trng thi ca n.Chi tit cc mu use case c gii thiu c nng cao h tr s bt ngun h thng ca mt c t cch s dng c da vo biu trng thi. Chi tit use case c thc hin bi con ngi, nhng s chuyn tip theo sau c th c t ng bi cch tip cn ny.

Bng 3: Mt v d v mu chi tit cc use case

tng (m sinh ra mt vi s tng ng l m hnh ha mi use case trong mt biu trng thi tch bit v gi cht nhng biu trong mt biu mc cao nht. Biu mc cao nht ny tng t mt framework trong use case c th c thc hin ph thuc vo nhng iu kin u tin ca chng, v trong c thm cc trng thi cch s dng ton b, c ngoi suy t cc iu kin ban u ca tt c cc use case, c th c chuyn i gia chng, thm na bng cc cng c ca use case. Mt biu trng thi mc cao hoc mt trt t nh vy, vi cc h thng phc tp hn) l c xy dng bng cch tn trng trit cc hng dn sau: T tt c cc iu kin ban u v cao hn ca tt c cc use case, cc trng thi ton th ca cch s dng l c ngoi suy. Trong ng cnh , cc trng thi ca cch s dng tham chiu ti s lin h ca h thng ngi s dng. V d, trong mt ng dng da trn GUI tng tc, nhng trng thi nh vy m t cc thc n khc nhau. Cc biu trng thi ca use case xut hin nh nhng ngi c a v, c ngha l ch ng vin trng thi ca chng v tn c a vo cng, tham chiu ti biu trng thi thc t. Bn trong chng, cc b ni biu ph hp vi cc iu kin cao hn c ly ra. Mt b ni biu l mt s tham kho biu trng ti mt s xut hin khc ca cng biu tng trong mt biu khc, cho php cc kt ni ny trong s cc biu tch bit. C ch ny l mt s m rng ca cc biu trng thi UML. Cc b ni cho php cc biu trng thi tch bit ca mi use case hn mt biu phc tp v gip ch cho vic sa li/s dng li (ci thin tnh d hiu v trnh cc li). S a dng v s m rng ca cc use case a thm cc iu kin cao hn trong cc biu trng thi c ci tin thng xuyn cung cp thm cc b ni biu . Cc trng thi quan trng ca mi use case nhn cc chuyn tip hi li t tt c cc trng thi ton b m t cc iu kin ban u ca use case trong tiu cp n. S khi ng ca mi chuyn tip l bc u tin ca kch bn thnh cng chnh (v d, cc tc nhn kch thch khi ng s thc hin ca use case). Nu c a tc nhn kch thch khi ng, mt s chuyn tip tch bit cn c a vo cho mi tc nhn kch thch. Cc b ni biu bn trong cc trng thi quan trng (place-holding) ca cc use case l c kt ni ti cc trng thi h thng ton b tng ng vi iu kin cao hn c tng ng bi b ni biu trong iu c cp n. Nhng chuyn tip ny c chuyn tip t ng (v s kh trnh khi s chuyn tip giai on sau). Cc chuyn tip u tin v kt thc c thm vo, m t s kch hot v kt thc ca phn mm, tng ng.

Hnh 25. Biu trng thi mc cao nht cho v d use case ca bng 3.

gii thch cho cc tc nhn khc nhau v cc hin trng cch s dng khc nhau, ngi ta gi to ra mt biu mc cao tch bit cho mi tc nhn. Cch ny, cc hin trng cch s dng c lp m c m t bi cc biu trng thi mc cao c th c ci tin c lp, gi li v xy dng trn c t chung c bt ngun trong cc bc trc . Hnh 25 cho thy mt biu mc cao c th cho mt ng dng gi mo khng hon chnh mu use case trong bng 3 c th thuc v n.Ly ra mu cc chi tit c in vo, mi use case c chuyn vo trong mt biu trng thi ring bit bng cch theo sau cc hng dn bn di: M hnh ha cc kch bn thnh cng ch yu nh biu trng thi: Cc phn ng h thng c a vo trong cc trng thi, cc tc nhn kch thch tr thnh s chuyn tip c khi ng. Cc trng thi v chuyn tip c t tn v nnh m trong mt hnh thc m gip tng quan gia chng vi cc thc th tng ng trong mu use case tng ng. Cc thay i v m rng c kt hp bng cch thm vo cc trng thi v cc chuyn tip. C th trong cc biu trng thi thp hn. Mi mt iu kin cao hn khc nhau tr thnh mt b ni biu m ch cc chuyn tip tr v c php kt ni vi. Ghi nh rng n l hp php c cc a chuyn tip kt ni ti b ni biu ging nhau bi v nhng vch du ny ti trng thi mun c thay th bi cc trng thi mc cao hn. Cc iu in u tin khng c m hnh ha bn trong biu trng thi use case tng ng, v khng l cc tc nhn kch thch m l cc bc u tin ca cc kch bn chnh (tr khi c cc bin i v /hoc s chp thun ca bc u tin trong cc kch bn thnh cng chnh, cc case trong biu chuyn tip ban u c th b tch ri vic s dng mt thanh mu iu kin (using a conditional fork). Cc hnh ng h thng c th c quan st c m hnh ha nh cc hnh ng (thc th) trong cc trng thi tng ng.Hnh 26 cho thy mt biu trng thi c ci tin cho v d th vin. Cc b ni biu tham chiu ti biu ca hnh 25 v ti cc m rng trong bng 3.Kt qu ca bc ny l mt h thng cp bc ca cc biu trng thi v mt trnh cao hn ca s hnh thc ha. Cc use case gi y c buc li cng nhau thng qua mt biu trng thi mc cao nht. Mt li th khc ca vic s dng cc biu trng thi l mt bc u tin gm vo trong , nu c yu cu v tnh kh thi cho ra mt cu trc ca h thng, cc m hnh cch s dng tch bit c th c to ra mi biu trng thi, cho php ng dng v cch tip cn ti mt thnh phn hn l mc h thng.

Hnh 26. Ci tin biu trng thi cho v d use case ca bng 3.2

(3) T cc biu trng thi ti th cch s dngTrong bc ny, cc biu trng thi mc cao nht c chuyn vo trong cc th cch s dng. Mt th cch s dng c mt s khi u duy nht v mt s kt thc duy nht. Thm vo cc trng thi m t cc trng thi cch s dng. Nhng s chuyn tip gia cc trng thi c nh m vi cc hnh ng ca ngi s dng khin s chuyn tip c thc hin hoc, l mt s m rng khi nim chung, cc chuyn tip .Epsilon l cc chuyn tip c thc hin mt cch t ng, c a ra cho php cc chuyn tip gia cc trng thi cch s dng khng c cc tc nhn kch thch bn ngoi. Cc biu trng thi mc cao hn c th c chuyn vo trong cc th cch s dng gn cht vi cc hng dn sau y: Vic lm phng ca cc biu trng thi c thc hin bng cch quy cc trng thi thp hn m c thay th bi nhng ngi c a v cao hn. Cc b ni biu a ra nh l nhng ngi c v tr cao hn cho cc trng thi mc cao hn tng ng vi mt iu kin cao hn nht nh c thay th bi cc trng thi mc cao hn chng tng trng cho. Cc chuyn tip u tin ca cc trng thi thp hn c thay th bng cc hnh cung a n trng thi tng ng trong mt biu mc cao hn. Cc nhn trng thi nn c thm vo u lp i lp li vi tn ca biu trng thi (nh c xc nh t use case tng ng) trnh xung t tn. Kt qu s l mt biu trng thi m khng c cc trng thi c th bc v cc b ni biu . Cc tc nhn kch thch c xc nh, v d, tt c s xut hin ca cc tc nhn kch thch ging nhau c thay th bi mt biu tng miu t duy nht tc nhn kch thch . iu ny dn n cc biu d hiu hn. Cc chuyn tip t ng (v d khng c iu kin) c thay th bi cc chuyn tip vi nh l mt s khi ng. Nhng s la chn khc nhau s l ri i cc trng thi ny t cc trng thi t ng m rng v gn cc chuyn tip tr v cc hnh ng trng thi ca chng l cc hnh ng mng tnh chuyn tip. Cch tip cn epsilon tng cng tnh d hiu v s tng quan ca th cch s dng vi cc biu trng thi n c da trn. Thm vo , n trnh kt hp cc module c m t bi cc biu trng thi v do khng r rng cc ng vin ca chng. Cc chuyn tip u tin ca biu mc cao nht c thay th bi mt trng thi c t tn Sofware Not Invoked, c s tng ng vi ng dng phn cha c dn chng cho n nay ca ng dng, v mt s chuyn tip dn v t ti mc tiu ca chuyn tip ban u. S chuyn tip ban u mi c gn mt biu tng a ra m t s kch hot ca phn ca phn mm. Trng thi cui c thay th bi mt trng thi c t tn Software Terminated trong mt cch tng ng ti c xc nh cho chuyn tip ban u. Ni mt cch khc, mt biu tng tng t s kt thc ca phn mm c gn cho cc chuyn tip mi tng ng. Khng phi l s kt thc ca ci cht (v d, cc trng thi khng c bt k s chuyn tip sp ti no) hoc cc trng thi khng th t ti c. Nu bt k ci no c tm thy, s xem xet li nhiu ln s c yu cu. Cc hnh ng trng thi c gi thay cho. Bi v vic dn nhn ca cc trng thi ca th cch s dng l mt s ty tin, chng c th c xem xt mt phn ca mt tn hoc nhn xt v trong bt k trng hp no cho php vic xc nh chm hn ca kt qu ca h thng c mong i khi mt trng thi cch s dng nht nh c t ti.Mt s minh ha v vic lm th no mt th cch s dng v v d c s dng bn trn c th nhn ging nh c cho ra (l mt m hnh cch s dng hon thin thu c khng c cc chnh sa thm t th cch s dng) trong phn tip theo.(4) T cc biu cch s dng ti cc m hnh cch s dng c c cc m hnh cch s dng s phn phi kh nng ca cch s dng v phn mm i vi hin trng cch dng c m t bi biu cch dng phi c xc nh. Khng c cch tip cn h thng chung cho vic ly c iu . N cn c xc nh gi tr bng vic nh gi c thc v biu cch s dng c m hnh, cc c t c cho, vic tho lun vi khch hng, vvKh nng ca mt vi chuyn tip ra bn ngoi ca mt trng thi s dng c th c nhn ra l rt khc bit ph thuc vo cc s dng trc ca h thng. Bi v iu ny l s vi pham v m hnh cch s dng ca mt thuc tnh, trng thi bn n v tt c cc trng thi c lp cn c ti to v kt ni cc quc gia ni ting trong lch s c gii quyt v thm ch, tt c cc kh nng ci tin ca trng thi ca biu cch s dng ch ph thuc vo trng thi c trc ngay lp tc. Thm vo , cc loi ph khc nhau ca ngi s dng c m t bi mt tc nhn c th cn c phn bit bng cc tiu chun chng hn nh kinh nghim.iu ny lm cho n c th xut tch cc m hnh cch s dng ring bit theo quan im ny, mi m hnh c ci tin v c nh hng theo s phn b cc tnh nng ph hp nht cho hin trng ngi s dng a ra. Vi nhng ch dn lin quan n chu k lp i lp li thng thng ca gn cc tnh nng chuyn tip. Mt cch tip cn cho vic xc nh cc kh nng chuyn tip mt cch c h thng s dng cc chc nng hng i tng ly ra t cc rng buc cch s dng v cu trc. Nh mt phng tin c bn ca vic s xc nhn, tng ca tt c cc chuyn tip bt ngun t mt trng thi phi bng 1. Cc chuyn tip hng ra ngoi ca trang thi Software Not Invoked c thc hin vi kh nng 1, v v vy l cc chuyn tip epsilon. Mi trng thi phi c mt trng thi k tip (trng thi k tip ca s n Software Terminated l Software Not Invoked).

Hnh 27. M hnh cch s dng c th cho v d th vin ca bng 3.

(5) T cc m hnh cch s dng ti cc Test casec da trn mt m hnh cch s dng, n l c th To ra d liu m c th c s dng thng qua chu k sng ca mt d n cho vic lp k hoch test. Ly c cc v d ph hp mang tnh thng k ca cc Test case.Cc m hnh cch s dng xc nh vic test mt cch ngu nhin. c i hi nh l mt nn tng cho vic test ngu nhin v vic test u tin l b bao gm cc hnh cung rt nh: Mt chui ca cc chuyn tip i ngang qua m hnh vi s lng ti thiu cc bc, mt chui m c th c xc nh mt cch t ng. Trong khi s xc nh ca chui cng nh trong khi sinh ra cc bc ngu nhin sau , cc chuyn tip epsilon () c th c nh nhng l i (v d, b ra t chui kt qu ca cc tc nhn kch thch) bi v chng c thc hin mt cch t ng bi phn mm, v s bao qut ca chng c bo m bng vic bao qut tt c cc hnh cung khc (bi v tt c cc trng thi c th t c (m bo ln lt bng cch gn ch cc kh nng ln hn khng)).Cho v d, mt b bao qut hnh cung ti thiu cho v d s dng trong phng php ny (hnh 27) l SUROKNAOKP/PMUPPMCU/POK c c bng cch chy ch mt ng dng.Sau khi b bao qut hnh cung ti thiu c thng qua, cc Test case ngu nhin c to ra. Mi Test case l mt s i ngang ngu nhin ca m hnh cch s dng vi s la chn ca chuyn tip thot m l thc hin ti bt k trng thi c a ra no c xc nh bi cc kh nng c gn km vi cc hnh cung ca cc trng thi. V d, mt Test case ngu nhin c tng ng bi chui SUP/PMUPPMOK. Trong khi vic thc hin cc Test case, tnh chnh xc ca hnh vi ca phn mm trong cu tr li ti cc s kin trong chui c ghi nhn nh l s thnh cng hoc tht bi, trong trng hp sau cng ghi nhn s cc Test case v chuyn tip m dn ti tht bi. Ph thuc vo s nghim ngt ca s tht bi, n c th c c x nh mt s kt thc hoc s tht bi tip tc, khin Test case hoc l kt thc hoc l tip tc, tng ng. Cc phn tch m hnh cch s dng v d liu ca s tht bi c th c s dng cng vi vic to ra cc trng hp test cho vic test hiu qu v cht lng sn phm.Hai thc o c bn cho vic test hiu qu c tng ng bng s bao qut hnh cung v trng thi. C hai tiu chun bao qut ny c xc nh bi s phn phi kh nng trong m hnh. Thm vo , mt yu t quyt nh c th c c tnh phn nh s tng ng gia vic s dng c test v c mong i. N l nhim v ca cc k s test quyt nh nhng gi tr g cn tng thm trc khi test c xem l hiu qu.

CHNG 4: JAVA PATH FINDER V THC THI TNG TRNG

4.1.Gii thiu v JPFJPF l mt b kim tra m hnh phn mm trng thi tng minh cho Java [5]. Hiu mt cch c bn JPF l mt my o thc thi chng trnh Java khng ch mt ln (ging nh cc my o thng thng), m thc thi trong tt c cc nhnh, cc ng i c th. JPF s kim tra cc vi phm thuc tnh nh kha cht hoc cc ngoi l khng th bt c xuyn xut cc ng thc thi tim nng. Hnh 2-1 m t m hnh hot ng ca JPF.

Hnh 2.1: M hnh hot ng ca JPF

V l thuyt iu ny l rt kh thi, tuy nhin vi vic tng kch c ca ng dng, phn mm kim chng m hnh phi i mt vi nhiu thch thc. JPF cng khng l ngoi l. Cu tr li ca chng ta l tng s linh hot ca JPF thch nghi vi mt ng dng c th. Chng ta c th coi JPF nh l mt Framework v t pht trin m rng c th gii quyt c bi ton c th m chng ta mun.4.1.2. JPF c th kim tra nhng chng trnh g?JPF c th kim tra tt c cc chng trnh Java. JPF c th tm ra cc kha cht hoc ngoi l. Ngoi ra chng ta c th t pht trin m rng kim tra cc thuc tnh khc. hiu r hn v JPF chng ta c th xt v d sau:To mt lp l Rand.java nh bn di, sau chng ta s dng JPF kim tra xem c li khng.

import java.util.Random;public class Rand { public static void main (String[] args) { Random random = new Random(42); // (1) int a = random.nextInt(2); // (2) System.out.println("a=" + a); int b = random.nextInt(3); // (3) System.out.println(" b=" + b); int c = a/(b+a -2); // (4) System.out.println(" c=" + c); }}

Hnh 2.2: S trng thi trong qu trnh kim thHot ng ca lp trn l khi to 2 bin a v b mt cch ngu nhin trong cc khoang tng ng l [0,2] v [0,3]. Sau c mt bin c c gi tr c xc nh bng cng thc c = a/(b+a-2).Nu ta chy chng trnh java ny thng thng th c th thy kt qu l: a = 1, b =0, v c = -1. Nh vy chng trnh l khng c li. Tuy nhin nu ta s dng JPF kim tra chng trnh trn th s thy nh hnh v bn di:

Nhn hnh v trn ta c th thy nu chy chng trnh java bnh thng th ta ch c th nhn c 1 trong 6 kt qu trn, do vy kh nng ln l khng pht hin c ra li ( ng bi l v d). Tuy nhin JPF s tm ra tt c cc ng i ca chng trnh sau kim tra chng. Ta s thy c 2 trng hp li gy ra bi php chia cho 0.4.1.3.Kin trc mc cao ca JPF

Hnh 2.3: Kin trc mc caoHnh 2-3 biu din s kin trc mc cao ca JPF. JPF c thit k thnh 2 thnh phn chnh l: JVM, v Search:My o Java c to bi ngi dng (JVM): L my sinh trng thi c th Java, bng cch thc thi cc ch th bytecode Java, JVM sinh ra m t trng thi c th: Kim tra bng nhau (c trng thi no ging m c thm trc ). Truy vn (trng thi lung, gi tr d liu, v.v.) Lu tr. Phc hi. My o JVM ca JPF c kh nng qun l cc trng thi: quay lui, khp trng thi v my o lu tr trng thi. C 3 phng thc JVM chnh hp tc gia my o v tm kim (VM-Search): Forward sinh trng thi tip theo, thng bo neeos trng thi sinh ra l nt l. Nu ng lu tr vo mt ngn xp backtrack phc vphc hi hiu qu. Backtrack phc hi trng thi cui trong ngn xp quay lui. restoreState phc hi mt trng thi ty . i tng Search: l mt cu hnh chin lc tm kim i tng m theo hng thc thi trong my o. Ni cch khc, i tng Search la chn cc trng thi m t JVM nn x l bng cch trc tip JVM sinh ra trng thi tip theo hoc quay li trng thi c to ra trc . Mt khnng quan trng ca i tng Search l n c th c th nh gi i tng thuc tnh, chng hn nh: n xc nh mt thuc tnh l khng phi deadlock - phng thc NotDeadlocked, hoc m bo rng cc thuc tnh khng vi phm s khng nh. - phng thc NoAssertionsViolatedProperty. Tm li, ct li ca JPF c to t hai thnh phn chnh: JVM to bi ngi dng v i tng Search. S kt hp ca cc thnh 8phn ny gip JPF tm kim cc vi phm thuc tnh nh: unhandled exceptions, race conditions and deadlock. Ngoi ra, JPF cung cp cc cu hnh m rng ng k: Choice Generators: thao tc cng chthi hnh nhnh. Instruction Factories: m cho php thay i ng ngha ca thc thi ch th bytecode. Listeners: m theo di v kim sot thc thi chng trnh JPF. Native Peers: m phi c thc hin bn ngoi JPF (v d nh cc thao tc I/O). JPF c pht trin khng ch cho mc ch sinh d liu kim tra d liu m cn kim tra deadlocks, unhandled exceptions, race conditions, heap bounds v nhng vi phm thuc tnh c cung cp bi ngi dng.

4.1.4.Kh nng m rng ca JPF

Hnh 2.4: Mu ListenerJPF c th c coi nh l mt Framework m ti bt k nh pht trin no u c th m rng phc v cho mt mc ch c th. JPF cung cp mt c ch m rng cho php thm vo cc chc nng mi m khng phi thay i trc tip ci t ca Search hoc VM.Yu cu v kh nng m rng c th t c bng cch s dng mu Listerner trn hnh 2-4. Cc th hin s t ng k hoc ng k vi i tng Search/VM, nhn thng bo khi mt i tng (Subject) tng ng thc thi mt hot ng nht nh, v sau c th tng tc vi i tng truy vn cc thng tin b sung hoc iu khin hnh vi ca i tng.Vic thay i cc kha cnh ca i tng c nh x vo cc phng thc Observer ring bit, cc th hin ca i tng s c truyn i nh tham s. i tng Subject s theo di cc listener ng k theo Multicaster.C 3 mc khc nhau c th ly c thng tin ca i tng Subject bng cch ci t listener. Generic listener c tr bn ngoi cc gi JPF v ch s dng cc thng tin c cng khai (public) theo gov.nasa.jpf.Search / VM. Search-specific listener c tr bn ngoi gi JPF nhng s a cc tham s thng bo ca i tng Subject vo cc ci t c th (v d: gov.nasa.jpf.search.heuristic.BFSHeuristic), v s dng cc API ca n ly cc thng tin ci t c th. Internal - listener c tr trong cc gi ci t Subject ring bit v truy cp cc thng tin ring ca gi ( private) .4.1.5.Mt s m rng ca JPFVi kin trc m rng linh hot, hin nay c mt s m rng c pht trin cho JPF.UI - User Interface Model Checkingy l m rng cho vic kim tra m hnh mt lp c bit ca cc ng dng Java l cc chng trnh Swing v AWT. M rng ny c ci t nh mt nh vin chun c m hnh ha MJI (MJI L vit tt ca: Model Java Interface) nhm thay th cc chc nng ca Swing v AWT m cc ng dng giao din s dng chun ca Java c th c kim th vi cc u vo khc nhau.symbc - Symbolic Test Data Generation M rng ny s dng BytecodeFactory ghi li (core) JPF bytecodes nhm sinh ra cc ca kim th ring bit. Ni tm li n hot ng bng cch s dng cc thuc tnh/ trng ca JPF thu thp cc iu kin ng i PC, sau c a cc PC vo mt h thng tm li gii theo inh dng ca h thng a ra d liu kim th. M rng ny s c trnh by chi tit hn phn 2.2.cv - Compositional Verification Framework M rng ny l mt thut ton hc my c s dng cho cc lp lun tha nhn/ m bo, nhm mc ch phn chia h thng thnh cc thnh phn con v sau kim chng tng thnh phn mt cch ring r. Mc ch chnh ca m rng ny l ci tin kh nng ca JPF, n c th c s dng sinh ra mi trng gi nh cho kim chng m hnh UML, xc nh cc trnh t s kin ng. numeric - Numeric Property Verification M rng ny c s dng kim chng cc thuc tnh ca s hc. Ban u m rng c s dng nh nh mt tp cc lp ch th s hc pht hin trn b nh, sau c m rng kim chng vic truyn gi tr khng chnh xc, so snh du phy ng chnh xc (floating point comparison).statechart - UML State Chart Model Checking Mc ch ca m rng ny l kim tra lc chuyn trng thi UML. Trong m rng ny mi mt biu chuyn trng thi s c biu din tng ng vi mt lp Java (hoc nhiu lp). Sau qu trnh kim tra s l kim tra cc lp java .4.2.Thc thi tng trng sinh d liu kim th4.2.1.Thc thi tng trng l g? i gi tr gia 2 bin ng i c th

Hnh 2.5: V d v thc thi tng trngK thut thc thi tng trng l k thut thc thi chng trnh bng cch s dng cc gi tr tng trng, khng phi s dng cc gi tr c th. hiu r thc thi tng trng l g, xt v d chuyn i gia 2 bin x v y: v d trn, nu trong trng hp thc thi tng trng, gi tr ca x v y l cc gi tr tng trng X, Y ch khng phi l cc gi tr c th. Kt qu ca qu trnh thc thi tng trng s duyt ht cc dng i c th c ca chng trnh, v cho ra iu kin ng i. u im ca phng php ny l ta c th thc thi ti bt k im no trong chng trnh v c th trn gia u vo tng trng vi u vo c th. Phng php ny s cho ta cc iu kin ng i ca chng trnh, v vi vic s dng cc cng c tm li gii cho cc iu kin ng i (coi mi iu kin ng i l mt biu thc) s sinh ra d liu kim th cho chng trnh.Tuy nhin phng php ny cng c gii hn l c th bng n cc ng i trong vic thc thi tng trng.4.2.2.Thc thi tng trng vi JPFThc thi tng trng l mt m rng ca JPF. M rng ny ca JPF s thc thi tng trng cc chng trnh java. Mt trong nhng ng dng chnh ca m rng ny, l t ng sinh d liu kim th bao ph ton b chng trnh ca m ngun.M rng ny phi hp thc thi tng trng vi kim chng m hnh v cc rng buc gii quyt sinh d liu kim th. Trong cng c ny, cc chng trnh c thc thi trn u vo tng trng. Cc gi tr ca cc bin c biu din nh v cc biu thc s v rng buc, chng c sinh t vic phn tch cu trc m ngun. Nhng rng buc sau c gii quyt sinh ra cc d liu kim th m bo t c phn m ngun .Ti thi im hin ti JPF h tr cc tham s nguyn v thc. Tuy nhin vn cn mt s trng hp cn gii quyt cho s thc.Hin ti m rng ny ch h tr cc rng buc tuyn tnh (s hc tuyn tnh), s hc phi tuyn l cha c h tr. Thng tin tng trng c truyn theo cc thuc tnh kt hp vi cc bin v cc ton t. Thc thi tng trng c th bt u t bt k im no trong chng trnh v n c th thc thi tng trng ring bit vi nhau. 4.2.3.Hn chHin nay JPF ang s dng mt s cng c tm li gii ca Java : Choco, IAsolver. Nhng cng c ny c s dung nh cc th vin. Vic s dng chng lm cho JPF c rt nhiu hn ch nh: Khng gii c i s phi tuyn, cc uninterpreted function, php chia cho 0.

CHNG 5: MT S V D THC THI TNG TRNG VI JPF

5.1.Kim th bi tonSau y l mt v d rt n gin ca vic thc thi tng trng vi JPF. Chng ta c th s dng Eclipse hoc thng qua giao din dng lnh.Gi s ta c phng thc sau trong lp bn mun sinh kim th: public class MyClass1 { public int myMethod(int x, int y) { int z = x + y; if (z > 0) { z = 1; } else { z = z - x; } z = 2 * z; return z; } }

Chng ta s cn to mt driver gi myMetho(int,int). Driver c th l mt lp khc hoc phng thc main() ca chnh lp ny. Trong trng hp ny ta s vit driver trong phng thc main() ca lp MyClass1.Trong v d n gin ny, driver ch cn gi myMethod() vi s v kiu tham s ng sau in ra iu kin ng i (Path condition PC). iu lu l tham s chnh xc khng phi l vn , v chng ta s thc thi myMethod() mt cch tng trng, tt c cc gi tr c th s c thay th bng gi tr tng trng.Chng ta c th xem cc ca kim th (test case) bng cch in ra iu kin ng i. Vic ny thc hin c bng cch gi phng thc: gov.nasa.jpf.symbc.Debug.printPC(). Sau y l m ngun y :

public class MyClass1 { public int myMethod(int x, int y) { int z = x + y; if (z > 0) { z = 1; } else { z = z - x; } z = 2 * z; return z; } // driver kim th public static void main(String[] args) { MyClass1 mc = new MyClass1(); int x = mc.myMethod(1, 2); Debug.printPC("MyClass1.myMethod Path Condition: "); }}

Khi nu chy bng Eclipse s cho kt qu sau:

Hnh 2.6: u ra trn Eclipse cho MyClass1

Nhn vo kt qu trn cc PC s ch ra cc ca kim th lCa kim th 1: y = -9999999, x = 10000000Ca kim th 2: y = -10000000, x = 10000000Ca kim th 1 tng ng vi z > 0 ca cu lnh if ca phng thc myMethod. Ca kim th 2 tng ng vi nhnh z0.5.2.Lc cc trng hp kim thChng ta thay i MyClass1 thnh MyClass 2 nh sau. public class MyClass2 { private int myMethod2(int x, int y) { int z = x + y; if (z > 0) { z = 1; } if (x < 5) { z = -z; } return z; } // The test driver public static void main(String[] args) { MyClass2 mc = new MyClass2(); int x = mc.myMethod2(1, 2); Debug.printPC("\nMyClass2.myMethod2 Path Condition: "); }}Chng ta c th chy chng trnh vi cc tham s cu hnh nh sau: +vm.insn_factory.class=gov.nasa.jpf.symbc.SymbolicInstructionFactory+vm.classpath=.+vm.storage.class=+symbolic.method=myMethod2(sym#sym)+search.multiple_errors=true+jpf.report.console.finished=MyClass2

Hnh 2.7: u ra ca MyClass2 trn Eclipse

Khi chng ta s nhn c 4 ca kim th nh sau: Ca kim th 1: y = 10000000, x = -9999999 Ca kim th 2: y = -4, x = 5 Ca kim th 3: y = -10000000, x = -10000000 Ca kim th 4: y = -10000000, x = 5Tuy nhin gi s chng ta ch cn quan tm trong cc ca kim th m lnh if c thc hin, khi chng ta ch cn quan tm n ca kim th 2 v 3. Chng ta c th ch chy JPF nh trn v lc chng mt cch th cng. Tuy nhin c mt cch khc tt hn l ta s dng Verify.ignoreIf() bt JPF quay tr li khi mt cu lnh if c tm ra hn mt ln, v d ta c th thng bo myMethod2() nh sau: import gov.nasa.jpf.jvm.Verify;import gov.nasa.jpf.symbc.Debug;

public class MyClass2 { private int myMethod2(int x, int y) { int jpfIfCounter = 0; int z = x + y; if (z > 0) { jpfIfCounter++; z = 1; } if (x < 5) { jpfIfCounter++; Verify.ignoreIf(jpfIfCounter > 1); z = -z; } Verify.ignoreIf(jpfIfCounter == 0); return z; }

// The test driver public static void main(String[] args) { MyClass2 mc = new MyClass2(); int x = mc.myMethod2(1, 2); Debug.printPC("\nMyClass2.myMethod2 Path Condition: "); }}

Cc ch thch (annotations) c bi m. V by gi ta c th chy chng trnh v kt qu l s ch nhn c 2 ca kim th cn thit: Test Case 1: y = -4, x = 5 Test Case 2: y = -10000000, x = -10000000

Hnh 2.8:u ra ca MyClass2 sau khi lc kt qu trn Eclipse5.3.B sung tin iu kinGi s rng ta mun gii hn cc ca kim th c sinh ra, nhng by gi vn l bn mun rng phng thc ca bn s ch c gi vi cc tham s trong mt khong no. V d trong MyClass1.myMethod() bn tin tng rng x v y c gii hn trong khong -100