Lý thuyết về kiểm thử

Download Report

Transcript Lý thuyết về kiểm thử

Kiểm thử và đảm bảo chất
lượng phần mềm
Lý thuyết
1
Nội dung
• Lý thuyết về kiểm thử
– Goodenough và Gerhart
– Weyuker và Ostrand
– Gourlay
2
Goodenough và Gerhart
• Đề xuất năm 1975 trong một bài báo:
– Đưa ra một số khái niệm cơ bản về kiểm thử
– Xác định một số kiểu lỗi chương trình
– Đưa ra một phương pháp lựa chọn ca kiểm thử
3
Khái niệm cơ bản
Miền đầu vào D
d
T
T là miền con của D
Chương trình
P
P(d)
P(d) là kết quả
4
Goodenough và Gerhart
• Hai ông đã đưa ra một câu hỏi mang tính đột phá
trong nghiên cứu về KTPM:
“Một tiêu chuẩn kiểm thử là gì?”
• Từ đó đã mở ra một hướng nghiên cứu về tiêu chuẩn
kiểm thử.
5
Phương pháp
• Giả thiết nguyên nhân chính của lỗi gồm:
– Hiểu chưa đầy đủ tất cả các tình huống mà chương trình sẽ gặp
phải
– Không tính hết một số tổ hợp các điều kiện mà cần xử lý đặc biệt
• Dữ liệu kiểm thử: giá trị thực từ miền đầu vào của chương
trình (D) thỏa mãn một tiêu chuẩn lựa chọn kiểm thử
• Khẳng định kiểm thử: mô tả tổ hợp điều kiện liên quan
đến hoạt động đúng của chương trình
• Mô tả cần phải kiểm thử khía cạnh nào của chương trình
6
Phân hoạch tự nhiên
• Không gian đầu vào thường có một phân
hoạch tự nhiên thành các lớp tương đương,
E(C’), được định nghĩa:
– E(C’) chứa các d thuộc D thỏa mãn các mệnh đề
thuộc về C’
7
Phân loại sai trong chương trình
• Sai logic: Vấn đề với chương trình, không phải tài
nguyên
– Sai yêu cầu
– Sai thiết kế
– Sai lập trình
•
•
•
•
Thiếu đường đi theo luồng điều khiển
Thực hiện theo đường đi không đúng
Thiếu hoặc hành động sai
Sai về hiệu năng
8
Lý thuyết của Gourlay
• Giả sử đặc tả đúng và là tài liệu duy nhất để khẳng định
sự đúng đắn của chương trình. Chương trình là đúng
nếu nó thỏa mãn đặc tả của nó.
• Lý thuyết của Gourlay nhằm thiết lập quan hệ giữa ba
tập hợp: đặc tả S, chương trình P, và bộ kiểm thử T
• Mệnh đề OK được mở rộng như sau:
– OK(p, t, s) : là đúng nếu kết quả kiểm thử p với t là thành
công theo đặc tả s.
– Chúng ta nhắm đến việc làm mệnh đề OK(p, t, s) đúng với
mọi t trong một tập con T’ của T.
• Khi đó chương trình là đúng với đặc tả, nếu OK(p, t, t)
với mọi t trong T.
9
Phương pháp kiểm thử
• Phương pháp kiểm thử có thể xem là một hàm
M: P X S  2^T
với T là tập tất cả ca kiểm thử
• Tức là trong trường hợp tổng quát, một phương pháp
kiểm thử sẽ lấy chương trình p và đặc tả s để tạo ra các ca
kiểm thử t.
• Các phương pháp kiểm thử có thể là:
– Phụ thuộc chương trình T = M(P)  (hộp trắng)
– Phụ thuộc đặc tả T = M(S)  (hộp đen)
– Phụ thuộc mong muốn T = M(S’), trong đó S’ là mong muốn của
khách hàng hoặc là góc nhìn của khách hàng về đặc tả (kiểm thử
chấp thuận)
10
Độ mạnh của phương pháp kiểm thử
• Bài toán cơ bản trong kiểm thử là đánh giá các
phương pháp kiểm thử xem cái nào hơn cái nào
trong việc phát hiện lỗi
• Gọi M, N là hai phương pháp kiểm thử và FM, FN là
các sai sót chúng tìm được
• Để M không kém N thì khi N tìm được 1 lỗi, M cũng
phát hiện được lỗi đó. Nói cách khác, FN là tập con
của FM
11
Độ mạnh của phương pháp kiểm thử
• Gọi TN và TM là các tập ca kiểm thử do phương
pháp N và M tạo ra. Độ mạnh của N và M có thể
chia thành hai trường hợp:
– Trường hợp 1: TN là tập con của TM. Có nghĩa M
không kém N
– Trường hợp 2: TN và TM giao nhau, nhưng TN không
là tập con của TM. Có nghĩa là TM không hoàn toàn
chứa TN và để so sánh khả năng phát hiện sai sót
chúng ta chạy chương trình P với cả TN và TM. Gọi FN
và FM là tập sai sót tìm thấy bởi TN và TM, nếu FN là
tập con của FM thì ta nói M không kém N
• Có thể minh họa bằng hình sau:
12
Độ mạnh của phương pháp kiểm thử
S
N
TM
FM
P
TN
P
FN
M
Trường hợp 1
S
P
N
M
TN
FM
TM
P
Trường hợp 2
FN
13