Tiếp tục với chủ để bảng quyết định trong testing, lần trước mình đã có 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, các bước tạo bảng quyết định với trường hợp đầy đủ. Thì hôm nay mình sẽ giới thiệu với các bạn thu gọn bảng quyết định với phương pháp collapse và đi đến ví dụ để chúng ta có thể hiểu rõ hơn về phương pháp này.
Hãy chú ý những điều trên nhé ^^
Chúng ta sẽ điều hiểu ví dụ để có thể hiểu hơn về phương pháp này nhé.
Một cửa hàng quần áo áp dụng chiết khấu như sau:
Hập lập bảng quyết định thu gọn cho bài toán trên.
Dựa vào dữ liệu đã cho,ta thực hiện giải quyết vấn đề bài toán như sau:
Bước 1: Xác định điều kiện đầu vào, hành động của hệ thống
Điều kiện đầu vào:
Hành động của hệ thống:
Bước 2: Tính tổng số rules Do có 3 điều kiện đầu vào là: khách hàng mua đúng sinh nhật, khách hàng có thẻ tích điểm, khách hàng có mã giảm giá nên ta sẽ có tổng số rules: 2^3= 8 ( theo quy tắc tổng số rules = 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 và quyết định số test case
Lần thu gọn đầu tiên
Lần thu gọn thứ 2: Nhóm những rules có hành động giống nhau đều chiết khấu 30% là rules 1,5,7. Trong đó rules 1 và rules 5 có chỉ 1 điều kiện khác nhau là mua dịp sinh nhật nên thực hiện kết hợp: Xóa rules 5, giữ nguyên rules 1 và tại rules 1 đổi giá trị điều kiện mua dịp sinh nhật là (-) => Sau khi thu gọn lần thứ 2, ta được bảng quyết định
Lần thu gọn thứ 3: Nhóm những rules có hành động giống nhau đều chiết khấu 30% là rules 1,7. Trong đó, rules 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. Nên thực hiện giữ nguyên rules 1 và xóa rules 7( Ở lần thu gọn thứ 2 thực chất cũng có thể xóa luôn rules 7, mình so sánh lần lượt 2 rules 1 cho chi tiết ạ) => Sau khi thu gọn lần thứ 3, ta được bảng quyết định
Nhìn vào bảng quyết định thu gọn ở lần thứ 3, ta đã không thấy những giá trị output giống nhau, nên ta kết thúc thu gọn ở bước này.
Như vậy từ 8 case ban đầu rút gọn tối đa còn 4 test case như vậy phương pháp collapse chúng ta đã giảm được số test case tới mức tối thiểu mà vẫn hoàn toàn cover được toàn bộ function.
Bảng quyết định là một công cụ rất cần thiết của tester trong quá trình kiểm thử phần mềm nói chung hay thiết kế kịch bản kiểm thử nói riêng. 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. Ngoài ra còn đ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). Từ những ví dụ trên nhờ có bảng quyết định đã giảm được số test case tới mức tối thiểu mà vẫn cover được các tình huống, không gặp tình trạng test trùng lặp case, thiếu case.. giảm thiểu effort test đến mức tối đa. Cảm ơn các bạn đã đọc bài (:D)