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)
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)
56 trang |
Chia sẻ: thanhle95 | Lượt xem: 500 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Kiểm thử phần mềm - Chương 2: Kiểm thử hộp đen - Nguyễn Thanh Hùng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Kiểm thử hộp đen
Kiểm thử phần mềm
Hanoi University of Science and Technology
Nguyen Thanh Hung
Software Engineering Department
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nội dung
2
1. Quy nh m nh.
2. p đen và các kỹ thuật.
3. ng kết.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Quy trình kiểm định
3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Lợi ích của việc kiểm định: Phát hiện lỗi sớm
4
Đị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.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
Mô hình khái niệm kiểm thử hộp đen
6
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mục đích kiểm thử hộp đen
m c i sai lie ̂n quan:
c na ̆ng: đủ, ng n
Giao diẹ ̂n: o, ra: đu, phu p, ng, tiện i
u c, truy cập dư liẹ ̂u: tho ̂ng t, ng n
c thi: tro ̂i y, p i, u i, c i
i u - t c: i n nh tho ̂ng t
7
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Câu hỏi cho kiểm thử hộp đen
c ca ̂u i tạ ̂p trung tra i :
Hiẹ ̂u c a c na ̆ng ( c na ̆ng, hiẹ ̂u t,
giao diẹ ̂n) t c n đa ̂u?
p u o o cho c ca m thư t?
Sư y m a mo ̂đun i gia o o?
c bie ̂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
tho ̂ng t?
8
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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
(kho ̂ng i 1 sai thê n i 1 m thư
thê)
9
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
Phân vùng tương đương
14
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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
19
Đ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ự
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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:
21
Đ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 [1, 12] 1 Tháng < 1 4
Tháng > 12 5
Ngày [1, 31] 2 Ngày < 1 6
Ngày > 31 7
Năm [1900, 2060] 3 Năm < 1900 8
Năm > 2060 9
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ (3) - Cách phân lớp thứ nhất
22
Các trường hợp kiểm thử của cách 1:
1. Các lớp 1, 2, 3 có đầu vào (6,16,2006), kết quả mong
muốn là (6,17,2006).
2. Các lớp 4, 2, 3 có đầu vào (-2,16,2006), kết quả mong
muốn là “Input Error!”
3. Các lớp 5, 2, 3 có đầu vào (20,16,2006), kết quả mong
muốn là ”Input Error!”
4. Các lớp 1, 6, 3 có đầu vào (5,0,2006), kết quả mong
muốn là ”Input Error!”
5. Các lớp 1, 7, 3 có đầu vào (5,40,2006), kết quả mong
muốn là ”Input Error!”
6. 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 https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
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
Ngày [1,28] 5 Ngày < 1 13
29 6 Ngày > 31 14
30 7
31 8
Năm Năm nhuận 9 Năm <1900 15
Năm không
nhuận
10 Năm > 2060 16
24
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 https://fb.com/tailieudientucntt
Ví dụ (7) - Cách phân lớp thứ hai
Các trương hợp kiểm thử của cách 2:
8. Các lớp 1,14,9 có đầu vào (8,2000,2004), kết quả
mong muốn là ”Input Error!”
9. Các lớp 1,5,15 có đầu vào (3,19,1830), kết quả mong
muốn là ”Input Error!”
10. Các lớp 1,5,16 có đầu vào (3.19.3000), kết quả
mong muốn là ”Input Error!”
26
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ (8) - Cách phân lớp thứ hai
Các vấn đề của cách phân lớp 2:
Cách phân lớp 1 và 2 cách nào tốt hơn?
Cách này đã thực sự hoàn hảo chưa?
Phân vùng tương đương có là thuật toán thích
hợp cho bài toàn tìm ngày tiếp theo không?
27
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Boundary Testing (Kiểm thử biên)
Định nghĩa
Phân tích giá trị biên là một phương pháp thiết kế các trường hợp
kiểm thử bổ sung cho phân vùng tương đương. Nó dẫn đến việc
lựa chọn các trường hợp kiểm thử tại “cạnh” của lớp.
ƒ Nguyên tắc
Với 1 phạm vi (a,b), các giá trị a, b, 1 số nhỏ hơn a, 1 số nhỏ hơn
b, một số lớn hơn a, một số lớn hơn b tất cả đều phải được kiểm
tra. VD: Nếu a,b là số nguyên, bạn phải test a,b,a-1,b-1,a+1,b+1
Nếu có một số giá trị, thì các giá trị max, min, trước và sau min,
max phải được kiểm tra
Nếu nội bộ các cấu trúc dữ liệu chương trình qui định các biên, hãy
thiết kế 1 test case để kiểm tra cấu trúc dữ liệu tại biên của nó
Các hướng dẫn có thể được áp dụng với các điều kiện đầu ra
28
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Boundary Testing (Kiểm thử biên)
Trong quá trình kiểm thử biên, chú ý đên các kiểu sau:
Số
Ký tự
Vị trí
Số lượng
Tốc độ
Địa điểm
Kích thước
Bên cạnh các nguyên tắc, cần phải kiểm tra các mục
dưới đây:
Đầu tiên/Cuối cùng, Đầu tiên-1/Cuối cùng-1
Bắt đầu/Kết thúc, Bắt đầu-1/Kết thúc+1
Hơn/Kém, Chỉ hơn/Chỉ kém
Rỗng/Đầy, Ít hơn rỗng/Nhiều hơn đầy
29
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Boundary Testing (Kiểm thử biên)
Bên cạnh các nguyên tắc, cần phải kiểm tra các mục
dưới đây:
Ngắn nhất/Dài nhất, Thậm chí Ngắn hơn/Dài hơn
Chậm nhất/Nhanh nhất, Thậm chí Chậm hơn/Nhanh hơn
Sớm nhất/Muộn nhất, Thậm chí Sớm hơn/Muộn hơn
Lớn nhất/Nhỏ nhất, Lớn nhất+1/Nhỏ nhất-1
Cao nhất/Thấp nhất, Cao nhất+1/Thấp nhất-1
Tiếp theo/Xa nhất từ
ƒ Biên con (Sub-boundary)
Biên con là những biên không được định nghĩa trong đặc tả, mà
ở bên trong phần mềm.
Những biên này cũng cần được test như các biên thông thường.
30
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ(1)
31
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ (2)
Ghi chú
Chỉ xem xét đến 1 biến thể của biên tại một
thời điểm, và những biên khác sẽ có giá trị
bình thường. Ví dụ, khi kiểm thử biên tháng,
hãy để ngày và năm giá trị bình thường.
Tập kiểm tra là chưa đầy đủ. Hãy nhớ rằng
kiểm thử biên là một phương pháp kiểm thử
bổ sung. Nó nên được áp dụng cùng với các
phương pháp khác.
32
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bảng quyết định
Định nghĩa
Bao gồm 4 vùng gọi là stub điều kiện (condition stub), entry điều
kiện (condition entry), stub hành động (action stub) và entry hành
động (action entry):
1. Stub điều kiện là một danh sách tên gọi của các điều kiện
2. Stub hành động nêu tên các hành động sẽ thường xuyên có hoặc
được khởi tạo nếu thỏa mãn các điều kiện.
3. Entry điều kiện là sự kết hợp của các điều kiện.
4. Entry hành động là những hành động diễn ra dưới sự kết hợp của
các điều kiện.
5. Mỗi cột trong bảng là một luật mà quy định các điều kiện theo đó
những hành động có tên trong stub hành động sẽ diễn ra.
Mối quan hệ với trường hợp kiểm thử (test case)
Một luật là một test case, có nghĩa là, các giá trị trong entry điều kiện
là đầu vào test và các hành động phù hợp là kết quả được kì vọng.
33
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ Bảng Quyết định
Đây là bảng quyết định mô tả các kịch bản khi đọc
một cuốn sách
34
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mục không áp dụng được(1)
Để giảm số trưởng hợp thử nghiệm, chúng ta có thể
kết hợp các quy tắc có kết quả hành động tương tự
35
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mục không áp dụng được(2)
“-” biểu diễn mục không cần xem xét
Số lượng các quy tắc được giảm xuống còn 4 và các
trường hợp thử nghiệm giảm cho phù hợp
36
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bảng Quyết định
Các loại của bảng quyết định
Bảng quyết định đầu vào giới hạn: Giá trị của mỗi điều kiện là 2
thành phần, đó là, Y/N, T/F, 1/0, v.v..
Bảng quyết định đầu vào mở rộng: Mỗi điều kiện có nhiều giá trị
Cách để thiết kế các trường hợp thử nghiệm
Bước:
1. TÌm các điều kiện và các hành động bằng cách phân tích đặc tả
2. Làm đầy các điều kiện và các hành động trong cuống điều kiện và
cuống hành động
3. Làm đầy các tổ hợp của điều kiện vào dựa trên logic
4. Làm đầy hành động vào dựa trên tổ hợp các điều kiện và đặc tả
37
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bảng Quyết định Đầu vào Giới hạn(1)
Ví dụ
Một chức năng được mô tả như sau: nhập 3 số nguyên biểu
diễn độ dài các cạnh của 1 tam giác và đầu ra 1 thông điệp là
trạng thái của tam giác là đều hay không đều.
a,b,c là đầu vào số nguyên và bảng quyết định là:
38
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bảng Quyết định Đầu vào Giới hạn(2)
Các trường hợp thử nghiệm:
Quy tắc 1: Đầu vào = (60,16,26), Kết quả mong đợi = Không phải 1 tam giác
Quy tắc 2: Đầu vào = (50,50,0), Kết quả mong đợi = Không phải 1 tam giác
Quy tắc 3: Đầu vào = (0,0,0), Kết quả mong đợi = Không phải 1 tam giác
Quy tắc 4: Đầu vào = (60, 60, 60), Kết quả mong đợi = Đều
Quy tắc 5: Tổ hợp không tồn tại trong thực tế
Quy tắc 6: Tổ hợp không tồn tại trong thực tế
Quy tắc 7: Đầu vào = (60, 60, 26), Kết quả mong đợi = Cân
Quy tắc 8: Tổ hợp không tồn tại trong thực tế
Quy tắc 9: Đầu vào = (60, 26, 60), Kết quả mong đợi = Cân
Quy tắc 10: Đầu vào = (26, 60, 60), Kết quả mong đợi = Cân
Quy tắc 11: Đầu vào = (30, 40, 50), Kết quả mong đợi = Không cân
Các trường hợp thử nghiệm:
Có 8 trường hợp thử nghiệm
Trường hợp thử nghiệm này chỉ kiểm tra tính logic của phần mềm
39
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bảng Quyết định Đầu vào Mở rộng(1)
Ví dụ:
Một chức năng được mô tả kiểu như: nextDate(month,day,year) là 1
hàm mà đầu ra của ngày tiếp theo của ngày đầu vào. 1 month 12,
1 day 31, 1900 year 2060.
Nếu bạn chọn 1 bảng quyết định đầu vào giới hạn, sẽ có 256 quy tắc.
1. Giá trị của tháng có thể là 1 trong những cái sau:
• M1 = {tháng có 31 ngày, trừ tháng 12}
• M2 = {tháng có 30 ngày}
• M3 = {tháng 2}
• M4 = {tháng 12}
2. Giá trị của ngày có thể là 1 trong những cái sau:
• D1 = {Từ 1 đến 27}
• D2 = {28}
• D3 = {29}
• D3 = {30}
• D3 = {31}
40
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bảng Quyết định Đầu vào Mở rộng(2)
Ví dụ
3. Giá trị của năm có thể là 1 trong những cái sau:
• Y1 = {năm nhuận}
• Y1 = {năm không nhuận}
Bảng quyết định:
41
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bảng Quyết định Đầu vào Mở rộng (3)
Các trường hợp thử nghiệm
Quy tắc 1: Đầu vào = (7,16,2001) Kết quả mong đợi = (7,17,2001)
Quy tắc 2: Đầu vào = (7,31,2001) Kết quả mong đợi = (8,1,2001)
Quy tắc 3: Đầu vào = (4,25,2000) Kết quả mong đợi = (4,26,2000)
Quy tắc 4: Đầu vào = (9,30,1999) Kết quả mong đợi = (10,1,1999)
Quy tắc 5: Đầu vào = (11,31,2000) Kết quả mong đợi = “Input Error!”
Quy tắc 6: Đầu vào = (2,15,2004) Kết quả mong đợi = (2,16,2004)
Quy tắc 7: Đầu vào = (2,29,2004) Kết quả mong đợi = (3,1,2004)
Quy tắc 8: Đầu vào = (2,31,2004) Kết quả mong đợi = “Input Error!”
Quy tắc 9: Đầu vào = (2,16,2005) Kết quả mong đợi = (2,17,2005)
Quy tắc 10: Đầu vào = (2,28,2005) Kết quả mong đợi = (3,1,2005)
Quy tắc 11: Đầu vào = (2,29,2005) Kết quả mong đợi = “Input Error!”
Quy tắc 12: Đầu vào = (12,26,2005) Kết quả mong đợi = (17,27,2005)
Quy tắc 13: Đầu vào = (12,31,2005) Kết quả mong đợi = (1,1,2006)
42
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bảng Quyết định
Nhớ những điều sau đây:
Nên sử dụng bảng quyết định khi kiểm tra logic.
Để giảm bớt số trường hợp kiểm thử, có thể sử
dụng các bảng quyết định mở rộng đầu vào.
Bảng quyết định không phải là một kỹ thuật mà
chỉ có thể sử dụng để thiết kế các trường hợp
thử nghiệm.
43
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Dự đoán lỗi (Error Guessing)
Định nghĩa
Việc thiết kế các trường hợp kiểm thử dựa trên kinh
nghiệm và trực giác của một kiểm định viên.
Thường được dùng như một phương pháp bổ sung.
ƒ Các bước
Hầu như là một tiến trình dựa trên trực giác và
không được chuẩn bị trước.
• Liệt kê một danh sách các lỗi có thể xảy ra và các tình
huống dễ gây ra lỗi
• Thiết kế các test case dựa trên danh sách đó
44
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đặc tả(1)
Các chức năng của hệ thống:
Căn cứ vào tuổi và số điểm hiện tại trong giấy phép lái xe, tính
toán ra một nửa năm bảo hiểm của người được hưởng bảo
hiểm dựa trên các khoản trong bảng 1.
Đầu vào
• Tuổi của người được bảo hiểm: integer[16,100]
• Số điểm hiện tại trong giấy phép lái xe: Integer[0,12]
Đầu ra
• Hợp đồng bảo hiểm trong nửa năm
Tiến trình
1. Tính toán giá trị tuyệt đối của tuổi. Dựa trên số tuổi của người được bảo
hiểm trong giấy phép lái xe, tính toán giá trị tuyệt đối tuổi dựa vào bảng 1,
sau đó chuyển sang bước 2. Nếu tuổi nằm ngoài khoảng cho phép, tiến
trình kết thúc với một thông báo “Warning: Age should between 16
and 100.(including 16 but not 100)”
45
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đặc tả(2)
Tiến trình
2. Tính chiết khấu lái xe an toàn. Dựa trên điểm hiện tại trong
giấy phép lái xe, tính chiết khấu lái xe an toàn theo bảng 1.
Nếu điểm hiện tại trong giấy phép lái xe ít hơn ngưỡng tương
ứng, lấy giá trị chiết khấu và chuyển sang bước 3. Nếu điểm
hiện tại trong giấy phép lái xe là lớn hơn hoặc bằng ngưỡng,
nhưng nhỏ hơn 12, thiết lập giá trị chiết khấu về 0 và chuyển
sang bước 3. Nếu điểm bằng hoặc hơn 12, tiến trình sẽ kết
thúc bằng cách hiển thị các thông tin "tổng phí bảo hiểm của
bạn là $ 0".
3. Phí bảo hiểm = Tỷ lệ bảo hiểm cơ bản * giá trị tuyệt đối tuổi –
chiết khấu bảo hiểm.
4. Tỷ lệ bảo