Phân vùng tương đương -Equivalence partitioning

Tram Ho

1. Định nghĩa

Kỹ thuật phân vùng tương đương (Equivalence Partitioning) là phương pháp chia đều các điều kiện đầu vào thành những vùng tương đương nhau. Tất cả các giá trị trong một vùng tương đương sẽ cho một kết quả đầu ra giống nhau. Vì vậy, chúng ta có thể test một giá trị đại diện trong vùng tương đương.

2. Phân loại kiểm thử lớp tương đương

Kiểm thử lớp tương đương được chia thành một số loại. Xét một bài toán tổng quát cho một hàm của ba biến a,b,c và không gian đầu vào là ba tập A,B,C. Giả sử tiếp là chúng ta đã xác định được các miền tương đương cho mỗi không gian đầu vào:

A = A1 ∪A2 ∪A3

B = B1 ∪B2 ∪B3 ∪B4

C = B1 ∪C2

Chúng ta ký hiệu phần tử của các miền tương đương trên bằng chữ thường với cùng chỉ số trong các phần sau. Ví dụ a1 ∈ A1, b3 ∈ B3 và c2 ∈ C2.

2.1. Kiểm thử lớp tương đương yếu

Kiểm thử lớp tương đương yếu chỉ yêu cầu mỗi không gian tương đương có ít nhất một phần tử xuất hiện trong một ca kiểm thử. Giả sử chương trình có không gian đầu vào là ba biến A, B, C, và các miền tương đương cho mỗi không gian đầu vào là:

A=A_1∪ A_2∪ A_3

B=B_1∪ B_2∪ B_3∪ B_4

C=C_1∪ C_2

Thì ta cần phải có một giá trị thuộc A_1 trong một ca kiểm thử (ví dụ như a_1∈A_1). Và tương tự với các tập con khác. Số ca kiểm thử tối thiểu chính là số lớp tương đương lớn nhất của các miền đầu vào.

STTabc
1a_1b_1c_1
2a_2b_2c_2
3a_3b_3c_1
4a_1b_4c_2

Ví dụ: về kiểm thử lớp tương đương cho việc chọn thời gian bắt đầu và kết thúc của một cuộc họp( Thời gian được chọn từ hộp calender). Không cho phép tạo lịch họp trùng thời gian cùng 1 địa điểm. Ta có các vùng tương đương là :

Địa điểm = {A,B}

Ngày bắt đầu= {Nbđ hợp lệ, Nbđ<X, Nbđ= Trùng }

Ngày kết thúc= {Nkt= hợp lệ| Nkt ≤Nbd | Nkt=Trùng}

Trong đó: X là ngày hiện tại. Gỉa sử X= 9/8

A là địa điểm có cuộc họp được lên lịch họp từ ngày 15/8-16/8

B là địa điểm chưa có cuộc họp nào được lên lịch.

STTNgày bắt đầuNgày kết thúcĐịa điểmKết quả
110/811/8ATạo cuộc họp thành công
25/811/8BNgày bắt đầu không hợp lệ
315/811/8ANgày bắt đầu trùng
411/84/8ANgày kết thúc không hợp lệ
510/816/8ANgày kết thúc trùng

2.2. Kiểm thử lớp tương đương mạnh

Kiểm thử lớp tương đương mạnh sẽ kết hợp các tổ hợp có thể có của các miền tương đương. Xét theo giả sử ở phần 2.1, ở đây ta sẽ có 342=24 tổ hợp, tương ứng với 24 ca kiểm thử như sau:

STTabc
1a_1b_1c_1
2a_1b_1c_2
3a_1b_2c_1
4a_1b_2c_2
5a_1b_3c_1
6a_1b_3c_2
7a_1b_4c_1
8a_1b_4c_2
9a_2b_1c_1
10a_2b_1c_2
11a_2b_2c_1
12a_2b_2c_2
13a_2b_3c_1
14a_2b_3c_2
15a_2b_4c_1
16a_2b_4c_2
17a_3b_1c_1
18a_3b_1c_2
19a_3b_2c_1
20a_3b_2c_2
21a_3b_3c_1
22a_3b_3c_2
23a_3b_4c_1
24a_3b_4c_2

Ở đây, ta chú trọng các miền tương đương của biến đầu vào. Ta cũng có thể áp dụng phương pháp này cho miền đầu ra nhưng việc này thường khó hơn vì ta phải tính ngược bộ giá trị kiểm thử ở miền đầu vào để tạo ra gia trị ở miền đầu ra mong muốn.

  • Xét với ví dụ ở 2.1

Các ca kiểm thử của lớp tương đương yếu được liệt kê như trong bảng sau:

STTNgày bắt đầuNgày kết thúcĐịa điểmKết quả mong đợi
110/811/8ATạo cuộc họp thành công
25/816/8BTạo cuộc họp thành công
315/89/8BKhông tạo được cuộc họp

Ta thấy rằng phương pháp này yếu vì nó chỉ đưa ra 1 vài ca kiểm thử không đủ độ tin cậy cho chương trình.

2.3. Kiểm thử lớp tương đương đơn giản

Kiểm thử lớp tương đương đơn giản chỉ phân chia một lớp gồm các giá trị hợp lệ và một lớp tương đương gồm các giá trị không hợp lệ. Sau khi đã có các lớp tương đương theo cách đơn giản này, chiến lược kiểm thử có thể áp dụng tương tự kiểm thử tương đương mạnh và yếu.

  • Xét ví dụ ở phần 2.1

Theo Phương pháp kiểm thử tương đương kiểu mạnh ta có 233=18 tổ hợp. Tương ứng với 18 ca kiểm thử

Nhưng trong 18 ca kiểm thử có 222=8 ca kiểm thử bị trùng và không cần thiết.Qua đó ta có bảng 10 ca kiểm thử :

STTNgày bắt đầuNgày kết thúcĐịa điểmKết quả
110/811/8ATạo cuộc họp thành công
210/811/8BTạo cuộc họp thành công
310/84/8ANgày kết thúc không hợp lệ
410/84/8BNgày kết thúc không hợp lệ
510/816/8ANgày kết thúc không hợp lệ
610/816/8BTạo cuộc họp thành công
75/811/8ANgày bắt đầu không hợp lệ
85/811/8BNgày bắt đầu không hợp lệ
915/811/8ANgày bắt đầu bị trùng
1015/816/8BTạo cuộc họp thành công

3. Ưu và Nhược điểm của kỹ thuật

3.1. Ưu điểm

Vì mỗi vùng tương đương ta chỉ cần test trên các phần tử đại diện nên số lượng testcase được giảm đi khá nhiều, nhờ đó mà thời gian thực hiện test cũng giảm đi đáng kể.

3.2. Nhược điểm

Không phải bất kỳ bài toán nào cũng có thể áp dụng kỹ thuật này. Có thể bị thiếu sót lỗi ở biên nếu chỉ chọn giá trị ở khoản giữa của miền tương đương. Vì vậy khi phần lớn các lỗi được tìm thấy lúc kiểm tra giá trị ở biên của các phân vùng thì chúng ta nên tìm hiểu thêm một kỹ thuật nữa là phân tích giá trị biên.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo