• 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