Á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ề

💻Nhận dạy online 1 kèm 1 Automation Test từ cơ bản tới nâng cao (From Zero to Hero) 😁😁😁
Lộ trình gồm 3 phần:
1) Kỹ thuật lập trình và tư duy lập trình cơ bản
2) Nhập môn kiểm thử (Manual Test)
3) Kiểm thử tự động (Automation Test) + Chuẩn bị cho phỏng vấn
* Lộ trình chi tiết: Xem tại đây

🎓Đối tượng người học:
- Những bạn bị mất gốc căn bản môn lập trình.
- Những bạn muốn theo con đường kiểm thử (testing), đặc biệt là kiểm thử tự động (Automation Test).

🦘Người giảng dạy:
- Mình sẽ là người trực tiếp hướng dẫn.
- Nếu là các vấn đề ngoài chuyên môn hoặc sở trường, mình sẽ nhờ các anh chị em khác cũng làm trong ngành.

🤓Giới thiệu:
- Mình đã có hơn 10 năm kinh nghiệm làm IT ở cả trong và ngoài nước. Trong đó 3 năm đầu là làm lập trình viên Java, sau đó bén duyên với mảng Automation Test và theo nghề tới tận bây giờ. Mình được đào tạo chính quy về IT từ một trường Đại học danh tiếng ở TP.HCM (hệ kỹ sư 4 năm rưỡi), có chứng chỉ ISTQB, có thể giao tiếp tốt bằng tiếng Anh và có kinh nghiệm làm việc thực tế ở cả 2 mảng Outsource và Product. Title chính thức của mình là QA Automation Engineer, tuy nhiên, mình vẫn làm những dự án cá nhân chuyên về lập trình ứng dụng như Học Tiếng Anh StreamlineSách Nhạc. Mình là người có thái độ làm việc chuyên nghiệp, chăm chỉ và luôn nhiệt tình trong công việc.

💵Chi phí và hình thức thanh toán:
- Các bạn vui lòng liên hệ qua email songtoigianvn@gmail.com (email, chat, hoặc call) để book nội dung và khung giờ học (từ 8h tối trở đi).
- Mức phí: 150.000đ/buổi, mỗi buổi 60 phút.
- Lộ trình From Zero to Hero: 4.350.000đ (29 buổi).
- Bạn có thể học riêng và đóng tiền theo từng phần nếu muốn.
- Có thể học trước 1-2 buổi trước khi quyết định đi full lộ trình hoặc từng phần.
- Thanh toán qua Momo, chuyển khoản v.v...
BÌNH LUẬN
© Copyright by CUỘC SỐNG TỐI GIẢN
Loading...