Xem mẫu
- Trường Đại Học Bách Khoa Hà Nội
Viện Công Nghệ Thông Tin &Truyền Thông
Kiểm thử phần mềm
Kiểm thử hộp trắng
TS. Nguyễn Thanh Hùng
Bộ Môn Công Nghệ Phần Mềm
Email: hungnt@soict.hust.edu.vn
Website: http://soict.hust.edu.vn/~hungnt
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Nội dung
Giới thiệu về kiểm thử hộp trắng
Các kỹ thuật kiểm thử hộp trắng:
Kiểm thử đường dẫn cơ sở
Kiểm thử điều kiện/kiểm thử nhánh
Kiểm thử vòng lặp
Kiểm thử luồng điều khiển
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Nhắc lại: Kiểm thử hộp đen
Kiểm thử hộp đen là kiểm thử bỏ qua
cấu trúc bên trong, chỉ quan tâm tới
Output từ Input cho trước có chính xác
không.
Phân loại:
Kiểm thử biên
Kiểm thử lớp tương tương
Bảng quyết định
Kiểm thử đoán lỗi
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Kiểm thử hộp trắng
ng
n
kiểm thử:
• n)
• n)
• liệu).
4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Nội dung cần kiểm thử hộp trắng
?
)
nh)
i)
liệu)
u -> kết thúc (từng luồng
điều khiển)
ng?
5
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Kiểm thử hộp trắng
ngai: n
Thí dụ đoạn code sau :
for (i=1; i
- Kiểm thử hộp trắng
Kiểm thử hộp trắng cũng không phủ được
hết trường hợp
if (a>0)
doIsGreater();
if (a==0)
dolsEqual();
p a < 0 - if (a
- Phủ kiểm thử
Do đó, ta nên kiểm thử số test case tối thiểu mà
kết quả độ tin cậy tối đa. Nhưng làm sao xác định
được số test case tối thiểu nào có thể đem lại kết
quả có độ tin cậy tối đa?
Phủ kiểm thử (Coverage) : là tỉ lệ các thành phần
thực sự được kiểm thử so với tổng thể sau khi đã
kiểm thử các test case được chọn. Phủ càng lớn
thì độ tin cậy càng cao.
Thành phần liên quan có thể là lệnh, điểm quyết
định, điều kiện con, đường thi hành hay là sự kết
hợp của chúng.
8
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Phủ cấp 0 & 1
Phủ cấp 0 : kiểm thử những gì có thể kiểm thử
được, phần còn lại để người dùng phát hiện và
báo lại sau. Đây là mức độ kiểm thử không thực
sự có trách nhiệm.
Phủ cấp 1 : kiểm thử sao cho mỗi lệnh được thực
thi ít nhất 1 lần.
1 float foo(int a, int b, int c, int d) {
2 float e;
Với hàm foo bên cạnh, ta chỉ 3 if (a==0)
cần 2 test case sau đây là đạt 4 return 0;
100% phủ cấp 1 : 5 int x = 0;
1. foo(0,0,0,0), trả về 0 6 if ((a==b) || ((c==d) && bug(a)))
2. foo(1,1,1,1), trả về 1 7 x = 1;
nhưng không phát hiện lỗi chia 0 8 e = 1/x;
ở hàng lệnh 8 9 return e;
9
CuuDuongThanCong.com 10 } https://fb.com/tailieudientucntt
- Phủ cấp 2
Phủ cấp 2 : kiểm thử sao cho mỗi điểm quyết định đều được
thực hiện ít nhất 1 lần cho trường hợp TRUE lẫn FALSE. Ta gọi
mức kiểm thử này là phủ các nhánh (Branch coverage). Phủ
các nhánh đảm bảo phủ các lệnh.
c
u thêm test case 3 :
nh.
10
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Phủ cấp 3
nh.
11
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Phủ cấp 4
u kiện con (branch &
subcondition coverage).
12
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- ng
u đặt ra:
n.
a sai (false).
c hiên.
13
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- ng
ng?
nh.
nh
m tra.
14
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Kiểm thử hộp trắng
Là kỹ thuật kiểm thử xâm nhập vào nội
bộ, cấu trúc bên trong của chương
trình
Các kỹ thuật kiểm thử hộp trắng phổ
biến:
Kiểm thử đường dẫn cơ sở
Kiểm thử rẽ nhánh
Kiểm thử vòng lặp
Kiểm tra luồng điều khiển
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Lưu ý
Không thể có được tất cả các test case
mong muốn bằng việc áp dụng 1 kỹ thuật
kiểm thử duy nhất.
Trước khi áp dụng các kỹ thuật kiểm thử hộp
trắng, hãy xem lại code.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Nội dung
Giới thiệu về kiểm thử hộp trắng
Các kỹ thuật kiểm thử hộp trắng:
Kiểm thử đường dẫn cơ sở
Kiểm thử điều kiện/kiểm thử nhánh
Kiểm thử vòng lặp
Kiểm thử luồng điều khiển
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Kiểm thử đường cơ sở (Basis Path)
Định nghĩa: Thu được các trường hợp thử
nghiệm từ đường cơ sở, được xác định
theo biểu đồ dòng chảy của chương trình
Các bước:
1. Xây dựng một đồ thị dòng chảy dựa trên logic của
chương trình
2. Tính toán độ phức tạp Cyclomatic của đồ thì dòng chảy
3. Xác định đường cơ sở.
4. Kiểm tra nếu số đường cơ sở không nhiều hơn độ phức
tạp Cyclomatic.
5. Thiết kế trường hợp thử nghiệm để kiểm tra các đường
cơ sở
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- ng
ng
nh.
nh.
ch:
•
•
19
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- ng
m:
n.
n,
ng:
n.
c cung.
20
CuuDuongThanCong.com https://fb.com/tailieudientucntt
nguon tai.lieu . vn