Kiểm thửFM làyếu tốquyết địnhcủ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
72 trang |
Chia sẻ: tuandn | Lượt xem: 2722 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Bài giảng Đảm bảo chất lượng phần mềm và kiểm thử - Phần II: Kiểm thử phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
§¹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Ủ
NguyÔn V¨n Vþ
Email: vynv@coltech.vnu.vn, mobile: 0912.505.291
Hà nội - 2005
2005 Bộ môn CNFM – Đại học Công nghệ 2
Nguyễn Văn Vỵ
KIỂM THỬ PHẦN MỀM
Phần II
2005 Bộ môn CNFM – Đại học Công nghệ 3
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
Nội dung – Tài liệu
2005 Bộ môn CNFM – Đại học Công nghệ 4
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 ?
A. Khái niệm về kiểm thử phần mềm
2005 Bộ môn CNFM – Đại học Công nghệ 5
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).
a. Lý do kiểm thử phần mềm
2005 Bộ môn CNFM – Đại học Công nghệ 6
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
b.Vai trò kiểm thử phần mềm
2005 Bộ môn CNFM – Đại học Công nghệ 7
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”, Î dễ gây ra
những vấn đề về tâm lý.
Mục đích cuối cùng: có một chương trình tốt, chi
phí ítÎ xây dựng
c. Mục tiêu kiểm thử phần mềm
2005 Bộ môn CNFM – Đại học Công nghệ 8
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.
d. Quan niệm về một kiểm thử tốt
2005 Bộ môn CNFM – Đại học Công nghệ 9
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à thuyế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
e. Lợi ích khác của kiểm thử
2005 Bộ môn CNFM – Đại học Công nghệ 10
Nguyễn Văn Vỵ
g. Mô hình chữ V - Các mức kiểm thử
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
rà soát
mã
test đơn
vị
test tích
hợp
test hệ
thống
test chấp
nhận
Xác
minh
Thẩm
định
2005 Bộ môn CNFM – Đại học Công nghệ 11
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)
g. Các mức – loại hình kiểm thử
2005 Bộ môn CNFM – Đại học Công nghệ 12
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
g. Các loại hình kiểm thử (t)
2005 Bộ môn CNFM – Đại học Công nghệ 13
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)
h. Phương pháp và chiến lược kiểm thử
2005 Bộ môn CNFM – Đại học Công nghệ 14
Nguyễn Văn Vỵ
Sơ đồ dòng thông tin của tiến trình kiểm thử
i. Biểu đồ dòng thông tin kiểm thử
kiểm thử
xây dựng
Mô hình
đô tin cậy
đánh giá
gỡ lỗi Phần mềmchỉnh sửa
Đặc tả
phần mềm
Cấu hình
kiểm thử
Dự đoán
độ tin cậy
Phần mềm
tin cậy
Phần
mềm
chưa
tin
cậy
2005 Bộ môn CNFM – Đại học Công nghệ 15
Nguyễn Văn Vỵ
k. Tiến trình thực hiện kiểm thử
Thiết kế
Ca kiểm thử
Chuẩn bị
dữ liệu,đk
Tiến hành
kiểm thử
So sánh,
đánh giá
Yêu cầu,
mã nguồn
Báo cáo
kiểm thử
Lập kế kế
hoạch KT
Kết quả
kiểm thử
Các ca
kiểm thử
Kế hoạch
kiểm thử
Dữ liệu
kiểm thử
Nhật ký
2005 Bộ môn CNFM – Đại học Công nghệ 16
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
m. Khái niệm về thiết kế ca kiểm thử
2005 Bộ môn CNFM – Đại học Công nghệ 17
Nguyễn Văn Vỵ
B. Kiểm thử hộp trắng
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ệ 18
Nguyễn Văn Vỵ
a. Khái niệm kiểm thử hộp trắng
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ệ 19
Nguyễn Văn Vỵ
kiểm thử cái gì?
a. mọi lệnh (đầy đủ)
b. mọi điều kiện lôgic có thể (rẽ nhánh)
c. mọi chu trình trong chương trình (lặp lại)
d. mọi cấu trúc dữ liệu được dùng (dữ liệu)
e. mọi tiến trình từ đầu Æ kết thúc(từng luồng điều khiển)
Câu hỏi: Yêu cầu? Lý do? Các kỹ thuật dùng và nội
dung của nó? Chiến lược sử dụng?
b. Nội dung cần kiểm thử hộp trắng
2005 Bộ môn CNFM – Đại học Công nghệ 20
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ó
c. Yêu cầu kiểm thử hộp trắng
2005 Bộ môn CNFM – Đại học Công nghệ 21
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.
d. Lý do kiểm thử hộp trắng
2005 Bộ môn CNFM – Đại học Công nghệ 22
Nguyễn Văn Vỵ
1. Đồ thị dòng (Tom McCabe đưa ra đầu tiên).
2. Ma trận kiểm thử (số đường đi, trọng số).
3. Điều kiện lôgic – chiến lược miền và BRO
4. Điều khiển theo dòng dữ liệu
5. Các cấu trúc chu trình – giá trị đặc trưng
e. Các kỹ thuật sử dụng
2005 Bộ môn CNFM – Đại học Công nghệ 23
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ự
f. Kỹ thuật đồ thị dòng
2005 Bộ môn CNFM – Đại học Công nghệ 24
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.
f1. Cấu trúc đồ thị dòng
2005 Bộ môn CNFM – Đại học Công nghệ 25
Nguyễn Văn Vỵ
Các cấu trúc cơ bản của đồ thị dòng:
case
f2. Các kiểu cấu trúc thành phần đồ thị dòng
if
while until
2005 Bộ môn CNFM – Đại học Công nghệ 26
Nguyễn Văn Vỵ
xét biểu đồ điều
khiển của một
chương trình
f3. Ví dụ: cấu trúc điều khiển chương trình
8
11
1
2
6
3
9
7
5
4
10
2005 Bộ môn CNFM – Đại học Công nghệ 27
Nguyễn Văn Vỵ
luồng điều khiển
f4. Ví dụ: cấu trúc đồ thị dòng
1
109
87
6
11
4,5
2,3
đồ thị dòng
8
11
1
2
6
3
9
7
5
4
10
2005 Bộ môn CNFM – Đại học Công nghệ 28
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
f5. Ví dụ: xác định các thông số
2005 Bộ môn CNFM – Đại học Công nghệ 29
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).
f6. Độ phức tạp của chu trình
2005 Bộ môn CNFM – Đại học Công nghệ 30
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 (= 11-9+2 = 4)
V(G) = số miền phẳng (= 4)
V(G) = P – 1 (= 5-1 =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
f7. Tính toán độ phức tạp chu trình
2005 Bộ môn CNFM – Đại học Công nghệ 31
Nguyễn Văn Vỵ
f8. Xác định các ca kiểm thử
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
Vẽđồ
thị dòng
Các ca kiểm thử
và nội dung
2005 Bộ môn CNFM – Đại học Công nghệ 32
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
g. Kỹ thuật ma trận kiểm thử
2005 Bộ môn CNFM – Đại học Công nghệ 33
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 đó.
g1. Các ma trận kiểm thử có trọng số
2005 Bộ môn CNFM – Đại học Công nghệ 34
Nguyễn Văn Vỵ
g2. Ví dụ ma trận kiểm thử
1
109
87
6
11
4,5
2,3
1 23 45 6 7 8 9 10 11
1 1 1
23 1 1
45 1
6 1 1
7 1
8 1
9 1
10 1
11
=A
2005 Bộ môn CNFM – Đại học Công nghệ 35
Nguyễn Văn Vỵ
g2. Ví dụ ma trận kiểm thử (t)
1 23 45 6 7 8 9 10 11
1 1 1
23 1 1
45 1
6 2
7 1
8 1
9
10
11 1 1
A2 =
Các số
trong ma
trận cho
biết số
con
đường
có hai
cạnh đi
qua
cung đó
2005 Bộ môn CNFM – Đại học Công nghệ 36
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 = X1 & X 2 & … Xn , trong đó Xi là điều kiện đơn, & là toán
tử bool
h. Điều kiện logic và các chiến lược
2005 Bộ môn CNFM – Đại học Công nghệ 37
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.
h1. Kiểu sai trong điều kiện lôgic
2005 Bộ môn CNFM – Đại học Công nghệ 38
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.
h2. Chiến lược kiểm thử phân nhánh
2005 Bộ môn CNFM – Đại học Công nghệ 39
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ử?
h3. Chiến lược kiểm thử miền
2005 Bộ môn CNFM – Đại học Công nghệ 40
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 = X1&X2 & … Xn , Xi: điều kiện đơn, &: toán tử bool
Cần đặc tả ràng buộc đầu ra của Xi tương ứng với điều
kiện D đã xác định?.
h4. Chiến lược kiểm thử BRO
2005 Bộ môn CNFM – Đại học Công nghệ 41
Nguyễn Văn Vỵ
Ta nói rằng ràng buộc Xi 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 Xi 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 Xi (1 thành phân của D)
cần thỏa mãn để đảm bảo được giá trị của D
h4. Chiến lược BRO – điều kiện đầu vào
2005 Bộ môn CNFM – Đại học Công nghệ 42
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).
h5. Chiến lược BRO – tạo ràng buộc
2005 Bộ môn CNFM – Đại học Công nghệ 43
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) ứng với C = t
¾ Căp (t,f) và (f,t) ứng với C = f
h6. Chiến lược BRO – tạo ràng buộc1
2005 Bộ môn CNFM – Đại học Công nghệ 44
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 “”; 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,) 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.
h7. Chiến lược BRO – tạo ràng buộc2
2005 Bộ môn CNFM – Đại học Công nghệ 45
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.
h8. Chiến lược BRO – tạo ràng buộc 3
2005 Bộ môn CNFM – Đại học Công nghệ 46
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.
i. Kiểm thử điều khiển theo dòng dữ liệu
2005 Bộ môn CNFM – Đại học Công nghệ 47
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.
i1. Định nghĩa các dòng dữ liệu
2005 Bộ môn CNFM – Đại học Công nghệ 48
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.
i2. Chiến lược lần vết theo dòng dữ liệu
2005 Bộ môn CNFM – Đại học Công nghệ 49
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.
i3. Đánh giá chiến lược theo dòng dữ liệu
2005 Bộ môn CNFM – Đại học Công nghệ 50
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.
k. Kiểm thử điều khiển theo vòng lặp
2005 Bộ môn CNFM – Đại học Công nghệ 51
Nguyễn Văn Vỵ
k1. Kiểu vòng lặp lồng nhau
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ệ 52
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
k2. Kiểu vòng lặp nối tiếp
2005 Bộ môn CNFM – Đại học Công nghệ 53
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
k3. Chọn giá trị cho mỗi loại vòng lặp
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ệ 54
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ó
C. Kiểm thử hộp đen
2005 Bộ môn CNFM – Đại học Công nghệ 55
Nguyễn Văn Vỵ
Phần
mềm
Kết quả
ra
Đặc tả
hệ
thống
phần
mềm
1.………
2….……
………
n ………
Giao
diện
Chức
năng
dữ
liệu
Dữ
liệu
đầu
vào
?
?
?
?
Khởi đầu –kết thúc
Đầu ra liên quan
a. Mô hình khái niệm kiểm thử hộp đen
2005 Bộ môn CNFM – Đại học Công nghệ 56
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
b. Mục đích kiểm thử hộp đen
2005 Bộ môn CNFM – Đại học Công nghệ 57
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à