[r]
(1)Kiểm thử (9) Nguyễn Thanh Bình
Khoa Công nghệ Thông tin
Trường ðại học Bách khoa
ðại học ðà Nẵng
2
Nội dung
Giới thiệu kiểm thử
Kiểm thử tiến trình phát triển Kiểm thử hộp ñen
(2)3
Kiểm thử là ?
IEEE: Kiểm thử tiến trình vận hành
hệ thống thành phần ñiều kiện xác ñịnh, quan sát ghi nhận kết ñưa ñánh giá hệ thống thành phần
Myers: Kiểm thử tiến trình thực thi
chương trình với mục đích tìm thấy lỗi (The art of software testing)
Kiểm thử là ?
Kiểm thử ≠ Gở rối (debug)
Kiểm thử
• nhằm phát lỗi
Gởrối
• xác định chất lỗi ñịnh vịlỗi chương trình
(3)5
Các khái niệm
Một sai sót (error) một sựnhầm lẫn hay hiểu sai trình phát triển phần mềm người phát triển
Một lỗi (fault, defect) xuất phần mềm kết quảcủa sai sót
Một hỏng hóc (failure) kết quảcủa lỗi xuất làm cho chương trình khơng hoạt động hay hoạt động cho kết khơng mong
đợi
sai sót lỗi hỏng hóc
6
Các khái niệm
Dữliệu thử (test data)
dữliệu vào cần cung cấp cho phần mềm
trong thực thi
Kịch kiểm thử(test scenario)
bước thực khi kiểm thử
Phán xét kiểm thử (test oracle)
đánh giá kết quảcủa kiểm thử
• tự ñộng: chương trình
(4)7
Các khái niệm
Kiểm thửviên (tester)
người thực kiểm thử
Ca kiểm thử(test case)
tập liệu thử ñiều kiện thực thi kết mong ñợi
(5)9
Tiến trình kiểm thử
Kiểm thử thường bao gồm bước thiết kếcác ca kiểm thử
bước tạo dữliệu thử
• kiểm thửvới tất cảcác dữliệu vào cần thiết • khơng thểkiểm thử“vét cạn”
• chọn tập dữliệu thử đại diện từmiền dữliệu vào • dựa tiêu chuẩn chọn dữliệu thử
bước thực thi chương trình dữliệu thử
• cung cấp dữliệu thử
• thực thi
• ghi nhận kết
bước quan sát kết quảkiểm thử
• thực sau thực thi
• so sánh kết quảnhận ñược kết mong ñợi
10
(6)55
Kiểm thử dựa ðTLðK
Phủ tất lộ trình
Mỗi lộtrình phải thực thi lần
Gặp khó khăn sốlần lặp vơ hạn
Chỉthực sốlần lặp ñịnh
Hoặc chỉthực hai loại lộtrình
• lộtrình vượt qua vịng lặp khơng lặp
• lộtrình chỉlặp n lần (chẳng hạn n = 1)
Kiểm thử dựa ðTLðK
Phủ tất lộ trình
Dữliệu thử
DT1 = {a[1]=50, a[2]=60, a[3]=80, inf=1, sup=3}
(7)57
Kiểm thử dựa ðTLðK
Bài tập
Xây dựng dữliệu thửthỏa mãn tiêu chuẩn phủtất cảcác ñỉnh
phủtất cảcác cung phủtất cảcác lộtrình
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);
58
Kiểm thử dựa ðTLðK
Bài tập
Xây dựng dữliệu thửthỏa mãn tiêu chuẩn phủ tất cảcác lộtrình
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’) begin count := count + 1;
read(ch); end;
if ch = ‘x’ then goodstring = true; end;