Chương 5
K thut kim th hp en
5.1 Tng quát v kim th hp en
Đối tượng ₫ược kim th là 1 thành phn phn mm (TPPM).
TPPM có th là 1 hàm chc năng, 1 module chc năng, 1 phân h
chc năng… Nói chung, chiến lược kim th hp en thích hp
cho mi cp ₫ộ kim th t kim th ₫ơn v, kim th tích hp,
kim th h thng, kiếm th ₫ộ chp nhn ca người dùng.
Kim th hp en (black-box testing) là chiến lược kim th
TPPM da vào thông tin duy nht là các ₫ặc t v yêu cu chc
năng ca TPPM tương ng.
Đây là chiến lược kim th theo góc nhìn t ngoài vào, các
người tham gia kim th hp en không cn có kiến thc nào v
thông tin hin thc TPPM cn kim th (mã ngun ca thành phn
phn mm, thut gii ₫ược dùng, các d liu ₫ược x lý…).
Qui trình kim th hp en tng quát gm các bước chính :
Phân tích ₫ặc t v các yêu cu chc năng mà TPPM cn
thc hin.
Dùng 1 k thut ₫ịnh nghĩa các testcase xác ₫ịnh (s gii
thiu sau) ₫ể ₫ịnh nghĩa các testcase. Định nghĩa mi
testcase là xác ₫ịnh 3 thông tin sau :
à Giá tr d liu nhp ₫ể TPPM x lý (hoc hp l hoc
không hp l).
à Trng thái ca TPPM cn có ₫ể thc hin testcase.
à Giá tr d liu xut mà TPPM phi to ₫ược.
Kim th các testcase ã ₫ịnh nghĩa.
So sánh kết qu thu ₫ược vi kết qu k vng trong tng
testcase, t ó lp báo cáo v kết qu kim th.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vì chiến lược kim th hp en thích hp cho mi mc ₫ộ kim
th nên nhiu người ã nghiên cu tìm hiu và ₫ưa ra nhiu k
thut kim th khác nhau, chúng ta s chn ra 8 k thut có nhiu
ưu im nht và ₫ưc dùng ph biến nht, ó là :
1. K thut phân lp tương ₫ương (Equivalence Class
Partitioning).
2. K thut phân tích các giá tr biên (Boundary value
analysis).
3. K thut dùng các bng quyết ₫ịnh (Decision Tables)
4. K thut kim th các b n thn k (Pairwise)
5. K thut dùng bng chuyn trng thái (State Transition)
6. K tht phân tích vùng min (domain analysis)
7. K thut da trên ₫ặc t Use Case (Use case)
8. K thut dùng lược ₫ồ quan h nhân qu (Cause-Effect
Diagram)
5.2 K thut phân lp tương ₫ương
Tinh thn ca k thut này là c gng phân các testcase ra
thành nhiu nhóm (h) khác nhau : các testcase trong mi h s
kích hot TPPM thc hin cùng 1 hành vi. Mi nhóm testcase tha
mãn tiêu chun trên ₫ược gi là 1 lp tương ₫ương, ta ch cn xác
₫ịnh 1 testcase ₫ại din cho nhóm và dùng testcase này ₫ể kim
th TPPM. Như vy ta ã gim rt nhiu testcase cn ₫ịnh nghĩa
và kim th, nhưng cht lượng kim th không b gim sút bao
nhiêu so vi vét cn. Điu này là da vào k vng rt hp lý sau
ây :
Nếu 1 testcase trong lp tương ₫ương nào ó gây li
TPPM thì các testcase trong lp này cũng s gây li như
vy.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nếu 1 testcase trong lp tương ₫ương nào ó không gây
li TPPM thì các testcase trong lp này cũng s không gây
li.
Vn ₫ề kế tiếp là có cn ₫ịnh nghĩa các lp tương ₫ương ₫ại
din các testcase cha các giá tr không hp l theo ₫ặc t hay
không ? Điu này ph thuc vào tinh thn kim th :
Nếu ta dùng tinh thn kim th theo hp ₫ồng (Testing-by-
Contract) thì không cn ₫ịnh nghĩa các lp tương ₫ương
₫ại din các testcase cha các giá tr không hp l theo
₫ặc t vì không cn thiết.
Còn nếu ta dùng tinh thn kim th phòng v (Defensive
Testing), nghĩa là kim th hoàn ho, thì phi ₫ịnh nghĩa
các lp tương ₫ương ₫ại din các testcase cha các giá tr
không hp l theo ₫ặc t ₫ể xem TPPM phn ng như thế
nào vi nhng testcase này.
Thí d ta cn kim th 1 TPPM “qun lý ngun nhân lc” vi
₫ặc t chc năng như sau : mi ln nhn 1 h sơ xin vic, TPPM
s ra quyết ₫ịnh da vào tui ng viên theo bng sau :
Tui ng viên Kết qu
0-16 Không thuê
16-18 Thuê dng bán thi gian
18-55 Thuê toàn thi gian
55-99 Không thuê
Lưu ý rng bng ₫ặc t chc năng phía trên có li các giá tr
₫ầu và/hoc cui trong tng lut, và gi s chúng ta chưa phát
hin li này. Chúng ta s thy bng cách nào s phát hin d
dàng li này.
Phân tích ₫ặc t chc năng ca TPPM cn kim th ca slide
trước, ta thy có 4 lp tương ₫ương, mi lp cha các testcase ng
vi 1 chế ₫ộ x lý ca TPPM : không thuê vì quá tr, thuê dng
bán thi gian, thuê toàn thi gian, không thuê vì quá già.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
ng vi mi lp tương ₫ương, ta ₫ịnh nghĩa 1 testcase ₫ại
din, thí d ta chn 4 testcase sau :
1. Testcase 1 : {Input : 2 tui, Output : không thuê}
2. Testcase 2 : {Input : 17 tui, Output : thuê bán thi gian}
3. Testcase 3 : {Input : 35 tui, Output : thuê toàn thi gian}
4. Testcase 4 : {Input : 90 tui, Output : không thuê}
Trong thí d trên, thay vì phi kim th vét cn 100 testcase,
ta ch kim th 4 testcase chí phí gim rt ln, nhưng cht lượng
kim th hy vng không b gim sút là bao.
Ti sao chúng ta hy vng cht lượng kim th dùng lp tương
₫ương không gim sút nhiu ? Hãy xét on code mà nhng người
lp trình bình thường s viết khi x lý TPPM cn kim th ca slide
trước :
if (applicantAge >= 0 && applicantAge <=16) qd ="NO";
if (applicantAge >= 16 && applicantAge <=18) qd ="PART";
if (applicantAge >= 18 && applicantAge <=55) qd ="FULL";
if (applicantAge >= 55 && applicantAge <=99) qd ="NO";
góc nhìn kim th hp trng, nếu dùng 4 testcase ₫ại din
ca 4 lp tương ₫ương, ta s kim th ₫ược ph cp 3, cp ph
rt tt vì ã kim th 100% các lnh mã ngun, 100% các nhánh
quyết ₫ịnh.
Tuy nhiên nếu người lp trình hin thc như sau (rt cá bit vì
ây là người lp trình rt yếu tay ngh) :
if (applicantAge == 0) qd ="NO";
if (applicantAge == 16) qd ="PART";
if (applicantAge == 53) qd ="FULL";
if (applicantAge == 99) qd ="NO";
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thì nếu dùng 4 testcase ₫ại din ca 4 lp tương ₫ương, ta
mi kim th ₫ược 4/100 lnh mã ngun ca TPPM, mc ₫ộ ph
này chưa th nói lên gì nhiu v TPPM!
Làm sao chn testcase ₫ại din cho lp tương ₫ương ? Điu
này ph thuc vào kiu d liu nhp. Ta hãy ln lượt xét 1 s kiu
d liu nhp ph biến.
Thí d ta cn kim th 1 TPPM “xét ₫ơn cm c nhà” vi ₫ặc
t chc năng như sau : mi ln nhn 1 ₫ơn xin cm c, TPPM s
ra quyết ₫ịnh chp thun nếu 4 iu kin sau ₫ều tha mãn :
1. Thu nhp hàng tháng ca ₫ương ₫ơn nm trong khong t
1000$ ₫ến 83333$.
2. s nhà xin cm c t 1 ₫ến 5.
3. Đương ₫ơn phi là cá nhân, không ₫ược là hi, công ty hay
người ₫ược y nhim (partnership, trust, corporation).
4. Loi nhà cm c phi là loi nhà c ₫ịnh (single family,
condo, townhouse), không xét loi nhà di ₫ộng (treehouse,
duplex, mobile home).
1. Nếu lp tương ₫ương ₫ược xác ₫ịnh bi các d liu nhp là s
thc liên tc, thì ta chn 1 testcase ₫ại din có giá tr nhp hp l
nm trong khong liên tc các giá tr hp l, và nếu mun, 2
testcase miêu t giá tr không hp l nm phía dưới và phía trên
khong tr hp l (s testcase cho mi lp tương ₫ương là t 1 ti
3).
1000USD 83333USD
2000USD
300USD 90000USD
CuuDuongThanCong.com https://fb.com/tailieudientucntt