Sử dụng Decision Table technique để viết Test Case cho các ứng dụng kinh doanh phức tạp (part 2)

Tiếp theo phần 1: https://viblo.asia/nguyen.thi.hong.nhung/posts/wjAM7yyAvmWe đã viết ở bài trước hôm nay tôi sẽ đưa ra ví dụ cụ thể hơn để hướng dẫn tìm hiểu về Bảng Quyết Định

Bảng quyết định là 1 công cụ thông minh để sử dụng trong cả việc test và quản lý yêu cầu. Quan trọng là nó được cấu tạo để xây dựng các yêu cầu khi giải quyết với luật kinh doanh. Bảng quyết định dc sử dụng để model những logic phức tạp. BQĐ có thể làm nó trở nên dễ dàng hơn khi nhìn toàn bộ những kết hợp có thể của các điều kiện dc xem xét và khi các điều kiện đó thiếu, nó dễ dàng để nhìn thấy.

Hãy xem ví dụ kịch bản cho 1 atm sau:

1 khách hàng yêu cầu rút tiền. 1 trong những logic kinh doanh cho atm là máy atm trả tiền nếu khách có đủ tiền trong tài khoản hoặc nếu khách còn hạn mức tín dụng. Đây là ví dụ đơn giản về logic kinh doanh, nó khá phức tạp để trình bày bằng văn bản. Bàn quyết định sẽ giúp nó dễ dàng hơn để hiểu:

Picture1.png

Trong bảng quyết đinh trên, các điều kiện được đưa ra là đúng hoặc sai. Mỗi cột trong bảng ứng với 1 quy định trong logic kinh doanh, nó được miêu tả trong 1 sự kết hợp duy nhất của các trường hợp tạo ra kết quả.

Bảng trên bao gồm 3 quy định khác nhau và 1 trong số chúng là được rút nếu quy định nằm trong bảng. Nó thông thường tạo ra ít nhất 1 test trong mỗi cột, khi các điều kiện nằm trong các quy định logic kinh doanh.

###Các bước phân tích tạo ra 1 bảng quyết định

Bước 1: Phân tích các yêu cầu và tạo ra cột 1 (cột CONDITIONS)

Yêu cẩu: Rút tiền nếu đủ tiền or nếu khách hàng còn hạn mứa tín dụng

  • Đưa ra các yêu cầu và các kết quả trong dạng liệt kê hoặc đúng hoặc sai.
  • Trong trường hợp này có 2 điều kiện số tiền rút <= số dư và trong hạn mức tín dụng. nếu 1 cái được đáp ứng thì sẽ rút được tiền

Picture2.png

Bước 2: Thêm cột:

Tính toán xem có bao nhiêu cột cần trong bảng. Số cột phụ thuộc vào số điều kiện và các thay thế trong mỗi điều kiện. Nếu có 2 điều kiện và mỗi điều kiện có thể đúng or sai bạn cẩn 4 cột. Nếu có 3 điều kiện thì cần 8 cột….

Theo toán học, số cột là 2 ^ điều kiện.

Só cột cần là:

Picture3.png

Dòng cuối cùng là doàng mà bạn nên tạo ra nhiều ít hơn bảng quyết định thay vì ít nhiều hơn nó. Mặt khác, bạn có thể chạy các rủi ro của bảng quyết định trở nên quá lớn đến mức không thể quản lý được. Test các kỹ thuật bằng cách lấy thêm các quy định kinh doanh khác.

Bây giờ, điền đúng hay sai cho các điều kiện, Bạn sẽ làm cách nào.Đơn giản nhất như sau:

  • Row 1: TF
  • Row 2: TTFF
  • Row 3: TTTTFFFF

Cho mỗi dòng, có 2 cách TF(True/False) như các dòng sau:

Nói lại các mẫu bên trên từ trái qua phải cho mỗi hàng. Nói 1 cách khác, cho 1 bảng với 8 cột, dòng đầu đọc là TFTFTFTF, dòng 2 là TTFFTTFF dòng 3 là TTTTFFFF.

Picture4.png

Bước 3: Giảm bảng

Ghi chú những cái không quan trọng với số tiền nhỏ hơn hoặc bằng số dư của nó không có vần đề gì nếu hạn mức còn. Trong bước này, bạn có thể xóa bớt cột giống nhau đi.

Picture5.png

Kiểm tra sự chính xác của các kết hợp, những kết hợp không có giá trị là những cái không thể xảy ra, ví dụ 1 người không thể vừa là trẻ sơ sinh vừa là người già. Ghi nó là x . Trong ví dụ này, không có kết hợp nào không có giá trị.

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 1 và 3 là giống nhau, do đó 1 trong chúng có thể bỏ đi.

** Bước 4: Xác định các kết quả:**

Các kết quả cho mỗi cột trong bảng. Bạn sẽ có khả năng tìm ra thông tin trong các yêu cầu. Tên mỗi côt. Họ có thể đặt tên là R1/rule 1. R2/ Rule 2 ... nhưng bạn có thể ghi cho nó những cái tên mô tả.

Picture6.png

**Bước 5: viết test case: **

Viết các test case dự trên bảng. Ít nhất 1 test cho 1 dòng.

Test case r1: số dư= 200, yêu cầu rút = 200 -> kết quả: được rút

Test case for r2 số dư 100 yêu cầu rút 200, còn hạn mức -> kết quả: được rút

Test case for r3 số dư 100, yêu cầu rút 200, không hạn mức -> kết quả: không được rút

Kết Luận

  • Bảng quyết định có thể được dùng trong tất cả các trường hợp nơi mà các kết quả phụ thuộc vào các kết hợp của các lựa chọn khác nhau. Trong nhiều hệ thống, có cả tấn các quy định kinh doanh nên bảng giá trị có thể thêm vào rất nhiều giá trị.

  • Bảng quyết định nên được xây dựng tốt nhất trong khi thiết kế hệ thống, vì nó trở nên hiệu quả cho cả developer và tester. Những yêu cầu đặc biệt cũng trở nên chắc chắn hơn nếu mọi thứ quan trọng được viết ra rõ ràng. Tester có thể tạo ra nó trong khi thiết kế để có thể viết test case tốt hơn.

  • Bảng quyết địnhlà phương pháp tốt để miêu tả các yêu cầu khi có ít các quy định tương tác với nhau. Sử dụng bảng quyết định thì dễ dàng cho các yêu cầu đặc biệt để viết các yêu cầu trong nhiều điều kiện. Đối với các tester, dễ dàng hơn cho việc hoàn thành viết test case.