Upload
say-trong-noi-dau
View
100
Download
0
Embed Size (px)
Citation preview
Kim Chng, Thm nh v Kim Th (Verification, Validation, and Testing)
Mc chSau bui hc sinh vin phi nm c:
Hiu cc khi nim: verification, valdation, v testing Nm c cc nguyn l v kim th Hiu khi nim ca kim th (test case) Cc phng php thit k test case Lm th no kim th chng trnh Lm th no kim th h thng
2
Ni dungGii thiu
Verification,Validation, v Testing
Cc nguyn l v kim th Ca kim th (test case) Cc k thut kim th chng trnh
Kim th chc nng Kim th cu trc
Cc giai on v chin lc kim th
3
Ti liuPressman, Software Engineering, McGraw Hill (chapter 18 & 19) Sommerville, Software Engineering, Addison-Wesley (chapter 22 & 23) Gio trnh k ngh phn mm (chng 5) Cc ti liu in t khc
4
Verification,Validation, v TestingKim chng (Verification)
c ng c t khng, c ng thit k khng pht hin li lp trnh c p ng nhu cu ngi dng khng c hot ng hiu qu khng pht hin li phn tch, li thit k (li mc cao) mc tiu l pht hin v sa li PM, nh gi tnh dng c ca PM
Thm nh (Validation)
V&V = Verification and Validation
Th t thc hin: Verification -> Validation5
Kim chng/Thm nh tnh v ngKim chng/Thm nh tnh
khng thc hin chng trnh xt duyt yu cu, thit k, m ngun tin hnh mi cng on pht trin kh nh gi tnh hiu qu ca sn phm thc hin chng trnh cn c m ngun pht hin li lp trnh nh gi tnh hiu qu phn mm l cch duy nht kim tra yu cu phi chc nng6
Kim chng/Thm nh ng (kim th - Testing)
M hnh pht trin Vc t yu cu c t h thng Thit k h thng Thit k chi tit
K hoch kim th chp nhn
K hoch kim th tch hp HT
K hoch kim th tch hp HT con
M ha m un & kim th m un
Dch v
Kim th chp nhn
Kim th tch hp h thng
Kim th tch hp cc h thng con
7
Kim th phn mm (Testing)Tp cc hot ng vi mc ch khm ph cc li v khuyt tt/khim khuyt Mc ch ca kim th:
Thit k cc ca kim th (test cases) vi kh nng tm kim cc li/khuyt tt Thc hin chng trnh vi mc ch tm cc li/khuyt tt mt li c pht hin mt kt qu ch ra s tht bi ca th tc kim th c tr li8
Mi php kim th (a test) ch thnh cng khi
Cc loi kim th phn mmKim th tm khuyt tt
tm li lp trnh tin hnh da trn phn tch c t chc nng, phn tch m ngun nh gi tnh dng c ca sn phm s dng d liu thc (da trn thng k) s ngi truy cp s giao tc c s d liu ln
Kim th thng k
9
Yu cu i vi kim thTnh lp li
kim th phi lp li c (kim tra xem li c sa hay cha) d liu/trng thi phi m t c m bo kim tra ht cc trng hp (coverage) kim sot tin trnh/kt qu10
Tnh h thng
c lp ti liu
Cc nguyn l kim th PMCc php kim th phi tng ng vi cc yu cu ca HT Mi php kim th nn c lp k hoch t rt sm trc khi tin hnh kim th Qui lut Pareto hay qui lut 80/20 (qui lut thiu s quan trng v phn b nhn t)
khong 80% kt qu l do 20% nguyn nhn gy ra 80% of all errors uncovered during testing will likely be traceable to 20% of all program modules or classes
11
Ca kim th (test case)Ca kim th: d liu kim tra hot ng ca chng trnh Ca kim th tt
c thit k pht hin mt li ca chng trnh
Kim th thnh cng: pht hin ra li Mc ch:
Chng minh c s tn ti ca li Khng chng minh c s khng c li
12
Ni dung ca test caseTn m un/chc nng mun kim th d liu vo
d liu thng thng: s, xu k t, file,... mi trng th nghim: phn cng, OS,... th t thao tc (khi kim th giao din) thng thng: s, xu k t, file,... mn hnh, thi gian phn hi
Kt qu mong mun
Kt qu thc t13
Cc k thut kim th chng trnhKim th chc nng (functional testing)
da trn c t chc nng pht hin cc sai st v chc nng khng quan tm n cch ci t kim th c nghin cu m ngun phn tch th t thc hin cc lnh
Kim th cu trc (structured testing)
14
Kim th chc nngFunctional testing / Black box testing Da trn c t chc nng Test case c thit k kim tra chc nng Pht hin cc khim khuyt so vi c t Khng quan tm n cch ci t (m ngun) - Pht hin sai st, thiu st chc nng - Sai st v giao din ca m un - Kim tra tnh hiu qu - Pht hin li khi to, li kt thc,15
Phn hoch tng ngEquivalence partitioning Khng th kim th mi trng hp Chia d liu thnh cc min c cng hnh vi To mt test case cho tng min To test case cho bin ca cc min - nhiu li xut hin vi gi tr bin
16
Phn hoch tng ng - V dHm tnh tr tuyt i - min d liu 0 - min d liu < 0Input 100 -20 0 Expected Output 100 20 0
17
M rng cc test case
To test case cho cc trng hp c bit - bin ca s trong my tnh (vd. 32767, -32768) - s khng (0) - s m, s thp phn - d liu sai kiu - d liu ngu nhin
18
Kim th cu trcStructural testing / White box testing Xy dng ca kim th da trn phn tch m ngun Xy dng b test case kim tra mi dng lnh Phn tch cc lnh r nhnh, vng lp Ph hp vi cc m un nh L s b sung cho kim th chc nng
19
ng i trong m un
Phn tch m un xc nh ng i ng i l th t thc hin cc lnh t im bt u n im kt thc ca m un Thit k cc test case kim th mi ng i
20
Xc nh ng i nh s cc khi lnh - nh s cc khi lnh, cu lnh iu kin - nh s cc hp im ca lung lnh Rt gn flow chart ( th) - cc khi tun t c tch hp thnh mt khi - tch hp khi tun t vo cu lnh iu kin k tip
21
Start 1 2 11 End 6 7 9 8 10 3
0
4 5
22
1 ng i: 1-2-3-8-1-9 1-2-4-6-7-8-1-9
9 4
2
3 5 7 823
6
ng i c lp Khng th chn mi ng i - chn cc ng i c lp ng i c lp - c t nht mt cp khi lnh (mt cnh ca th) cha xut hin trong cc ng i c B cc ng i c lp l mt tp hp tha mn - mi khi lnh u c thc hin t nht mt ln - mi iu kin u c kim th vi hai trng hp true v false24
1 2 4 3 5 7 8 6
ng i c lp: 1-9 1-2-3-8-1-9 1-2-4-6-7-8-1-9 1-2-4-5-7-8-1-9
9
25
ng i c lp
c th tn ti nhiu b ng i c lp s ng i ti thiu cn kim tra = phc tp thut ton
26
phc tp thut ton phc tp V(G) ca flow chart G: 1. S min ca th G 2. V(G) = E - N + 2 E: s cnh N: s nh 3. V(G) = P + 1 P: s cc nt iu kin
27
1 2 4 3 5 7 8 6
9
S cnh E = 11 S nh N = 9 S iu kin = 3 S min = 4
phc tp: 4
28
phc tp thut ton phc tp ln th xc sut xut hin li cao
khng nn to cc m un c phc tp > 10 phn r m un (to cc m un th cp gim phc tp)
29
Chc nng vs. Cu trc Kim th chc nng - kim tra tnh hiu qu ca phn mm - thun tin vi cc m un ln, tch hp Kim th cu trc - m bo mi lnh u c kim tra - hiu qu vi cc m un nh, n l
30
Kim th v g riKim th v g ri l hai cng vic phn bit Kim th nhm pht hin s tn ti ca li G ri nhm nh v v sa cha m gy li G ri bao gm vic sinh ra cc gi thit v hot ng ca chng trnh v kim th chng trnh tm li
31
Tin trnh g ri
Test results
Specification
Test cases
Locate error
Design error repair
Repair error
Re-test program
32
Mini testTo test case (da trn phn hoch tng ng) cho hm tm kim sau: input: - mng s nguyn a[] sp xp - kha tm kim k (s nguyn) output: v tr ca k trong mng a[] nu c, -1 nu khng c
33
To test cases cho hm tm kim nh phn
S phn t ca mng: - 0, 1 - ln hn 1 Kha tm kim: - khng c trong mng + nh hn, ln hn + xen k - c trong mng + phn t u tin, cui cng + phn t v tr bt k34
To test cases cho hm tm kim nh phnS p.t Mng0 1 1 1 4 4 4 4 4 4 10 10 10 3 3 3 3 3 3
Kha7 20 3 10 1 30 8 3 20 7
Kt qu-1 -1 -1 0 -1 -1 -1 0 3 135
7 7 7 7 7 7
10 10 10 10 10 10
20 20 20 20 20 20
Ni dungGii thiu
Verification,Validation, v Testing
Cc nguyn l v kim th Ca kim th (test case) Cc k thut kim th chng trnh
Kim th chc nng Kim th cu trc
Cc giai on v chin lc kim th
36
Cc giai on kim thKim th n v Kim th tch hptop-down bottom-up
Kim th chp nhn
alpha, beta testing
Kim th h thng
37
Kim th n vUnit testing Kim th cc m un, chng trnh ring l Ngi tin hnh: thng l ngi lp trnh S dng cc stubs v drivers Phi hp gia kim th cu trc v kim th chc nng - kim tra cu lnh iu kin, cu trc d liu iu kin bin,... Ti liu thng s si38
Kim th n v
driver
Module
giao din cu trc d liu iu kin bin ng i c lp x l litest cases
stub
stub
RESULTS39
V d s dng stub Kim th m un calender() c gi n m un tnh ngy trong tun calc_day()cha c pht trin. calender() pht trin, cn kim th
calc_day()
cha pht trin
40
V d s dng stubM un tnh ngy trong tun calc_day(): - input: ngy, thng, nm - output: tr xu k t l th ca ngy choString calc_day(Date d) { return "Sunday"; }
41
V d s dng stub tng thch nghi, c th thay th d liu c nh bng cch nhp kt qu trc tip t bn phm.String calc_day(Date d) { String s; cout s; return s; }
42
V d v test driveTest drive th nghim calc_day()void calc_day_test_drive() { Date d; String s; while (1) { cout > d; s = calc_day(d); cout