kiểm thử 2
§¹i häc Quèc gia Hμ néi - §¹i häc c«ng nghÖ
Bé m«n C«ng nghÖ phÇn mÒm
BÀI GiẢNG CAO HOC
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
VÀ KiỂM THỦ
Email:
mobile:
0912.505.291
NguyÔn V¨n Vþ
Hà nội - 2005
Phần II
Nguy
ễ
n V
ă
n V
ỵ
KIỂM THỬ PHẦN MỀM
2005
Bộ môn CNFM – Đại học Công nghệ
2
Nội dung – Tài liệu
Nguy
ễ
n V
ă
n V
ỵ
Khái niệm kiểm thử
Các loại kiểm thử
Thẩm định và xác minh
Roger S. Pressman.
Software Engineering, a Practitioner’s Approach.
3th
Edition, McGraw-Hill, 1992, Bản dich của Ngô Trung vIệt,
Phần 4, tập 4 (Chương
17, 18, 23 –bản 2001)
Ian Sommerville.
Software Engineering,
Sixth Edition, Addion Wesley, 2001,
Phần 5 và 6. chương 20
E.M.Bennatan,
Software Project Management : a practitioner’s approach,
McGRAW-HILL Book Company, 2001
2005
Bộ môn CNFM – Đại học Công nghệ
3
A. Khái niệm về kiểm thử phần mềm
Nguy
ễ
n V
ă
n V
ỵ
Kiểm thử FM là
yếu tố quyết định
của SQA, là
khâu
điển hình của rà soát
đặc tả, thiết kế, lập mã.
kiểm thử theo Glen Myers:
Là quá trình vận hành
chương trình để tìm ra lỗi.
Cần vận hành như thế nào để:
hiệu suất tìm ra lỗi là cao nhất ?
chí phí (thời
gian, công sức)
ít nhất?
Câu hỏi:
Lý do? Vai trò? Mục tiêu? Quan niệm? Lợi
ích khác? Loại-mức? Dòng thông tin? Tiến trình ?
2005
Bộ môn CNFM – Đại học Công nghệ
4
a. Lý do kiểm thử phần mềm
Nguy
ễ
n V
ă
n V
ỵ
Muốn nhìn thấy
phần mềm như một phần tử của
hệ thống hoạt động
(xem sản phẩm)
Hạn chế chi phí
cho các thất bại do lỗi gây ra sau
này
(hiệu quả)
Có kế hoạch tốt
nâng cao chất lượng suốt quá
trình phát triển
(giải pháp).
2005
Bộ môn CNFM – Đại học Công nghệ
5
b.Vai trò kiểm thử phần mềm
Nguy
ễ
n V
ă
n V
ỵ
Chi phí của kiểm thử chiếm:
40%
tổng công sức
phát triển
≥
30% tổng thời gian
phát triển
Với các phần mềm có ảnh hưởng tới sinh mạng, chi
phí có thể gấp
từ 3 đến 5 lần tổng các chi phí khác
cộng lại.
Kiếm thử tốt sẽ:
Giảm chi phí phát triển
Tăng độ tin cậy của sản phẩm phần mềm
2005
Bộ môn CNFM – Đại học Công nghệ
6
c. Mục tiêu kiểm thử phần mềm
Nguy
ễ
n V
ă
n V
ỵ
Mục tiêu trước mắt:
tạo ra các ca kiểm thử để
chỉ ra lỗi
của phần mềm (tức
là
“đánh đổ” phần
mềm)
Nghe ra có vẻ
mang tính “phá hoại”,
những vấn đề về tâm lý.
dễ gây ra
Mục đích cuối cùng:
có một chương trình tốt, chi
phí ít
xây dựng
2005
Bộ môn CNFM – Đại học Công nghệ
7
d. Quan niệm về một kiểm thử tốt
Nguy
ễ
n V
ă
n V
ỵ
Khi kiểm thử, ta tiến hành những ca kiểm thử
khác nhau:
Ca kiểm thử tốt
có xác suất cao tìm ra một lỗi
chưa
được phát hiện.
Ca kiểm thử thắng lợi
làm lộ ra ít nhất một lỗi
còn
chưa được phát hiện.
2005
Bộ môn CNFM – Đại học Công nghệ
8
e. Lợi ích khác của kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Ca kiểm thử thắng lợi
làm lộ ra khiếm khuyết,
đồng
thời mang lại các
lợi ích phụ
là t
huyết minh:
Chức năng
tương ứng
với đặc tả
(xác minh),
Thực thi
phù hợp
yêu cầu
&
đặc tả
(thẩm định, xác
minh)
Cung cấp các chỉ số
độ tin cậy
&
chất lượng
(thẩm định)
.
Tuy nhiên, kiểm thử không thể khẳng định rằng phần
mềm không có khiếm khuyết
2005
Bộ môn CNFM – Đại học Công nghệ
9
g. Mô hình chữ V - Các mức kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Phân tích
yêu cầu
Đặc tả
phần mềm
Thiết kế
kiến trúc
Thiết kế
chi tiết
Lập
trình
2005
test chấp
nhận
test hệ
thống
test tích
hợp
test đơn
vị
rà soát
mã
Thẩm
định
Xác
minh
Bộ môn CNFM – Đại học Công nghệ
10
g. Các mức – loại hình kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Kiểm thử đơn vị
(unit testing)
Kiểm thử tích hợp
(integration testing)
Kiểm thử hệ thống
(system testing)
KT chức năng
(functional test: system&interface)
KT phục hồi
(recovery test)
KT chịu tải
(extra: stress & load test)
KT thi hành
(performance test)
KT an ninh
(security test)
2005
Bộ môn CNFM – Đại học Công nghệ
11
g. Các loại hình kiểm thử
(t)
Nguy
ễ
n V
ă
n V
ỵ
Kiểm thử chấp nhận
(aceptance testing)
Kiểm thử alpha
(alpha testing)
Người dùng thực hiện
Trong môi trường được quản lý
Kiểm thử beta
(beta testing)
Người dùng thực hiện
Trong môi trường thực
2005
Bộ môn CNFM – Đại học Công nghệ
12
h. Phương pháp và chiến lược kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Hai phương pháp phổ biến:
Kiểm thử hộp trắng (white
box)
Kiểm thử hộp đen (black
box)
Các chiến lươc Kiểm thử
Ứng dụng cho
các mức
&
loại kiểm thử
#.
Một số chiến lược:
Kiểm thử từ trên xuống/dưới lên/lai (tích hợp)
Kiểm thử vụ nổ lớn (big bang –tích hợp)
Kiểm thử hồi quy (tích hợp)
Kiểm thử luồn sợi (hệ thời gian thực)
2005
Bộ môn CNFM – Đại học Công nghệ
13
i. Biểu đồ dòng thông tin kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Sơ đồ
dòng thông tin
của tiến trình kiểm thử
Phần mềm
chỉnh sửa
Dự đoán
độ tin cậy
Đặc tả
phần mềm
Cấu hình
kiểm thử
kiểm thử
gỡ lỗi
xây dựng
Mô hình
đô tin cậy
đánh giá
Phần
mềm
chưa
tin
cậy
Phần mềm
tin cậy
2005
Bộ môn CNFM – Đại học Công nghệ
14
k. Tiến trình thực hiện kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Kế hoạch
kiểm thử
Lập kế kế
hoạch KT
Các ca
kiểm thử
Thiết kế
Ca kiểm thử
Dữ liệu
kiểm thử
Chuẩn bị
dữ liệu,đk
Kết quả
kiểm thử
Báo cáo
kiểm thử
So sánh,
đánh giá
Tiến hành
kiểm thử
Yêu cầu,
mã nguồn
Nhật ký
2005
Bộ môn CNFM – Đại học Công nghệ
15
m. Khái niệm về thiết kế ca kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Mục tiêu thiết kế ca kiểm thử nhằm:
tìm ra nhiều sai
nhất
với
nỗ lực
&
thời gian nhỏ nhất.
Trong các thập kỷ 80-90 đã nghiên cứu
nhiều
loại phương pháp thiết kế
ca kiểm thử.
Các
phương pháp tốt
phải cho một cơ chế:
bảo đảm tính đầy đủ
(không sót phần nào) và
cung cấp
khả năng thật sự phát hiện được các sai
2005
Bộ môn CNFM – Đại học Công nghệ
16
B. Kiểm thử hộp trắng
Nguy
ễ
n V
ă
n V
ỵ
a. Khái niệm kiểm thử hộp trắng
Đối tượng:
mã nguồn
Mức:
các mô đun đơn vị
Nội dung là Khám xét:
các chi tiết thủ tục (thuật
toán)
con đường logic (luồng
điều khiển)
các trạng thái của chương trình (dữ
liệu).
2005
Bộ môn CNFM – Đại học Công nghệ
17
a.
Khái niệm kiểm thử hộp trắng
Nguy
ễ
n V
ă
n V
ỵ
Vấn đề, trở ngai:
Số con đường lôgíc là rất lớn:
một chương trình
nhỏ:
với 100 dòng PASCAL
với một vòng lặp
•
số con đường logic có thể tới:1014.
•
cần 3170 năm
để kiểm thử tất mọi con đường
và mọi ràng buộc lôgic trên nó!
Nhiều trạng thái dữ liệu khác nhau:
đại lượng, giá
trị, sự thay đổi trong tiến trình, sự kết hợp
2005
Bộ môn CNFM – Đại học Công nghệ
18
b. Nội dung cần kiểm thử hộp trắng
Nguy
ễ
n V
ă
n V
ỵ
kiểm thử cái gì?
a.
b.
c.
d.
e.
mọi lệnh (đầy
đủ)
mọi điều kiện lôgic có thể (rẽ
nhánh)
mọi chu trình trong chương trình (lặp
lại)
mọi cấu trúc dữ liệu được dùng (dữ
liệu)
mọi tiến trình từ đầukết thúc(từng
luồng điều khiển)
dung của nó? Chiến lược sử dụng?
Câu hỏi:
Yêu cầu? Lý do? Các kỹ thuật dùng và nội
2005
Bộ môn CNFM – Đại học Công nghệ
19
c. Yêu cầu kiểm thử hộp trắng
Nguy
ễ
n V
ă
n V
ỵ
Yêu cầu đặt ra:
Mọi con đường độc lập
trong một môđun cần
được thực hiện ít nhất một lần.
Mọi ràng buộc logic
được thực hiện cả hai phía
đúng (true) & phía sai (false).
Tất cả các vòng lặp
ở biên của nó & cả các biên
vận hành phải được thực hiên.
Mọi cấu trúc dữ liệu nội tại
được dùng để bảo
đảm hiệu lực thi hành của nó
2005
Bộ môn CNFM – Đại học Công nghệ
20
d. Lý do kiểm thử hộp trắng
Nguy
ễ
n V
ă
n V
ỵ
Vì sao tốn tiền cho kiểm thử hộp trắng?
Các
sai logic
&
giả thiết không đúng tỷ lệ nghịch
với xác suất
để một con đường logic được thi
hành.
Thực tế:
mọi con đường lôgic đều có thể được thi
hành
trên 1 cơ sở nhất định
Có những sai chính tả
có thể là ngẫu nhiên trên
đường ta không kiểm tra.
2005
Bộ môn CNFM – Đại học Công nghệ
21
e. Các kỹ thuật sử dụng
Nguy
ễ
n V
ă
n V
ỵ
1.
2.
3.
4.
5.
Đồ thị dòng (Tom
McCabe đưa ra đầu tiên).
Ma trận kiểm thử
(số
đường đi, trọng số).
Điều kiện lôgic – chiến lược miền và BRO
Điều khiển theo dòng dữ liệu
Các cấu trúc chu trình – giá trị đặc trưng
2005
Bộ môn CNFM – Đại học Công nghệ
22
f. Kỹ thuật đồ thị dòng
Nguy
ễ
n V
ă
n V
ỵ
f0. Khái niệm về đồ thị dòng
Là một kỹ thuật dựa trên cấu trúc điều khiển của
chương trình.
Gần giống đồ thị luồng điều khiển
của chương trình.
Nhận được từ đồ thị luồng điều khiển
bằng cách:
gộp các lệnh tuần tự
thay lệnh rẽ nhánh và điểm kết thúc của các đường
điều khiển bằng 1 nút vị tự
2005
Bộ môn CNFM – Đại học Công nghệ
23
f1. Cấu trúc đồ thị dòng
Nguy
ễ
n V
ă
n V
ỵ
Cấu trúc
gồm:
mỗi nút
(hình tròn) biểu thị một hay một số lệnh tuần tự,
hoặc thay cho điểm hội tụ các đường điều khiển.
mỗi cạnh nối hai nút
biểu diễn dòng điều khiển,
Kết quả đồ thi dòng:
Chia mặt phẳng thành nhiều miền.
Có
nút vị từ
biểu thị sự
phân nhánh
hoặc
hội nhập
của
các cung.
2005
Bộ môn CNFM – Đại học Công nghệ
24
f2. Các kiểu cấu trúc thành phần đồ thị dòng
Nguy
ễ
n V
ă
n V
ỵ
Các cấu trúc cơ bản của đồ thị dòng:
while
if
until
case
2005
Bộ môn CNFM – Đại học Công nghệ
25
f3. Ví dụ: cấu trúc điều khiển chương trình
Nguy
ễ
n V
ă
n V
ỵ
xét biểu đồ điều
khiển của một
chương trình
1
2
3
6
7
11
9
10
26
4
8
5
2005
Bộ môn CNFM – Đại học Công nghệ
f4. Ví dụ: cấu trúc đồ thị dòng
Nguy
ễ
n V
ă
n V
ỵ
luồng điều khiển
1
2
3
6
7
11
9
10
8
4
5
đồ thị dòng
1
2,3
6
7
11
9
8
10
27
4,5
2005
Bộ môn CNFM – Đại học Công nghệ
f5. Ví dụ: xác định các thông số
Nguy
ễ
n V
ă
n V
ỵ
Đồ thị dòng trên gồm:
•
•
•
•
9
nút, trong đó:
5
nút là vị tự (mầu đỏ)
11
cung
Chia mặt phẳng thành
4 miền
2005
Bộ môn CNFM – Đại học Công nghệ
28
f6. Độ phức tạp của chu trình
Nguy
ễ
n V
ă
n V
ỵ
Để đảm bảo
mọi câu lệnh đều được kiểm thử ít nhất
một lần,
cần tìm được tất cả
các đường điều khiển
độc lập trong chương trình (khác
với các đường khác
ít nhất một lệnh).
Số các đường độc lập
của 1 chương trình là
giới hạn
trên
số
các kiểm thử
cần phải tiến hành. Nó được gọi
là
độ phức tạp chu trình của chương trình
Các đường độc lập của 1 chương trình trùng với các
đường độc lập của đồ thì dòng (tim đơn giản hơn).
2005
Bộ môn CNFM – Đại học Công nghệ
29
f7. Tính toán độ phức tạp chu trình
Nguy
ễ
n V
ă
n V
ỵ
Độ phức tạp chu trình
V(G) của đồ thị G
được tính
theo các cách sau:
V(G) = E - N + 2
V(G) = P – 1
(= 11-9+2 = 4)
(= 5-1 =4)
V(G) = số miền phẳng
(= 4)
Trong đó:
E
= số cung;
N
= số nút;
P=
số nút vị từ
Với ví dụ về đồ thị dòng ở trên ta có:
V(G) = 4
2005
Bộ môn CNFM – Đại học Công nghệ
30
f8. Xác định các ca kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Vẽđồ
thị dòng
Tính độ phức
Tạp chu trình
Xác định tập
đường cơ bản
Chuẩn bị các
ca kiểm thử
Yêu cầu,
mã nguồn
Các ca kiểm thử
và nội dung
2005
Bộ môn CNFM – Đại học Công nghệ
31
g. Kỹ thuật ma trận kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Ma trân kiểm thử
là một ma trận vuông có kich thước
bằng số các nút trong đồ thị dòng:
Mỗi dòng/cột
ứng với
tên một nút
Mỗi ô:
là
tên một cung
nối nút dòng đến nút cột.
Nhân liên tiếp k ma trận
này được ma trận chỉ
số con
đường k cung
từ nút dòng tới nút cột.
Ma trận kiểm thử được sử dụng như 1 dữ liệu có cấu
trúc để
kiểm tra các con đường cơ bản: số đường đi
qua nút
2005
Bộ môn CNFM – Đại học Công nghệ
32
g1. Các ma trận kiểm thử có trọng số
Nguy
ễ
n V
ă
n V
ỵ
Để ma trận kiểm thử -
một công cụ mạnh -
trong việc
đánh giá cấu trúc điều khiển chương trình. Khi kiểm
thử, ta
thêm trọng số cho các cung
của ma trận kiểm
thử như sau:
Xác suất
cung đó được thực thi.
Thời gian xử lý
của tiến trình đi qua cung đó
Bộ nhớ đòi hỏi
của tiến trình đi qua cung đó.
Nguồn lực đòi hỏi
của tiến trình đi qua cung đó.
2005
Bộ môn CNFM – Đại học Công nghệ
33
g2. Ví dụ ma trận kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
1
23 45
1
1
6
1
7
8
9
10 11
1
1
1
2,3
4,5
8
9
10
1
23
45
6
7
8
9
10 1
11
6
7
11
1
1
1
1
1
=A
2005
Bộ môn CNFM – Đại học Công nghệ
34
g2. Ví dụ ma trận kiểm thử (t)
Nguy
ễ
n V
ă
n V
ỵ
1
1
23
45 1
23 45
1
6
1
7
1
8
1
9
10 11
A
2
=
6
7
8
9
10
11
1
2
1
1
1
Bộ môn CNFM – Đại học Công nghệ
Các số
trong ma
trận cho
biết số
con
đường
có hai
cạnh đi
qua
cung đó
35
2005
h. Điều kiện logic và các chiến lược
Nguy
ễ
n V
ă
n V
ỵ
Trong 1 chương trình, Điều kiện lôgic có thể là:
Điều kiện đơn là
1 biến Bool
(có thể có toán tử phủ định):
X
Điều kiện đơn là
biểu thức quan hệ
giữa 2 biểu thức số học
C
= (A
Θ B)
, với
Θ
là phép so sánh:
<, ≤, =, >, ≥
hay
≠
A, B
là biểu thức số học
Điều kiện phức hợp
cấu thành từ
hơn một điều kiện đơn
nhờ
các toán tử Bool:
hoặc
(
∪
),
và
(∩),
phủ định (┘)
D = X
1
& X
2
& … X
n
,
trong đó
X
i
là điều kiện đơn,
&
là toán
tử bool
2005
Bộ môn CNFM – Đại học Công nghệ
36
h1. Kiểu sai trong điều kiện lôgic
Nguy
ễ
n V
ă
n V
ỵ
Sai biến Bool.
Sai toán tử Bool.
Sai số hạng trong biểu thức toán tử Bool
Sai toán tử quan hệ.
Sai biểu thức số học.
2005
Bộ môn CNFM – Đại học Công nghệ
37
h2. Chiến lược kiểm thử phân nhánh
Nguy
ễ
n V
ă
n V
ỵ
Kiểm thử
từng điều kiện
trong chương trình.
Kiểm thử điều kiện không chỉ là
phát hiện sai trong
điều kiện
đó mà còn là phát hiện
sai khác
của
chương trình liên quan.
Đã có một số chiến lược kiểm thử .
Nguyên tắc kiểm thử nhánh:
với mỗi điều kiện
phức hợp C, thì với mỗi
nhánh “true” và “false”
của C,
mỗi điều kiện đơn trong C
phải được kiểm thử ít nhất
một lần.
2005
Bộ môn CNFM – Đại học Công nghệ
38
h3. Chiến lược kiểm thử miền
Nguy
ễ
n V
ă
n V
ỵ
Chiến lược kiểm thử miền
cần
3 hoặc 4
kiểm thử cho
một biểu thức
quan hệ gồm
các
trường hợp:
<, >, =
và có thể
≠
nữa.
Nếu biểu thức Bool có n biến, mà n nhỏ thì thuận lợi,
song
n lớn thì khó thực hiện!
Người ta đưa ra chiến lược cho
các phép thử nhạy
cảm
bằng cách áp dụng kết hợp chiến lược
kiểm thử
nhánh
và
kiểm thử miền
(quan hệ)
Làm sao chỉ ra tất cả các trường hợp cần kiểm
thử?
2005
Bộ môn CNFM – Đại học Công nghệ
39
h4. Chiến lược kiểm thử BRO
Nguy
ễ
n V
ă
n V
ỵ
BRO
= kiểm thử nhánh & toán tử quan hệ.
(branch
and
relational operation)
BRO dùng “ràng
buộc điều kiện làm điều kiện cần thử”
để phát hiện sai ở nhánh và toán tử khi xẩy ra một lần
và không có biến chung.
Giả sử:
D = X
1
&X
2
& … X
n
, X
i
:
điều kiện đơn,
&:
toán tử bool
Cần đặc tả
ràng buộc đầu ra của
X
i
tương ứng với điều
kiện D đã xác định?.
2005
Bộ môn CNFM – Đại học Công nghệ
40
h4. Chiến lược BRO – điều kiện đầu vào
Nguy
ễ
n V
ă
n V
ỵ
Ta nói rằng ràng buộc
X
i
của điều kiện
D
là
được phủ
bởi một sự thực thi của C
nếu như trong quá trình thực
thi đó,
đầu ra của mỗi điều kiện
đơn
X
i
trong
D
thoả mãn
các ràng buộc tương ứng.
Điều này có nghĩa là:
Khi giá trị của
D
đã cho, ta cần tìm
các điều kiện ràng buộc mà mỗi
X
i
(1 thành phân của D)
cần thỏa mãn để đảm bảo được giá trị của D
2005
Bộ môn CNFM – Đại học Công nghệ
41
h5. Chiến lược BRO – tạo ràng buộc
Nguy
ễ
n V
ă
n V
ỵ
Với
một biến Bool B,
thì
ràng buộc đầu ra
của
B là
t
(true)
hoặc
f
(false).
Với
một biểu thức quan hệ
(A
Θ B)
thì
ràng
buộc đầu ra
của nó là toán tử quan hệ:
Θ
có
thể nhận một trong bốn giá trị
>, <, =, #
(lớn
hơn, nhỏ hơn & bằng hoặc khác).
2005
Bộ môn CNFM – Đại học Công nghệ
42
h6. Chiến lược BRO – tạo ràng buộc1
Nguy
ễ
n V
ă
n V
ỵ
thí dụ, xét điều kiện
C = A
∩
B
A và B
là
hai biến Bool.
Khi đó
ràng buộc đầu ra
của
C
là một cặp giá trị của
t
và
f.
Chiến lược kiểm thử BRO đòi hỏi rằng tập ba cặp
ràng buộc
(t,t), (t,f) và (f,t) đều được phủ bởi các thực
thi của C.
Căp (t,t)
Căp (t,f) và (f,t)
2005
ứng với C =
t
ứng với C =
f
43
Bộ môn CNFM – Đại học Công nghệ
h7. Chiến lược BRO – tạo ràng buộc2
Nguy
ễ
n V
ă
n V
ỵ
Xét điều kiện
C =
(B
=
E).
Khi đó
ràng buộc
đầu ra là “
=
“ tương ứng với
t
và “
<
,
>”
tương ứng với
f
Xét điều kiện
C là hội biến Bool
và
biểu thức quan hệ:
A
và
B = E.
Khi đó các ràng buộc của C là các cặp
(t,t), (t,f)
và
(f,t);
với (B = E) có giá trị
t
tương ứng với
“=“, và giá trị
f
tương ứng với “<“ hoặc “>”; Bởi vậy
tập các ràng buộc đầu ra của
C phải gồm 4 phần tử:
(t,=), (t,<), (t,>) và (f,=).
Phủ của các ràng buộc này bảo đảm phát hiện được
sai biến Bool hoặc toán tử quan hệ trong C.
2005
Bộ môn CNFM – Đại học Công nghệ
44
h8. Chiến lược BRO – tạo ràng buộc 3
Nguy
ễ
n V
ă
n V
ỵ
Xét điều kiện
C là hội của hai biểu thức quan hệ
(A>B) và (E=F)
Tập ràng buộc
đầu ra sẽ
(t,t), (t,f) và (f,t)
và
tương ứng sẽ là:
(>,=); (>,<); (>,>); (=,=)
và
(<,=).
Phủ của ràng buộc này bảo đảm rằng phát hiện
được sai ở các toán tử quan hệ trong C.
2005
Bộ môn CNFM – Đại học Công nghệ
45
i. Kiểm thử điều khiển theo dòng dữ liệu
Nguy
ễ
n V
ă
n V
ỵ
Phương pháp kiểm thử
dòng dữ liệu tuyển chọn các
đường
của chương trình tương ứng với việc định vị
các
xác định biến và sử dụng biến
trong chương trình. Đã
có
một số chiến lược
kiểm thử dòng dữ liệu và so sánh
chúng.
Giả sử
rằng mỗi câu lệnh của chương trình được gán
với
số câu lệnh duy nhất
và
mỗi hàm không được cải
biên các tham số
của nó và các biến toàn cục.
2005
Bộ môn CNFM – Đại học Công nghệ
46
i1. Định nghĩa các dòng dữ liệu
Nguy
ễ
n V
ă
n V
ỵ
Với mỗi câu lệnh S ta định nghĩa:
DEF(S)
= { X / câu lệnh
S chứa định nghĩa X}
USE(S)
= { X / câu lệnh
S chứa 1 sử dụng X}
Nếu S là
câu lệnh
if
hoặc câu lệnh
vòng lặp
thì
DEF(S)
là
rỗng,
còn
USE(S)
của nó được xác định tùy
theo
điều kiện trong S.
2005
Bộ môn CNFM – Đại học Công nghệ
47
i2. Chiến lược lần vết theo dòng dữ liệu
Nguy
ễ
n V
ă
n V
ỵ
Giả thiết:
định nghĩa biến X
ở câu lệnh
S vẫn còn sống
ở câu lệnh
S’
nếu có một con
đường từ S tới S’
mà
trên đó không chứa một định nghĩa nào khác của X.
Một
dây truyền DU sử dụng X
ký hiệu là
DU = [X,S,S’]
với X trong
DEF(S)
và trong
USE(S’),
và định nghĩa
X
trong S vẫn còn sống trong S’.
Chiến lược kiểm thử dòng dữ liệu đòi hỏi rằng:
mọi DU
đều phải
được phủ ít nhất một lần.
2005
Bộ môn CNFM – Đại học Công nghệ
48
i3. Đánh giá chiến lược theo dòng dữ liệu
Nguy
ễ
n V
ă
n V
ỵ
kiểm thử DU
không bảo đảm phủ tất cả các nhánh
của
chương trình; tuy nhiên 1 nhánh không được phủ bởi
DU kiểm thử là rất hiếm.
Với chiến lược theo dòng, phần lớn trạng thái chương
trình được kiểm soát
kiểm thử dòng dữ liệu
là hữu ích với
các đường
của
chương trình có chứa
các câu lệnh if
hoặc
vòng lặp.
2005
Bộ môn CNFM – Đại học Công nghệ
49
k. Kiểm thử điều khiển theo vòng lặp
Nguy
ễ
n V
ă
n V
ỵ
Có
bốn loại vòng lặp:
mỗi loại dùng một tập
các phép thử khác nhau
Vòng lặp đơn.
2005
Bộ môn CNFM – Đại học Công nghệ
50
k1. Kiểu vòng lặp lồng nhau
Nguy
ễ
n V
ă
n V
ỵ
Kết hợp mỗi vòng lặp ngoài với mọi vòng lặp trong
2005
Bộ môn CNFM – Đại học Công nghệ
51
k2. Kiểu vòng lặp nối tiếp
Nguy
ễ
n V
ă
n V
ỵ
Kết hợp mỗi vòng lặp trước với mọi vòng lặp sau
2005
Bộ môn CNFM – Đại học Công nghệ
52
k3. Chọn giá trị cho mỗi loại vòng lặp
Nguy
ễ
n V
ă
n V
ỵ
Với mỗi loại vòng lặp, thường chỉ sử dụng ba giá
trị lặp: hai giá trị biên và một giá trị giữa hai biên
Các giá trị lặp của một vòng lặp
Các giá trị lặp nên chọn
2005
Bộ môn CNFM – Đại học Công nghệ
53
C. Kiểm thử hộp
đen
Nguy
ễ
n V
ă
n V
ỵ
a Khái niệm
Là kiểm thử
yêu cầu chức năng
Đối tương:
mô đun, hệ con, toàn hệ thống
Đặc trưng:
Thuyết minh:
các chức năng đủ
&
vận hành đúng
Thực hiện:
qua giao diện
Cơ sở:
đặc tả, điều kiện vào/ra
và
cấu trúc
dữ liệu
Ít chú ý tới cấu trúc logic nội tại của nó
2005
Bộ môn CNFM – Đại học Công nghệ
54
a. Mô hình khái niệm kiểm thử hộp đen
Nguy
ễ
n V
ă
n V
ỵ
Khởi đầu –kết thúc
?
Đặc tả
1.………
hệ
thống 2….……
………
phần
mềm n ………
Giao
diện
Chức
năng
dữ
liệu
?
?
?
Phần
mềm
Dữ
liệu
đầu
vào
2005
Bộ môn CNFM – Đại học Công nghệ
Kết quả
ra
Đầu ra liên quan
55
b. Mục đích kiểm thử hộp đen
Nguy
ễ
n V
ă
n V
ỵ
Tìm
các loại sai
liên quan:
Chức năng:
đủ, đúng đắn
Giao diện:
vào, ra: đủ, phù hợp, đúng, tiện lợi
Cấu trúc, truy cập dữ liệu:
thông suốt, đúng đắn
Thực thi:
trôi chảy, kịp thời, chịu lỗi, phục hồi
Khởi đầu - kết thúc:
mỗi tiến trình thông suốt
2005
Bộ môn CNFM – Đại học Công nghệ
56
c. Câu hỏi cho kiểm thử hộp đen
Nguy
ễ
n V
ă
n V
ỵ
Các câu hỏi
tập trung trả lời :
Hiệu lực của chức năng
(chức năng, hiệu suất, giao diện) đạt
được đến đâu?
Lớp đầu vào
nào cho các ca kiểm thử tốt?
Sự nhạy cảm
của môđun
với giá trị vào nào?
Các biên
của lớp dữ liệu được cô lập chưa?
Chiu lỗi
với nhịp điệu/khối lượng dữ liệu như thế nào?
Tổ hợp dữ liệu đặc biệt
ảnh hưởng gì đến hoạt động hệ thống?
Những tiến trình nào
(khởi đầu, kết thúc) chưa thông suốt?
2005
Bộ môn CNFM – Đại học Công nghệ
57
d. Vấn đề và tiêu chuẩn lựa chọn
Nguy
ễ
n V
ă
n V
ỵ
Vấn đề:
Các tiến trình của mỗi chức năng hệ thống đủ lớn
Các dữ liệu dày đặc, đa dạng
Không dự kiến tới mọi sự bất thường
Tiêu chuẩn hướng đến:
Thu gọn ca kiểm thử đến mức có thể
(ít,
đơn giản).
Phát hiện sai trên lớp dữ liệu, số đặc biệt
(không
phải
1 sai cụ thể gắn với 1 kiểm thử cụ thể)
2005
Bộ môn CNFM – Đại học Công nghệ
58
e. Các kỹ thuật kiểm thử hộp đen
Nguy
ễ
n V
ă
n V
ỵ
Phân hoạch tương đương
2.
Phân tích giá trị biên
3.
Đồ thị nhân quả
1.
Câu hỏi:
đầu vào, điều kiên? Loại sai? Khó khăn?
Kỹ thuật dùng: vấn đề giải quyết? Phương châm
– nguyên tắc? Bước đi? Kết quả? ưu, nhược?
2005
Bộ môn CNFM – Đại học Công nghệ
59
f. Phân hoạch tương đương
Nguy
ễ
n V
ă
n V
ỵ
Là một
kỹ thuật
của kiểm thử hộp đen
Nguyên tắc:
chia miền vào
của chương trình
thành các
lớp
dữ liệu để lập ra các ca kiểm thử theo mỗi lớp đó.
Cơ sở:
dữ liệu trong 1 lớp tương đương tác động như
nhau lên chương trình, tạo ra cùng một tráng thái:
đúng
hay
sai
của chương trình
rút
Mục tiêu:
tìm ra 1 ca kiểm thử để
bộc lộ 1 lớp sai,
gọn số ca kiểm thử
cần phát triển.
Ca kiểm thử được
thiết kế cho từng lớp tương đương
2005
Bộ môn CNFM – Đại học Công nghệ
60
f1. Chọn lớp tương đương
Nguy
ễ
n V
ă
n V
ỵ
Phương châm
xác định các lớp tương đương:
1.
Điều kiện vào là phạm vi rộng giới hạn một miền hay
những giá trị đặc biệt thì cần xác định:
•
1 lớp
tương đương
hợp lệ
•
2 lớp
tương đương
không hợp lệ.
2.
Điều kiện vào đặc tả một thành phần của một tập hoặc
điều kiện Bool thì cần xác định:
•
1 lớp
tương đương
hợp lệ
•
1 lớp
tương đương
không hợp lệ.
2005
Bộ môn CNFM – Đại học Công nghệ
61
f2. Phân tích giá trị biên
Nguy
ễ
n V
ă
n V
ỵ
Các
sai
có xu hướng
xuất hiện ở biên
của vùng
dữ liệu (hơn là ở “trung tâm”).
Các sai
có thể
cả trong và ngoài biên
kiểm thử không chỉ chú ý đến
các dữ liệu biên
mà còn chú ý đến
các dữ liệu sát biên
(trong,
ngoài).
Các ca kiểm thử được xác định nhằm thực hiện
các giá trị biên và sát biên
2005
Bộ môn CNFM – Đại học Công nghệ
62
f3. Chọn lớp tương đương giá trị biên
Nguy
ễ
n V
ă
n V
ỵ
Phương châm
(phân tích giá trị biên):
3. Nếu điều kiện vào là một miền giới hạn bởi a và b
thì cần thiết kế các ca kiểm thử
cho cả a
và
b, và
cả trên,dưới a
và
b.
4. Nếu điều kiện vào đặc tả một số giá trị thì thiết kế
các ca kiểm thử cho cả
các số trên
và
dưới số nhỏ
nhất
&
lớn nhất.
2005
Bộ môn CNFM – Đại học Công nghệ
63
f3. Áp dụng cho giá trị biên
ra
Nguy
ễ
n V
ă
n V
ỵ
Áp dụng phương châm
1 và 2 cho cả điều kiện
ra.
Áp dụng điều kiện giá trị biên cho cả
chương
trình trung gian có các biên
của cấu trúc dữ liệu
được mô tả
2005
Bộ môn CNFM – Đại học Công nghệ
64
f4. Mô hình phân hoạch & phân tích giá trị biên
Nguy
ễ
n V
ă
n V
ỵ
.....
Chọn
Lớp
tương
đương
x
xx
x
xx
.....
x
xx
x
xx
b
Chọn
Ca
kiểm
thử
a
Miền giới hạn
x
x
x
x
x
…
x
x
max
x
x
min
Miền rộng
Nhiều giá trị
Một số giá trị
2005
Bộ môn CNFM – Đại học Công nghệ
65
g. Kỹ thuật đồ thị nhân quả
Nguy
ễ
n V
ă
n V
ỵ
Là một
kỹ thuật để thiết kế ca kiểm thử
Cung cấp
một biểu diễn chính xác giữa
các điều
kiện logic (đầu
vào)
và các hành động tương ứng
(đầu
ra- kêt quả).
Được xây dựng dựa trên các
mô đun chức năng,
lôgíc tiến trình
và
đặc tả hệ thống
Kỹ thuật gồm
4 bước
2005
Bộ môn CNFM – Đại học Công nghệ
66
g1. Các bước tiến hành
Nguy
ễ
n V
ă
n V
ỵ
Đặc tả hệ
thống phần mềm
Xây dựng các
ca kiểm thử theo
luật của bảng
Lập DS nguyên
nhân-kết quả
theo môđun
Các mô đun
chức năng
Phát triển
đồ thị
nhân-quả
Chuyển đồ
thibảng
quyết định
2005
Bộ môn CNFM – Đại học Công nghệ
67
g2. Ví dụ kỹ thuật đồ thị nhân quả
Nguy
ễ
n V
ă
n V
ỵ
Danh sách nhân quả theo modul
Modul
A
Nguyên nhân
Số > a
Số ≥ a
Số = a
B
2005
Kết quả
đúng
nghi ngờ
nghi ngờ
sai
đúng
Định danh
A1
A2
A3
A4
B1
68
Số < a
Số nguyên
Bộ môn CNFM – Đại học Công nghệ
g2. Ví dụ kỹ thuật đồ thị nhân quả
Nguy
ễ
n V
ă
n V
ỵ
Có nhiều công cụ để xây dựng đồ thị nhân quả. Đồ thị
có hướng thường hay được dùng hơn cả
Môđun A
Môđun B
Môđun A1
Môđun A2
Môđun A3
Môđun A4
2005
Bộ môn CNFM – Đại học Công nghệ
69
Môđun B
g3. Bảng quyết định của đồ thị nhân quả
Nguy
ễ
n V
ă
n V
ỵ
Định danh
A1
A2,A3
A4
B1
…
2005
Điều kiện
Số > a
Số ≥ a
Số < a
Số nguyên
…
đúng nghi ngờ
X
X
Sai
X
X
..
..
..
70
Bộ môn CNFM – Đại học Công nghệ
g4. Chọn ca kiểm thử
Nguy
ễ
n V
ă
n V
ỵ
Chọn 2 ca kiểm thử
Ca 1: A1 & B
số >a
Môđun A1
Môđun B
đúng
Ca 2: A2,A3,A4 & B
Môđun A2
số
≤a
Môđun A3
Môđun A4
Môđun B
?
2005
Bộ môn CNFM – Đại học Công nghệ
71
C©u hái và thảo luận
Nguy
ễ
n V
ă
n V
ỵ
2005
Bộ môn CNFM – Đại học Công nghệ
72
Bạn đang đọc truyện trên: Truyen247.Pro