Các kỹ thuật kiểm thử hộp đen

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)
  • Kỹ thuật chuyển đổi trạng thái (State Transition)

1. Phân vùng tương đương (Equivalence partitioning):

Chia đầu vào thành những nhóm tương đương nhau. Nếu 1 giá trị đại diện trong nhóm hoạt động đúng thì tất cả giá trị trong nhóm đó cũng hoạt động đúng và ngược lại.

Mục đích của phương pháp này là giảm đáng kể số lượng test case phải thiết kế vì với mỗi lớp tương đương ta chỉ cần test trên các phần tử đại diện
Thiết kế test case theo phương pháp này được thực hiện thông qua 2 bước: xác định lớp tương đương và xác định các ca kiểm thử.
Ví dụ:
Áp dụng phân vùng tương đương cho đặc tả 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:
Valid Invalid
Nhập ký tự trong khoảng [3-20] ký tự Nhập < 3 ký tự
Nhập >20 ký tự

Từ đó, ta có các case kiểm thử như sau:
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ự”

2. Phân tích giá trị biên (Boundary values analysis):

Là phương pháp test mà tester test tất cả các giá trị ở vùng biên của dữ liệu đầu vào và đầu ra (chỉ tập trung vào các giá trị biên chứ không test toàn bộ dữ liệu). Thay vì chọn nhiều giá trị trong lớp tương đương để làm giá trị đại diện, phân tích biên yêu cầu chọn 1 hoặc 1 vài giá trị là biên của lớp tương đương để làm điều kiện test.

Các giá trị biên được chọn test thường gồm 5 giá trị: Giá trị nhỏ nhất (GTNN), Giá trị ngay dưới GTNN, Giá trị bình thường, Giá trị lớn nhất (GTLN) và giá trị ngay trên GTLN
Ví dụ 1:
a<= x <= b thì sẽ chọn a-1, a, a+b/2, b, b+1
Ví dụ 2:
Giả sử, đầu vào của textbox là từ 3 đến 20 ký tự
Sử dụng phương pháp phân tích giá trị biên ta có các trường hợp sau

  • Giá trị nhỏ nhất (GTNN): 3
  • Giá trị ngay dưới GTNN: 2
  • Giá trị bình thường: 10
  • Giá trị lớn nhất (GTLN): 20
  • Giá trị ngay trên GTLN: 21

3. Phương pháp bảng quyết định (Decision table):

Phương pháp bảng quyết định dùng trong trường hợp kiểm thử hành vi hệ thống với nhiều trường dữ liệu, bảng quyết định sẽ giúp người kiểm thử phân loại và định hình được kịch bản kiểm thử một cách chính xác, logic.
Phương pháp này là kỹ thuật quyết định số test case tối thiểu với độ bao phủ tối đa.
Các bước để tạo bảng quyết định: liệt kê các Condition/Input, tính số lượng kết hợp có thể, đưa tất cả các kết hợp vào trong bảng.
Số cột của bảng diễn tả mọi điều kiện bằng số kết quả của mỗi điều kiện nhân với nhau
Ví dụ:
Yêu cầu tìm kiếm thông tin nhân viên với 2 tiêu chí đó là họ tên và mã nhân viên.
Kết quả trả về là thông tin nhân viên khi có họ tên và mã nhân viên trùng với đầu vào.
Bảng quyết định sẽ có dạng như sau:

  • Đầu vào của hệ thống: họ tên, mã nhân viên; mỗi đầu vàu có 2 kết quả hoặc True hoặc False
    => có 2^2 = 4 cột diễn tả điều kiện đầu vào
  • Nhập các giá trị có thể xảy ra của điều kiện
Đầu vào Case 1 Case 2 Case 3 Case 4
Họ tên T T F F
Mã nhân viên T F T F
Kết quả Hiển thị thông tin
nhân viên
Thông báo mã NV
không tồn tại
Thông họ tên NV
không tồn tại
Thông báo không
tồn tại NV

4. Phương pháp chuyển trạng thái:

Kỹ thuật chuyển trạng thái được áp dụng trong các trường hợp khi mà kết quả đầu ra được kích hoạt bởi sự thay đổi của các điều kiện đầu vào hoặc thay đổi trạng thái của hệ thống. Kỹ thuật kiểm thử chuyển trạng thái hữu ích khi bạn cần kiểm thử các cách chuyển đổi khác nhau của hệ thống
Ví dụ:
Trong màn hình đăng nhập đặt chỗ chuyến bay, bạn phải nhập đúng tên đại lý và mật khẩu để truy cập ứng dụng đặt chỗ chuyến bay.
Biểu đồ chuyển trạng thái
Biểu đồ chuyển trạng thái cung cấp cho user quyền truy cập vào ứng dụng với mật khẩu và tên đăng nhập chính xác, nhưng nếu nhập sai mật khẩu, ứng dụng cho phép ba lần thử và nếu người dùng nhập sai mật khẩu ở lần thử thứ 4, hệ thống sẽ tự động đóng ứng dụng.
Sử dụng Bảng trạng thái để xác định chuyển đổi hệ thống không hợp lệ.

Trong Bảng trạng thái, tất cả các trạng thái hợp lệ được liệt kê ở phía bên trái của bảng và các sự kiện gây ra chúng ở trên cùng.
Mỗi ô đại diện cho hệ thống trạng thái sẽ di chuyển đến khi sự kiện tương ứng xảy ra.
Ví dụ: Khi ở trạng thái S1, bạn nhập mật khẩu chính xác, bạn được đưa đến trạng thái S6 (Cấp quyền truy cập). Giả sử nếu bạn đã nhập sai mật khẩu ở lần thử đầu tiên hoặc Lần 2, bạn sẽ được đưa đến trạng thái S3.
Tương tự như vậy, bạn có thể xác định tất cả các trạng thái khác.
Tài liệu tham khảo:
Mục 4.2. Black-box Test Techniques https://www.istqb.org/downloads/send/51-ctfl2018/208-ctfl-2018-syllabus.html