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ặcBạn đang đọc truyện trên: Truyen2U.Net