Hanoi University of Science and Technology
Kiểm thử phần mềm
Kiểm thử hộp đen
Nguyen Thanh Hung
Software Engineering Department
CuuDuongThanCong.com
/>
Nội dung
1. Quy
nh
2.
3.
ng kết.
m nh.
p đen và các kỹ thuật.
2
CuuDuongThanCong.com
/>
Quy trình kiểm định
3
CuuDuongThanCong.com
/>
Lợi ích của việc kiểm định: Phát hiện lỗi sớm
Định lý: Việc kiểm định hỗ trợ cho việc cải thiện chất
lượng bằng cách tìm kiếm các sai sót sớm trong việc
phát triển vòng đời.
4
CuuDuongThanCong.com
/>
Kiểm thử hộp đen
Khái niệm
Là kiểm thử yêu cầu chức năng
Đối tượng: module, hệ thống 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ú ý đến logic nội tại của nó
5
CuuDuongThanCong.com
/>
Mô hình khái niệm kiểm thử hộp đen
6
CuuDuongThanCong.com
/>
Mục đích kiểm thử hộp đen
m
c
i sai liên quan:
c năng: đủ, ng n
Giao diện: o, ra: đu, phu p, ng, tiện i
u c, truy cập dư liệu: thông
t, ng n
c thi: trôi
y, p
i,
u i,
c i
i u- t
c:
i n nh thông
t
7
CuuDuongThanCong.com
/>
Câu hỏi cho kiểm thử hộp đen
c câu
i tập trung tra i :
Hiệu c a
c năng (
c năng, hiệu
t,
giao diện) t
c n đâu?
p u o o cho c ca
m thư t?
Sư
y m a môđun i gia
o o?
c biên a p dư liệu
c cô lập chưa?
Chiu i i
p điệu/
i
ng dư liệu như thê
o?
Tô p dư liệu đặc biệt nh
ng gi n
t
động hệ
ng?
ng n nh o (
i u, t
c) chưa
thông
t?
CuuDuongThanCong.com
/>
8
Vấn đề và tiêu chuẩn lựa chọn
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 n ca
m thư n
c
thê ( t, đơn
n).
t hiện sai trên p dư liệu, sô đặc biệt
(không
i 1 sai
thê n i 1
m thư
thê)
9
CuuDuongThanCong.com
/>
Mục tiêu
Tìm hiểu các kỹ thuật phổ biến và
hiệu quả nhất cho kiểm thử hộp đen:
Boundary Testing (Kiểm thử biên)
Equivalence Class Testing (Kiểm thử lớp
tương đương)
Decision Table (Bảng quyết định)
Error Guess Testing (Kiểm thử đoán lỗi)
10
CuuDuongThanCong.com
/>
Kiểm thử hộp đen - Black-box testing
Đinh nghĩa
Kiểm thử hộp đen: kiểm thử bỏ qua chi tiết, cấu trúc
bên trong hệ thống và chỉ tập trung vào kết quả đầu
ra.
ƒ Kiểm thử hộp đen thường sử dụng:
Boundary Testing (Kiểm thử biên)
Equivalence Class Testing (Kiểm thử lớp tương đương)
Decision Table (Bảng quyết định)
Error Guess Testing (Kiểm thử đoán lỗi)
11
CuuDuongThanCong.com
/>
Kiểm thử hộp đen (2)
Những khái niệm cần nhớ:
Không thể thử nghiệm tất cả các trường hợp
nếu chỉ áp dụng duy nhất một kỹ thuật.
Trộn một số kỹ thuật với nhau sẽ thực tế hơn.
Khi sử dụng kỹ thuật kiểm thử hộp đen, cần
nắm vững các đặc tả.
Kiểm thử hộp đen không chỉ áp dụng vào
chức năng phần mềm mà còn cả thuộc tính
phi chức năng, chẳng hạn như bảo mật, hiệu
suất, khả năng sử dụng.
12
CuuDuongThanCong.com
/>
Phân vùng tương đương
Định nghĩa
Phân vùng tương đương (Equivalence
Partitioning): chia các miền đầu vào của
chương trình thành các tập dữ liệu có cùng
đặc điểm mà từ đó các trường hợp kiểm thử
có thể tiền hành kiểm thử.
Cố gắng tìm ra một trường hợp kiểm thử mà
bao phủ số lỗi nhiều nhất để giảm tối thiểu số
lượng các trường hợp kiểm thử
13
CuuDuongThanCong.com
/>
Phân vùng tương đương
14
CuuDuongThanCong.com
/>
Phân vùng tương đương
Các kiểu phân vùng tương đương
Valid equivalence (tương đương hợp lệ):
các lớp mà dữ liệu thuộc lớp này là hợp lệ.
Invalid equivalence: các lớp mà dữ liệu
thuộc lớp này là không hợp lệ.
Các bước thiết kế trường hợp thử
nghiệm (test case)
Xác định các lớp tương đương.
Xác định các trường hợp thử nghiệm (test
case).
15
CuuDuongThanCong.com
/>
Xác định các lớp tương đương(1)
Điều cần biết về phân lớp tương đương:
Không có phương pháp chuẩn để xác định
một lớp tương đương.
Đặc tả thông số kỹ thuật khác nhau có thể sử
dụng các phương pháp xác định khác nhau.
Chất lượng của các trường hợp thử nghiệm
có thể bị ảnh hưởng bởi các lớp tương
đương khác nhau.
Các hướng dẫn sau đây có thể hữu ích khi
xác định các lớp tương đương.
16
CuuDuongThanCong.com
/>
Xác định các lớp tương đương(2)
Hướng dẫn:
1. Nếu một điều kiện đầu vào xác định cụ thể một mức
của các giá trị, thì xác định được một lớp tương đương
hợp lệ và một lớp tương đương không hợp lệ.
2. Nếu một điều kiện đầu vào quy định cụ thể số lượng
các giá trị, thì xác định được một lớp tương đương hợp
lệ và một lớp tương đương không hợp lệ.
3. Nếu một điều kiện đầu vào xác định một tập hợp các
giá trị đầu vào và có một lý do để tin rằng chương trình
xử lý mỗi một giá trị khác nhau, thì xác định được một
lớp hợp lệ tương đương cho mỗi một giá trị và một lớp
tương đương không hợp lệ.
17
CuuDuongThanCong.com
/>
Xác định các lớp tương đương(3)
4. Nếu một điều kiện đầu vào quy định cụ thể "phải là“ ,
chẳng hạn như "ký tự đầu tiên của bộ nhận diện phải là
một chữ,“ thì xác định được một lớp tương đương hợp lệ
và một lớp tương đương không hợp lệ.
5. Nếu có bất kỳ lý do để tin rằng chương trình không xử
lý các yếu tố trong một lớp tương đương giống nhau, thì
ta phân chia lớp tương đương vào các lớp tương đương
nhỏ hơn.
18
CuuDuongThanCong.com
/>
Xác định các Test Cases
Các bước
1. Đặt một số duy nhất cho mỗi lớp tương ứng.
2. Thiết kế một test case bao gồm nhiều lớp tương ứng hợp lệ đã
được phát hiện nhất có thể cho đến khi tất cả các lớp tương ứng
hợp lệ được phủ bởi test case.
3. Thiết kế một test case bao gồm một và chỉ một trong số các lớp
tương ứng không hợp lệ đã được phát hiện ra cho đến khi các test
case của bạn bao phủ hết các lớp không hợp lệ tương ứng.
Chú ý: Để có thể thực hiện việc xây dựng các test case dễ dàng hơn
chúng ta có thể sử dụng bảng sau để phát hiện
Điều kiện
Lớp tương đương
hợp lệ
Số thứ Lớp tương
tự
đương không
hợp lệ
Số
thư
tự
19
CuuDuongThanCong.com
/>
Ví dụ (1)
Ví dụ
Một hàm miêu tả như sau:
nextDate(month,day,year): hàm đưa ra ngày
tiếp theo của ngày nhập vào
1≤month ≤12, 1≤day ≤31, 1900≤year ≤2060
Có 2 ví dụ về cách phân lớp cho hàm này.
Hai cách phân lớp này có ảnh hưởng rất lớn
từ việc xác định các lớp tương đương.
20
CuuDuongThanCong.com
/>
Ví dụ (2) - Cách phân lớp thứ nhất
Cách 1:
Bảng phân loại các lớp tương đương và số thứ tự
của chúng:
Điều kiện
Lớp tương đương
hợp lệ
Số thứ Lớp tương
tự
đương không
hợp lệ
Số
thư
tự
Tháng
[1, 12]
1
Tháng < 1
4
Tháng > 12
5
Ngày < 1
6
Ngày > 31
7
Năm < 1900
8
Năm > 2060
9
Ngày
Năm
[1, 31]
[1900, 2060]
CuuDuongThanCong.com
2
3
/>
21
Ví dụ (3) - Cách phân lớp thứ nhất
Các trường hợp kiểm thử của cách 1:
1.
2.
3.
4.
5.
6.
Các lớp 1, 2, 3 có đầu vào (6,16,2006), kết quả mong
muốn là (6,17,2006).
Các lớp 4, 2, 3 có đầu vào (-2,16,2006), kết quả mong
muốn là “Input Error!”
Các lớp 5, 2, 3 có đầu vào (20,16,2006), kết quả mong
muốn là ”Input Error!”
Các lớp 1, 6, 3 có đầu vào (5,0,2006), kết quả mong
muốn là ”Input Error!”
Các lớp 1, 7, 3 có đầu vào (5,40,2006), kết quả mong
muốn là ”Input Error!”
Các lớp 1, 2, 8 có đầu vào (5,10,1812), kết quả mong
muốn là ”Input Error!”
7. Các lớp 1, 2, 9 có đầu vào (5,10,3006), kết quả
mong muốn là ”Input Error!”
CuuDuongThanCong.com
/>
22
Ví dụ (4) - Cách phân lớp thứ nhất
Các vấn đề của cách phân lớp 1:
Độ phức tạp của cách phân lớp này như thế nào?
Năm nhuận liệu có được tính đến?
Các trường hợp đã bao phủ trường hợp ngày 31
tháng 12?
Cuối cùng thì cách phân lớp này đã hợp lý chưa?
23
CuuDuongThanCong.com
/>
Ví dụ (5) - Cách phân lớp thứ hai
Điều kiện
Lớp tương
đương hợp lệ
Số thứ
tự
Lớp tương
đương không
hợp lệ
Số
thư
tự
Tháng
Các tháng 31
ngày trừ tháng
12
1
Tháng <1
11
Các tháng 30
ngày
2
Tháng >12
12
Tháng 2
3
Tháng 12
4
[1,28]
5
Ngày < 1
13
29
6
Ngày > 31
14
30
7
31
8
Năm nhuận
9
Năm <1900
15
10
Năm > 2060
16
Ngày
Năm
Năm không
CuuDuongThanCong.com
nhuận
/>
24
Ví dụ (6) - Cách phân lớp thứ hai
Các trương hợp kiểm thử của cách 2:
1. Các lớp 1,5,9 có đầu vào (7,16,2006), kết quả mong muốn là
(7,17,2006).
2. Các lớp 2,6,10 có đầu vào (4,29,2006), kết quả mong muốn là
(4,30,2006).
3. Các lớp 3,7,9 có đầu vào (2,30,2000), kết quả mong muốn là
”Input Error!”
4. Các lớp 4,8,10 có đầu vào (12,31,2001), kết quả mong muốn là
(1,1,2002).
5. Các lớp 11,5,9 có đầu vào (-2,10,2004), kết quả mong muốn là
”Input Error!”
6. Các lớp 12,5,9 có đầu vào (15,10,2004), kết quả mong muốn là
”Input Error!”
7. Các lớp 1,13,9 có đầu vào (8,-2,2004), kết quả mong muốn là
”Input Error!”
25
CuuDuongThanCong.com
/>