Áp dụng kỹ thuật Bảng quyết định (Decision Table) trong design test case

Saturday, January 28, 2023
Edit this post


Decision Table Testing là một kỹ thuật kiểm thử hộp đen nằm ở mục 4.2.3 của giáo trình ISTQB CTFL 2018. Đây là một kỹ thuật khá hữu ích và phổ biến để diễn giải các business rule mà hệ thống cần phải thực thi. Khi tạo bảng, kiểm thử viên sẽ xác định các test conditions (các inputs) và kết quả mong đợi (outputs) của hệ thống.


1. Ví dụ cơ bản

Giả sử chúng ta có một form đăng nhập gồm các trường dữ liệu như sau:
- Email.
- Password.

Đầu tiên chúng ta cần phải xác định các phân vùng tương đương (equivalence partition) có thể có của từng đầu vào (input). Để đơn giản hóa, với Email, chúng ta sẽ chỉ có hai phân vùng là địa chỉ đúng (T) và địa chỉ sai (F), tương tự cho Password. Vì mỗi đầu vào có 2 phân vùng, tương đương 2 khả năng, vậy nên chúng ta sẽ có 2 x 2 = 4 test case tất cả.

Khi đó, chúng ta sẽ vẽ được bảng quyết định như sau:

Condition Case #1 Case #2 Case #3 Case #4
Email T T F F
Password T F T F
Result OK ERROR ERROR ERROR

Diễn giải:
- Case #1: Email đúng, Password đúng => Đăng nhập thành công.
- Case #2: Email đúng, Password sai => Đăng nhập lỗi.
- Case #3: Email sai, Password đúng => Đăng nhập lỗi.
- Case #4: Email sai, Password sai => Đăng nhập lỗi.

2. Ví dụ nâng cao

Giả sử chúng ta có một form upload hình ảnh với điều kiện để upload thành công như sau:
- Hình ảnh phải có định dạng .JPG.
- Kích thước file hình ảnh không được quá 32KB.
- Độ phân giải tối thiểu 320 x 240, tối đa 640 x 480.

Với đề bài này chúng ta có 3 đầu vào (input) cần kiểm thử. Với mỗi đầu vào, chúng ta cần xác định các phân vùng tương đương:
- Định dạng (Format): JPG, không phải JPG - 2 phân vùng.
- Kích thước (Size): <= 32 KB, > 32 KB - 2 phân vùng.
- Độ phân giải (Resolution): x < 320 x 240 (invalid S), 320 x 240 <= x <= 640 x 480 (valid - G), > 640 x 480 (invalid - L) - 3 phân vùng.

Trong trường hợp này, chúng ta sẽ có 2 x 2 x 3 = 12 test case. Các bước điền dữ liệu như sau: Tạo bảng gồm 5 dòng và 12 cột, với điều kiện đầu tiên là Format, lấy tổng số test case chia đôi 12 / 2 = 6. Điền 6 cột đầu với phân vùng 1, 6 cột tiếp theo với phân vùng còn lại của Format.

#1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12
Format JPG JPG JPG JPG JPG JPG != JPG != JPG != JPG != JPG != JPG != JPG
Size
Resolution
Result

Với điều kiện Size tiếp theo, điền xen kẽ 3 cột liên tiếp với phân vùng 1, 3 cột tiếp theo với phân vùng 2 và cứ thế.

#1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12
Format JPG JPG JPG JPG JPG JPG != JPG != JPG != JPG != JPG != JPG != JPG
Size <= 32 <= 32 <= 32 > 32 > 32 > 32 <= 32 <= 32 <= 32 > 32 > 32 > 32
Resolution
Result

Với điều kiện cuối cùng là Resolution, điền xen kẽ các giá trị của 3 phân vùng luân phiên cho từng cột, sao cho không có case nào mà cả 3 điều kiện đều giống nhau (bị trùng test case):

#1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12
Format JPG JPG JPG JPG JPG JPG != JPG != JPG != JPG != JPG != JPG != JPG
Size <= 32 <= 32 <= 32 > 32 > 32 > 32 <= 32 <= 32 <= 32 > 32 > 32 > 32
Resolution S G L S G L S G L S G L
Result

Và cuối cùng, hãy điền vào các kết quả mong đợi ứng với từng case. Trong đó: OK = Good, NOK = Not OK/Good.

#1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12
Format JPG JPG JPG JPG JPG JPG != JPG != JPG != JPG != JPG != JPG != JPG
Size <= 32 <= 32 <= 32 > 32 > 32 > 32 <= 32 <= 32 <= 32 > 32 > 32 > 32
Resolution S G L S G L S G L S G L
Result NOK OK NOK NOK NOK NOK NOK NOK NOK NOK NOK NOK

3. Kết luận

Hy vọng thông qua 2 ví dụ trên, các bạn đã có thể nắm bắt được cách sử dụng và vận dụng bảng quyết định để thiết kế test case. Như tôi đã từng nói, không có kỹ thuật nào là hoàn hảo, để có thể tạo ra được những test case tốt nhất, các bạn sẽ cần phải nắm bắt được nhiều kỹ thuật khác nhau, kết hợp với kinh nghiệm và tùy vào bài toán cụ thể để đưa ra được những quyết định chuẩn xác nhất. Chúc các bạn thành công!

.
Xin vui lòng chờ đợi
Dữ liệu bài viết đang được tải về

BÌNH LUẬN

Cảm ơn bạn đã đọc bài viết của Cuộc Sống Tối Giản. Đây là một blog cá nhân, được lập ra nhằm mục đích lưu trữ và chia sẻ mọi thứ hay ho theo chủ quan của chủ sở hữu. Có lẽ vì vậy mà bạn sẽ thấy blog này hơi (rất) tạp nham. Mọi chủ đề đều có thể được tìm thấy ở đây, từ tâm sự cá nhân, kinh nghiệm sống, phim ảnh, âm nhạc, lập trình... Phần lớn các bài đăng trong blog này đều được tự viết, trừ các bài có tag "Sponsored" là được tài trợ, quảng cáo, hoặc sưu tầm. Để ủng hộ blog, bạn có thể share những bài viết hay tới bạn bè, người thân, hoặc có thể follow Kênh YouTube của chúng tôi. Nếu cần liên hệ giải đáp thắc mắc hoặc đặt quảng cáo, vui lòng gửi mail theo địa chỉ songtoigianvn@gmail.com. Một lần nữa xin được cảm ơn rất nhiều!!!
© Copyright by CUỘC SỐNG TỐI GIẢN
Loading...