HomeOur Team
Bảng quyết định trong testing (Phần 1)

Bảng quyết định trong testing (Phần 1)

By huong.pham
Published in Testing
December 10, 2022
5 min read

Mở đầu

Trong quá trình testing, một tester cũng cần phải nắm rõ các kỹ thuật để thực hiện test. Tùy thuộc vào dữ liệu đầu vào khác nhau mà chọn kỹ thuật tương ứng. Đối với dữ liệu đầu vào đơn chúng ta có thể dùng kỹ thuật phân lớp tương đương hay kỹ thuật giá trị biên. Đối với trường hợp có nhiều dữ liệu đầu vào kết hợp với nhau chúng ta dùng kỹ thuật bảng quyết định. Kỹ thuật này giúp chúng ta liệt kê các test case trở nên đơn giản và dễ dàng hơn. Dưới đây mình sẽ giới thiệu với các bạn kỹ thuật kiểm thử Bảng quyết định (Decision table testing)

1. Kỹ thuật kiểm thử bảng quyết định là gì ?

  • Kỹ thuật dùng bảng quyết định là kỹ thuật kiểm thử hộp đen
  • Bảng quyết định là sử dụng để kiểm tra hành vi của hệ thống với cách kết hợp input đầu vào khác nhau (Kiểm tra output khi các input đầu vào khác nhau) .
  • Bảng quyết định cho phép người kiểm tra kiểm tra tất cả các tổ hợp của dữ liệu đầu vào và điều kiện đầu vào và ngay lập tức biết được các trường hợp nào bị bỏ qua.Từ đó mang lại số test case tối thiểu với độ bao phủ tối đa.
  • Bảng quyết định cũng là công cụ để quản lý cả về test cũng như requirement, mô tả những quy tắc nghiệp vụ phức tạp dưới dạng dễ đọc, dễ kiểm soát.

2. Cấu trúc của bảng quyết định

cautruc.png

Bảng quyết định gồm: 4 thành phần

  • Các điều kiện đầu vào (input ) :C1, C2, C3,…
  • Các giá trị điều kiện: T/F
  • Các hành động của hệ thống : A1, A2, A3, ….
  • Các giá trị của hành động : Có xảy ra hay không ? ( Được thể hiện: đánh dấu x: xảy ra/ không có dấu x: không xảy ra)

Mỗi cột trong bảng sẽ tương ứng với quy tắc logic (rules). Khi kết hợp lần lượt các điều kiện trong cột sẽ dẫn tới kết quả của hành động ( test case).

**Lưu ý**:
  • Các tình huống kiểm thử sẽ tính theo công thức sau : 2^n với n là điều kiện đầu vào ( với trường hợp giá trị điều kiện đầu ở dạng T/F).
  • Các giá trị điều kiện đầu vào thường chỉ ra dưới dạng Đúng (T) và Sai (F) nhưng với trường hợp mở rộng giá trị của điều kiện có thể nhiều hơn T/F .
  • Khi số lượng điều kiện đầu vào (input) tăng lên và giá trị điều kiện đầu có thể nhiều hơn T/F thì bảng quyết định trở nên phức tạp hơn. Do đó chúng không dễ áp dụng với các bài lớn có điều kiện đầu vào và giá trị điều kiện đầu vào lớn.

3. Các bước tạo bảng quyết định và các ví dụ

3.1. Các bước tạo bảng quyết định

  • Bước 1: Xác định tất cả các điều kiện và hành động của hệ thống
  • Bước 2: Tính số rules (các tình huống kiểm thử)
  • Bước 3: Lập bảng quyết định: Ở bước này cần lập bảng một cách cẩn thận vì chỉ cần có sai sót nhỏ cũng dẫn đến case không chính xác
  • Bước 4: Rút gọn bảng quyết định để giảm thiểu test case và quyết định các test case Rút gọn bảng quyết định có thể dựa vào yêu cầu của bài toán hoặc có thể dùng phương pháp rút gọn bảng kiểm thử ( Collapse). Phương pháp Collapse sẽ được giới thiệu trong phần tiếp theo Các ví dụ dưới đây dựa vào yêu cầu (requirement) của bài toán để thực hiện rút gọn bảng quyết định từ đó giảm thiểu số test case

3.2. Các ví dụ

3.2.1. Ví dụ 1

Bài toán

Chúng ta có form đăng nhập như sau: login.png

Với yêu cầu:

  • Nếu người dùng nhập đúng email và mật khẩu khi đăng nhập thành công sẽ được điều hướng sang trang chủ của website.
  • Nếu nhập email hoặc mật khẩu không đúng khi đăng nhập hệ thống sẽ hiển thị thông báo lỗi tương ứng.
Cách giải

Từ các yêu cầu của các yêu cầu bài toán, ta đi giải quyết chúng theo từng bước như trên:

Bước 1: Xác định được tất cả các điều kiện đầu vào và hành động của hệ thống

  • Các điều kiện: Email và Password
  • Hành động của hệ thống: Đăng nhập thành công và thông báo lỗi

Bước 2: Tính số rules Do có 2 điều kiện đầu vào=> Tổng số rules = 2^2 = 4

Bước 3: Lập bảng quyết định Bảng quyết định kiểm tra nhập username login 1.png

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 Do yêu cầu bài toán, Điều kiện đăng nhập là cả Email và Password đều đúng. Nên khi nhập Email sai hoặc Password sai thì hệ thống đã hiển thị thông báo lỗi rồi. Vì vậy trường hợp nhập cả Email và Password đều sai không cần thiết nữa và có thể được bỏ. Sau khi rút gọn ta được bảng quyết định sau: login 2.png

Như vậy từ yêu cầu bài toán đưa ra, chúng ta sẽ thực hiện kiểm thử với 3 test case cho chức năng login

3.2.2. Ví dụ 2

Bài toán

Tính chiết khấu khi mở thẻ tín dụng như sau:

  • Khách hàng mới giảm 15%
  • Khách hàng VIP thì chiết khấu 10%
  • Khách hàng có phiếu khuyến mãi thì được chiết khấu 20%, nhưng không áp dụng cho Khách hàng mới
  • Chiết khấu có thể được cộng dồn
  • Khách hàng mới không thể là khách hàng VIP Lập bảng quyết định cho bài toán trên
Cách giải

Bước 1: Xác định được tất cả các điều kiện đầu vào và hành động của hệ thống Các điều kiện

  • Khách hàng mới
  • Khách hàng VIP
  • Khách hàng có mã khuyến mãi

Các kết quả hành động

  • Chiết khấu 15%
  • Chiết khấu 10%
  • Chiết khấu 20%
  • Không chiết khấu

Bước 2: Tính số rules Do có 3 điều kiện đầu vào=> Tổng số rules = 2^3 = 8

Bước 3: Lập bảng quyết định tín 1.png

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 Từ yêu cầu của bài toán ta loại bỏ được những case không hợp lệ sau đây:

  • Case 1: Khách hàng vừa là khách hàng mới, vip và có mã khuyến mãi vì khách hàng mới không thể là khách hàng vip, khách hàng mới cũng không có mã giới thiệu
  • Case 2: Khách hàng vừa là khách hàng mới, vip vì khách hàng mới không thể là khách hàng vip
  • Case 3: Khách vừa là khách hàng mới vừa có mã khuyến mãi vì khách hàng mới cũng không có mã giới thiệu Sau khi rút gọn ta được bảng quyết định sau: tin 2.png

Như vậy từ yêu cầu bài toán đưa ra, chúng ta sẽ thực hiện kiểm thử với 5 test case cho chức năng chiết khấu tín dụng.

Trên đây, chúng ta đã tìm hiểu những kiến thức cơ bản về bảng quyết định trong testing, phần tiếp theo mình sẽ giới thiệu đến mọi người về phương pháp rút gọn bảng quyết định collapse. Cảm ơn mọi người đã đọc bài.


Tags

DecisionTable

Share

huong.pham

huong.pham

Developer

Expertise

Related Posts

Bảng quyết định trong testing (Phần 2)
Testing
Bảng quyết định trong testing (Phần 2)
December 10, 2022
5 min
© 2023, All Rights Reserved.
Powered By

Quick Links

HomeOur Team

Social Media