Decision table (Bảng quyết định)
1. Khái niệm Decision table testing
Khi thực hiện viết testcase, chúng ta sẽ có 2 điểm cần cân nhắc :
– Độ bao phủ
– Giảm thiểu rủi ro
Decision table là kỹ thuật quyết định số testcase tối thiểu với độ bao phủ tối đa .
Decision table cũng là công cụ để :
– Quản lý cả về test cũng như requirement, tập trung vào business logic
– Mô tả các qui tắc nghiệp vụ phức tạp dưới dạng dễ đọc và dễ kiểm soát.
2. Mô tả cấu trúc Decision table
Decision table gồm 6 phần như sau:
– Policy or Process Name : Mô tả tên chức năng
– Condition : Liệt kê các điều kiện trong chức năng đó
– Condition alternative : Liệt kê các giá trị của Condition
– Action : Kết quả mong đợi
– Action entries : Kết quả sau khi kết hợp các giá trị của Condition.
– Rules
Mỗi cột trong bảng tương ứng với một quy tắc logic . Khi kết hợp các điều kiện sẽ dẫn tới kết quả của hành động. Cần tạo ra ít nhất 1 test case cho 1 cột (rule), kết phải bao phủ được toàn bộ bussiness rule
3. Điểm mạnh/Điểm yếu
a. Điểm mạnh
① Có thể phát hiện việc kết hợp các điều kiện mà không được tìm thấy hoặc ko được thực hiện trong suốt quá trình test hay phát triển.
② Các yêu cầu cũng trở nên rõ ràng hơn. Bạn cũng nhận ra rằng một số yêu cầu là vô lý hay một số thứ rất khó phát hiện khi các yêu cầu này chỉ được thể hiện bằng văn bản.
③ Giúp tester khám phá được hiệu quả của việc kết hợp các yếu tố đầu vào khác nhau, các trạng thái phần mềm khác nhau
④ Giúp giảm thời lượng viết test case, test scenarios
b. Điểm yếu
① Decision table ko thể thay thế cho test case
② Nếu chúng ta có quá nhiều kết hợp, chúng ta sẽ ko thể test tất cả các kết hợp đó.
③ Nếu bị hạn chế về thời gian, chúng ta không có thời gian để kiểm tra tất cả các kết hợp đó.
4. Ví dụ
Khách hàng yêu cầu rút tiền mặt, máy ATM sẽ đưa ra số tiền được rút
– Nếu khách hàng có đủ tiền trong tài khoản của họ. Hoặc là,
– Nếu khách hàng được cấp thẻ tín dụng với số dư thích hợp.
Step 1: Phân tích yêu cầu và tạo ra cột đầu tiên
Phân tích bài toán như sau: “Số tiền sẽ rút được nếu số tiền yêu cầu nằm trong phạm vi cho phép của số dư hoặc nếu thẻ tín dụng của khách hàng có thể đảm bảo số tiền được rút“
Conditions:
– Tổng số tiền cần rút ≤ số dư
– Có thẻ tín dụng
Action :
– Số tiền rút được đưa ra
Step 2: Thêm rules & Số lần lặp giá trị cho mỗi Condition Alternative đối với 1 Condition
Cách tính số lượng Rule trong Desicion Table
Nếu giá trị của Condition là T/F hoặc Y/N –> Số lượng rule = 2^n
Ví dụ 1: Có 3 condition , giá trị của các Condition đều là Y/N thì số lượng rule = ?
Nếu giá trị của Condition là nhiều hơn 2 giá trị –> Số lượng rule = số lượng các Condition Alternative nhân với nhau
Ví dụ 2 : Có 3 condition với các giá trị tương ứng sau:
– Giới tính (Nam, Nữ)
– Sống ở thành phố (Yes,No)
– Nhóm máu : A , B , O, AB
Số lượng rule là: ??? = ?
Tính tiếp số lần lặp giá trị cho mỗi Condition Alternative đối với 1 Condition
Đối với Condition 1 = Số lượng rule/ số lượng giá trị Condition Alternative của Condition 1 (Giả sử kết quả tính toán là A)
Áp dụng vào ví dụ trên : Đối với Condition 1 = 4/2 = 2 (A). Như vậy mỗi giá trị T, F được lặp lại liền nhau 2 lần trong 1 sub table
Đối với Condition 2 = A / số lượng giá trị Condition Alternative của Condition 2. Thực hiện tính số lần lặp cho đến khi A= 1 thì kết thúc
Áp dụng vào ví dụ: Đối với Condition 2 : 2/2 = 1 . Như vậy mỗi giá trị T, F được lặp lại liền nhau 1 lần trong 1 sub table
Step 3: Tối giản bảng (Collapse)
Đánh dấu “-” cho các giá trị được cho là không cần thiết
Đánh dấu “X” cho các kết hợp không hợp lệ
– Trong ví dụ, nếu số tiền yêu cầu là nhỏ hơn hoặc bằng số dư tài khoản thì điều kiện Có thẻ tín dụng sẽ là không cần thiết.
Kết thúc bằng cách loại bỏ các cột trùng lặp.
– Trong trường hợp này, cột đầu tiên và thứ hai là trùng nhau, do đó một trong số các cột đó phải được loại bỏ.
Step 4 : Xác định kết quả
Nhập kết quả cho mỗi cột trong bảng
Đặt tên các cột ( rule).
Step 5: Viết test case
Ít nhất 1 test case ứng với 1 cột
– Test case cho R1: Số dư = 200, Số tiền yêu cầu rút = 200. Kết quả: Số tiền rút được đưa ra .
– Test case cho R2: Số dư = 100, Số tiền yêu cầu rút = 200, Có thẻ tín dụng. Kết quả: Số tiền rút được đưa ra .
– Test case cho R3: Số dư = 100, Số tiền yêu cầu rút = 200, Ko có thẻ tín dụng. Kết quả: Số tiền rút ko được đưa ra .
5. Phương pháp Collapse table
Bảng đầy đủ:
Step 1: Lựa chọn các rules có cùng kết quả
Step 2: Xem xét các điều kiện của các rules trên
ở đây có 3 nhóm có kết quả giống nhau cần thực hiện collapse
– Nhóm 1 (rule 2,3,4): Rule 3 và 4 có thể collapse với nhau, vì không cần quan tâm đến giá trị của location
– Nhóm 2 (rule 6,7,8): Rule 7 và 8 có thể collapse với nhau, vì không cần quan tâm đến giá trị của location
– Nhóm 3 (rule 9-16): đều collapse được vì chỉ cần quan tâm đến giá trị của real account = N
Table sau khi được collapse
(Được tổng hợp và biên soạn)