Chương 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 48 Chương 3 THIẾT KẾ CA KIỂM THỬ TRƯỜNG ĐẠI HỌC THƯƠNG MẠI Khoa HTTT Kinh tế và THMĐT Bộ môn Công nghệ thông tin Nội dung 1 Kiểm thử chức năng — Kiểm thử giá tr[.]
Trang 1Chương 3 THIẾT KẾ CA KIỂM THỬ
TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
Khoa HTTT Kinh tế và THMĐT
Bộ môn Công nghệ thông tin
Trang 2Nội dung
1. Kiểm thử chức năng
— Kiểm thử giá trị biên
— Kiểm thử lớp tương đương
— Kiểm thử bảng quyết định
2. Kiểm thử cấu trúc
— Kiểm thử luồng điều khiển
— Kiểm thử luồng dữ liệu
49
Trang 3Tổng quan
▪ Các chương trình có thể coi là một hàm (toán học)
– Các đầu vào chương trình là miền xác định của hàm
– Các đầu ra là miền giá trị của hàm
▪ Phân tích giá trị biên (boundary value analysis - BVA) là kỹ
thuật kiểm thử hàm phổ biến nhất
▪ Mục tiêu của kiểm thử hàm là sử dung kiến thức về hàm để xác định các ca kiểm thử
— Trước kia chủ yếu tập trung vào miền xác định, nhưng nay đã dựa trên cả miền giá trị của hàm để xác định ca kiểm thử
Trang 4Phân tích giá trị biên (BVA)
▪ Phân tích giá trị biên tập trung vào biên của miền xác định để xây dựng ca kiểm thử
▪ Lý do là lỗi thường xảy ra ở gần các giá trị biên này
▪ Chương trình viết bằng ngôn ngữ không có kiểm tra kiểu
mạnh càng cần kiểm thử giá trị biên
— Javascript, php, Visual Basic
51
Trang 5Đầu vào hợp lệ của chương trình P
▪ Từ đây chúng ta giả sử có chương trình P nhận hai biến đầu vào là y1 và y2 thỏa mãn a ≤ y1 ≤ b and c ≤ y2 ≤ d
P(y1, y2) where a <= y1 <= b, c <= y2 <= d
▪ Chương trình nhận n đầu vào sẽ có không gian đầu vào n
chiều
Trang 8Nội dung
1. Kiểm thử chức năng
— Kiểm thử giá trị biên
— Kiểm thử lớp tương đương
— Kiểm thử bảng quyết định
2. Kiểm thử cấu trúc
— Kiểm thử luồng điều khiển
— Kiểm thử luồng dữ liệu
55
Trang 9Kiểm thử lớp tương đương
— Hai lớp bất kỳ không giao nhau
• Không dư thừa
Trang 10Các lớp tương đương
▪ Ý tưởng của ECT là chỉ kiểm thử với một phần tử của mỗi
miền tương đương
— Giảm rất nhiều dư thừa tiềm tàng nếu các lớp tương đương được chọn hợp lý
▪ Mấu chốt là làm sao chọn được quan hệ tương đương để từ
đó xác định được các lớp tương đương (phân hoạch)
57
Trang 11Chọn phân hoạch
▪ Thường là “thủ công” (craft):
— Không dựa trên mã nguồn, chỉ dựa trên đặc tả
— Cần hiểu biết về miền xác định, thường không thể xác định dựa vào đặc tảthiết kế giao diện
— Phải hiểu đầu vào phụ thuộc nhau như thế nào
Trang 13Bài tập
▪ Ứng dụng kiểm thử lớp tương đương cho một số bài toán ví dụ
Trang 14Nội dung
1. Kiểm thử chức năng
— Kiểm thử giá trị biên
— Kiểm thử lớp tương đương
— Kiểm thử bảng quyết định
2. Kiểm thử cấu trúc
— Kiểm thử luồng điều khiển
— Kiểm thử luồng dữ liệu
61
Trang 15Bảng quyết định
▪ Yêu cầu chức năng có thể mô tả bằng bảng quyết định (DT)
▪ DT là một cách chính xác và gọn để mô tả logic phức tạp
— Gắn các điều kiện với các hành động tương ứng
— Giống lệnh if-then-else và switch-case
▪ DT có thể liên kết nhiều điều kiện độc lập với vài hành động một cách dễ hiểu
— Khác các cấu trúc điều khiển trong các ngôn ngữ lập trình
Trang 16Ví dụ về bảng quyết định
Điều kiện
Máy in không in Y Y Y Y N N N NĐèn đỏ nhấp nháy Y Y N N Y Y N NKhông nhận ra máy in Y N Y N Y N Y N
Hành động
Kiểm tra dây tín hiệu X XKiểm tra phần mềm in đã cài đúng X X X X
Khắc phục sự cố máy in
Trang 17Sử dụng bảng quyết định
▪ Để quan sát tất cả các điều kiện dễ dàng
▪ Có thể dùng để
— Mô tả logic phức tạp
— Sinh ca kiểm thử, còn gọi là kiểm thử dựa trên logic
▪ Kiểm thử dựa trên logic được xem là:
— Kiểm thử cấu trúc khi áp dụng cho các cấu trúc chương trình
• Vd luồng điều khiển
— Kiểm thử hàm khi áp dụng cho đặc tả
Trang 18Cấu trúc bảng quyết định
1 Các điều kiện 2 Các giá trị điều kiện
3 Hành động 4 Xảy ra hay không
1 Mỗi điều kiện tương ứng với một biến, một quan hệ, hoặc một
mệnh đề (predicate)
2 Các giá trị của điều kiện
– Chỉ là True/False – Bảng quyết định hạn chế – Một số giá trị – Bảng quyết định mở rộng – Giá trị không quan tâm
3 Mỗi hành động là một thủ tục hoặc thao tác phải thực hiện
4 Đánh dấu hành động có/không xảy ra
Trang 19Ví dụ bảng quyết định tính lương
Trang 20Bài tập
▪ Ứng dụng kiểm thử bảng quyết định cho một số bài toán ví dụ
67
Trang 21Nội dung
1. Kiểm thử chức năng
— Kiểm thử giá trị biên
— Kiểm thử lớp tương đương
— Kiểm thử bảng quyết định
2. Kiểm thử cấu trúc
— Tổng quan
— Kiểm thử luồng điều khiển
— Kiểm thử luồng dữ liệu
Trang 22• Test Coverage Metrics
• Basis Path Testing
• Guidelines and Observations
— Kiểm thử luồng dữ liệu
— Phương pháp lai & Thảo luận
69
Trang 23Kiểm thử cấu trúc
▪ Tiếng Anh có thể gọi với các tên: glass box, structural, clear box and open box testing
▪ Tiếng Việt còn gọi là kiểm thử hộp trắng
▪ Là kỹ thuật kiểm thử dựa trong đó tri thức tường minh về hoạt động bên trong của phần mềm được dùng để xây dựng các
ca kiểm thử
Trang 24Kiểm thử cấu trúc
▪ Kiểm thử cấu trúc dựa trên:
— Các định nghĩa chặt chẽ liên quan đến ngữ nghĩa của ngôn ngữ lập trình
• Luồng điều khiển, luồng dữ liệu, mục tiêu, tiêu chuẩn bao phủ
Trang 26Đồ thị chương trình
▪ Nếu i và j là hai đỉnh thì có một cạnh từ i đến j trong
đồ thị chương trình nếu và chỉ nếu lệnh ở đỉnh j có
thể chạy ngay sau (các) lệnh ở đỉnh i
▪ Nhóm các lệnh tạo thành một đỉnh trong đồ thị
chương trình gọi là khối cơ bản
▪ Dễ dàng xây dựng các khối cơ bản và tạo đồ thị
chương trình
73
Trang 27Đường đi đồ thị chương trình
Ví dụ đồ thị chương trình:
Trang 28Các tiêu chuẩn bao phủ luồng
điều khiển
Trang 29Ý tưởng của kiểm thử luồng dữ
liệu
▪ Kiểm thử luồng dữ liệu liên quan đến việc chọn đường đi với mục tiêu bao phủ các cặp gán (definition) và dùng (use) dữ liệu, được gọi là các tiêu chuẩn luồng dữ liệu
▪ Qui trình tổng quát của kiểm thử luồng dữ liệu là:
— Vẽ đồ thị luồng dữ liệu cho chương trình
— Chọn tiêu chuẩn kiểm thử luồng dữ liệu
— Xác định các đường đi trong đồ thị để thỏa mãn tiêu chuẩn lựa chọn defs, all-uses, all-P-uses/some-C-uses, v.v )
(all-— Tạo các ca kiểm thử cho các đường đi đã xác định
Trang 30Tổng kết
▪ Nên kết hợp áp dụng cả kiểm thử hộp đen và hộp trắng
▪ Các phương pháp kiểm thử hộp đen có thể bao phủ đường đi tốt nhưng thường có nhiều dư thừa
▪ Liệu chúng ta có thể có một độ đo để so sánh mức độ hiệu
quả của một kỹ thuật hộp đen với một kỹ thuật hộp trắng?
— Các phương pháp hộp đen được đo trên số ca kiểm thử tạo ra
— Các phương pháp hộp trắng được đo trên mức độ bao phủ đường đi chúngđạt được
Trang 31Bài tập
▪ Áp dụng các phương pháp thiết kế ca kiểm thử đã học vào
các chương trình được giao viết ở chương 1.