Kỹ thuật bảng quyết định (Descision Table Testing)

Một phần của tài liệu Kiểm thử đơn vị cho hệ thống (Trang 30 - 32)

Một yếu điểm của phân tích giá trị biên và phân lớp tương đương là chúng không khảo sát sự kết hợp của các trường hợp đầu vào. Việc kiểm tra sự kết hợp đầu vào không phải là một nhiệm vụ đơn giản bởi vì nếu bạn phân lớp tương đương các trạng thái đầu vào, thì số lượng sự kết hợp thường là rất lớn. Nếu bạn không có cách lựa chọn có hệ thống một tập con các trạng thái đầu vào, có lẽ bạn sẽ chọn ra một tập tùy hứng các điều kiện, điều này có thể dẫn tới việc kiểm thử không có hiệu quả.

Bảng quyết định – Decision Table [4] là một công cụ được sử dụng để biểu diễn và phân tích các quan hệ logic phức tạp. Đó là một ý tưởng để mô tả các hành động xảy ra tương ứng với tập điều kiện của các biến đầu vào.

Bảng 3.1 Cấu trúc bảng quyết định

Conditions Values Rules or Combinations

R1 R2 R3 R4 R5 R6 R7 R8 C1 Y, N,- Y Y Y Y N N N N C2 Y, N,- Y Y N N Y Y N N C3 Y, N,- Y N Y N Y N Y N Effects E1 E2 E3 Checksum

Bảng quyết định bao gồm một tập các điều kiện và một tập các hệ quả được sắp xếp dưới dạng một cột bên trái của bảng. Ở cột thứ 2, cột tiếp theo cột điều kiện là cột gồm các giá trị có thể có bao gồm: Đúng (Y), Sai (N), Không xác định (-). Bên phải cột giá trị là một tập các luật. Mỗi luật bao gồm các giá trị Y, N, (-). Mỗi luật trên bảng quyết định xác định một trường hợp kiểm thử.

Theo [2], ta có các bước để xây dựng ca kiểm thử dựa vào kỹ thuật bảng quyết định như sau:

(1) Xác định các nguyên nhân và kết quả dựa vào mỗi đặc tả:

(2) Liệt kê tất cả nguyên nhân và kết quả vào bảng quyết định. Viết xuống các giá trị mà điều kiện có thể trả về (Y, N, -)

(3) Tính số lượng kết hợp có thể có. Nó bằng số lượng giá trị khác nhau tăng lên số lượng của điều kiện. Ví dụ: Nếu điều kiện nhận 2 giá trị khác nhau(Y,N) và có 4 điều kiện xảy ra thì số lượng kết hợp có thể có là 24.

(4) Điền vào tất cả các cột tất cả các kết hợp có thể có. Mỗi cột sẽ tương ứng với một kết hợp của các giá trị. Còn với mỗi dòng (điều kiện) thì ta thực hiện như sau:

 Xác định tần số lặp (RF) bằng cách: chia số lượng còn lại của kết hợp cho số lượng giá trị khác nhau của điều kiện.

 Viết RF lần các giá trị đầu tiên, sau đó RF lần tiếp theo và vân vân, cho tới khi hàng đã được điền đủ.

(5) Giảm thiểu các kết hợp (các nguyên tắc). Tìm các kết hợp không có ảnh hưởng, thay thế bằng dấu (-), và các kết hợp các cột giống nhau làm một. Lưu ý, trong suốt quá trình này phải đảm bảo rằng các kết quả là không bị thay đổi.

(6) Kiểm tra độ bao phủ của các kết hợp (các nguyên tắc). Với mỗi cột tính số kết hợp mà nó đại diện. Một (-) đại diện cho nhiều kết hợp như điều kiện đã có. Nhân cho mỗi (-) xuống cột. Thêm vào tổng số và so sánh với bước 3. Nó phải bằng nhau.

(7) Thêm các kết quả vào cột trên bảng quyết định. Đọc cột theo cột và xác định kết quả. Nếu có nhiều hơn một kết quả xảy ra trong một sự kết hợp duy nhất, thì gán số thứ tự cho kết quả, từ đó xác định được thứ tự mà các kết quả sẽ được thực hiện. Kiểm tra sự phù hợp của bảng quyết định.

(8) Chuyển các cột trong bảng quyết định thành các ca kiểm thử.

Sau khi xây dựng xong bảng quyết định, chúng ta sẽ tiến hành tạo các ca kiểm thử dựa trên cấu trúc bảng quyết định. Thông thường tương ứng với mỗi luật sẽ có ít nhất một ca kiểm thử được sinh ta. Nếu điều kiện của các luật là giá trị nhị phân (True/False), cần xây dựng ca kiểm thử cho từng điều kiện. Nếu điều kiện của luật là một vùng, phạm vi giá trị, chúng ta cần phải chú ý xem xét và viết ca kiểm thử cho cả trường hợp biến đầu vào nhận giá trị thấp nhất (min) và cao nhất (max) tương ứng với vùng giá trị đó. Ở bước này, kiểm thử viên cần kết hợp cả kỹ thuật kiểm thử giá trị biên và bảng quyết định để tạo ra bộ kiểm thử đầy đủ và chính xác (theo [3]).

Để phân biệt các trường hợp kiểm thử với bảng quyết định, chúng ta cần làm sáng tỏ các điều kiện đầu vào và các hành động đầu ra. Đôi khi các điều kiện cuối

cùng lại đề cập đến các lớp tương đương của các yếu tố đầu vào, và các hành động ám chỉ các phần xử lý chức năng chủ yếu của các mục được kiểm thử. Các luật được hiểu như là các trường hợp được kiểm thử. Bởi vì bảng quyết định có thể được thực hiện một cách máy móc cho đầy đủ, nên chúng ta thường xây dựng được một tập toàn vẹn các trường hợp kiểm thử.

Nhận xét:

Kỹ thuật sinh ca kiểm thử sử dụng bảng quyết định nên áp dụng cho các ứng dụng có những đặc trưng sau [1]:

 Kiểm thử dựa trên bảng quyết định nên áp dụng cho các bài toán chứa các biến đầu vào có mối quan hệ logic phụ thuộc lẫn nhau.

 Kỹ thuật này phù hợp cho các bài toán có sử dụng logic if – then-else.

 Kiểm thử dựa trên bảng quyết định xử lý hiệu quả các bài toán có chứa quan hệ nguyên nhân và kết quả giữa đầu vào và đầu ra.

Một phần của tài liệu Kiểm thử đơn vị cho hệ thống (Trang 30 - 32)