Lect Testing

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