Bài giảng Công nghệ phần mềm - Chương 9: Kiểm thử - Nguyễn Thanh Bình

Kim th(9)  
Nguyn Thanh Bình  
Khoa Công nghꢁꢂThôngꢂtin  
Trưꢃng ðꢄi hc Bách khoa  
ðꢄi hc ðà Nng  
Ni dung  
Gii thiu vkim thꢁ  
Kim thtrong tin trình phát trin  
Kim thhp ñen  
Kim thhp trng  
2
1
Kim thlà gì ?  
IEEE: Kim thlà tin trình vn hành  
hthng hoc thành phn dưꢃi  
nhng ñiu kin xác ñꢍnh, quan sát  
hoc ghi nhn kt quꢏñưaꢏraꢏñánh  
giá vhthng hoc thành phn ñó  
Myers: Kim thlà tin trình thc thi  
chương trình vi mc ñích tìm thy li  
(The art of software testing)  
3
Kim thlà gì ?  
Kim thGri (debug)  
Kim thꢁ  
nhm phát hin li  
Gri  
xác ñꢍnh bn cht li vàꢏñꢍnh vli trong  
chương trình  
tin hành sa li  
4
2
Các khái nim  
Mt sai sót (error) là mt snhm ln hay mt sꢐ  
hiu sai trong quá trình phát trin phn mm ca  
ngưꢘi phát trin  
Mt li (fault, defect) xut hin trong phn mm  
như là kt quca mt sai sót  
Mt hng hóc (failure) là kt quca mt li xut  
hin làm cho chương trình không hot ñꢂng ñưꢚc  
hay hot ñꢂng nhưng cho kt quꢎꢏkhôngꢏnhưꢏmongꢏ  
ñꢚi  
sai sót  
li  
hng hóc  
5
Các khái nim  
Dliu th(test data)  
dliu vào cn cung cp cho phn mm  
trong khi thc thi  
Kch bn kim th(test scenario)  
các bưꢃc thc hin khi khi kim thꢁ  
Phán xét kim th(test oracle)  
ñánh giá kt quca kim thꢁ  
tꢐꢏñng: chương trình  
thꢗꢏcông: con ngưꢘi  
6
3
Các khái nim  
Kim thviên (tester)  
ngưꢘi thc hin kim thꢁ  
Ca kim th(test case)  
tp dliu thꢁ  
ñiu kin thc thi  
kt quꢎꢏmongꢏñꢚi  
7
Các khái nim  
8
4
Tin trình kim thꢁ  
Kim thꢁꢏthưꢘng bao gm các bưꢃc  
thit kcác ca kim thꢁ  
bưꢃc to dliu thꢁ  
kim thvi tt ccác dliu vào là cn thit  
không thkim th“vét cn”  
chn tp các dliu thꢁꢏñi din tmin dliu vào  
da trên các tiêu chun chn dliu thꢁ  
bưꢃc thc thi chương trình trên dliu thꢁ  
cung cp dliu thꢁ  
thc thi  
ghi nhn kt quꢎ  
bưꢃc quan sát kt qukim thꢁ  
thc hin trong khi hoc sau khi thc thi  
so sánh kt qunhn ñưꢚc và kt quꢎꢏmongꢏñꢚi  
9
Tin trình kim thꢁ  
10  
5
Khóꢏkhănꢏcꢗa kim thꢁ  
Liên quan ñꢆn tin trình phát trin  
gm nhiu giai ñon phát trin  
cái ra ca mt giai ñon là cái vào ca giai ñon khác  
mt mát thông tin  
Vmt con ngưꢘi  
thiu ñào to  
ít chú trng vai trò kim thꢁ  
Vmt kthut  
không tn ti thut toán tng quát có thchng minh  
sꢐꢏñúng ñꢇn hoàn toàn ca bt kmt chương trình  
nào  
11  
Ti sao kim thꢁ  
Hp thc hóa (validation)  
chra rng sn phm ñáp ng ñưꢚc yêu cu ngưꢁi  
sdng  
Xác minh (verification)  
chra rng sn phm tha mãn ñꢄc tyêu cu  
Phân bit hp thc hóa và xác minh  
“Verification: Are we building the product right ?”  
“Validation: Are we building the right product ?”  
12  
6
Kim thtrong tin trình  
phát trin  
Các kthut kim thꢁ  
kthut kim thtĩnh (static testing)  
kthut kim thꢁꢏñꢂng (dynamic testing)  
kim thhp ñen (black-box testing)  
kthut kim thchc năng (functional testing)  
kim thhp trng (white-box testing)  
kthut kim thcu trúc (structural testing)  
Các hot ñꢂng kim th/chin lưꢚc kim thꢁ  
kim thꢁꢏñơnꢏv(unit testing)  
kim thtích hp (integration testing)  
kim thhp thc hóa (validation testing)  
kim thhi quy (regression testing)  
13  
Kim thtrong tin trình  
phát trin  
Kim thꢁꢏñơnꢏvꢍ (unit testing)  
kim thmi ñơn vphn mm (mô-ñun)  
sdng kthut kim thhp ñen  
dliu thꢁꢏñươcꢏtꢙo ra da trên tài liu thit  
kꢆ  
có thsdng ckim thhp trng và  
kim thtĩnh  
phn mm yêu cu cht lưꢚng cao  
thưꢘng ñưꢚc thc hin trên phn cng phát  
trin phn mm  
14  
7
Kim thtrong tin trình  
phát trin  
Kim thtích hp (integration testing)  
sau khi ñã thc hin kim thꢁꢏñơnꢏvꢍ  
ghép ni các ñơn v/thành phn phn mm  
kim thsghép ni, trao ñꢠi dliu gia  
các ñơn v/thành phn  
sdng kthut kim thhp ñen  
môt sꢉꢏtrưng hp, sdng kthut kim  
thhp trng  
chi phí cao, khóꢏkhăn  
dliu thꢁꢏñưc to ra da trên thit kꢆ  
tng thꢀ  
15  
Kim thtrong tin trình  
phát trin  
Kim thtích hp (2)  
cn xây dng thêm  
nút trám (stub): các thành phn khác mô  
phng các thành phn phn mm chưa  
ñưꢚc tích hp  
trình ñiu khin (driver): các thành phn  
to ra các dliu vào cho mt vài các  
thành phn phn mm trong tp hp  
ñang ñưꢚc kim thꢁ  
16  
8
Kim thtrong tin trình  
phát trin  
Kim thtích hp (3)  
17  
Kim thtrong tin trình  
phát trin  
Kim thtích hp (4)  
chin lưꢚc ttrên xung (top-down)  
kim thtích hp các thành phn chính trưꢃc, sau ñó thêm  
vào các thành phn ñưꢚc gi trc tip bi các thành phn va  
kim thꢁ  
cho phép xác ñꢍnh sm các li vkin trúc  
các bdliu thcó thꢀꢏñưꢚc tái sdng cho các bưꢃc tip  
theo  
tuy nhiên chin lưꢚc này ñòi hi phi xây dng nhiu nút trám  
chin lưꢚc tꢈꢊdưꢋi lên (bottom-up)  
kim thcác thành phn không gi các thành phn khác, sau  
ñó thêm vào các thành phn gi các thành phn va kim thꢁ  
ít sdng các nút trám  
nhưng li xác ñꢍnh li trꢤꢏhơn  
18  
9
Kim thtrong tin trình  
phát trin  
Kim thhp thc hóa (validation testing)  
còn gi là kim thhthng (system  
testing)  
thc hin sau khi kim thtích hp kt thúc  
chng minh phn mm thc hin ñúng  
mong ñꢚi ca ngưꢘi sdng  
da vào yêu cu ngưꢘi sdng  
chsdng kthut kim thhp ñen  
nên thc hin trong môi trưꢘng mà phn  
mm sꢥꢏñưc sdng  
19  
Kim thtrong tin trình  
phát trin  
Kim thhi quy (regression testing)  
phn mm sau khi ñưa vào sdng, có thꢀ  
có các chnh sa  
có thphát sinh li mi  
cn kim thli: kim thhi quy  
thưꢘng tái sdng các bdliu thꢁꢏñãꢏsꢁ  
dng trong các giai ñon trưꢃc  
20  
10  
Kim thtrong mô hình V  
ðꢊc tyêu cu  
Kim thhp thc hóa  
Thit kkin trúc  
Kim thtích hp  
Thit kchi tit  
Kim thꢁꢏñơnꢏvꢍ  
Mã hóa  
21  
Các kthut kim thꢁ  
kthut kim thtĩnh (static testing)  
không thc thi chương trình  
kthut kim thꢁꢏñꢂng (dynamic  
testing)  
kim thhp ñen (black-box testing)  
kthut kim thchc năng (functional  
testing)  
kim thhp trng (white-box testing)  
kthut kim thcu trúc (structural testing)  
22  
11  
Kim thtĩnh  
Thanh tra mã ngun (code inspection)  
Chng minh hình thc  
Thc thi hình thc (symbolic execution)  
ðánh giáꢏñꢂ phc tp  
McCabe  
Nejmeh  
23  
Kim thhp ñen  
Inputs causing  
anomalous  
behaviour  
Input test data  
I
e
System  
Outputs which reveal  
the presence of  
defects  
Output test results  
O
e
24  
12  
Kim thhp ñen  
Chcn da vào ñꢊc tꢎꢏchươngꢏtrình  
Xây dng dliu thꢁꢏtrưꢃc khi mã hóa/lp  
trình  
Thưꢘng phát hin các li ñꢊc tyêu cu,  
thit kꢆ  
Ddàng thc hin  
Chi phí thp  
25  
Kim thhp ñen  
Kim thgiá trbiên (boundary value  
analysis)  
Kim thlp tương ñương (equivalence  
class testing)  
Kim thngu nhiên (random testing)  
ðꢛ thnhân-qu(cause-efect graph)  
Kim thcú pháp  
26  
13  
Kim thgiá trbiên  
Cơ sꢔ  
li thưꢘng xut hin gn các giá trbiên ca min dũ  
liu  
Tp trung phân tích các giá trbiên ca min dliu  
ñꢀ xây dng dliu kim thꢁ  
Nguyên tc: kim thcác dliu vào gm  
giá trnhnht  
giá trgn kln hơn giá trnhnht  
giá trbình thưꢘng  
giá trgn knhꢣꢏhơnꢏgiá trln nht  
giá trln nht  
27  
Kim thgiá trbiên  
28  
14  
Kim thgiá trbiên  
Nguyên tc chn dliu thꢁ  
Nu dliu vào thuc mt khong, chn  
2 giá trbiên  
4 giá tr= giá trbiên ± sai snhnht  
Nu giá trvào thuc danh sách các giá tr, chn  
phn tthnht, phn tthhai, phn tkcui và phn tꢁ  
cui  
Nu dliu vào là ñiu kin ràng buc sgiá tr, chn  
sgiá trti thiu, sgiá trti ña và mt scác sgiá trꢍ  
không hp lꢄ  
Tvn dng khꢎꢏnăngꢏvà thc tꢆꢏñꢀ chn các giá trbiên  
cn kim thꢁ  
29  
Kim thgiá trbiên  
d(1)  
Chương trình nhn vào ba sthc, kim tra ba sꢉ  
thc có làꢏñꢂ dài ba cnh mt tam giác. Nu làꢏñꢂ dài  
ba cnh ca mt tam giác, thì kim tra xem ñó là tam  
giác thưꢘng, cân,ꢏñꢅu cũng như kim tra ñó là tam  
giác nhn, vuông hay tù.  
30  
15  
Kim thgiá trbiên  
Ví d(2)  
Dliu thꢁ  
1, 1, 2  
0, 0, 0  
Không là tam giác  
Chmt ñim  
4, 0, 3  
Mt cnh bng không  
Gn là mt tam giác  
Tam giác rt nhꢣ  
Tam giác rt ln  
Tam giác gn ñꢅu  
Tam giác gn cân  
Tam giác giác gn vuông  
Bn giá trꢍ  
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
Chmt giá trꢍ  
Dliu vào rng  
Giá trâm  
-3, -3, 5  
31  
Kim thlp tương ñương  
Ý tưꢔng  
phân hoch min  
dliu vào thành  
các lp các dꢌ  
liu có quan hꢄ  
vi nhau  
mi lp dùng ñꢀ  
kim thmt  
chc năng, gi là  
lp tương ñương  
32  
16  
Kim thlp tương ñương  
Ba bưꢃc  
ñꢉi vi mi dliu vào, xác ñꢊnh các lp  
tương ñương tmin dliu vào  
chn dliu ñꢄi din cho mi lp tương  
ñương  
kt hp các dliu thbi tích ðꢅ-các ñꢀ  
ti ra bdliu kim thꢁ  
33  
Kim thlp tương ñương  
Nguyên tc phân hoch các lp tương ñương  
Nu dliu vào thuc mt khong, xây dng  
1 lp các giá trln hơn  
1 lp các giá trnhꢣꢏhơn  
n lp các giá trhp lꢄ  
Nu dliu là tp hp các giá tr, xây dng  
1 lp vi tp rng  
1 lp quá nhiu các giá trꢍ  
n lp hp lꢄ  
Nu dliu vào là ñiu kin ràng buc, xây dng  
1 lp vi ràng buc ñưꢚc tha mãn  
1 lp vi ràng buc không ñưꢚc tha mãn  
34  
17  
Kim thlp tương ñương  
Ví dꢑ  
Bài toán tam giác  
Nhn  
6,5,3  
6,1,6  
4,4,4  
Vuông  
5,6,10  
7,4,4  
Tù  
3,4,5  
2,2,2  
không thꢀ  
Thưꢘng  
Cân  
ðꢅu  
không thꢀ  
Không là tam giác  
-1,2,8  
35  
Bài tp  
Kim thgiá trbiên  
Vit mt chương trình thng kê phân tích mt tp  
cha tên vàꢏñim ca sinh viên trong mt năm hc.  
Tp này cha nhiu nht 100 trưꢘng. Mi trưꢘng  
cha tên ca mi sinh viên (20 ký t), gii tính (1 ký  
t) vàꢏñiꢀm ca 5 môn hc (tꢝꢏ0ꢏñꢆn 10). Mc ñích  
chương trình:  
tính dim trung bình mi sinh viên  
tính ñim trung bình chung (theo gii tính et theo môn  
hc)  
tính ssinh viên lên lp (ñim trung bình trên 5)  
Xây dng dliu thꢁꢏchoꢏchươngꢏtrình trên bi kim  
thgiá trbiên  
36  
18  
Bài tp  
Kim thlp tương ñương  
Vit chương trình dch, trong ñó có câu lnh FOR,ꢏ  
ñꢊc tcâu lnh FOR như sau: “Lnh FOR chchp  
nhn mt tham sduy nht là bin ñꢆm. Tên bin  
không ñưꢚc sdng quá hai ký tkhác rng. Sau ký  
hiu = là cn dưꢃi và cn trên ca bin ñꢆm. Các cn  
trên và cn dưꢃi là các sꢉꢏnguyênꢏdươngꢏvàꢏñưc  
ñꢊt gia tkhóa TO”.  
Xây dng dliu thꢁꢏñꢀ kim thcâu lnh FOR theo  
kthut kim thlp tương ñương  
37  
Kim thhp trng  
Da vào mã ngun/cu trúc chương trình  
Xây dng dliu thsau khi mã hóa/lp  
trình  
Thưꢘng phát hin các li lp trình  
Khó thc hin  
Chi phí cao  
38  
19  
Các kthut kim thhp  
trng  
Kim thda trên ñꢛ thlung ñiu khin  
Kim thda trên ñꢛ thlung dliu  
Kim thꢁꢏñꢂt bin (mutation testing)  
39  
ðꢛ thlung ñiu khin  
ðꢛ thlung ñiu khin (Control Flow Graph -ꢏ  
ðTLðK) làꢏñꢛ thꢏhưꢃng, biu din mt chương  
trình  
ñꢢnh: biu din lnh tun thay khi lnh  
cung: biu din các rnhánh  
mt ñꢢnh vào và mt ñꢢnh ra ñưꢚc thêm vào ñꢀ biu  
din ñim vào và ra ca chương trình  
Ltrình (path) trong ðTLðK  
xut phát tꢝꢏñꢢnh vào ñi qua các ñꢢnh vàꢏcungꢏtrongꢏ  
ñꢛ thvà kt thúc ti ñꢢnh ra  
40  
20  
Tải về để xem bản đầy đủ
pdf 29 trang baolam 27/04/2022 7120
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chương 9: Kiểm thử - Nguyễn Thanh Bình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_chuong_9_kiem_thu_nguyen_thanh.pdf