Cách tạo test case sử dụng kỹ thuật bảng quyết định - Decision table
Bảng quyết định là một kỹ thuật tốt để áp dụng cho những trường hợp cần nhiều sự kết hợp. Bảng quyết định hỗ trợ việc lựa chọn test case một cách có hệ thống và có thể đem lại nhiều lợi ích trong việc nhận biết vấn đề tiềm ẩn và sự không rõ ràng trong đặc tả (specification). Đây là một kỹ thuật ...
Bảng quyết định là một kỹ thuật tốt để áp dụng cho những trường hợp cần nhiều sự kết hợp.
Bảng quyết định hỗ trợ việc lựa chọn test case một cách có hệ thống và có thể đem lại nhiều lợi ích trong việc nhận biết vấn đề tiềm ẩn và sự không rõ ràng trong đặc tả (specification).
Đây là một kỹ thuật hoạt động tốt khi được kết hợp với phân vùng tương đương.
- Liệt kê tất cả Conditions/Inputs
- Tính số lượng kết hợp có thể (Rules)
- Đặt tất cả các kết hợp trong bảng
- Giảm thiểu các case kết hợp và quyết định test case
Ví dụ 1: Bảng quyết định cho chức năng Login
Gồm 2 Condition là ‘Email’ & ‘Password’ Với mỗi Condition gồm 2 giá trị T/F
Số kết hợp = Số giá trị của Conditon 1 * Số giá trị của Condition 2 = 2 ^ Số Condition của T/F = 2 * 2 = 4
Ví dụ 2: Bảng quyết định cho chức năng Login
Gồm 2 Condition là ‘Email’ & ‘Password’ Với mỗi Condition gồm 3 giá trị Blank/Invalid/Valid
Số kết hợp = Số giá trị của Conditon 1 * Số giá trị của Condition 2 = 3 * 3 = 9
Ví dụ 3: Bảng quyết định cho chức năng Library
Gồm 3 Condition là ‘User registerd?/Đã đăng ký thành viên chưa?’ & ‘ No outstanding fees?/ Đã trả phí chưa?’ & ‘Under borrow litmit?/ Đã vượt quá số lượng chưa?’ Với mỗi Condition gồm 2 giá trị T/F
Số kết hợp = Số giá trị của Conditon 1 * Số giá trị của Condition 2 * Số giá trị của Condition 3 = 2 * 2 * 2 = 8
Với ví dụ 3 ở trên, chúng ta có thể giảm thiểu số lượng case kết hợp bằng cách: 1. Nhận biết những case có chung 'Action' và chỉ khác nhau ở giá trị của 1 'Condition' duy nhất Điều này được hiểu một cách cụ thể là giá trị của 'Condition' nói trên không tạo ra sự khác biệt trong 'Action' Do đó, không cần quan tâm tới giá trị cụ thể của nó là gì, nên có thể giảm thiểu case và thay thế giá trị của nó = '-'
2. Chuyển giá trị của 'Conditon' ở step 1 thành '-' và loại bỏ bớt case
3. Lặp lại step 1 và 2 cho đến khi không còn case nào thỏa mãn
Sau khi thực hiện các bước trên, với số lượng kết hợp case ban đầu là 9 case, đã có thể giảm tới mức tối thiểu còn lại là 4 case (một con số khá ấn tượng đấy chứ). Hơn nữa, với 4 case này vẫn hoàn toàn cover được toàn bộ function, không gặp phải hiện trạng test trùng lặp, thiếu case, ...giảm thiểu effort test đến mức tối đa.
Hi vọng bài viết này sẽ giúp các bạn áp dụng thành công trong thực tế!