Mºt lƒn nœa, tæi xin khflng ành v• sü trung thüc cıa líi cam k‚t tr¶n... 3.9 Chuy”n tł bi”u ç tuƒn tü sang CFG cıa to¡n tß ignore v consider... i•u ki»n trong to¡n tß câ th” gçmmºt c“n d
Trang 1C C Kß THU T SINH TÜ ¸NG DÚ LI U KI MTHÛDÜATR NC CBI U ˙UML
Th¡ng 04 n«m 2018
Trang 2L˝IC MÌN
Lu“n ¡n ÷æc thüc hi»n t⁄i Tr÷íng ⁄i håc Cæng ngh», ⁄i håc QuŁc gia HNºi, d÷îi sü h÷îng d¤n cıa PGS.TS Nguy„n Vi»t H
Tæi xin gßi líi c£m ìn ch¥n th nh v s¥u s›c nh§t tîi PGS.TS Nguy„n Vi»t
H Bº mæn Cæng ngh» phƒn m•m, Khoa Cæng ngh» thæng tin, Tr÷íng ⁄i håcCæng ngh» Ng÷íi thƒy t¥m huy‚t ¢ t“n t…nh h÷îng d¤n, ºng vi¶n kh‰ch l»,
d nh nhi•u thíi gian qu‰ b¡u ” ành h÷îng cho tæi trong qu¡ tr…nh tham giakhâa håc v ho n thi»n lu“n ¡n
Tæi xin gßi líi c£m ìn ch¥n th nh tîi l¢nh ⁄o tr÷íng ⁄i håc Cæng ngh», l
¢nh ⁄o Khoa Cæng ngh» thæng tin, c£m ìn c¡c çng nghi»p ¢ t⁄o i•u ki»n thu“nlæi cho tæi trong qu¡ tr…nh l m lu“n ¡n
Tæi xin gßi líi c£m ìn ch¥n th nh tîi c¡c thƒy, cæ trong Bº mæn Cæng ngh»phƒn m•m, Khoa Cæng ngh» thæng tin, Tr÷íng ⁄i håc Cæng ngh», nhœng ng÷íiluæn h÷îng d¤n, ành h÷îng, gâp þ cho tæi trong qu¡ tr…nh vi‚t lu“n ¡n
CuŁi còng, tæi xin gßi líi c£m ìn s¥u s›c tîi gia …nh v b⁄n b–, nhœngng÷íi ¢ luæn ıng hº v hØ træ tæi v• måi m°t ” tæi y¶n t¥m håc t“p, nghi¶ncøu, v ho n th nh lu“n ¡n
i
Trang 3L˝I CAM OAN
Tæi xin cam oan: B£n lu“n ¡n tŁt nghi»p n y l cæng tr…nh nghi¶n cøuthüc sü cıa c¡ nh¥n C¡c k‚t qu£ ÷æc vi‚t chung vîi c¡c t¡c gi£ kh¡c •u ÷æc süçng þ cıa c¡c çng t¡c gi£ tr÷îc khi ÷a v o lu“n ¡n C¡c k‚t qu£ n¶u trong lu“n ¡n
l trung thüc v ch÷a tłng ÷æc cæng bŁ d÷îi b§t cø h…nh thøc n o tr÷îc khitr…nh, b£o v» v cæng nh“n bði Hºi çng ¡nh gi¡ lu“n ¡n tŁt nghi»p Ti‚n s¾Cæng ngh» Thæng Tin
Mºt lƒn nœa, tæi xin khflng ành v• sü trung thüc cıa líi cam k‚t tr¶n
T¡c gi£:
Trang 4iii
Trang 52.4 C¡c º bao phı v º ph¥n t‰ch ºt bi‚n trong ki”m thß
2.4.12.4.22.4.3
2.5.12.5.22.5.3
Ch÷ìng 3 SINH DÚ LI U KI M THÛ CHO KI U DÚ LI U
S¨ V C U TRÓC ¸NG
c§u tróc ºng 3.3.1
3.3.23.3.33.3.43.3.53.3.6
3.4.13.4.2
Ch֓ng 4
Trang 6C C ÙNG DÖNG T×ÌNG TRANH
tranh v l°p 4.3.1
4.3.24.3.3
4.4.14.4.2
Ch÷ìng 5 SINH DÚ LI U KI M THÛ CHO KI U DÚ LI U
CHUÉI
chuØi 5.3.1
5.3.25.3.3
5.4.15.4.25.5 TŒng k‚t Ch÷ìng 6 K T LU N
6.1 C¡c k‚t qu£ ⁄t ÷æc cıa lu“n ¡n 144
v
Trang 76.2 H÷îng nghi¶n cøu ti‚p theo 146
DANH MÖC C C C˘NG TR NH KHOA H¯C CÕA T C GI
LI NQUAN NLU N N
T ILI UTHAMKH O
Trang 8DANH MÖC C C THU T NGÚ V KÞ HI U
T¶n thu“t ngœ ƒy ı
Breadth-first search
Black box testing
Control Flow Graph
Extended Finite State Machine
Finite State Machine
Gray box testing
Trang 9T¶n thu“t ngœ ƒy ı
Satisfiability Modulo Theories
System Under Testing
Variable Assignment Graph
White box testing
eXtensible Markup Language
Z3-Str solver
Trang 10DANH MÖC C C B NG
2.1 C¡c bi”u ç UML v sß döng ” mæ h…nh hâa cho ki”m thß [100]
3.1 B£ng gi¡ trà ch¥n lþ cho c¡c to¡n tß logic [3]
3.2 H m và tł cho c¡c to¡n tß logic trong OCL [3]
3.3 H m và tł cho c¡c to¡n tß quan h» OCL cho ki”u dœ li»u sŁ [3] 3.4 C¡c kàch b£n ki”m thß ÷æc sinh ra cıa m¡y b¡n h ng tü ºng 3.5 So s¡nh k‚t qu£ • xu§t v k‚t qu£ nghi¶n cøu trong [72]
3.6 Thüc nghi»m ÷a ra º bao phı c¡c ÷íng d¤n cıa ç thà cıa ph÷ìng ph¡p ÷a ra v ph÷ìng ph¡p ki”m thß ng¤u nhi¶n
3.7 K‚t qu£ thüc nghi»m so s¡nh ph÷ìng ph¡p • xu§t vîi ph÷ìng ph¡p [30]
4.1 K‚t qu£ MS sß döng cho tłng kàch b£n ki”m thß ÷æc sinh ra trong c¡ch ti‚p c“n [95] v Ph÷ìng ph¡p • xu§t 111
4.2 K‚t qu£ MS cıa ph÷ìng ph¡p • xu§t v ph÷ìng ph¡p ng¤u nhi¶n112 5.1 V‰ dö gi£i c¡c to¡n tß chuØi
5.2 C¡ch Z3 str thüc hi»n xß lþ c¡c r ng buºc chuØi trong B£ng 5.1 125 5.3 Ngœ ph¡p cıa c¡c r ng buºc trong Z3 str, mð rºng cho replaceAll so vîi [114] 127
5.4 ành ngh¾a cho Thu“t to¡n 5.2 [114] 129
5.5 C¡c quy t›c gi£m [114]
5.6 Quy t›c gi£m sß döng gåi » quy 133
5.7 C¡c quy t›c ti•n xß lþ cho c¡c to¡n tß chuØi 135 5.8 So s¡nh kh£ n«ng t…m lØi cıa c¡c chøc n«ng trong c¡c øng döng 140
ix
Trang 115.9 So s¡nh xß lþ c¡c to¡n tß chuØi v hi»u n«ng cıa SeqString vîiph÷ìng ph¡p cıa nhâm T¡c gi£ Shoichiro [39] 141
Trang 12DANHMÖCC CHNHV
mæ h…nh
2.8 V‰ dö bi”u ç lîp
c“n [17]
trong H…nh 3.3
xi
Trang 133.9 Chuy”n tł bi”u ç tuƒn tü sang CFG (cıa to¡n tß ignore v
consider) 54
3.10 Chuy”n tł bi”uç tuƒn tü sang CFG (cıa to¡n tß assert v negative)
55
3.11 Bi”u ç tuƒn tü cıa m¡y b¡n h ng tü ºng 71
3.12 Bi”u ç lîp cıa chøc n«ng m¡y b¡n h ng tü ºng 71
3.13 ç thà dÆng i•u khi”n cıa m¡y b¡n h ng tü ºng 72
3.14 Bi”u ç tuƒn tü vîi ki”u dœ li»u bi‚n l c§u tróc ºng 76
3.15 ç thà dÆng i•u khi”n vîi ki”u dœ li»u bi‚n l c§u tróc ºng 76
3.16 ÷íng d¤n con P1 thüc thi 77
3.17 ÷íng d¤n con P2 thüc thi 78
3.18 ÷íng d¤n con P3 thüc thi 78
3.19 Ki‚n tróc thüc thi cıa SequenceTesting 80
4.1 To¡n tß l°p chuy”n sang CFG 91
4.2 To¡n tß song song chuy”n sang CFG 92
4.3 Qu¡ tr…nh sinh dœ li»u ki”m thß: ph¡t tri”n tł [75] cho vÆng l°p 100
4.4 T‰nh i”m chia split phö thuºc c¡c mi•n gi¡ trà cıa bi‚n trong [75].102 4.5 Bi”u ç tuƒn tü cıa chøc n«ng chuy”n ti•n trong h» thŁng ng¥n h ng 107
4.6 Bi”u ç lîp v r ng buºc OCL cho chøc n«ng chuy”n ti•n 108
4.7 ç thà dÆng i•u khi”n cıa chøc n«ng chuy”n ti•n 108
4.8 Ki‚n tróc ph¡t tri”n cıa cæng cö SequenceConcur 110
5.1 Ki‚n tróc cıa Bº gi£i Z3 str trong [114] 124
5.2 Bi”u ç tuƒn tü cho chøc n«ng ki”m tra thæng tin cıa mºt øng döng web 137
5.3 CFG cıa chøc n«ng ki”m tra thæng tin øng döng web 138
5.4 Ki‚n tróc cıa SeqString 139
Trang 14T´MT TLU N N
Lu“n ¡n nghi¶n cøu mºt sŁ gi£i ph¡p hØ træ sinh dœ li»u ki”m thß tü ºng
tł c¡c bi”u ç UML 2.0 Cö th”, lu“n ¡n t“p trung gi£i quy‚t ð giai o⁄n thi‚t k‚ ki”mthß: sinh c¡c kàch b£n ki”m thß v sinh dœ li»u ki”m thß tł bi”u ç tuƒn tü v c¡c
r ng buºc trong bi”u ç lîp Möc ti¶u cıa ph÷ìng ph¡p nghi¶n cøu l sinh dœ li»uki”m thß câ º bao phı tŁt hìn, câ kh£ n«ng t…m ÷æc nhi•u lØi trong c¡c h»thŁng phƒn m•m V… v“y, lu“n ¡n t“p trung v o vi»c gi£i quy‚t c¡c °c tr÷ng, c¡cto¡n tß cıa bi”u ç tuƒn tü UML 2.0; tr¡nh bòng nŒ sŁ l÷æng kàch b£n ki”mthß sinh ra, c¡c vÆng l°p, c¡c tr÷íng hæp khâa ch‚t (deadlock)
v çng bº trong c¡c øng döng t÷ìng tranh; gi£i c¡c r ng buºc vîi c¡c ki”u dœ li»u kh¡c nhau Lu“n ¡n ¢ ⁄t ÷æc c¡c k‚t qu£ ch‰nh nh÷ sau:
Thø nh§t, lu“n ¡n • xu§t mºt quy tr…nh sinh c¡c dœ li»u ki”m thß tł bi”u çtuƒn tü UML 2.0 v c¡c r ng buºc OCL trong bi”u ç lîp Bi”u ç tuƒn tü UML 2.0
¡p döng cho t§t c£ m÷íi hai to¡n tß, câ c§u tróc phøc t⁄p, c¡c khŁi lçng gh†p.Ph÷ìng ph¡p ¡p döng cho c¡c r ng buºc vîi bi‚n l ki”u dœ li»u sŁ v c§u trócºng
Thø hai, lu“n ¡n • xu§t mºt ph÷ìng ph¡p sinh dœ li»u ki”m thß tü ºng tłc¡c bi”u ç tuƒn tü UML 2.0 v bi”u ç lîp trong tr÷íng hæp cıa bao phı vÆng l°p
v c¡c øng döng t÷ìng tranh
Thø ba, lu“n ¡n ÷a ra mºt ph÷ìng ph¡p c£i ti‚n vi»c sinh dœ li»u ki”m thß
tü ºng tł c¡c bi”u ç tuƒn tü UML 2.0 v bi”u ç lîp vîi vi»c gi£i quy‚t c¡c r ng buºcchuØi
Trong c¡c ph÷ìng ph¡p • xu§t, lu“n ¡n •u x¥y düng cæng cö ” c i °t
v thüc nghi»m tr¶n â Vîi mØi thüc nghi»m c¡c dœ li»u ki”m thß v kàch b£nki”m thß sinh ra ÷æc so s¡nh v• º bao phı, kh£ n«ng t…m lØi so vîi c¡cph÷ìng ph¡p hi»n t⁄i K‚t qu£ cho th§y t‰nh hi»u qu£ v º tin c“y cıa ph÷ìngph¡p v• m°t thüc nghi»m Nhœng • xu§t â gi£i quy‚t mºt phƒn trong h÷îng ti‚pc“n lîn v• ki”m thß düa tr¶n mæ h…nh (cö th” l c¡c bi”u ç UML)
xiii
Trang 15Ch֓ng 1
GI˛I THI U
Trong qu¡ tr…nh ph¡t tri”n phƒn m•m, ki”m thß l giai o⁄n quan trång
v thüc sü cƒn thi‚t ” t⁄o ra mºt h» thŁng phƒn m•m câ ch§t l÷æng cao [9, 67].Trong thüc t‚ hìn 50% nØ lüc ph¡t tri”n d nh cho giai o⁄n ki”m thß [6] v r§t hi‚mc¡c s£n ph'm phƒn m•m ÷æc s£n xu§t ra m khæng câ lØi C¡c cæng ty phƒnm•m công nh÷ c¡c tŒ chøc ph¡t tri”n phƒn m•m h÷îng tîi gi£i ph¡p tü
ºng hâa qu¡ tr…nh ki”m thß Mºt minh chøng thüc t‚ l ng y c ng câ nhi•u c¡c cæng cö ki”m thß tü ºng ÷a ra v ÷æc ¡p döng trong thüc t‚ Tuy nhi¶n, a sŁ qu¡ tr…nh thüc hi»n •u t“p trung v o vi»c thüc thi ki”m thß tü ºng m khæng quan t¥m nhi•u ‚n vi»c thi‚t k‚ chóng Hìn nœa, vi»c ph¡t hi»n lØi phƒn m•m chı y‚u l do ch§t l÷æng cıa c¡c kàch b£n v dœ li»u ki”m thß ÷æc thi‚t k‚ C¡c
dœ li»u ki”m thß câ º bao phı c ng lîn th… º tin c“y cıa t“p dœ li»u ki”m thß c
ng cao [24], câ th” t…m ÷æc nhi•u lØi cıa h» thŁng v gióp ki”m so¡t
v qu£n lþ qu¡ tr…nh ki”m thß tŁt hìn Nh÷ v“y, qu¡ tr…nh sinh c¡c dœ li»u ki”m thß tü ºng trð n¶n thüc sü cƒn thi‚t, nh§t l Łi vîi nhœng phƒn m•m lîn v phøc t⁄p Qu¡ tr…nh n y l m gi£m gi¡ th nh ph¡t tri”n phƒn m•m, ti‚t ki»m thíi gian, cæng søc, n¥ng cao ch§t l÷æng v t«ng º tin c“y cıa phƒn m•m [41]
Trong c¡c h÷îng ti‚p c“n sinh tü ºng dœ li»u ki”m thß hi»n nay th÷íng ÷æcthüc hi»n tł m¢ nguçn ch÷ìng tr…nh, c¡c mæ h…nh ho°c c¡c °c t£ [12, 100] Cânhi•u h÷îng nghi¶n cøu ph¡t tri”n ÷æc ÷a ra thüc hi»n tł m¢ nguçn ch÷ìng tr…nhtrong [8, 34, 54, 75, 91, 110] Tuy nhi¶n, vi»c sinh tü ºng dœ li»u ki”m thß n y
÷æc thüc hi»n ð giai o⁄n sau khi câ m¢ nguçn v sŁ kàch b£n ki”m thß ÷æc sinh
ra r§t lîn Hìn nœa, câ r§t nhi•u ngæn ngœ l“p tr…nh kh¡c nhau n¶n ph÷ìngph¡p sinh dœ li»u ki”m thß th÷íng phö thuºc nhi•u v o cæng ngh»
Trang 16ph¥n t‰ch m¢ nguçn H÷îng thø hai l sß döng c¡c mæ h…nh [16, 72, 97,24] ho°c c¡c °c t£ [102, 64, 57] ” thi‚t k‚ tü ºng c¡c dœ li»u ki”m thß câ th” xu§tph¡t tł m¡y hœu h⁄n tr⁄ng th¡i (Finite State Machine FSM), c¡c bi”u ç UML(Unified Modeling Language) ho°c c¡c °c t£ b‹ng c¡c ngæn ngœ h…nh thøckh¡c nhau (chflng h⁄n Z, B, v.v.) Vi»c ¡p döng c¡c °c t£ h…nh thøc trong thücti„n l khâ thüc hi»n v tŁn thíi gian Hìn nœa, khi sß döng ph÷ìng ph¡p
n y Æi häi tr…nh º cıa c¡c chuy¶n gia hi”u v• °c t£ h…nh thøc V… v“y, t¡cgi£ chån h÷îng nghi¶n cøu tł c¡c bi”u ç UML v… c¡c bi”u ç UML ÷æc sß döngphŒ bi‚n trong thüc ti„n cıa c¡c cæng ty ph¡t tri”n phƒn m•m Vi»c sß döngc¡c bi”u ç UML câ th” k‚t hæp vîi ngæn ngœ r ng buºc Łi t÷æng (ObjectContraint Language OCL) ” bi”u di„n c¡c °c t£ r ng buºc m nhi•u khi bi”u çkhæng bi”u di„n h‚t ÷æc Hìn nœa, vi»c thi‚t k‚ c¡c dœ li»u ki”m thß tł c¡c bi”u
ç n y câ th” thüc hi»n ð giai o⁄n ƒu cıa qu¡ tr…nh ph¡t tri”n, khæng nh§t thi‚t lph£i æi khi ¢ câ m¢ nguçn ch÷ìng tr…nh
Ki”m thß tł c¡c bi”u ç UML công nh÷ vi»c ki”m thß thæng th÷íng ÷æcthüc hi»n qua c¡c b÷îc: sinh c¡c kàch b£n ki”m thß, sinh dœ li»u ki”m thß vthüc thi c¡c o⁄n m¢ ki”m thß V… vi»c thüc thi c¡c o⁄n m¢ ki”m thß tü ºng cânhi•u cæng cö hØ træ v phö thuºc v o cæng ngh», mæi tr÷íng ngæn ngœ sßdöng Hìn nœa, v§n • ph¡t hi»n lØi trong c¡c dü ¡n phƒn m•m th… chı y‚uphö thuºc v o c¡c kàch b£n v dœ li»u ki”m thß ÷æc thi‚t k‚ Do â, t¡c gi£ chånh÷îng t“p trung nghi¶n cøu v o c¡c ph÷ìng ph¡p sinh dœ li»u ki”m thß C¡ch÷îng nghi¶n cøu vi»c sinh dœ li»u ki”m thß tł c¡c bi”u ç UML phö thuºc
v o lo⁄i bi”u ç ÷æc sß döng Tòy v o möc ‰ch ki”m thß, møc º ki”m thß s‡chån bi”u ç phò hæp vîi y¶u cƒu ÷a ra T¡c gi£ Bader v c¡c çng sü trong [5]
÷a ra mºt ph÷ìng ph¡p cho vi»c sinh c¡c dœ li»u ki”m thß tł bi”u ç tr⁄ng th¡i.Tuy nhi¶n, nghi¶n cøu n y cho r‹ng bi”u ç tr⁄ng th¡i câ þ ngh¾a vîi ki”m thß ìn
và, sŁ l÷æng kàch b£n ki”m thß sinh ra lîn v r§t d„ bòng nŒ c¡c kàch b£nki”m thß Trong khi â c¡c dœ li»u ki”m thß v kàch b£n ki”m thß sinh tł c¡c bi”u
ç tuƒn tü câ þ ngh¾a cho ki”m thß t‰ch hæp [33] v sŁ l÷æng kàch b£n ki”mthß sinh ra ‰t hìn khi so s¡nh vîi bi”u ç tr⁄ng th¡i [2] Hìn nœa, bi”u ç tuƒn tü lbi”u ç chi ti‚t v gi u h nh vi trong c¡c bi”u ç UML V… v“y, c¡c nh nghi¶n cøuquan t¥m ‚n vi»c sß döng c¡c bi”u ç tuƒn tü ” sinh c¡c dœ li»u ki”m thß v c¡ckàch b£n ki”m thß Trong h÷îng nghi¶n cøu â, vîi vi»c gi£i quy‚t c¡c to¡n tßcıa bi”u ç tuƒn tü th… ph÷ìng ph¡p trong [72] sinh dœ
2
Trang 17li»u ki”m thß tł bi”u ç tuƒn tü UML gi£i quy‚t vîi n«m lo⁄i to¡n tß: alt, opt,break, parallel, loop v thu“t to¡n sinh dœ li»u ki”m thß chı y‚u gi£i quy‚t vîiki”u dœ li»u sŁ Trong mºt v i h÷îng ti‚p c“n kh¡c nh÷ [97, 84, 65], c¡c ph÷ìngph¡p kÿ thu“t h m nhä nh§t trong vi»c sinh dœ li»u ki”m thß tü ºng côngch¿ ¡p döng vîi ki”u dœ li»u sŁ Nh÷ v“y, vi»c sinh dœ li»u ki”m thß tł c¡c bi”u
ç UML Łi vîi c¡c r ng buºc m bi‚n câ c¡c ki”u dœ li»u kh¡c nhau nh÷: ki”u dœli»u chuØi, c§u tróc ºng v trong c¡c tr÷íng hæp cıa vÆng l°p ch÷a ÷æc ÷a raho°c ch÷a câ líi gi£i thäa ¡ng
Trong vi»c gi£i quy‚t b i to¡n sinh dœ li»u ki”m thß tü ºng tł c¡c bi”u çUML th… vi»c bòng nŒ sŁ kàch b£n ki”m thß, c¡c tr÷íng hæp khâa ch‚t, çng
bº trong c¡c luçng song song cıa h» thŁng công l v§n • g°p ph£i nhi•u khâkh«n v th¡ch thøc Nhâm t¡c gi£ Sun v c¡c çng sü trong [93] ÷a ra c¡ch ti‚pc“n düa tr¶n vi»c chuy”n Œi ” sinh ra c¡c dœ li»u ki”m thß h÷îng kàch b£n tłbi”u ç ho⁄t ºng UML C¡ch ti‚p c“n n y düa tr¶n c¡c quy t›c chuy”n Œi ” chuy”nv• c¥y nhà ph¥n, sau â düa v o c¡c thu“t to¡n t…m ki‚m tr¶n c¥y nhà ph¥n n
y ” sinh c¡c kàch b£n ki”m thß Cæng cö c i °t sß döng ph÷ìng ph¡p sinh dœli»u ki”m thß ng¤u nhi¶n, ch÷a x†t º bao phı cıa c¡c dœ li»u ki”m thß sinh ra;c¡c tr÷íng hæp khâa ch‚t v v§n • bòng nŒ c¡c kàch b£n ki”m thß ch÷a ÷æcgi£i quy‚t H÷îng ti‚p c“n trong [58, 89] ÷a ra ph÷ìng ph¡p sinh c¡c kàch b£nki”m thß tł bi”u ç tuƒn tü v bi”u ç ho⁄t ºng trong c¡c tr÷íng hæp t÷ìng tranh.C¡c dœ li»u ki”m thß sinh ra theo ph÷ìng ph¡p n y bi”u di„n t‰nh t÷ìng tranh
v câ th” bao phı c¡c lØi çng bº, khâa ch‚t Tuy nhi¶n, ph÷ìng ph¡p â ch÷a ÷a
ra c¡c ti¶u chu'n bao phı t÷ìng tranh kh¡c nhau trong c¡c øng döng, vi»c c i °tthüc thi t‰nh hi»u qu£ công ch÷a ÷æc tri”n khai
Nh÷ v“y, c¡c v§n • m lu“n ¡n s‡ t“p trung gi£i quy‚t cö th” nh÷ sau:
Sinh dœ li»u ki”m thß tł c¡c bi”u ç tuƒn tü UML 2.0 v c¡c r ng buºcOCL trong bi”u ç lîp nh‹m gi£i quy‚t cho t§t c£ m÷íi hai to¡n tß, câ c§utróc lçng gh†p nhau; C¡c r ng buºc vîi c¡c bi‚n l c¡c bi‚n ki”u dœ li»u sŁ vc§u tróc ºng
Sinh tü ºng dœ li»u ki”m thß tł c¡c bi”u ç tuƒn tü UML 2.0 v c¡c r ngbuºc trong bi”u ç lîp trong c¡c øng döng t÷ìng tranh v vîi c¡c º bao phıkh¡c nhau cıa vÆng l°p
Trang 18 Sinh tü ºng dœ li»u ki”m thß tł c¡c bi”u ç tuƒn tü UML 2.0 v c¡c r ng buºc trong bi”u ç lîp vîi vi»c gi£i quy‚t c¡c r ng buºc chuØi.
” thüc hi»n c¡c nºi dung nghi¶n cøu trong lu“n ¡n, t¡c gi£ ti‚n h nh theoph÷ìng ph¡p ti‚p c“n tł tr¶n xuŁng, ph¥n lo⁄i v h» thŁng hâa lþ thuy‚t c¡cph÷ìng ph¡p v• sinh dœ li»u ki”m thß tü ºng tł mæ h…nh, tł â ph¥n t‰ch,ph¥n lo⁄i v tŒng hæp c¡c ph÷ìng ph¡p â Theo c¡ch ph¥n lo⁄i ÷a ra, t¡c gi£ is¥u ph¥n t‰ch mØi °c i”m v ÷u nh÷æc i”m cıa tłng lo⁄i Tł ph÷ìng ph¡p ph¥n t
‰ch v tŒng hæp tr¶n cıa ki”m thß düa tr¶n mæ h…nh, t¡c gi£ chån Łit÷æng nghi¶n cøu trong lu“n ¡n l tł c¡c bi”u ç tuƒn tü UML 2.0 v bi”u ç lîp Tł âvîi mØi °c tr÷ng cıa tłng lo⁄i bi”u ç, t¡c gi£ nghi¶n cøu li¶n quan ” • xu§t c£i ti‚nho°c ÷a ra ph÷ìng ph¡p mîi v• sinh dœ li»u ki”m thß
Trong ph⁄m vi cıa lu“n ¡n, t¡c gi£ t“p trung nghi¶n cøu chı y‚u v• c¡cph÷ìng ph¡p tü ºng trong giai o⁄n thi‚t k‚ ki”m thß theo quy tr…nh ph¡t tri”nphƒn m•m Möc ti¶u cıa lu“n ¡n nh‹m nghi¶n cøu, c£i ti‚n, • xu§t v tri”n khaimºt sŁ ph÷ìng ph¡p sinh tü ºng c¡c dœ li»u ki”m thß tł c¡c bi”u ç UML tronggiai o⁄n thi‚t k‚ ki”m thß ” gi£i quy‚t b i to¡n tr¶n Tuy nhi¶n, ” o t‰nh hi»u qu£,kh£ n«ng t…m lØi cıa c¡c dœ li»u ki”m thß sinh ra th… mºt
v i ti¶u chu'n bao phı v º o phò hæp vîi möc ‰ch so s¡nh c¡c dœ li»u ki”mthß ÷æc sinh ra vîi c¡c ph÷ìng ph¡p hi»n t⁄i Theo â, lu“n ¡n thüc hi»n c¡c nºidung cö th” nh÷ sau:
TŒng hæp, h» thŁng hâa c¡c nghi¶n cøu li¶n quan v b i to¡n tŒngquan v• c¡c v§n • sinh dœ li»u ki”m thß tü ºng, ki”m thß tł c¡c bi”u ç UML
Nghi¶n cøu b i to¡n sinh dœ li»u ki”m thß tü ºng tł bi”u ç tuƒn tüUML v bi”u ç lîp vîi vi»c gi£i quy‚t c¡c to¡n tß, c¡c °c tr÷ng cıa bi”u çUML â Nghi¶n cøu c¡c ph÷ìng ph¡p trong giai o⁄n thi‚t k‚ ki”m thß ” c¡ckàch b£n ki”m thß ÷æc sinh ra ⁄t ÷æc sŁ l÷æng nhä nh§t v º bao phıcao nh§t, tr¡nh bòng nŒ sŁ l÷æng kàch b£n ki”m thß v xem x†t c¡ctr÷íng hæp câ ho°c khæng câ sü chia s· dœ li»u trong c¡c luçng songsong cıa bi”u ç tuƒn tü
4
Trang 19 Nghi¶n cøu trong c¡c h» c¡c r ng buºc tł c¡c bi”u ç UML, x†t ph÷ìngph¡p sinh v thüc thi dœ li»u ki”m thß vîi bi‚n câ ki”u dœ li»u sŁ, c§u tróc
dœ li»u ºng, c¡c r ng buºc chuØi v ki”m thß vîi vÆng l°p
Thüc nghi»m, tri”n khai trong c¡c ph÷ìng ph¡p c£i ti‚n, • xu§t vîi c¡cbi”u ç tuƒn tü v c¡c bi”u ç lîp Xem x†t ¡p döng v• c¡c ti¶u chu'n bao phıkh¡c nhau phò hæp vîi tłng lo⁄i bi”u ç UML v o kh£ n«ng t…m lØi cıa c¡c
dœ li»u ki”m thß ÷æc sinh ra
Các yêu uc
B sinh
u ra mong mu n
H…nh 1.1: C¡c nºi dung lu“n ¡n gi£i quy‚t trong b i to¡n ki”m thß düa tr¶n mæ h…nh.
C¡c nºi dung m lu“n ¡n ÷a ra tr¶n t“p trung gi£i quy‚t mºt sŁ ph÷ìng ph¡p sinh
tü ºng c¡c kàch b£n ki”m thß v sinh dœ li»u ki”m thß Trong H…nh 1.1 mæt£ quy tr…nh cıa b i to¡n ki”m thß düa tr¶n mæ h…nh, c¡c v§n • lu“n ¡n t“ptrung gi£i quy‚t l c¡c h…nh chœ nh“t gâc trÆn n†t øt C¡c v§n • trong c¡ch÷îng nghi¶n cøu ÷a ra ph÷ìng ph¡p gi£i quy‚t c¡c to¡n tß cıa bi”u ç UML 2.0chuy”n th nh mºt bi”u di„n trung gian l ƒu v o cho vi»c sinh c¡c kàch b£n ki”mthß Ph÷ìng ph¡p sinh c¡c kàch b£n ki”m thß ” tr¡nh bòng nŒ sŁ l÷æng kàchb£n v t«ng º bao phı cıa chóng, câ mŁi li¶n h» vîi c¡c ph÷ìng ph¡p gi£i quy‚t r
Trang 205
Trang 21C¡c nghi¶n cøu â gâp phƒn gi£i quy‚t ho n ch¿nh b i to¡n trong giai o⁄n thi‚t k‚ki”m thß tł c¡c bi”u ç UML.
Phƒn cÆn l⁄i cıa lu“n ¡n ÷æc c§u tróc th nh n«m ch÷ìng ch‰nh Trong
â, Ch÷ìng 2 giîi thi»u ki‚n thøc n•n t£ng v• c¡c v§n • nghi¶n cøu trong lu“n ¡n
¥y l cì sð lþ thuy‚t cho vi»c x¥y düng c¡c ph÷ìng ph¡p sinh tü ºng dœ li»uki”m thß tł c¡c bi”u ç UML trong c¡c ch÷ìng tł Ch÷ìng 3 ‚n Ch÷ìng 5 Theoc¡ch ti‚p c“n cıa vi»c sinh tü ºng dœ li»u ki”m thß tł c¡c bi”u ç tuƒn tü UML vbi”u ç lîp, t¡c gi£ t“p trung ÷a ra ¡nh gi¡ ph¥n t‰ch c¡c h÷îng nghi¶n cøu li¶nquan; n¶u ra mºt sŁ v§n • cÆn tçn t⁄i m lu“n ¡n s‡ t“p trung gi£i quy‚t Cö th”,Ch÷ìng 3 tr…nh b y nºi dung k‚t qu£ nghi¶n cøu v• ph÷ìng ph¡p sinh tü ºng
dœ li»u ki”m thß gi£i quy‚t cho t§t c£ m÷íi hai to¡n tß trong bi”u ç tuƒn tüUML 2.0 v ki”u dœ li»u sŁ v c§u tróc ºng Ti‚p theo, ph÷ìng ph¡p • xu§t chovi»c sinh tü ºng dœ li»u ki”m thß vîi tr÷íng hæp ki”m thß vÆng l°p v c¡c øngdöng t÷ìng tranh ÷æc ÷a ra trong Ch÷ìng 4 nh‹m gi£i quy‚t v§n • bòng nŒ
sŁ kàch b£n ki”m thß sinh ra, tr÷íng hæp khâa ch‚t v çng bº Ch÷ìng 5 tr…nh
b y nºi dung k‚t qu£ nghi¶n cøu v• ph÷ìng ph¡p sinh tü ºng dœ li»u ki”m thßvîi vi»c c£i ti‚n khi gi£i vîi c¡c r ng buºc chuØi CuŁi còng, tŒng k‚t l⁄i c¡c k‚tqu£ ⁄t ÷æc v h÷îng ph¡t tri”n ti‚p theo cıa lu“n ¡n, ÷æc tr…nh b y trong Ch÷ìng6
Trang 22Ch֓ng 2
KI NTHÙCN NT NG
Ch÷ìng n y tr…nh b y ki‚n thøc n•n t£ng v• c¡c v§n • nghi¶n cøu tronglu“n ¡n, bao gçm: ÷a ra c¡c cì sð lþ thuy‚t ch‰nh v• sinh dœ li»u ki”m thß, c¡cbi”u ç UML v r ng buºc OCL, c¡c h÷îng ti‚p c“n ch‰nh cıa ki”m thß düa tr¶n
mæ h…nh, c¡c bi”u ç UML v OCL Ti‚p theo, ÷a ra tŒng quan v• sinh dœli»u ki”m thß tü ºng, tł c¡c bi”u ç UML v c¡c cæng cö sinh dœ li»u ki”m thßhi»n t⁄i CuŁi ch÷ìng, t¡c gi£ n¶u ra mºt sŁ v§n • cÆn tçn t⁄i m lu“n ¡n s‡ t“ptrung gi£i quy‚t
Ki”m thß phƒn m•m l qu¡ tr…nh ki”m tra £m b£o s£n ph'm phƒn m•mthüc hi»n óng ” thäa m¢n c¡c y¶u cƒu cıa kh¡ch h ng Möc ‰ch cıa ki”m thßnh‹m ¡nh gi¡ ch§t l÷æng ho°c t‰nh ch§p nh“n ÷æc cıa s£n ph'm Ki”m thßcông nh‹m ph¡t hi»n lØi ho°c b§t cø v§n • g… v• s£n ph'm C¡c kh¡i ni»m cìb£n sau ÷æc sß döng trong ph⁄m vi cıa lu“n ¡n
Ca ki”m thß (Test case) [1, 15]: gçm mºt t“p c¡c dœ li»u ƒu v o, c¡cb÷îc thüc hi»n v c¡c gi¡ trà ƒu ra mong æi Łi vîi phƒn m•m MØi ca ki”mthß ÷æc li¶n k‚t vîi mºt h nh vi trong mºt chøc n«ng cıa h» thŁng Vîitłng ca ki”m thß cö th”, k‚t qu£ mong æi ÷æc so s¡nh vîi k‚t qu£ thüct‚ cıa c¡c kàch b£n khi thüc thi phƒn m•m
Dœ li»u ki”m thß (Test data) [46, 15]: l t“p c¡c gi¡ trà thüc (thäa m¢nti¶u chu'n bao phı dœ li»u ¢ chån) ÷æc x¡c ành ch¿ rª l ƒu v o ” thüchi»n c¡c ca ki”m thß trong qu¡ tr…nh ki”m thß
Ti¶u chu'n bao phı dœ li»u ki”m thß (Test data coverage criteria) [107,
7
Trang 23100]: l mºt t“p c¡c quy t›c ÷æc sß döng ” x¡c ành vi»c chån c¡c gi¡ trà
dœ li»u ki”m thß Ti¶u chu'n n y x¡c ành º phı trong khæng gian dœ li»u
ƒu v o cıa ch÷ìng tr…nh ho°c mæ h…nh Ti¶u chu'n bao phı dœ li»uhœu ‰ch trong tr÷íng hæp mºt t“p mi•n x¡c ành cıa dœ li»u ƒu v o l lîn
v ÷a ra vi»c chån c¡c gi¡ trà dœ li»u tŁt cho ki”m thß
Kàch b£n ki”m thß (Test scenario) [1, 15]: l kh¡i ni»m ð møc caonhœng c¡i cƒn ki”m thß, v th÷íng bao gçm nhi•u ca ki”m thß li¶n quannhau Möc ‰ch cıa kàch b£n ki”m thß l ki”m tra vi»c thüc hi»n chøcn«ng tł ƒu ‚n cuŁi cıa mºt chøc n«ng phƒn m•m v £m b£o luçng logicang ho⁄t ºng l óng Khi c¡c kàch b£n ki”m thß x¡c ành, c¡c tr÷íng hæpki”m thß ÷æc vi‚t cho tłng kàch b£n vîi tłng bº dœ li»u ƒu v o kh¡c nhau.C¡c ca ki”m thß l c¡c tr÷íng hæp mi¶u t£ chi ti‚t ð møc th§p v• c¡c kàchb£n ki”m thß
Ti¶u chu'n bao phı (Coverage criteria) [78, 100]: l mºt t“p c¡c quy t›cho°c y¶u cƒu m c¡c bº ki”m thß cƒn ph£i tho£ m¢n Möc ‰ch ” ¡nhgi¡ møc º hi»u qu£ cıa c¡c ca ki”m thß, o phƒn tr«m º bao phı cıa °c t£ho°c ch÷ìng tr…nh cıa c¡c ca ki”m thß so vîi y¶u cƒu phƒn m•m (v‰dö: bao phı dÆng l»nh, bao phı nh¡nh, v.v.), thæng qua ki”m thß ” lo⁄i trłsai sât v t«ng ch§t l÷æng phƒn m•m
mæ h…nh tü ºng hâa c¡c thi‚t k‚ chi ti‚t cıa ca ki”m thß Cö th” hìn, thayth‚ vi»c thi‚t k‚ h ng tr«m ca ki”m thß thı cæng th… ng÷íi thi‚t k‚ ki”m thß x¥ydüng mæ h…nh trłu t÷æng cıa SUT, sau â cæng cö ki”m thß düa tr¶n mæh…nh sinh ra mºt t“p c¡c ca ki”m thß tł mæ h…nh â To n bº thíi gian thi‚tk‚ ki”m thß ÷æc gi£m xuŁng, v ÷u i”m l câ th” ph¡t sinh c¡c t“p c¡c ca ki”m thß
Trang 24kh¡c nhau tł còng mºt mæ h…nh b‹ng vi»c sß döng c¡c ti¶u chu'n bao phı kh¡c nhau Qu¡ tr…nh ki”m thß câ th” chia th nh n«m b÷îc ch‰nh nh÷ sau:
B÷îc 4: Thüc thi c¡c o⁄n m¢ ki”m thß tr¶n SUT
B÷îc 5: Ph¥n t‰ch k‚t qu£, so s¡nh k‚t qu£ thüc t‚ vîi k‚t qu£ mong æi
H…nh 2.1: Quy tr…nh ki”m thß düa tr¶n mæ h…nh [100]
H…nh 2.1 ch¿ quy tr…nh ki”m thß düa tr¶n mæ h…nh B÷îc ƒu ti¶n cıaki”m thß düa tr¶n mæ h…nh l x¥y düng hay mæ h…nh ho¡ cıa SUT Mæ h…
nh n y t“p trung v o c¡c kh‰a c⁄nh cıa h» thŁng m chóng ta muŁn ki”m thß.Sau khi x¥y düng mæ h…nh, chóng ta câ th” sß döng cæng cö ” ki”m tra t
‰nh nh§t qu¡n v c¡c h nh vi mong muŁn tr¶n mæ h…nh
B÷îc thø hai cıa ki”m thß düa tr¶n mæ h…nh l sinh c¡c trłu t÷æng ki”mthß tł mæ h…nh [79] Chóng ta ph£i chån c¡c ti¶u chu'n bao phı ” sinh c¡c caki”m thß theo c¡c ti¶u chu'n bao phı n y v… sŁ l÷æng c¡c ca ki”m thß câ th”sinh ra luæn l khæng giîi h⁄n Phƒn lîn c¡c cæng cö ki”m thß düa tr¶n mæh…nh t⁄o ra mºt ma tr“n t…m d§u v‚t c¡c y¶u cƒu phƒn m•m ho°c c¡c k‚t qu£bao phı kh¡c nhau nh÷ ƒu ra cıa b÷îc n y Ma tr“n d§u v‚t y¶u cƒu [100] lquan h» giœa c¡c y¶u cƒu chøc n«ng v c¡c ca ki”m thß ÷æc t⁄o ra â câ th”
Trang 259
Trang 26l quan h» nhi•u nhi•u: mºt y¶u cƒu câ th” ÷æc bao phı bði nhi•u ca ki”m thß,
v c¡c ca ki”m thß ìn câ th” ÷æc tao ra tł nhi•u y¶u cƒu phƒn m•m C¡c k‚t qu£bao phı cho chóng ta bi‚t vi»c x¡c ành c¡c t“p ca ki”m thß ÷æc sinh ra so vîic¡c h nh vi cıa mæ h…nh Chóng ta câ th” sß döng c¡c k‚t qu£ bao phı t¾nh
ìn gi£n v• ch§t l÷æng cıa c¡c t“p ki”m thß ÷æc sinh ra Vi»c n y câ th” hœu
‰ch ” sß döng cæng cö tü ºng cho vi»c ki”m tra c¡c h nh vi cıa c¡c
÷íng d¤n ki”m thß trong mæ h…nh v ÷a ra k‚t qu£ trong vi»c sinh c¡c ki”mthß l ƒy ı hay khæng
Ki”m thß düa tr¶n mæ h…nh trong b÷îc thø ba l vi»c chuy”n Œi c¡c trłut÷æng ki”m thß v o c¡c ki”m thß cö th” ” câ th” thüc thi ÷æc i•u n y ÷æc thüchi»n bði mºt cæng cö chuy”n Œi, sß döng c¡c m¤u kh¡c nhau v chuy”n Œic¡c ca ki”m thß th nh c¡c o⁄n m¢ ki”m thß Möc ‰ch cıa b÷îc n y l cƒu nŁigiœa c¡c ca ki”m thß v h» thŁng ki”m thß cö th” b‹ng vi»c th¶m c¡c chi ti‚t cıah» thŁng cƒn ki”m thß ð møc th§p Thu“n læi cıa h÷îng ti‚p c“n n y l c¡c caki”m thß câ th” kh¡ ºc l“p vîi ngæn ngœ ÷æc sß döng ” vi‚t ki”m thß v mæitr÷íng ki”m thß Nhâm nghi¶n cøu trong [13] chuy”n Œi c¡c trłu t÷æng ki”mthß ÷æc sinh ra tł cæng cö sinh ki”m thß LEIRIOS, sau â c¡c trłu t÷æng âsang m¢ ki”m thß b‹ng Java ” câ th” thüc thi tü ºng
B÷îc thø t÷ ” thüc thi c¡c m¢ ki”m thß trong SUT Vîi ki”m thß trüc tuy‚n,c¡c ki”m thß s‡ ÷æc thüc thi nh÷ c¡c thı töc, v… v“y cæng cö ki”m thß düatr¶n mæ h…nh s‡ qu£n lþ ti‚n tr…nh ki”m thß thüc thi tr¶n h» thŁng thüc vghi l⁄i k‚t qu£ Vîi ki”m thß khæng trüc tuy‚n, mºt t“p c¡c o⁄n m¢ ki”m thß câ th”vi‚t b‹ng mºt v i ngæn ngœ, v… v“y chóng câ th” ÷æc sß döng trong c¡ccæng cö ki”m thß thüc thi c¡c o⁄n m¢ ki”m thß v ÷a ra k‚t qu£ C¡c nhâm t¡cgi£ trong [35, 71] mi¶u t£ v• thüc thi ki”m thß tü ºng, c¡c thüc thi ki”m thß
÷æc sinh ra theo h÷îng ti‚p c“n ki”m thß düa tr¶n mæ h…nh
B÷îc thø n«m l ph¥n t‰ch k‚t qu£ cıa thüc thi ki”m thß Trong c¡c ki”m thß
m k‚t qu£ thæng b¡o bà lØi, chóng ta ph£i x¡c ành lØi v nguy¶n nh¥n g¥y ra lØi.i•u n y t÷ìng tü nh÷ ti‚n tr…nh ph¥n t‰ch ki”m thß truy•n thŁng Vi»c thi‚t k‚ c¡c
ca ki”m thß ÷æc düa tr¶n c¡c lo⁄i h nh vi mong æi, nh÷ng vîi vi»c thi‚t k‚ ca ki”mthß thı cæng th… mæ h…nh n y ch¿ h÷îng l nhœng mæ h…nh phi h…nh thøc.B‹ng vi»c t⁄o ra c¡c mæ h…nh h…nh thøc rª r ng n¶n câ th” sß döng cæng cöki”m thß düa tr¶n mæ h…nh ” sinh c¡c ca ki”m thß tü ºng
10
Trang 27⁄t ÷æc c¡c º bao phı kh¡c nhau Do v“y, vi»c sß döng nhœng thay Œi n y l mt«ng l¶n c£ v• sŁ l÷æng v ch§t l÷æng cıa c¡c bº ki”m thß Nh÷ v“y, vi»c sßdöng quy tr…nh ki”m thß düa tr¶n mæ h…nh câ th” tü ºng mºt phƒn ho°c to
n bº gióp gi£m bît cæng søc trong giai o⁄n ki”m thß, t«ng l¶n v• sŁ l÷æng cıac¡c ca ki”m thß sinh ra v n¥ng cao ch§t l÷æng phƒn m•m Trong thüc ti„n,c¡c ki”m thß vi¶n th÷íng thüc hi»n cæng vi»c cıa m…nh b‹ng c¡c ph÷ìngph¡p truy•n thŁng (thı cæng) n¶n thíi gian v chi ph‰ d nh cho c¡c ho⁄t ºng n yth÷íng r§t cao Ki”m thß düa tr¶n mæ h…nh l mºt gi£i ph¡p hi»u qu£ nh‹mgâp phƒn gi£i quy‚t v§n • n y Sau ¥y l tâm t›t nhœng ÷u i”m cıa ki”m thß düatr¶n mæ h…nh:
Kh£ n«ng dÆ t…m lØi: möc ‰ch ch‰nh cıa qu¡ tr…nh ki”m thß l t…m lØi trong c¡c h» thŁng phƒn m•m Trong thüc ti„n ¡p döng cıa c¡c cæng ty IBM
v BMW th… ki”m thß düa tr¶n mæ h…nh luæn luæn dÆ t…m lØi lîn hìn ho°cb‹ng sŁ l÷æng lØi t…m ÷æc so vîi ti‚n tr…nh thı cæng [32] Trong øng döng cıa Microsoft, sŁ l÷æng c¡c lØi dÆ t…m ÷æc cıa ki”m thß düa tr¶n mæ h…
nh g§p m÷íi lƒn [92, 103] Kh£ n«ng dÆ t…m lØi v¤n phö thuºc v o kinh nghi»m, kÿ n«ng cıa ng÷íi ki”m thß vi¶n trong khi x¥y düng mæ h…nh v chånc¡c ti¶u chu'n bao phı ki”m thß khi sinh c¡c ca ki”m thß
Gi£m chi ph‰ v thíi gian: do qu¡ tr…nh ki”m thß hƒu h‚t ÷æc thüchi»n tü ºng n¶n t‰nh hi»u qu£ cıa ph÷ìng ph¡p n y cao trong khi thíigian ÷æc gi£m mºt c¡ch tŁi thi”u
º bao phı tŁt hìn: n‚u mæ h…nh cıa h» thŁng ÷æc x¥y düng tŁt th…qu¡ tr…nh ki”m thß düa tr¶n mæ h…nh sinh ra nhi•u ca ki”m thß v ph¡thi»n nhi•u lØi Ki”m thß mæ h…nh công cho ph†p gi£m c¡c lØi chıquan do ng÷íi ki”m thß sinh ra trong qu¡ tr…nh ki”m thß s£n ph'm
ƒy ı t i li»u: mæ h…nh h» thŁng, c¡c ÷íng i, c¡c ca ki”m thß, v.v l c¡c t ili»u quan trång trong qu¡ tr…nh ph¡t tri”n phƒn m•m nâi chung v
qu¡ tr…nh ki”m thß phƒn m•m nâi ri¶ng C¡c t i li»u n y công gióp cho c¡c ki”m thß vi¶n hi”u hìn v• c¡c ca ki”m thß v c¡c kàch b£n ki”m thß
Tü ºng t⁄o v ki”m tra tr¡nh c¡c ca ki”m thß tròng nhau ho°c khæng hœu hi»u; câ kh£ n«ng ¡nh gi¡ ch§t l÷æng phƒn m•m
Trang 28 Kh£ n«ng sß döng l⁄i cao: mØi khi phƒn m•m ti‚n hâa th… vi»c sinh
th¶m c¡c ca ki”m thß v ki”m thß l⁄i mºt c¡ch nhanh châng, d„ d ng v hi»u
qu£ hìn
Hi”u hìn v• h» thŁng: ki”m thß düa tr¶n mæ h…nh gióp ng÷íi ph¡t
tri”n hi”u hìn v• SUT thæng qua vi»c x¥y düng v ph¥n t‰ch mæ h…nh
h» thŁng Sîm ph¡t hi»n lØi v sü khæng rª r ng trong °c i”m kÿ thu“t v
thi‚t k‚, v… v“y s‡ t«ng thíi gian gi£i quy‚t v§n • trong ki”m thß
Tuy nhi¶n, ki”m thß düa tr¶n mæ h…nh câ mºt sŁ khâ kh«n khi ¡p döng
trong thüc t‚ Thø nh§t, khâ x¥y düng mæ h…nh ch‰nh x¡c: ki”m thß düa
tr¶n mæ h…nh cƒn câ mæ h…nh °c t£ ch‰nh x¡c h nh vi cıa h» thŁng
Trong thüc t‚, vi»c x¥y düng mæ h…nh l r§t khâ v ti•m 'n nhi•u lØi Thø hai l
y¶u cƒu cao v• ki”m thß vi¶n: ph£i x¥y düng mæ h…nh cıa h» thŁng, v… v“y
ng÷íi ki”m thß phƒn m•m ph£i y¶u cƒu l nhœng ng÷íi câ kh£ n«ng ph¥n t
‰ch v thi‚t k‚ h» thŁng Hìn nœa, ng÷íi ki”m thß cƒn câ ki‚n thøc tŁt v• c¡c
ph÷ìng ph¡p h…nh thøc v °c t£ h…nh thøc, câ hi”u bi‚t chi ti‚t v ch‰nh x¡c v•
h» thŁng CuŁi còng, khâ kh«n nh§t Łi vîi ki”m thß düa tr¶n mæ h…nh l t⁄o ra
c¡c gi¡ trà ƒu ra mong æi cho c¡c ca ki”m thß
Bi”u ç tuƒn tü UML [76]: bi”u di„n mŁi quan h» giœa c¡c Łi t÷æng, giœa
c¡c Łi t÷æng v t¡c nh¥n theo thø tü thíi gian Bi”u ç tuƒn tü nh§n m⁄nh thø tü
thüc hi»n cıa c¡c t÷ìng t¡c C¡c th nh phƒn cì b£n cıa mºt bi”u ç tuƒn tü l :
C¡c Łi t÷æng (object): ÷æc bi”u di„n bði c¡c h…nh chœ nh“t, b¶n
trong l t¶n cıa Łi t÷æng Trong bi”u ç tuƒn tü, khæng ph£i c¡c Łi t÷æng
•u xu§t hi»n ð tr¶n còng cıa bi”u ç m chóng ch¿ xu§t hi»n (v• m°t thíi
gian) khi thüc sü tham gia v o t÷ìng t¡c
C¡c thæng i»p (message): ÷æc bi”u di„n b‹ng c¡c môi t¶n h÷îng tł Łi
t÷æng gßi sang Łi t÷æng nh“n T¶n c¡c thæng i»p câ th” bi”u di„n d÷îi
12
Trang 29d⁄ng phi h…nh thøc (nh÷ c¡c thæng tin trong kàch b£n) ho°c d÷îi d⁄ngh…nh thøc (giŁng nh÷ c¡c ph÷ìng thøc) Bi”u ç tuƒn tü cho ph†p câ c¡cthæng i»p tł mºt Łi t÷æng tîi ch‰nh b£n th¥n nâ Trong bi”u ç n y cânhi•u lo⁄i thæng i»p kh¡c nhau tuý theo möc ‰ch sß döng v t¡c ºng cıathæng i»p ‚n Łi t÷æng.
÷íng sŁng (lifeline): mØi Łi t÷æng câ mºt vÆng íi (b›t ƒu tł khi h…nh
th nh Łi t÷æng v k‚t thóc khi ph¡ hıy), ÷íng sŁng bi”u di„n mºt ÷íng k· nŁi
d i ph‰a d÷îi Łi t÷æng, mæ t£ qu¡ tr…nh cıa mºt Łi t÷æng trong t÷ìngt¡c thuºc bi”u ç
Sau ¥y l danh s¡ch c¡c to¡n tß t÷ìng t¡c [76] trong c¡c bi”u ç tuƒn tüUML 2.0:
To¡n tß alternative (alt): to¡n tß t÷ìng t¡c alt ch¿ ra r‹ng ph¥n o⁄n k‚t hæpbi”u di„n mºt sü lüa chån h nh vi To¡n h⁄ng trong to¡n tß câ bi”u thøc i•u ki»n(guard expression), n‚u bi”u thøc â óng th… to¡n h⁄ng ƒu s‡ ÷æc thüc thi.N‚u to¡n h⁄ng khæng câ bi”u thøc i•u ki»n th… bi”u thøc ÷æc ngƒm hi”u lóng N‚u bi”u thøc i•u ki»n l sai th… to¡n h⁄ng sau s‡ ÷æc thüc thi H…nh 2.2bi”u di„n v‰ dö minh håa cıa to¡n tß alt: n‚u sŁ d÷ (balance) trong
t i kho£n lîn hìn 0 th… cho ph†p thüc hi»n rót ti•n (withdraw()), ng÷æc l⁄i th… tł chŁi (reject())
To¡n tß t÷ìng t¡c option (opt): ch¿ ra r‹ng ph¥n o⁄n k‚t hæp bi”u di„n mºt
sü lüa chån h nh vi Trong ph¥n o⁄n ch¿ câ mºt to¡n h⁄ng, to¡n h⁄ng
n y câ th” ÷æc thüc thi ho°c khæng ÷æc thüc thi tòy v o bi”u thøc i•u ki»n.To¡n tß opt gƒn giŁng vîi to¡n tß alt, ch¿ câ i•u trong opt ch¿ câ mºt to¡n h⁄ngduy nh§t H…nh 2.2 bi”u di„n v‰ dö minh håa cıa to¡n tß opt: «ng b…nhlu“n (post_comments()) n‚u khæng câ lØi x£y ra (no errors)
To¡n tß t÷ìng t¡c loop: ch¿ ra r‹ng ph¥n o⁄n k‚t hæp bi”u di„n vÆng l°p.To¡n h⁄ng l°p s‡ ÷æc l°p i l°p l⁄i mºt sŁ lƒn i•u ki»n trong to¡n tß câ th” gçmmºt c“n d÷îi (minint), mºt c“n tr¶n (maxint) v mºt bi”u thøc boolean Sauminint lƒn l°p, bi”u thøc ÷æc ki”m tra ‚n khi n o bi”u thøc cÆn óng v sŁ lƒnl°p cÆn nhä hìn ho°c b‹ng maxint th… vÆng l°p v¤n ti‚p töc H…nh 2.3 bi”udi„n v‰ dö minh håa cıa to¡n tß loop: vÆng l°p vîi c“n d÷îi l 4, c“n tr¶n l 9.Sau khi l°p h‚t 4 lƒn, n‚u i•u ki»n size < 0 óng v sŁ vÆng l°p nhä hìn
Trang 30obja:A1 alt
[balance>0]
[balance<=0]
H…nh 2.2: V‰ dö bi”u ç tuƒn tü UML câ to¡n tß alt v
obja:A1 loop(4,9)
[size<0]
notify()
obja:A1 loop(10)
add()
break
[x>0]
save()
H…nh 2.3: V‰ dö bi”u ç tuƒn tü UML câ to¡n tß loop v break
ho°c b‹ng 9 th… vÆng l°p v¤n ti‚p töc, ng÷æc l⁄i th… dłng l°p
To¡n tß break: khi bi”u thøc i•u ki»n cıa to¡n tß t÷ìng t¡c break óng th…to¡n h⁄ng trong ph¥n o⁄n k‚t hæp break s‡ ÷æc thüc thi thay cho phƒn cÆn l⁄icıa to¡n tß t÷ìng t¡c bao gâi b¶n ngo i H…nh 2.3 bi”u di„n v‰ dö minh håacıa to¡n tß break: n‚u i•u ki»n x > 0 th… thüc hi»n save() rçi tho¡t luæn khäivÆng l°p
To¡n tß parallel (par): ch¿ ra r‹ng c¡c to¡n h⁄ng trong ph¥n o⁄n k‚t hæp
câ th” ÷æc thüc thi song song vîi nhau C¡c sü ki»n trong c¡c to¡n h⁄ng kh¡cnhau câ th” an xen v o nhau theo b§t cø c¡ch n o, mi„n l thø tü cıa c¡c süki»n trong mØi to¡n h⁄ng ÷æc b£o to n H…nh 2.4 bi”u di„n v‰ dö minh håacıa to¡n tß par: thø tü thüc hi»n c¡c thæng i»p ch¿ cƒn thäa m¢n 1a tr÷îc 2 v1b tr÷îc 3, v… v“y câ c¡c thø tü thüc hi»n sau: 1a 2 1b 3; 1a 1b 2 3; 1b 1a 32; 1b 1a 2 3; 1b 3 1a 2
To¡n tß weak sequence (seq): ch¿ ra r‹ng ph¥n o⁄n k‚t hæp bi”u di„n mºttr…nh tü y‚u giœa c¡c h nh vi cıa c¡c to¡n h⁄ng Tr…nh tü y‚u ÷æc ành ngh¾abði t“p c¡c v‚t vîi c¡c °c t‰nh: Thø tü cıa c¡c sü ki»n trong mØi mºt to¡n
14
Trang 31obja:A1 par
1a: searchGoogle() 2: readResult()
1b: searchYahoo() 3: readResult()
obja:A1 seq
1: searchGoogle()
2: searchBring()
3: searchYahoo()
H…nh 2.4: V‰ dö bi”u ç tuƒn tü UML câ to¡n tß par v seq
h⁄ng ÷æc duy tr…; C¡c sü ki»n tr¶n c¡c lifeline kh¡c nhau ð c¡c to¡n h⁄ng kh¡cnhau câ th” x£y ra theo thø tü b§t ký; C¡c sü ki»n tr¶n còng lifeline ð c¡c to¡nh⁄ng kh¡c nhau ÷æc s›p thø tü sao cho mºt sü ki»n cıa to¡n h⁄ng thø nh§t x£y
ra tr÷îc sü ki»n cıa to¡n h⁄ng thø hai H…nh 2.4 bi”u di„n minh håa cıa to¡n tßseq: t…m ki‚m tr¶n Google (searchGoogle()) song song vîi t…m ki‚m tr¶nBring (searchBring()) v Yahoo (searchYahoo()) Tuy nhi¶n, searchBring() vsearchYahoo() còng mºt lifeline n¶n t…m ki‚m Bring luæn ph£i tr÷îc Yahoo.To¡n tß strict: ch¿ ra r‹ng ph¥n o⁄n k‚t hæp bi”u di„n mºt tr…nh tünghi¶m ng°t giœa c¡c h nh vi cıa c¡c to¡n h⁄ng H…nh 2.5 bi”u di„n v‰ döminh håa cıa to¡n tß strict: thüc hi»n theo óng tr…nh tü l t…m ki‚m b‹ngGoogle, rçi t…m ki‚m Bring, sau â l Yahoo
To¡n tß critical (critical region): ch¿ ra ph¥n o⁄n k‚t hæp bi”u di„n mºtvòng then chŁt Mºt vòng then chŁt ngh¾a l c¡c v‚t trong vòng n y khæng th”
bà an xen bði c¡c sü ki»n kh¡c (tr¶n c¡c lifeline bà phı bði vòng n y) H…nh2.5 bi”u di„n v‰ dö minh håa cıa to¡n tß critical: c¡c cuºc gåi cho 911 ph£inŁi ti‚p, khæng ÷æc chçng l§n nhau, tuy nhi¶n c¡c cuºc gåi th÷íng (100) th…
an xen nhau tho£i m¡i i•u h nh vi¶n (operator) ph£i chuy”n ti‚p cuºc gåi cho
Trang 32To¡n tß consider: ch¿ ra nhœng thæng i»p ÷æc thüc hi»n trong ph¥no⁄n k‚t hæp n y, v c¡c thæng i»p cÆn l⁄i kh¡c bà bä qua H…nh 2.6 bi”u di„n v
‰ dö minh håa cıa to¡n tß consider: ch¿ thüc hi»n c¡c thæng i»p add() vremove(), bä qua c¡c thæng i»p kh¡c
critical
3: call (911) 4: call (911)
H…nh 2.5: V‰ dö bi”u ç tuƒn tü UML câ to¡n tß strict v critical
obja:A1
ignore {get,set}
1: add() 2: set() 3: remove()
obja:A1
consider {add,remove}
1: add() 2: set() 3: remove()
H…nh 2.6: V‰ dö bi”u ç tuƒn tü UML câ to¡n tß ignore v consider
To¡n tß negative (neg): ch¿ ra r‹ng ph¥n o⁄n k‚t hæp bi”u di„n c¡c v‚t(traces) ÷æc ành ngh¾a l khæng hæp l» H…nh 2.7 bi”u di„n v‰ dö minhhåa cıa to¡n tß neg: to¡n tß neg ” x¡c ành r‹ng khæng ÷æc ph†p mð cßa lÆ
vi sâng (open()) trong khi ang n§u
To¡n tß assert: ch¿ ra r‹ng ph¥n o⁄n k‚t hæp bi”u di„n c¡c v‚t hæp l».To¡n tß assert th÷íng ÷æc sß döng còng vîi ignore ho°c consider H…nh 2.7bi”u di„n v‰ dö minh håa cıa to¡n tß assert: to¡n tß assert ch¿ ch§p nh“nthæng i»p set() l hæp l», n‚u thæng i»p remove() x£y ra thay cho set() th…remove() khæng hæp l»
16
Trang 33Controla:A Microwavea:A neg
1: open()
loop Cooking
[1, n]
2: rotate() 3: generate()
consider {add,set,remove}
1: add()
assert
2: set()
H…nh 2.7: V‰ dö bi”u ç tuƒn tü UML câ to¡n tß negative v assert
2.3.2 C¡c r ng buºc OCL trong c¡c bi”u ç UML
Ngæn ngœ r ng buºc Łi t÷æng (OCL) [77] l ngæn ngœ h…nh thøc ÷æc
sß döng ” mi¶u t£ c¡c bi”u thøc trong c¡c bi”u ç UML Nhœng bi”u thøc n y
th÷íng ch¿ rª c¡c i•u ki»n b§t bi‚n trong h» thŁng ÷æc mæ h…nh hâa ho°c r
ng buºc trong c¡c Łi t÷æng cıa c¡c bi”u ç C¡c bi”u thøc OCL câ th” ÷æc
ch¿ rª ” x¡c ành c¡c h nh ºng, c¡c to¡n tß khi thüc hi»n l m thay Œi tr⁄ng th¡i
cıa h» thŁng Ng÷íi thi‚t k‚ c¡c bi”u ç UML sß döng OCL ” °c t£ c¡c r ng buºc
m nhi•u khi khæng th” bi”u di„n ÷æc trong c¡c bi”u ç UML Trong c¡c bi”u ç
UML, OCL ÷æc sß döng vîi c¡c möc ‰ch kh¡c nhau: sß döng nh÷ ngæn
ngœ truy v§n, ch¿ rª c¡c b§t bi‚n trong c¡c lîp v c¡c lo⁄i trong mæ h…nh lîp, °c
t£ c¡c lo⁄i b§t bi‚n, mi¶u t£ c¡c ti•n v h“u i•u ki»n trong c¡c to¡n tß
v ph÷ìng thøc, mi¶u t£ c¡c i•u ki»n (guards), c¡c r ng buºc trong c¡c to¡n tß v
c¡c quy t›c d¤n xu§t cıa c¡c thuºc t‰nh cho b§t ký bi”u thøc n o trong bi”u ç
UML H…nh 2.8 bi”u di„n v‰ dö bi”u ç lîp câ b§t bi‚n vi‚t b‹ng bi”u thøc OCL:
sŁ l÷æng nh¥n vi¶n (numberOfEmployees) trong cæng ty lîn hìn 50
ho°c tuŒi cıa mØi ng÷íi (age) ph£i lîn hìn 18 bi”u di„n nh÷ sau:
context c : Company inv:
c.numberOfEmployees > 50context Person inv:
self.age > 18C¡c ti•n v h“u i•u ki»n nh÷ sau:
context Person::income(d : Date) : Integer
post: result = 5000
Trang 34isMarried : Boolean isUnemployed : Boolean
birthDate : Date age : Integer
firstName : String lastName : String gender : Gender
income(Date) : Integer husband
Möc ti¶u ch‰nh cıa nghi¶n cøu l sinh c¡c dœ li»u ki”m thß tł bi”u ç tuƒn
tü UML v c¡c r ng buºc OCL Tuy nhi¶n, chóng ta khæng câ c¡ch sinh trüc
ti‚p tł c§u tróc dœ li»u n y ” ⁄t ÷æc möc ti¶u tr¶n, lu“n ¡n x¥y düng mºt ç thà
dÆng i•u khi”n (Control Flow Graph CFG) °c t£ h nh vi nh÷ c§u tróc dœ li»u
trung gian cho vi»c sinh dœ li»u ki”m thß
Trang 35Theo [72], ç thà dÆng i•u khi”n l ç thà ÷æc bi”u di„n trüc ti‚p t÷ìng øngvîi bi”u ç tuƒn tü ÷a ra v c¡c thæng tin v• r ng buºc ÷æc l§y tł bi”u ç lîp Cân«m lo⁄i nót ( ¿nh) cıa ç thà (H…nh 2.9): block node (BN), decision node(DN), merge node (MN), fork node (FN) v join node (JN) Trong â, BN
l nót t÷ìng øng vîi tłng thæng i»p (message) trong ç thà; Mºt DN bi”u di„nbi”u thøc i•u ki»n l c¡c bi”u thøc logic thäa m¢n cho vi»c lüa chån c¡c to¡nh⁄ng trong c¡c to¡n tß (v‰ dö: to¡n tß alt, opt, loop, v.v.); Mºt MN bi”u di„n
18
Trang 36MN
H…nh 2.9: C¡c lo⁄i nót cıa ç thà dÆng i•u khi”n
nót ra cıa c¡c to¡n tß lüa chån (v‰ dö alt, opt); Mºt FN bi”u di„n ƒu v o trongkhi â JN bi”u di„n ƒu ra cıa to¡n tß song song (parallel) v tuƒn tü y‚u (weaksequencing) C¡c c⁄nh bi”u di„n dÆng i•u khi”n giœa c¡c nót, c¡c c⁄nh i tł DNs‡ ÷æc g›n vîi và tł
ç thà dÆng i•u khi”n G ÷æc ành ngh¾a [72] nh÷ sau: G = (A; E;in; F )
trong â, A l mºt t“p c¡c nót (bao gçm BN, DN, MN, FN v JN); in l nót khði t⁄o v
F l t“p hæp c¡c nót k‚t thóc cıa ç thà; E l t“p c¡c c⁄nh cıa ç thà sao cho: E =
f(x; y)jx; y 2 A [ F g Vîi c§u tróc cıa tłng nót Ai 2 A ÷æc bao gçm: <noId,noType, noDetails, outEdge>, trong â:
noId l nh¢n duy nh§t g›n trong tłng nót,
noType l mºt trong c¡c lo⁄i nót in, BN, DN, MN, FN, JN v f ni,
noDetails = <m1; m2; :::; mq> vîi q l sŁ c¡c thæng i»p trong Bi 2 BN MØinót Bi bi”u di„n mºt thæng i»p ho°c tuƒn tü c¡c thæng i»p mi MØi thængi»p mi bao gçm c¡c thæng tin cıa lîp gßi v lîp nh“n trong bi”u ç lîp v câ c§utróc nh÷ sau: (mi; parameterList; returnV alue); trong â, mØi thæng i»p hayph÷ìng thøc mi bao gçm mºt danh s¡ch c¡c tham sŁ
parameterList = <p1; p2; :::; pn> v gi¡ trà tr£ v• returnV alue MØi tham sŁ picıa ph÷ìng thøc mi trong bi”u ç tuƒn tü câ th” bao gçm thuºc t‰nh vîi c¡c r
ng buºc trong bi”u ç lîp Tham sŁ v gi¡ trà tr£ v• ÷æc l§y ki”u dœ li»u,thæng tin v• r ng buºc tł bi”u ç lîp v câ c§u tróc nh÷ sau: <name; dataT ype; value; constraint> trong â, name l t¶n tham sŁ ho°c thuºc t‰nh; dataT ype llo⁄i dœ li»u cıa tham sŁ ho°c thuºc t‰nh t÷ìng øng; value l gi¡ trà ÷æc g¡ncho tham sŁ; constraint ch¿ c¡c r ng buºc l c¡c bi”u thøc OCL ÷æc x¡c ànhtrong thuºc t‰nh cıa bi”u ç lîp, v
19
Trang 37 outEdge = foE1; oE2; :::; oEqg| q l sŁ l÷æng c¡c c⁄nh ra tł DN MØi c⁄nh
oEi 2 outEdge ÷æc x¡c ành gçm: <noId, predicate> trong â, noId l nh¢n
÷æc g›n vîi nót t⁄o ra v predicate l c¡c bi”u thøc logic, ki”m tra i•u ki»n trong c¡c to¡n tß cıa bi”u ç tuƒn tü
º bao phı l º o ki”m thß cıa mºt ch÷ìng tr…nh cıa mºt t“p ca ki”m thß.Møc º bao phı cıa mºt bº ki”m thß (t“p c¡c ca ki”m thß) ÷æc o b‹ng t l» c¡c th
nh phƒn thüc sü ÷æc ki”m thß so vîi tŒng th” sau khi ¢ thüc hi»n c¡c ca ki”mthß º bao phı c ng lîn th… º tin c“y cıa bº c¡c ca ki”m thß
c ng cao º o n y gióp ki”m so¡t v qu£n lþ qu¡ tr…nh ki”m thß tŁt hìn, vîi möcti¶u cıa qu¡ tr…nh ki”m thß l sŁ ca ki”m thß tŁi thi”u nh÷ng ⁄t ÷æc º bao phıtŁi a Trong lu“n ¡n câ sß döng º bao phı t÷ìng tranh v º bao phı l°p ” sinh c¡ckàch b£n v dœ li»u ki”m thß t÷ìng øng theo c¡c º bao phı n y Ngo i ra, ºph¥n t‰ch ºt bi‚n công ÷æc sß döng ” o kh£ n«ng t…m lØi cıa c¡c kàch b£nki”m thß ÷æc sinh ra
2.4.1 º bao phı t÷ìng tranh
Sinh c¡c kàch b£n ki”m thß l b÷îc ti¶n quy‚t tr÷îc khi sinh c¡c ca ki”mthß Vi»c sinh ra t§t c£ c¡c ÷íng d¤n ki”m thß l khæng th” công nh÷ khængth” ki”m thß ÷æc t§t c£ c¡c tr÷íng hæp vîi måi dœ li»u ki”m thß v… nguçn lücki”m thß câ giîi h⁄n V… v“y, c¡c ti¶u chu'n bao phı ÷æc ÷a ra Trong t‰nhch§t t÷ìng tranh cıa c¡c øng döng, ÷æc th” hi»n bði to¡n tß song song, tuƒn
tü y‚u v c¡c thæng i»p b§t çng bº trong bi”u ç tuƒn tü UML, câ ba ti¶u chu'nbao phı t÷ìng tranh [95, 93] nh÷ sau:
Bao phı t÷ìng tranh y‚u: c¡c ca ki”m thß ÷æc sinh ra bao phı ch¿ mºttuƒn tü kh£ thi cıa c¡c ti‚n tr…nh song song vîi khæng câ sü an xengiœa c¡c thæng i»p trong c¡c ti‚n tr…nh song song â
Bao phı t÷ìng tranh trung b…nh: c¡c ca ki”m thß ÷æc sinh ra bao phıt§t c£ c¡c tuƒn tü kh£ thi cıa c¡c ti‚n tr…nh song song vîi khæng câ sü an
Trang 38xen giœa c¡c thæng i»p trong c¡c ti‚n tr…nh song song â.
Bao phı t÷ìng tranh m⁄nh: c¡c ca ki”m thß ÷æc sinh ra bao phı t§t c£c¡c tuƒn tü kh£ thi cıa c¡c ti‚n tr…nh song song câ sü an xen giœa c¡cthæng i»p trong c¡c ti‚n tr…nh song song â
Rª r ng, c¡c ti¶u chu'n bao phı t÷ìng tranh y¶u cƒu c¡c kàch b£n ki”m thß
÷æc sinh ra bao phı ‰t nh§t mºt ti‚n tr…nh song song C£ ti¶u chu'n bao phıy‚u v trung b…nh •u ki”m thß c¡c thæng i»p v luçng i•u khi”n trong ti‚n tr…nhsong song theo c¡ch tuƒn tü Ti¶u chu'n bao phı t÷ìng tranh m⁄nh câ sü anxen giœa c¡c thæng i»p trong c¡c luçng i•u khi”n cıa c¡c ti‚n tr…nh songsong, do v“y sŁ l÷æng c¡c kàch b£n ki”m thß câ th” r§t lîn v khæng thüc ti„n
2.4.2 º bao phı trong ki”m thß vÆng l°p
Ph÷ìng ph¡p sinh ki”m thß trong ç thà dÆng i•u khi”n khæng th” ki”mthß h‚t c¡c vÆng l°p xu§t hi»n trong c¡c mæ h…nh Lþ do l c¡c ÷íng i ki”mthß sinh ra tł ç thà dÆng i•u khi”n khæng th” chøa h‚t c¡c vÆng l°p Trongthüc t‚, lØi hay x£y ra ð c¡c vÆng l°p V… lþ do n y, chóng ta cƒn sinh c¡c caki”m thß cho c¡c vÆng l°p nh‹m gi£m t l» lØi cıa c¡c mæ h…nh Vîi mØi mæh…nh câ vÆng l°p, º bao phı trong ki”m thß vÆng l°p câ ba tr÷íng hæp sau:
L°p ìn gi£n: vi»c sinh ki”m thß tł mæ h…nh m c¡c ÷íng d¤n ki”m thßch¿ chøa óng mºt vÆng l°p (th¥n cıa vÆng l°p khæng chøa vÆng l°pkh¡c)
L°p li•n k•: vi»c sinh ki”m thß tł mæ h…nh m c¡c ÷íng d¤n ki”m thß chøa c¡c lƒn l°p k‚ ti‚p nhau
L°p lçng nhau: vi»c sinh ki”m thß tł mæ h…nh gçm c¡c vÆng l°p chøa c¡c vÆng l°p kh¡c
Trong nhi•u c¡ch ti‚p c“n [72, 65], vi»c sinh c¡c ÷íng d¤n ki”m thß ch¿ ÷æcthüc hi»n tŁi a mºt lƒn l°p n¶n r§t khâ ” ph¡t hi»n c¡c lØi ti•m 'n b¶n trongvÆng l°p n y C¡c lØi câ th” x£y ra khi vÆng l°p ÷æc thüc hi»n nhi•u lƒn l°p
” gi£i v§n • n y, chóng ta cƒn sinh th¶m c¡c ca ki”m thß t÷ìng øng nh÷ sau:
VÆng l°p thüc hi»n 0 lƒn
Trang 3921
Trang 40÷æc ki”m thß b‹ng b£y ca ki”m thß nh÷ vÆng l°p ìn gi£n (nh÷ ¢ mæ t£
ðtr¶n) Trong tr÷íng hæp c¡c vÆng l°p lçng nhau, chóng ta ti‚n h nh ki”m thßtuƒn tü c¡c vÆng l°p theo thø tü tł trong ra ngo i (mØi vÆng l°p công dòngb£y ca ki”m thß nh÷ tr¶n) Nh÷ v“y, vîi c¡c tr÷íng hæp t÷ìng øng th… trongPhƒn 4.3.3 thu“t to¡n sinh dœ li»u ki”m thß Łi vîi vÆng l°p s‡ ÷æc ÷a ra
2.4.3 º ph¥n t‰ch ºt bi‚n
º ph¥n t‰ch ºt bi‚n ” ¡nh gi¡ sü hi»u qu£ cıa c¡c kÿ thu“t ki”m thß phƒnm•m kh¡c nhau [94] Ki”m thß ºt bi‚n l kÿ thu“t ki”m thß düa tr¶n lØi khi gi£thi‚t ch›c ch›n c¡c lo⁄i lØi c§y v o ch÷ìng tr…nh v sau â thi‚t k‚ c¡c ca ki”m thßvîi möc ‰ch ph¡t hi»n c¡c lØi â C¡c lØi ÷æc ÷a v o ch÷ìng tr…nh bði vi»c t⁄omºt t“p c¡c phi¶n b£n lØi gåi l c¡c ºt bi‚n Nhœng ºt bi‚n n y ÷æc t⁄o ra tłch÷ìng tr…nh gŁc bði vi»c ¡p döng c¡c to¡n tß ºt bi‚n, mæ t£ sü thay Œi v och÷ìng tr…nh gŁc Ca ki”m thß ÷æc sß döng ” thüc thi nhœng ºt bi‚n vîi möc
‰ch g¥y n¶n nhœng ºt bi‚n t⁄o ra k‚t qu£ ƒu ra khæng ch‰nh x¡c º o ºt bi‚n(Mutation Score MS) ” o ch§t l÷æng cıa mºt t“p c¡c ca ki”m thß theo cængthøc sau:
MS(p; t) =
22