You are on page 1of 56

Kim Chng, Thm nh v Kim Th (Verification, Validation, and Testing)

Mc ch
z

Sau 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

Ni dung
z

Gii thiu

Verification,Validation, v Testing

z z z

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

Ti liu
z

z z

Pressman, 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

Verification,Validation, v Testing
z

Kim 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 -> Validation


5

Kim chng/Thm nh tnh v ng


z

Kim 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 nng
6

Kim chng/Thm nh ng (kim th - Testing)


M hnh pht trin V


c 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

Kim th phn mm (Testing)


z

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 li
8

Mi php kim th (a test) ch thnh cng khi


Cc loi kim th phn mm


z

Kim 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

Yu cu i vi kim th
z

Tnh 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 qu
10

Tnh h thng

c lp ti liu

Cc nguyn l kim th PM
z z z

Cc 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)


z z

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

z z

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 case


z

Tn 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 t
13

Cc k thut kim th chng trnh


z

Kim 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 nng


Functional 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 ng


Equivalence 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 d


Hm tnh tr tuyt i - min d liu 0 - min d liu < 0
Input 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 trc
Structural 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

4 5

22

1 ng i: 1-2-3-8-1-9 1-2-4-6-7-8-1-9

9 4

3 5 7 8
23

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 false
24

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

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

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 ri
z z z z

Kim 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 test
To 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 k
34

To test cases cho hm tm kim nh phn


S p.t Mng
0 1 1 1 4 4 4 4 4 4 10 10 10 3 3 3 3 3 3

Kha
7 20 3 10 1 30 8 3 20 7

Kt qu
-1 -1 -1 0 -1 -1 -1 0 3 1
35

7 7 7 7 7 7

10 10 10 10 10 10

20 20 20 20 20 20

Ni dung
z

Gii thiu

Verification,Validation, v Testing

z z z

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 th
z z

Kim th n v Kim th tch hp


top-down bottom-up

Kim th chp nhn

alpha, beta testing

Kim th h thng

37

Kim th n v
Unit 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 si
38

Kim th n v

driver

Module

giao din cu trc d liu iu kin bin ng i c lp x l li


test cases

stub

stub

RESULTS
39

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 stub
M un tnh ngy trong tun calc_day(): - input: ngy, thng, nm - output: tr xu k t l th ca ngy cho
String 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 << Enter day_of_week of << d; cin >> s; return s; }

42

V d v test drive
Test drive th nghim calc_day()
void calc_day_test_drive() { Date d; String s; while (1) { cout << Enter date: ); cin >> d; s = calc_day(d); cout << s << endl; } }
43

Kim th tch hp
Intergration testing Kim th tch hp cc unit Ngi tin hnh: ngi lp trnh, ngi thit k... Cc unit c thm vo theo mt trong 2 chin lc top-down hoc bottom-up Mc ch: - kim tra giao din gia cc unit - kim tra tnh ng n so vi c t - kim tra tnh hiu qu Thng s dng kim th chc nng c lp ti liu
44

Cc chin lc tch hp

Kim th trn xung (top-down) Kim th di ln (bottom-up) Kim th quay lui (regression)

45

Kim th trn xung


Top-down testing Cc m un mc trn c kim th trc Cc m un thuc cp c thay bng bng cc m un tm thi (stub function) - c cng tn vi m un tht - c cng giao din - tr li kt qu vi mt hoc mt vi b d liu chun
46

Kim th trn xung


A

Top module c kim th trc vi cc stubs


G

Cc stubs c thay th tng ci mt


E

Mi khi mt module mi c tch hp mt s ca kim th c thc hin li (kim th quay lui)


47

u nhc im ca top-down
u im:
Pht hin sm cc li thit k (li cu trc) - kim th trn xung kt hp vi pht trin trn xung s gip pht hin sm cc li thit k v lm gim gi thnh sa i C sm phin bn thc hin c - phin bn thc hin vi cc chc nng chnh c sm - c th thm nh tnh dng c ca sn phm sm

Nhc im Nhiu m un cp thp rt kh m phng - thao tc vi cu trc d liu phc tp - tr li kt qu phc tp (con tr, nh, ...)
48

Kim th di ln - bottom-up testing

Cc m un cp thp c kim th trc M un mc trn c thay th bng m un iu khin (test driver), c chc nng - gi m un cn th nghim - truyn d liu - hin th kt qu Thay th dn cc drive

49

Kim th di ln
A

Thay th cc driver tng ci mt

cluster

cluster

Cc module mc thp c tch hp trc


50

u nhc im ca bottom up
u i m - Trnh xy dng cc m un tm thi (stub) phc tp - Trnh sinh cc kt qu nhn to (nhp t bn phm) - Thun tin cho pht trin cc m un dng li Nhc im - Chm pht hin cc li kin trc - Chm c phin bn thc hin
51

Top down vs. Bottom up


z

Mi chin lc u c u nhc im ring Chin lc kim th phi ph hp vi chin lc pht trin


pht trin top-down = top-down testing pht trin bottom-up = bottom-up testing

C th phi hp cc chin lc: Sandwich testing

52

Kim th chp nhn


Acceptance testing C s tham gia ca khch hng/ngi s dng Dng kim th chc nng Mc ch: thm nh (validation) phn mm - sai st, thiu st so vi yu cu ngi dng S dng cc d liu thc do user cung cp Kim th chp nhn tin hnh mi trng khch hng c gi l alpha testing
53

Kim th beta
M rng ca alpha testing c tin hnh vi mt lng ln users User tin hnh kim th khng c s hng dn ca ngi pht trin; thng bo li kt qu cho ngi pht trin

54

Kim th h thng
z

M rng phm vi kim th, nhn nhn phn mm l mt yu t trong mt HTTT phc tp Kim tra cc yu t
kh nng phc hi sau li an ton hiu nng v gii hn ca phn mm

55

Kim th gy p lc - Stress Testing


S dng cc d liu ln - s ngi s dng ln, s giao dch ln, tp kch thc ln Nghin cu: mc ti hn ca h thng (mc ti khin h thng ngng hot ng) phn ng ca h thng khi t mc ti hn + bin thin ca thi gian phn hi + an ton ca d liu,... cc t hp iu kin khin h ngng hot ng + OS, phn mm, phn cng,...
56

You might also like