Professional Documents
Culture Documents
9 KiemThu
9 KiemThu
N i dung
Gi Ki Ki Ki i thi m th m th m th u v ki m th trong ti n trnh pht tri n h p en h p tr ng
Ki m th l g ?
IEEE: Ki m th l ti n trnh v n hnh h th ng ho c thnh ph n d i nh ng i u ki n xc nh, quan st ho c ghi nh n k t qu v a ra nh gi v h th ng ho c thnh ph n Myers: Ki m th l ti n trnh th c thi chng trnh v i m c ch tm th y l i (The art of software testing)
3
Ki m th l g ?
Ki m th G r i (debug)
Ki m th
nh m pht hi n l i
G r i
xc nh b n ch t l i v nh v l i trong chng trnh ti n hnh s a l i
Cc khi ni m
M t sai st (error) l m t s nh m l n hay m t s hi u sai trong qu trnh pht tri n ph n m m c a ng i pht tri n M t l i (fault, defect) xu t hi n trong ph n m m nh l k t qu c a m t sai st M t h ng hc (failure) l k t qu c a m t l i xu t hi n lm cho chng trnh khng ho t ng c hay ho t ng nhng cho k t qu khng nh mong i
sai st
5
l i
h ng hc
Cc khi ni m
D li u th (test data)
d li u vo c n cung c p cho ph n m m trong khi th c thi
K ch b n ki m th (test scenario)
cc b c th c hi n khi khi ki m th
Cc khi ni m
Ki m th vin (tester)
ng i th c hi n ki m th
Ca ki m th (test case)
t p d li u th i u ki n th c thi k t qu mong i
Cc khi ni m
Ti n trnh ki m th
Ki m th th ng bao g m cc b c
thi t k cc ca ki m th b c t o d li u th
ki m th v i t t c cc d li u vo l c n thi t
khng th ki m th vt c n
ch n t p cc d li u th i di n t mi n d li u vo
d a trn cc tiu chu n ch n d li u th
b c quan st k t qu ki m th
th c hi n trong khi ho c sau khi th c thi so snh k t qu nh n c v k t qu mong i
9
Ti n trnh ki m th
10
Kh khn c a ki m th
Lin quan n ti n trnh pht tri n
g m nhi u giai o n pht tri n
ci ra c a m t giai o n l ci vo c a giai o n khc m t mt thng tin
V m t con ng i
thi u o t o t ch tr ng vai tr ki m th
V m t k thu t
khng t n t i thu t ton t ng qut c th ch ng minh s ng n hon ton c a b t k m t chng trnh no
11
T i sao ki m th
H p th c ha (validation)
ch ra r ng s n ph m p ng c yu c u ng i s d ng
Xc minh (verification)
ch ra r ng s n ph m th a mn c t yu c u
Phn bi t h p th c ha v xc minh
Verification: Are we building the product right ? Validation: Are we building the right product ?
12
ki m th h p tr ng (white-box testing)
k thu t ki m th c u trc (structural testing)
Cc ho t ng ki m th /chi n l c ki m th
ki ki ki ki m m m m th th th th n v (unit testing) tch h p (integration testing) h p th c ha (validation testing) h i quy (regression testing)
13
d li u th c t o ra d a trn thi t k t ng th
15
17
chi n l c t d i ln (bottom-up)
ki m th cc thnh ph n khng g i cc thnh ph n khc, sau thm vo cc thnh ph n g i cc thnh ph n v a ki m th t s d ng cc nt trm nhng l i xc nh l i tr hn
18
20
10
Ki m th trong m hnh V
Ki m th h p th c ha Ki m th tch h p Ki m th n v
21
Cc k thu t ki m th
k thu t ki m th tnh (static testing)
khng th c thi chng trnh
ki m th h p tr ng (white-box testing)
k thu t ki m th c u trc (structural testing)
22
11
Ki m th tnh
Thanh tra m ngu n (code inspection) Ch ng minh hnh th c Th c thi hnh th c (symbolic execution) nh gi ph c t p
McCabe Nejmeh
23
Ki m th h p en
Input test data I
e
System
Oe
12
Ki m th h p en
Ch c n d a vo c t chng trnh
Xy d ng d li u th tr c khi m ha/l p trnh
25
Ki m th h p en
Ki m th gi tr bin (boundary value analysis) Ki m th l p tng ng (equivalence class testing) Ki m th ng u nhin (random testing) th nhn-qu (cause-efect graph) Ki m th c php
26
13
Ki m th gi tr bin
C s
l i th ng xu t hi n g n cc gi tr bin c a mi n d li u
nh nh t g n k l n hn gi tr nh nh t bnh th ng g n k nh hn gi tr l n nh t l n nh t
Ki m th gi tr bin
28
14
Ki m th gi tr bin
Nguyn t c ch n d li u th
N u d li u vo thu c m t kho ng, ch n
2 gi tr bin 4 gi tr = gi tr bin sai s nh nh t
N u d li u vo l i u ki n rng bu c s gi tr , ch n
s gi tr t i thi u, s gi tr t i a v m t s cc s gi tr khng h p l
T v n d ng kh nng v th c t ch n cc gi tr bin c n ki m th
29
Ki m th gi tr bin
V d (1)
Chng trnh nh n vo ba s th c, ki m tra ba s th c c l di ba c nh m t tam gic. N u l di ba c nh c a m t tam gic, th ki m tra xem l tam gic th ng, cn, u cng nh ki m tra l tam gic nh n, vung hay t.
30
15
Ki m th gi tr bin
V d (2) D li u th
1, 1, 2 0, 0, 0 4, 0, 3 1, 2, 3.00001 0.001, 0.001, 0.001 99999, 99999, 99999 3.00001, 3, 3 2.99999, 3, 4 3, 4, 5.00001 3, 4, 5, 6 3 -3, -3, 5
Khng l tam gic Ch m t i m M t c nh b ng khng G n l m t tam gic Tam gic r t nh Tam gic r t l n Tam gic g n u Tam gic g n cn Tam gic gic g n vung B n gi tr Ch m t gi tr D li u vo r ng Gi tr m
31
Ki m th l p tng ng
t ng
phn ho ch mi n d li u vo thnh cc l p cc d li u c quan h v i nhau m i l p dng ki m th m t ch c nng, g i l l p tng ng
32
16
Ki m th l p tng ng
Ba b c
i v i m i d li u vo, xc nh cc l p tng ng t mi n d li u vo ch n d li u i di n cho m i l p tng ng k t h p cc d li u th b i tch -cc t i ra b d li u ki m th
33
Ki m th l p tng ng
Nguyn t c phn ho ch cc l p tng ng
N u d li u l t p h p cc gi tr , xy d ng
1 l p v i t p r ng 1 l p qu nhi u cc gi tr nl ph pl
N u d li u vo l i u ki n rng bu c, xy d ng
1 l p v i rng bu c c th a mn 1 l p v i rng bu c khng c th a mn
34
17
Ki m th l p tng ng
V d
Bi ton tam gic
Th ng Cn u Nh n 6,5,3 6,1,6 4,4,4 -1,2,8 Vung 5,6,10 7,4,4 khng th T 3,4,5 2,2,2 khng th
35
Bi t p
Ki m th gi tr bin
Vi t m t chng trnh th ng k phn tch m t t p ch a tn v i m c a sinh vin trong m t nm h c. T p ny ch a nhi u nh t 100 tr ng. M i tr ng ch a tn c a m i sinh vin (20 k t ), gi i tnh (1 k t ) v i m c a 5 mn h c (t 0 n 10). M c ch chng trnh:
tnh di m trung bnh m i sinh vin tnh i m trung bnh chung (theo gi i tnh et theo mn h c) tnh s sinh vin ln l p (i m trung bnh trn 5)
36
18
Bi t p
Ki m th l p tng ng
Vi t chng trnh d ch, trong c cu l nh FOR, c t cu l nh FOR nh sau: L nh FOR ch ch p nh n m t tham s duy nh t l bi n m. Tn bi n khng c s d ng qu hai k t khc r ng. Sau k hi u = l c n d i v c n trn c a bi n m. Cc c n trn v c n d i l cc s nguyn dng v c t gi a t kha TO. Xy d ng d li u th ki m th cu l nh FOR theo k thu t ki m th l p tng ng
37
Ki m th h p tr ng
D a vo m ngu n/c u trc chng trnh
Xy d ng d li u th sau khi m ha/l p trnh
38
19
Cc k thu t ki m th h p tr ng
Ki m th d a trn th lu ng i u khi n Ki m th d a trn th lu ng d li u Ki m th t bi n (mutation testing)
39
th lu ng i u khi n
th lu ng i u khi n (Control Flow Graph TLK) l th c h ng, bi u di n m t chng trnh
nh: bi u di n l nh tu n t hay kh i l nh cung: bi u di n cc r nhnh m t nh vo v m t nh ra c thm vo bi u di n i m vo v ra c a chng trnh
20
th lu ng i u khi n
V d 1
if x <= 0 then x := -x else x := 1 -x; if x = -1 then x=1 else x := x+1; writeln(x);
41
th lu ng i u khi n
V d 1 (2)
C 4 l trnh
[a, b, d, f, g] [a, b, d, e, g] [a, c, d, f, g] [a, c, d, e, g]
42
21
th lu ng i u khi n
V d 1 (3)
th G1 c th bi u di n d ng bi u th c chnh quy: G1 = abdfg + abdeg + acdfg + acdeg Hay n gi n: G1 = a(bdf + bde + bdf + bde)g G1 = a(b + c)d(e + f)g
43
th lu ng i u khi n
Bi u di n cc c u trc
C u trc tu n t : ab
C u trc l p: ab(cb)*d
44
22
th lu ng i u khi n
V d 2
i := 1; found:= false; while (not found) do begin if (a[i] = E) then begin found:= true; s := i; end; i := i + 1; end; G2 = ab(c( + d)eb)*f
45
th lu ng i u khi n
Bi t p 1
V th lu ng i u khi n Xy d ng bi u th c chnh quy bi u di n th
if n <= 0 then n := 1-n end; if (n mod 2) = 0 then n := n / 2 else n := 3*n + 1 end ; write(n);
46
23
th lu ng i u khi n
Bi t p 2
V th lu ng i u khi n Xy d ng bi u th c chnh quy bi u di n th
read(i); s := 0; while(i <= 3) do begin if a[i] > 0 thens := s + a[i]; i := i + 1; end
47
Ki m th d a trn TLK
Cc tiu chu n bao ph
Ph Ph Ph Ph t t t t tc tc tc tc cc nh/l nh cc cung cc quy t nh cc ng i
48
24
Ki m th d a trn TLK
Ph t t c cc nh/l nh
Cho php ph t t c cc nh/l nh
m i l nh c th c thi t nh t m t l n tiu chu n t i thi u
functionsum(x,y : integer) : integer; begin if (x = 0) then sum := x else sum := x + y end; Khi th c thi l trnh acd s pht hi n l i
49
Ki m th d a trn TLK
Ph t t c cc nh/l nh
H n ch c a tiu chu n
25
Ki m th d a trn TLK
Ph t t c cc cung
Ph t t c cc cung t nh t m t l n
ph t t cc gi tr ng sai c a m t bi u th c l-gc ph t t c cc cung ko theo ph t t c cc nh
if ((a < 2) and (b = a)) then x := 2 -a else x := a -2
51
D li u th DT1 = {a=b=1} v DT2 = {a=b=3} th a mn ph t t c cc cung, nhng khng ph t t c cc quy t nh, ch ng h n DT3 = {a=3, b=2}
Ki m th d a trn TLK
Ph t t c cc quy t nh
Ph t t c cc quy t nh c th a mn khi:
tiu chu n ph t t c cc cung c th a mn v m i bi u th c con c a bi u th c i u ki n c th v i t t c cc gi tr c th
N u (a AND b)
a = b = true a = b = false a = true, b = false a = false, b = true
52
26
Ki m th d a trn TLK
Ph t t c cc quy t nh
D li u th
DT1 = {a = b = 1} DT2 = {a = 1, b = 0} DT3 = {a = 3, b = 2} DT4 = {a = b = 3}
53
Ki m th d a trn TLK
Ph t t c cc quy t nh
H n ch
Khng pht hi n l i tr ng h p khng th c thi vng l p
read(inf, sup); i := inf; sum:= 0; while(i <= sup) do begin sum:= sum+ a[i]; i := i + 1; end; writeln(1/sum); D li u th DT1 = {a[1]=50, a[2]=60, a[3]=80, inf=1, sup=3} ph t t c cc cung/quy t nh, nhng khng pht hi n l i
54
27
Ki m th d a trn TLK
Ph t t c cc l trnh
M i l trnh ph i c th c thi t nh t m t l n G p kh khn khi s l n l p v h n
Ch th c hi n m t s l n l p nh t nh
Ho c ch th c hi n hai lo i l trnh
cc l trnh v t qua vng l p nhng khng l p cc l trnh ch l p n l n (ch ng h n n = 1)
55
Ki m th d a trn TLK
Ph t t c cc l trnh
D li u th
DT1 = {a[1]=50, a[2]=60, a[3]=80, inf=1, sup=3} DT2 = {a[1]=50, a[2]=60, a[3]=80, inf=3, sup=2}
56
28
Ki m th d a trn TLK
Bi t p
Xy d ng d li u th th a mn cc tiu chu n
ph t t c cc nh ph t t c cc cung ph t t c cc l trnh
if n 0 then n := 1-n end; if (n mod 2) = 0 then n := n / 2 else n := 3*n + 1 end ; write(n);
57
Ki m th d a trn TLK
Bi t p
Xy d ng d li u th th a mn cc tiu chu n ph t t c cc l trnh
function goodstring(var count : integer) : boolean; var ch : char; begin goodstring := false; count := 0; read(ch); if ch = a then begin read(ch) while(ch = b) or (ch = c) do begin count := count + 1; read(ch); end; if ch = x then goodstring = true; end; end;
58
29