• Testing

    Test case design techniques: Boundary value analysis

    Bài trước chúng ta đã tìm hiểu về Equivalence partitioning (Phân vùng tương đương), đó là phương pháp chia 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.

    Tuy nhiên cách này có một khuyết điểm là không bao quát được hết các giá trị nằm ở biên, mà phần lớn các lỗi được tìm thấy khi kiểm tra giá trị ở biên của các phân vùng. Đây cũng là lý do chúng ta nên tìm hiểu thêm một kỹ thuật nữa là Boundary value analysis (phân tích giá trị biên).
    Boundary value analysis

    Ví dụ yêu cầu là nhập [6 đến 12] ký tự. Thì ta có các phân vùng tương đương như sau:

    —(invalid)— 6 —(valid)— 12 —(invalid)—

    1. Invalid: Dưới 6
    2. Valid: 6 đến 12
    3. Invalid: trên 12

    Đầu tiên chúng ta xác định biên của các vùng giá trị đó. Ở đây ta có thể thấy được hai số “6” và “12” là biên.

    Để phân tích giá trị biên căn bản chúng ta dùng cách tính:
    Giá trị biên nhỏ nhất – 1
    Giá trị biên nhỏ nhất
    Giá trị biên lớn nhât
    Giá trị biên lớn nhất + 1

    Ngoài ra, để chắc chắn và bao quát testcase hơn bạn có thể dùng cách tính 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

    => Vậy với bài toán phía trên: [6 đến 12] ký tự. Ta sẽ có các case sau:
    Giá trị biên nhỏ nhất – 1: 5
    Giá trị biên nhỏ nhất: 6
    Giá trị biên lớn nhât: 12
    Giá trị biên lớn nhất + 1: 13

    Hoặc

    Giá trị biên nhỏ nhất – 1: 5
    Giá trị biên nhỏ nhất: 6
    Giá trị biên nhỏ nhất + 1: 7
    Giá trị biên lớn nhât – 1: 11
    Giá trị biên lớn nhât: 12
    Giá trị biên lớn nhất + 1: 13

  • Testing

    Test case design techniques: Equivalence partitioning

    Phân vùng tương đương là phương pháp chia 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.

    Ví dụ:

    – User ký tự chữ với độ dài trong khoảng [6-20]
    – Nếu nhập giá trị với số ký tự không nằm trong khoảng [6-20] => hiển thị lỗi “Không hợp lệ”.
    – Nếu để trống ô hoặc nhập ký tự khác ký tự chữ => hiển thị lỗi “Tên người dùng chưa hợp lệ!”

    * Từ yêu cầu trên ta có thể phân ra làm các phân vùng như sau:
    + Phân vùng 1: Nhập giá trị hợp lệ từ 6 => 20.
    + Phân vùng 2: Nhập giá trị không hợp lệ < 6 ký tự.
    + Phân vùng 3: Nhập giá trị không hợp lệ > 20 ký tự.
    + Phân vùng 4: Trường hợp để trống không nhập gì hay nhập ký tự không phải dạng chữ.

    => Từ các phân vùng ta có được các testcase như sau:
    + Case 1: Nhập giá trị từ 6 đến 20 => pass.
    + Case 2: Nhập giá trị < 6 ký tự => hiển thị lỗi.
    + Case 3: Nhập giá trị > 20 ký tự => hiển thị lỗi.
    + Case 4: Để trống không nhập gì hay nhập ký tự không phải dạng chữ => hiển thị lỗi.