Các kỹ thuật kiểm thử hộp đen (Black Box Testing)

Các kỹ thuật kiểm thử hộp đen (Black Box Testing)

I. Kiểm thử hộp đen là gì?

Kiểm thử hôp đen hay còn gọi là Black Box Testing là phương pháp kiểm thử phần mềm được sử dụng để kiểm tra phần mềm mà không biết cấu trúc nội bộ của mã hoặc chương trình. Tất cả các thử nghiệm được thực hiện dựa trên quan điểm của khách hàng. Tester chỉ đưa ra các đầu vào hợp lệ và không hợp lệ để xác định các kết quả đầu ra mong đợi chính xác. Mục đích của Kiểm thử hộp đen là kiểm tra xem phần mềm có hoạt động như mong đợi trong tài liệu yêu cầu hay không và liệu có đáp ứng được tài liệu kỳ vọng của khách hàng hay không?

Các loại kỹ thuật test hộp đen:

  • Phân vùng tương đương (Equivalence Partition)
  • Phân tích giá trị biên (Boundary Value Analysis)
  • Bảng quyết định (Decision Table)
  • Đoán lỗi (Error Guessing)

II. Phân vùng tương đương (Equivalence Partition)

1. Thế nào là phân vùng tương đương?

Phân vùng tương đương là một kỹ thuật thiết kế testcase để phân chia dữ liệu đầu vào thành các lớp dữ liệu tương đương khác nhau. Các trường hợp kiểm thử sẽ được thiết kế cho các dữ liệu tương đương. Việc sử dụng phương pháp này làm giảm thời gian cần thiết để kiểm thử phần mềm và hiệu quả hơn. Trong mỗi phân vùng nếu một giá trị hoạt động đúng thì tất cả các giá trị khác cũng hoạt động đúng. Tương tự như vậy, nếu một giá trị không hoạt động đúng thì không có bất kỳ giá trị trong nào nhóm hoạt động đúng.

Các bước thiết kế testcase trong kỹ thuật phân vùng tương đương:

  • Xác định các lớp tương đương
  • Xác định các ca kiểm thử

2. Ví dụ minh họa

Xác định phân vùng tương đương theo yêu cầu sau đây:

  • Username chỉ được nhập trong khoảng từ 3-20 ký tự.
  • Nếu số ký tự nhập nằm ngoài khoảng [3,20] thì hiển thị thông báo: “Tên phải có ít nhất 3 ký tự và ít hơn 20 ký tự”
  • Nếu để trống hoặc nhập ký tự khác ký tự chữ thì hiển thị thông báo: “Tên không hợp lệ” Theo đề bài ta phân chia thành các vùng tương đương như sau:

Từ đó ta có các ca kiểm thử

  • Case 1: Nhập từ 3 đến 20 ký tự => pass
  • Case 2: Nhập < 3 ký tự => Hiển thị thông báo lỗi “Tên phải có ít nhất 3 ký tự và ít hơn 20 ký tự”
  • Case 3: Nhập > 20 ký tự => Hiển thị thông báo lỗi “Tên phải có ít nhất 3 ký tự và ít hơn 20 ký tự”
  • Case 4: Để trống hoặc nhập ký tự khác ký tự chữ => Hiển thị thông báo lỗi “Tên không hợp lệ”

III. Phân tích giá trị biên (Boundary Value Analysis (BVA) )

1. Thế nào là phân tích giá trị biên?

Phân tích giá trị biên là một kỹ thuật thiết kế trường hợp thử nghiệm để kiểm tra ranh giới giữa các phân vùng (kể cả ranh giới hợp lệ và ranh giới không hợp lệ). Lý do là các lỗi thường xảy ra ở các giá trị biên này. Thay vì chọn nhiều giá trị trong vùng tương đương để test thì chúng ta chọn các giá trị biên của các lớp tương đương để test. Nó vẫn bao quát toàn bộ trường hợp kiểm thử. Phân tích giá trị biên là phương pháp thiết kế ca kiểm thử bổ sung thêm cho phân lớp tương đương.

  • Cách chọn giá trị biên
  • Chúng ta sẽ chọn các giá trị biên theo nguyên tắc sau:
    • Giá trị nhỏ nhất
    • Giá trị ngay dưới giá trị nhỏ nhất
    • Giá trị trung bình
    • Giá trị lớn nhất
    • Giá trị ngay trên giá trị lớn nhất

Ví dụ: a<= x <= b thì sẽ chọn a-1, a, a+b/2, b, b+1

Nhưng nếu bạn muốn kiểm tra sâu hơn thì bạn cũng có thể lựa chọn nguyên tắc

  • 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

2. Ví dụ minh họa

Giả sử, với yêu cầu giá trị nhập đầu vào của textbox là từ 1 đến 20 ký tự, trong trường hợp này chúng ta có các đầu vào không hợp lệ và hợp lệ như sau:

Invalid Input Valid Input Invalid Input
less than or equal 0 1-20 greater than or equal 21

Dưới đây là các trường hợp kiểm tra sử dụng phân tích giá trị biên:

Valid Input Value
Min value -1 0
Min 1
Normal value 11
Max value 20
Max value +1 21

IV. Bảng quyết định (Decision Table)

1. Thế nào là bảng quyết định?

Một bảng quyết định là một cách tốt để đối phó với các đầu vào kết hợp khác nhau với các kết quả đầu ra liên quan của chúng và cũng được gọi là bảng nhân quả. Lý do để gọi bảng nhân quả là một kỹ thuật lập sơ đồ logic có liên quan được gọi là nguyên nhân – kết quả.

  • Bảng quyết định được chia làm 2 phần:
    • Điều kiện: Diễn tả mọi điều kiện có thể diễn ra
    • Hành động (hoặc kết quả): là những hành đông (kết quả) khác nhau có thể xảy ra tùy thuộc vào điều kiện
  • Số cột của bảng diễn tả mọi điều kiện bằng 2 lũy thừa của số điều kiên (ví dụ có 2 điều kiện thì có 2 mũ 2 = 4 cột)
  • Cách sử dụng bảng quyết định: Nhiệm vụ đầu tiên là xác định một chức năng phù hợp hoặc hệ thống con mà có sự kết hợp của các yếu tố đầu vào. Nên chia chúng thành các tập con và đối ứng với các tập con một lúc. Một khi bạn đã xác định các điều kiện cần phải được kết hợp, sau đó bạn đặt chúng vào một bảng liệt kê tất cả các kết hợp và đánh giá True và False cho mỗi điều kiện.

2. Ví dụ minh họa

Yêu cầu tìm kiếm sinh viên với 2 tiêu chí đó là họ tên và mã sinh viên. Kết quả trả về là thông tin sinh viên khi có họ tên sinh viên hoặc mã sinh viên trùng với đầu vào.

  • Xác định điều kiện đầu vào của hệ thống = 2 ^ N = 2 ^ 2 =4

Đầu vào Giá trị 1 Giá trị 2 Giá trị 3 Giá trị 4
Họ tên
Mã sinh viên

  • Nhập các giá trị có thể xảy ra của điều kiện

Đầu vào Giá trị 1 Giá trị 2 Giá trị 3 Giá trị 4
Họ tên T T F F
Mã sinh viên T F T F

  • Xác định kết quả trả về (Các hành động tương ứng của hệ thống)

Đầu vào Giá trị 1 Giá trị 2 Giá trị 3 Giá trị 4
Họ tên T T F F
Mã sinh viên T F T F
Đầu ra
Kết quả Hiển thị thông tin sinh viên Hiển thị thông tin sinh viên có họ tên trùng với đầu vào Hiển thị thông tin sinh viên mã sinh viên trùng với đầu vào Chưa nhập họ tên hoặc mã sinh viên

V. Đoán lỗi (Error Guessing)

Đoán lỗi là kỹ thuật dựa vào kinh nghiệm của Tester chứ không có luật rõ ràng như các kỹ thuật trên. Với các tester có kinh nghiệm thì họ có thể phỏng đoán các lỗi đã xảy ra với các chương trình trước đó để viết testcase phù hợp Điều này hoàn toàn dựa trên kinh nghiệm trước đây và sự phán xét của người kiểm thử. Người thử nghiệm tốt được khuyến khích suy nghĩ các điều kiện trong đó phần mềm có thể có cơ hội gặp lỗi cao nhất. Những kỹ thuật như vậy không có bất kỳ quy tắc nào để quyết định và hoàn toàn dựa trên kinh nghiệm.

VI. Kết luận

Như vậy chúng ta đã tìm hiểu các kỹ thuật kiểm thử hộp đen thường gặp, dưới đây là bảng tóm tắt ưu và nhược điểm của các kỹ thuật trên.

Ưu điểm Nhược điểm
Phân 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 test case được giảm đi => thời gian thực hiện test cũng giảm. Có thể bị lack lỗi ở biên nếu chỉ chọn giá trị ở khoảng giữa của miền tương đương.
Phân tích giá trị biên Tập trung vào việc kiểm thử các giá trị biên Tiết kiệm thời gian thiết kế test case và thực hiện test. Phương pháp này chỉ hiệu quả trong trường hợp các đối số đầu vào (input variables) độc lập với nhau và mỗi đối số đều có một miền giá trị hữu hạn.
Bảng quyết định Chúng ta có thể kiểm tra sự kết hợp của các điều kiện mà có thể đã bị lack và không được thử nghiệm và có thể tìm thấy khiếm khuyết. Nếu có quá nhiều kết hợp các điều kiện, sử dụng kỹ thuật này có thể không khả quan hoặc không hợp lý để kiểm tra từng kết hợp điều kiện.
Đoán lỗi Giúp tester tìm ra những lỗi điển hình thường xảy ra trong phần mềm. Được thực hiện bởi các Tester có kinh nghiệm và không theo một quy tắc nhất định, thiết kế test case dựa nhiều vào cảm tính.

Tham khảo

https://www.softwaretestingclass.com/what-is-black-box-testing/