Tiếp tục với chủ đề bảng quyết định trong testing, lần trước tôi đã chia sẻ với mọi người kiểm tra bảng quyết định là gì, cấu trúc bảng quyết định và cách tạo bảng quyết định với trường hợp đầy đủ. Hôm nay, tôi sẽ giới thiệu với các bạn phương pháp thu gọn bảng quyết định bằng phương pháp collapse và đưa ra ví dụ để chúng ta hiểu rõ hơn về phương pháp này.
4.1. Tìm hiểu về phương pháp collapse
- Phương pháp collapse là cách kết hợp các quy tắc testing lại với nhau để giảm thiểu số lượng quy tắc.
- Quy tắc kết hợp các quy tắc: Trong bảng quyết định, nếu hai cột thử nghiệm có cùng kết quả và chỉ khác một điều kiện, thì có thể kết hợp hai cột này lại thành một cột duy nhất.
- Các bước thực hiện:
- Bước 1: Tìm những quy tắc có cùng kết quả.
- Bước 2: Trong nhóm quy tắc có cùng kết quả, tìm những quy tắc chỉ khác một điều kiện.
- Bước 3: Kết hợp hai cột có cùng kết quả và chỉ khác một điều kiện. Giữ lại cột đầu, xóa cột sau, và thay đổi giá trị điều kiện khác nhau thành (-) để thể hiện giá trị không cần thiết.
- Bước 4: Lập bảng quyết định thu gọn từ những kết hợp trên (Lưu ý: Kiểm tra xem bảng quyết định đó có thể thu gọn được không. Nếu có thể kết hợp tiếp, thực hiện tương tự cho đến khi không thể kết hợp nữa, thu được bảng quyết định thu gọn cuối cùng).
4.2. Những điều cần nhớ khi thực hiện phương pháp collapse
- Khi kết hợp hai cột, luôn xóa cột bên phải, không xóa cột bên trái.
- Không đổi tên cột sau khi xóa các cột không cần thiết.
- Áp dụng các bước thu gọn cho các bảng quyết định đã xây dựng trước đó.
- Dừng thu gọn khi các cột không thể kết hợp với nhau được nữa.
Chú ý những điều trên nhé ^^
Bạn đang xem: Bảng quyết định trong testing (Phần 2)
Chúng ta sẽ xem ví dụ để hiểu rõ hơn về phương pháp này.
Bài toán
Một cửa hàng quần áo áp dụng các chiết khấu như sau:
- Nếu khách hàng mua đúng dịp sinh nhật, sẽ được chiết khấu 20% trên mỗi hóa đơn.
- Nếu khách hàng có thẻ tích điểm, sẽ được chiết khấu 15% trên mỗi hóa đơn.
- Nếu khách hàng có voucher giảm giá, sẽ được chiết khấu 30% trên mỗi hóa đơn.
- Không áp dụng đồng thời nhiều ưu đãi. Nếu có nhiều ưu đãi, chỉ áp dụng ưu đãi cao nhất.
Hãy lập bảng quyết định thu gọn cho bài toán trên.
Cách giải
Dựa vào dữ liệu đã cho, ta sẽ giải quyết bài toán như sau:
-
Bước 1: Xác định điều kiện đầu vào và hành động của hệ thống.
-
Xem thêm : Hợp đồng khoán việc tạp vụ: Tìm hiểu khái niệm và quy định
Điều kiện đầu vào:
- Khách hàng mua đúng sinh nhật.
- Khách hàng có thẻ tích điểm.
- Khách hàng có voucher giảm giá.
-
Hành động của hệ thống:
- Chiết khấu 20% trên mỗi hóa đơn.
- Chiết khấu 15% trên mỗi hóa đơn.
- Chiết khấu 30% trên mỗi hóa đơn.
- Không chiết khấu.
-
-
Bước 2: Tính tổng số quy tắc. Với 3 điều kiện đầu vào, ta có tổng số quy tắc là 2^3 = 8 (theo quy tắc tổng số quy tắc = 2^n, trong đó n là số điều kiện đầu vào).
-
Bước 3: Lập bảng quyết định đầy đủ.
-
Bước 4: Rút gọn bảng quyết định để giảm thiểu test case.
-
Lần thu gọn đầu tiên:
- Nhóm 1: Những quy tắc có cùng hành động chiết khấu 30% là quy tắc 1, 3, 5, 7. Trong đó, quy tắc 1 và 3 có chỉ khác 1 điều kiện là (thẻ tích điểm), nên thực hiện kết hợp: Xóa quy tắc 3, giữ nguyên quy tắc 1 và đổi giá trị điều kiện thẻ tích điểm thành (-).
- Nhóm 2: Những quy tắc có cùng hành động chiết khấu 20% là quy tắc 2, 4. Trong đó, quy tắc 2 và 4 có chỉ khác 1 điều kiện là (thẻ tích điểm), nên thực hiện kết hợp: Xóa quy tắc 4, giữ nguyên quy tắc 2 và đổi giá trị điều kiện thẻ tích điểm thành (-). Sau khi thu gọn lần đầu tiên, ta được bảng quyết định như sau:
-
Lần thu gọn thứ 2:
- Nhóm những quy tắc có cùng hành động chiết khấu 30% là quy tắc 1, 5, 7. Trong đó, quy tắc 1 và 5 chỉ khác điều kiện mua dịp sinh nhật, nên thực hiện kết hợp: Xóa quy tắc 5, giữ nguyên quy tắc 1 và đổi giá trị điều kiện mua dịp sinh nhật thành (-). Sau khi thu gọn lần thứ 2, ta được bảng quyết định như sau:
-
Lần thu gọn thứ 3:
- Nhóm những quy tắc có cùng hành động chiết khấu 30% là quy tắc 1, 7. Trong đó, quy tắc 1 và 7 có tất cả những điều kiện giống nhau, nên thực hiện kết hợp. Giữ nguyên quy tắc 1 và xóa quy tắc 7. (Ở lần thu gọn thứ 2 cũng có thể xóa luôn quy tắc 7, so sánh lần lượt 2 quy tắc 1 để xem chi tiết). Sau khi thu gọn lần thứ 3, ta được bảng quyết định như sau:
Nhìn vào bảng quyết định thu gọn ở lần thứ 3, ta thấy không có giá trị đầu ra nào giống nhau, nên kết thúc quá trình thu gọn ở bước này.
-
Như vậy, từ 8 case ban đầu đã được rút gọn xuống còn 4 case. Phương pháp collapse đã giảm số lượng test case tới mức tối thiểu mà vẫn đảm bảo hoàn toàn các tình huống, tránh trường hợp trùng lặp hoặc thiếu. Đây là một công cụ rất hữu ích của tester trong quá trình kiểm thử phần mềm. Bảng quyết định giúp nhận biết các vấn đề tiềm ẩn và sự không rõ ràng trong đặc tả. Từ những ví dụ trên, nhờ có bảng quyết định, chúng ta đã giảm số lượng test case tối đa và đảm bảo đủ tất cả các trường hợp. Cảm ơn các bạn đã đọc bài viết! (:
Đọc thêm tại Luật Sư Tuấn
Nguồn: https://luatsutuan.net
Danh mục: Văn Bản Pháp Luật