Kiem thử 3
§¹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: [email protected], 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
2005Bộ 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 minhRoger 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
2005Bộ 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ànhchươ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ểnVớ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í ítxây dựng2005
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à 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
2005Bộ 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
2005test chấp
nhận
test hệ
thốngtest tích
hợp
test đơn
vịrà soát
mã
Thẩm
địnhXác
minh
Bộ môn CNFM – Đại học Công nghệ
10g. 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)
2005Bộ 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ệnTrong 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ực2005
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ềmchỉ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ưatin
cậy
Phần mềm
tin cậy2005
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ồnNhật ký
2005
Bộ môn CNFM – Đại học Công nghệ
15m. 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
2005Bộ 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ìnhnhỏ:
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ợp2005
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
2005Bộ 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ưng2005
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ủachươ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:
whileif
until
case
2005Bộ 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ình1
2
3
67
11
9
1026
4
8
52005
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
23
6
7
119
10
8
45
đồ thị dòng
1
2,36
7
11
98
10
27
4,52005
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ệ
29f7. 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ínhtheo 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) = 42005
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òngTính độ phức
Tạp chu trình
Xác định tập
đường cơ bảnChuẩn bị các
ca kiểm thử
Yêu cầu,
mã nguồnCá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 điqua nút
2005
Bộ môn CNFM – Đại học Công nghệ
32g1. 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 đó.
2005Bộ 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
11
6
1
78
9
10 11
11
1
2,3
4,58
9
10
123
45
6
78
9
10 1
116
7
11
11
1
1
1=A
2005
Bộ môn CNFM – Đại học Công nghệ
34g2. Ví dụ ma trận kiểm thử (t)
Nguyễn Văn Vỵ
11
23
45 1
23 451
6
1
71
8
1
910 11
A2 =
6
78
9
10
111
2
1
11
Bộ môn CNFM – Đại học Công nghệ
Các số
trong matrận cho
biết số
con
đườngcó 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ọcC = (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
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ệ
37h2. 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áctrườ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ạycả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 = 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?.
2005Bộ 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 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ãncá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 D2005
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ủaC 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 fXé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ậytậ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ệ
45i. 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.
2005Bộ 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.
2005Bộ 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ệ
48i3. Đá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ủachươ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átkiể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.
2005Bộ 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ệ
52k3. 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
2005Bộ 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ệ
54a. 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ăngdữ
liệu
?
??
Phần
mềm
Dữliệu
đầu
vào
2005Bộ môn CNFM – Đại học Công nghệ
Kết quả
ra
Đầu ra liên quan55
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 đắnThự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ệ
57d. 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ể)
2005Bộ 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áclớ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ìnhrútMụ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
2005Bộ 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ênmà 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ên2005
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à bthì 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ệ
63f3. Á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ệnra.
Á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ọnLớp
tương
đương
xxx
x
xx
.....x
xx
x
xxb
Chọn
Ca
kiểmthử
a
Miền giới hạn
xx
x
x
x…
x
x
maxx
x
min
Miền rộngNhiề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
2005Bộ 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ácca 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ảngquyết định
2005
Bộ môn CNFM – Đại học Công nghệ
67g2. Ví dụ kỹ thuật đồ thị nhân quả
Nguyễn Văn Vỵ
Danh sách nhân quả theo modulModul
A
Nguyên nhân
Số > aSố ≥ a
Số = a
B
2005Kết quả
đúng
nghi ngờ
nghi ngờsai
đúng
Định danh
A1A2
A3
A4
B168
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 A1Môđun A2
Môđun A3
Môđun A4
2005Bộ 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
A1A2,A3
A4
B1
…2005
Điều kiện
Số > a
Số ≥ aSố < a
Số nguyên
…
đúng nghi ngờX
X
Sai
XX
..
..
..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ố >aMôđun A1
Môđun B
đúng
Ca 2: A2,A3,A4 & BMôđun A2
số ≤
Môđun A3
Môđun A4Môđun B
?
2005
Bộ môn CNFM – Đại học Công nghệ71
§¹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ỀM2005
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ệ
3A. 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ệ
4a. 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, chiphí 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ểnTăng độ tin cậy của sản phẩm phần mềm
2005Bộ 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ốtNguy
ễ
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ònchưa được phát hiện.
2005Bộ 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ácminh)
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ệ
9g. 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)
2005Bộ 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ệ
12h. 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ềmtin cậy
2005Bộ 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ý
2005Bộ 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ấtvới
nỗ lực
&
thời gian nhỏ nhất.
Trong các thập kỷ 80-90 đã nghiên cứu nhiềuloạ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 sai2005
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ệ
18b. 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ệ
19c. 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ó
2005Bộ 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ịchvớ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ụngNguy
ễ
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
2005Bộ 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ủacác cung.
2005Bộ 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:
whileif
until
case
2005Bộ 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
36
7
11
910
26
4
85
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ển1
2
3
67
11
9
108
4
5
đồ thị dòng1
2,3
6
711
9
8
1027
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ệ
28f6. Độ 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ệ
29f7. 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
2005Bộ 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ấutrú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ểmthử 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ệ
33g2. Ví dụ ma trận kiểm thử
Nguyễn Văn Vỵ1
23 45
1
16
1
7
89
10 11
1
11
2,3
4,5
89
10
1
2345
6
7
89
10 1
11
67
11
1
11
1
1
=A2005
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
ỵ
11
23
45 1
23 451
6
1
71
8
1
910 11
A
2
=
6
78
9
10
111
2
1
11
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
2005h. Đ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ệ
36h1. 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ệ
37h2. 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ấtmột lần.
2005Bộ 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ạycả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ử BRONguy
ễ
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àoNguy
ễ
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 Xi trong D thoả mãncá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ủaB là
t
(true)
hoặc
f
(false).
Với một biểu thức quan hệ (A Θ B) thì ràngbuộ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ệ
42h6. 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ệ
44h8. 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.
2005Bộ 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ánhchúng.
Giả sử rằng mỗi câu lệnh của chương trình được gánvớ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ệuNguy
ễ
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.
2005Bộ 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ủachươ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ậpcá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 trong2005
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 sau2005
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ặpCác giá trị lặp nên chọn
2005
Bộ môn CNFM – Đại học Công nghệ
53C. 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ệnCơ 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 đenNguy
ễ
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ầnmề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 quan55
b. Mục đích kiểm thử hộp đenNguy
ễ
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ồiKhởi đầu - kết thúc:
mỗi tiến trình thông suốt
2005Bộ 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ệ
57d. 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 đương2.
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 đenNguyê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:
đúnghay
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 đương2005
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ùngdữ liệu (hơn là ở “trung tâm”).
Các sai có thể cả trong và ngoài biênkiể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ệncác giá trị biên và sát biên
2005Bộ 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à bthì 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ệ
63f3. Á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ệ
64f4. 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
xxx
x
xx
.....
x
xx
x
xx
b
Chọn
Ca
kiểm
thử
aMiền giới hạn
x
x
xx
x
…
x
x
maxx
x
min
Miền rộngNhiề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ước2005
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ácca 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
2005Bộ 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
ModulA
Nguyên nhân
Số > a
Số ≥ aSố = a
B
2005
Kết quảđúng
nghi ngờ
nghi ngờ
saiđúng
Định danhA1
A2
A3
A4B1
68Số < 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 A1Môđun A2
Môđun A3
Môđun A4
2005Bộ 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 danhA1
A2,A3
A4
B1…
2005
Điều kiện
Số > aSố ≥ a
Số < a
Số nguyên
…đúng nghi ngờ
X
X
SaiX
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ố ≤aMôđ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
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: AzTruyen.Top