Kỹ thuật phân tích giá trị biên (Boundary Value Testing)

Một phần của tài liệu Kiểm thử đơn vị cho hệ thống (Trang 26 - 30)

Ý tưởng của kỹ thuật này là lập ra các ca kiểm thử tại các giá trị biên và cận biên của các khoảng dữ liệu đầu vào. Thực tế đã chứng minh rằng, các giá trị ở vùng biên, vùng tới hạn là những giá trị thường gây ra lỗi cao nhất, những nơi diễn ra tính toán cơ học hoặc tại các vị trí dữ liệu được thao tác phải thay đổi cho hợp lý để chương trình xuất ra kết quả chính xác. Các ca kiểm thử sẽ được lập ra để phân tích kết quả tại các điểm giá trị biên dưới, cận trên của biên dưới, cận dưới của biên trên, biên trên của các biến đầu vào, tức là các điểm min, min+, max- và max. Các trường hợp cần kiểm tra sẽ chính là các ca kiểm thử lần lượt tương ứng với các giá trị đầu vào là các điểm đặc biệt trên. Kết quả mong đợi là khi chương trình làm việc chính xác với các giá trị đặc biệt này thì nó sẽ làm việc chính xác với các giá trị thông thường bên trong miền giá trị.

Phân tích giá trị biên là một kỹ thuật mở rộng và cải tiến của kỹ thuật phân lớp tương đương [5]. Kiểm thử giá trị biên giúp tạo ra các ca kiểm thử bổ sung thêm cho phân lớp tương đương, nó cho phép tìm lỗi trong mỗi miền là độc lập và khách quan như nhau, nhưng khác với phân lớp tương đương ở hai khía cạnh:

1. Phân tích giá trị biên không lựa chọn phần tử bất kỳ nào trong 1 lớp tương đương là điển hình, mà nó yêu cầu là 1 hay nhiều phần tử được lựa chọn như vậy mà mỗi cạnh của lớp tương đương đó chính là đối tượng kiểm tra.

2. Ngoài việc chỉ tập trung chú ý vào các trạng thái đầu vào (không gian đầu vào), các ca kiểm thử cũng nhận được bằng việc xem xét không gian kết quả (các lớp tương đương đầu ra).

Thiết lập các ca kiểm thử được chỉ ra bởi phân tích giá trị biên phụ thuộc vào cả sự yêu cầu về tính tin cậy của phần mềm và cả những giả thuyết có thể xảy ra trong quá trình kiểm soát lỗi.

Giá trị biên có thể được xác định như sau [2]:

 Nếu lớp tương đương là một miền giới hạn dữ liệu vào hợp lệ thì xác định được

các điểm biên ở trong miền và các điểm biên ở ngoài miền

 Nếu lớp tương đương xác định một số lượng các giá trị thì điểm biên xác định

là số nhỏ nhất và số lớn nhất của số lượng các giá trị hợp lệ

Nếu lớp tương đương xác định một tập hợp thì giá trị biên chỉ tập trung tới điểm đầu và điểm cuối của tập hợp.

Số lượng các ca kiểm thử sinh ra theo kỹ thuật này phụ thuộc vào số biến đầu vào, nếu hàm có n biến thì sẽ có 4n+1 ca kiểm thử. Ngoài ra, việc sinh ca kiểm thử còn phụ thuộc và loại dữ liệu đầu vào có tính phụ thuộc phức tạp hay không và phụ thuộc bản chất dữ liệu.

Kiểm thử biên mở rộng [1]: Là sự mở rộng của kỹ thuật phân tích giá trị biên có bản bằng cách thêm vào tập giá trị biên cơ bản các giá trị vượt ra ngoài biên, nằm ngoài tập giá trị đang xét. Nếu hệ thống được cài đặt đúng thì với các giá trị đầu vào nằm ngoài biên sẽ không dẫn tới lỗi chương trình, hệ thống bị treo.

Hình 3.2 Kỹ thuật kiểm thử biên mở rộng

Kỹ thuật này đòi hỏi việc kiểm tra tính đáp ứng của hệ thống với trường hợp cận dưới của biên dưới (min- ) và cận trên của biên trên (max+). Với n biến đầu vào sẽ có

Kiểm thử trường hợp xấu nhất là kỹ thuật giúp loại bỏ giá thiết “lỗi đơn” cho rằng hiếm khi xảy ra trường hợp lỗi đồng thời, nghĩa là ta cần kiểm tra các tình huống có hơn một biến đầu vào là giá trị không hợp lệ.

Với kỹ thuật này, ta sẽ tiến hành sinh các ca kiểm thử bằng cách kiểm tra các giá trị tại điểm nút giao nhayu, điểm chốt phân hoạch các tập giá trị. Tập giá trị vẫn là

min, min+, nom, max-, max nhưng cả hai biến đều nhận giá trị này chứ không phải chỉ một biến nhận giá trị này theo kỹ thuật phân tích giá trị biên cơ bản. Kỹ thuật này cho số lượng ca kiểm thử tính theo hàm mũ, nếu có n biến thì sẽ có 5n trường hợp kiểm thử.

Hình 3.3 Các biên kiểm thử trong trƣờng hợp xấu nhất.

Để đảm bảo việc kiểm thử sẽ phát hiện được nhiều lỗi nhất có thể, người ta sẽ sử dụng kết hợp các kỹ thuật biên với nhau như kết hợp kỹ thuật biên mở rộng với kỹ thuật biên trong trường hợp xấu nhất. Khi đó, chung ta cần kiểm thử cả những giá trị ngoài biên gồm : min-, min, min+, nom, max-, max, max+. Kỹ thuật này sẽ sinh ra số

lượng lớn các ca kiểm thử, nếu có n biến đầu vào sẽ có 7nca kiểm thử được sinh

Hình 3.4 Kết hợp kiểm thử biên rƣờng hợp xấu nhẩt và kiểm thử biên mở rộng.

Để dễ phân biệt các kỹ thuật kiểm thử biên ra xem hình dưới đây là sự so sánh các kỹ thuật biên ở trên. Sự kết hợp các kỹ thuật khác nhau trong kiểm thử giá trị biên được coi là kỹ thuật kiểm thử giá trị đặc biệt và là kỹ thuật kiểm thử chức năng được sử dụng rỗng rãi nhất. Trong kỹ thuật này, kiểm thử viên dựa vào hiểu biết về kỹ thuật và kinh nghiệm của họ với các chương trình tương tự, các thông tin để có phân hoạch miền giá trị đầu vào từ đó sinh ra các ca kiểm thử.

Hình 3.5 So sánh các kỹ thuật kiểm thử biên. Nhận xét:

Ưu điểm: Kiểm thử giá trị biên là kỹ thuật có tính trực quan, dễ hiểu, dễ áp dụng. Vì việc sinh ca kiểm thử chỉ tập trung tại các biên của miền dữ liệu đầu vào nên khi sử dụng kỹ thuật này sẽ làm giảm đáng kể số lượng ca kiểm thử cần tạo và thực thi. Kỹ thuật này phù hợp với hầu hết các hệ thống có miền giá trị đầu vào của các biến được chia thành nhiều phân vùng con. Hơn nữa, ưu điểm lớn nhất của kỹ thuật này là xác suất tìm ra lỗi cao vì một tỉ lệ lớn các lỗi xảy ra tại vị trí biên và cận biên.

Nhược điểm: Tuy có khá nhiều ưu điểm nhưng kiểm thử giá trị biên vẫn tồn tại một vài hạn chế nhất định như: Để áp dụng được kỹ thuật này cần yêu cầu các biến đầu vào là các đại lượng vật lý và thực sự độc lập với nhau về mặt logic.

Các bài toán áp dụng kỹ thuật kiểm thử biên: Kỹ thuật này nên áp dụng cho các hàm có biến đầu vào độc lập, không phụ thuộc nhau. Khi chúng ta có giả định một khiếm khuyết trong chương trình sẽ gây ra lỗi ngay khi chúng ta sử dụng kiểm thử biên thông thường. Trái lại khi lỗi thường xuất hiện khi có hơn một khiếm khuyết trong chương trình thì chúng ta cần sử dụng kiểm thử giá trị biên mạnh. Các kỹ thuật này đều đơn giản, dễ dàng tự động hóa việc sinh và chạy các ca kiểm thử.

Một phần của tài liệu Kiểm thử đơn vị cho hệ thống (Trang 26 - 30)