Equivalence Partitioning là gì?
Equivalence Partitioning là một phương pháp kiểm thử phần mềm, trong đó dữ liệu đầu vào được phân thành các vùng có giá trị hợp lệ và không hợp lệ. Mục tiêu là đảm bảo tất cả các phân vùng đều thực hiện cùng một hành vi. Nếu một phân vùng là đúng, thì các phân vùng tương đương khác cũng phải đúng và ngược lại.
Nguyên tắc của Equivalence Partitioning là phải thiết kế các ca kiểm thử sao cho mỗi phân vùng được bao phủ ít nhất một lần. Mỗi giá trị trong mỗi phân vùng tương đương phải có cùng hành vi như nhau.
Phân loại lớp tương đương
Hiện có hai loại lớp tương đương:
- Lớp tương đương hợp lệ: Mô tả các giá trị được chấp nhận làm đầu vào cho chương trình.
- Lớp tương đương không hợp lệ: Mô tả tất cả các tình huống có thể xảy ra của điều kiện.
Để xác định lớp tương đương thì bạn có thể áp dụng các nguyên tắc như:
- Nếu trạng thái đầu vào có giới hạn rõ ràng về các giá trị: Xác định một lớp tương đương hợp lệ và hai lớp tương đương không hợp lệ.
- Nếu một trạng thái đầu vào chỉ định số lượng giá trị: Xác định một lớp tương đương hợp lệ và hai lớp tương đương không hợp lệ.
- Nếu một trạng thái đầu vào chỉ định tập giá trị và mỗi giá trị sẽ được chương trình sử dụng khác nhau: Xác định một lớp tương đương hợp lệ cho mỗi loại và một lớp tương đương không hợp lệ.
- Nếu trạng thái đầu vào chỉ định tình huống “chắc chắn – must be”: Xác định 1 lớp tương đương hợp lệ và lớp tương đương không hợp lệ.
- Nếu có lý do nào đó để tin rằng chương trình không xử lý các phần tử trong cùng một lớp như nhau, hãy chia nhỏ lớp tương đương đó thành các lớp nhỏ hơn.
Xác định ca kiểm thử
Sau khi đã xác định các lớp tương đương trong bước trước, bước tiếp theo là áp dụng chúng để tạo ra các ca kiểm thử. Quy trình này diễn ra như sau:
- Gán số duy nhất cho mỗi lớp tương đương.
- Tiếp tục viết các ca kiểm thử mới cho đến khi tất cả các lớp tương đương hợp lệ được bao phủ bởi các ca kiểm thử hiện có. Ưu tiên viết các ca kiểm thử mới để bao phủ nhiều lớp tương đương chưa được bao phủ.
- Tiếp tục viết các ca kiểm thử mới cho đến khi tất cả các lớp tương đương không hợp lệ được bao phủ bởi các ca kiểm thử hiện có. Ưu tiên viết các ca kiểm thử mới để bao phủ mỗi lớp tương đương không hợp lệ chưa được bao phủ.
- Mỗi ca kiểm thử riêng bao phủ các trường hợp không hợp lệ để đảm bảo rằng mọi kiểm tra đầu vào không hợp lệ đều được thử nghiệm.
Mặc dù phân lớp tương đương là phương pháp tốt, nhưng nó không thể bao phủ tất cả các trường hợp. Hai phương pháp như phân tích giá trị biên và đồ thị nguyên nhân-kết quả, giúp bổ sung các trường hợp thiếu sót này.
Ưu và nhược điểm của Equivalence Partitioning
Ưu điểm:
Bằng cách chỉ thử nghiệm trên các phần tử đại diện trong mỗi vùng tương đương, số lượng test case được giảm đi đáng kể, từ đó giảm thời gian thực hiện test.
Nhược điểm:
Không phải tất cả các bài toán đều phù hợp với kỹ thuật này. Nếu chỉ chọn các giá trị ở phần trung tâm của các phân vùng tương đương, có thể bỏ lỡ các lỗi ở biên. Do đó, khi phần lớn các lỗi được phát hiện trong quá trình kiểm tra giá trị biên của các phân vùng, chúng ta nên xem xét việc sử dụng kỹ thuật phân tích giá trị biên.
Ví dụ thực tế
Chức năng của ứng dụng chỉ chấp nhận một số cụ thể không lớn hơn hoặc nhỏ hơn một giới hạn cố định. Ví dụ, số OTP chỉ được chứa sáu chữ số; nếu ít hơn hoặc nhiều hơn sáu chữ số, ứng dụng sẽ chuyển hướng đến trang lỗi.
OTP = 6 số
Số điện thoại = 10 số
Cả hai ví dụ đều có một phân vùng chứa các giá trị hợp lệ và không hợp lệ. Khi áp dụng giá trị hợp lệ như OTP 6 chữ số hoặc số điện thoại 10 chữ số, cả hai phân vùng hợp lệ đều hoạt động giống nhau, chuyển hướng đến trang tiếp theo.
Hai phân vùng khác chứa các giá trị không hợp lệ, ví dụ như dưới 5 hoặc trên 7 chữ số cho OTP hoặc dưới 9 hoặc trên 11 chữ số cho số điện thoại. Khi áp dụng các giá trị không hợp lệ này, cả hai phân vùng không hợp lệ đều hoạt động giống nhau, chuyển hướng đến trang lỗi.
Trong cả hai ví dụ này, chỉ cần ba trường hợp thử nghiệm và đó là lý do chính của Equivalence Partitioning: giảm số lượng trường hợp thử nghiệm.
Kết luận
Trên đây là bài viết tìm hiểu về kỹ thuật Equivalence Partitioning là gì? LANIT hy vọng bạn đã có cái nhìn tổng quan về kỹ thuật này. Nếu bạn muốn tìm hiểu sâu hơn về cách thực hiện kỹ thuật này thì hãy để lại bình luận để LANIT hướng dẫn bạn nhé!