Tài liệu

Những lưu ý quan trọng khi kiểm thử giá trị biên

Huy Erick

Định nghĩa phân tích giá trị biên Phân tích giá trị biên (boundary value analysis - BVA) là một kỹ thuật thiết kế test case và phân vùng tương đương. Mục tiêu của BVA là...

Định nghĩa phân tích giá trị biên

Phân tích giá trị biên (boundary value analysis - BVA) là một kỹ thuật thiết kế test case và phân vùng tương đương. Mục tiêu của BVA là lựa chọn các test case để kiểm thử giá trị biên.

Phân tích giá trị biên tập trung vào các giá trị biên của miền xác định để xây dựng test case. Lý do cho sự tập trung vào các giá trị biên này là vì lỗi thường xảy ra gần các giá trị biên này, đặc biệt là trong các ngôn ngữ lập trình không có kiểm tra kiểu mạnh như Javascript, PHP, và Visual Basic.

Chọn giá trị biên

Trường hợp kiểm thử giá trị biên có 1 biến

  • Giá trị nhỏ nhất
  • Ngay trên giá trị nhỏ nhất
  • Một giá trị bình thường
  • Ngay dưới giá trị lớn nhất
  • Giá trị lớn nhất

Ví dụ: Cho biểu thức a = x = b, ta chọn các giá trị: a, a+1, a+b/2, b-1, b.

Nếu muốn kiểm tra chi tiết hơn, bạn có thể chọn theo quy tắc sau:

  • Giá trị biên nhỏ nhất - 1
  • Giá trị biên nhỏ nhất
  • Giá trị biên nhỏ nhất + 1
  • Giá trị biên lớn nhất - 1
  • Giá trị biên lớn nhất
  • Giá trị biên lớn nhất + 1

Trường hợp kiểm thử giá trị biên theo hai biến x1 và x2

Xét trường hợp a = x1 = b và c = x2 = d. Thiết kế các test case kiểm thử giá trị biên như đồ hình sau:

Kiểm thử các giá trị biên đầy đủ với hai biến x1 và x2:

Phân loại miền biên trường hợp nhiều biến

  • Điểm trên biên (Boundary point)
  • Điểm cực biên (Extreme point)
  • Điểm ngoài biên (Off point)
  • Điểm trong biên (Interior point)

Ưu/ nhược điểm của phân tích giá trị biên

Phân tích giá trị biên dựa trên nguyên lý giả định khuyếm khuyết đơn: "Hỏng hóc xảy ra hiếm khi do hai (hoặc hơn) khiếm khuyết cùng xảy ra". Do đó, các ca kiểm thử theo phương pháp này được tạo bằng cách lấy các giá trị bình thường của các chiều/biên và thay thế mỗi chiều bằng các giá trị cực trị.

Ưu điểm:

  • Tiết kiệm thời gian thiết kế test case và thực hiện kiểm thử.
  • Tập trung vào kiểm thử các giá trị biên của miền giá trị đầu vào, nơi thường tồn tại lỗi tiềm ẩn.

Nhược điểm:

  • Phương pháp chỉ hiệu quả khi các đối số đầu vào độc lập với nhau và mỗi đối số có một miền giá trị hữu hạn.

Các loại kiểm thử giá trị biên

Kiểm thử biên mạnh

Kiểm thử biên mạnh (robustness testing) là một dạng mở rộng đơn giản của BVA. Ngoài năm giá trị biên, ta bổ sung thêm hai giá trị ngoài biên: giá trị ngay trên giá trị cực đại (max+) và giá trị ngay dưới giá trị cực tiểu (min-). Mục đích chính của kiểm thử biên mạnh là kiểm tra xem chương trình có kiểm tra giá trị hợp lệ của đầu vào hay không.

Kiểm thử trường hợp xấu nhất

Khi nhiều biến có tương tác với nhau và nhận các giá trị gần cực trị, ta cần kiểm tra các bộ giá trị kết hợp các cực trị này. Có thể kết hợp kiểm thử mạnh để có bộ kiểm thử trường hợp xấu nhất mạnh.

Kiểm thử giá trị đặc biệt

Kiểm thử giá trị đặc biệt là phương pháp thực hiện nhiều nhất và được trực quan nhất. Phương pháp này dựa trên kỹ năng và kiến thức của người thực hiện để dự đoán và lựa chọn các ca kiểm thử. Mặc dù phương pháp này mang tính chủ quan cao, nhưng nó là phương pháp hiệu quả để phát hiện khiếm khuyết của chương trình.

Ví dụ

Hãy thiết kế các test case với trường hợp sau:

  • 1 = day = 31
  • 1 = Month = 12
  • 1812 = Year = 2012

Nguồn: tổng hợp

1