1.2.4 Xây dựng các điểm kiểm tra ON và OFF trong kiểm thử miền
Trong kiểm thử miền cần xác định rõ mục tiêu là để tìm ra các lỗi miền ở nơi mà các ca kiểm thử đƣợc thiết kế với mục đích phát hiện ra các lỗi miền đã đƣợc nêu trong Phần 1.2.3 ở trên.
Một đặc điểm quan trọng của lỗi miền đó là: Các điểm dữ liệu ở trên hoặc gần biên sẽ có khả năng cao để đƣa ra các lỗi miền. Do đó, với mục tiêu xác định các điểm dữ liệu đƣợc cho là nhạy cảm nhất dẫn đến các lỗi miền, thì việc thực hiện các chƣơng trình với những giá trị đầu vào đó sẽ đem đến kết quả khả thi nhất cho quá trình kiểm thử.
Trong kiểm thử miền tác giả sẽ cho chúng ta làm quen với hai khái niệm về điểm ON và OFF, đây chính là những điểm đƣợc xác định trên hoặc gần với biên của miền nhất, và vì vậy chúng là những điểm dễ phát hiện ra lỗi của chƣơng trình.
a. Điểm ON:
*) Định nghĩa: Cho một biên, một điểm ON là một điểm trên biên hoặc "rất gần" biên. Định nghĩa này cho thấy rằng chúng ta có thể chọn một điểm ON theo hai cách phụ thuộc vào vị từ và mục đích lựa chọn. Từ đó chúng ta sẽ biết lựa chọn một điểm ON theo cách nào là phù hợp:
- Nếu một điểm có thể đƣợc lựa chọn nằm chính xác trên biên, khi đó lựa chọn điểm nhƣ vậy sẽ là một điểm ON lý tƣởng nhất.
- Nếu một bất đẳng thức của biên dẫn đến một giải pháp gần đúng, chọn một điểm rất gần với biên. (ví dụ: x < 5 thì chọn giá trị nhỏ và gần 5 nhất để thỏa mãn điều kiện của x)
*) Ví dụ: Hãy xem xét những bất đẳng thức của biên sau đây
PON1: x + 7y ≥ 6
Cho x = -1, vị từ PON1 sẽ đƣa ra một giá trị chính xác của y là = 1. Do đó, điểm (-1, 1) nằm trên biên.
Tuy nhiên, nếu chúng ta chọn x = 0, vị từ PON1 dẫn đến một giải pháp gần đúng của y ở dạng y = 6/7 = 0.8571428. . . Vì y không có một giá trị chính xác, chúng ta có thể cắt nó thành 0.857 hoặc làm tròn nó thành 0.858. Ta nhận thấy rằng điểm (0, 0.857) không đáp ứng các vị từ PON1 (vì 0.857y < 6), trong khi điểm (0, 0.858) thỏa mãn (vì 0.858y > 6). Do đó, điểm (0, 0.858) là một điểm ON nằm rất gần với biên PON1.
Do đó ta thấy: theo bất đẳng thức PON1 thì nếu chọn x=1 sẽ xác định đƣợc chính xác y = 1, khi đó ta sẽ có một điểm chính xác nằm trên biên. Tuy nhiên nếu cho x = 0
thì y = 6/7 và cho một số không chính xác, khi đó chọn một giá trị tƣơng đối của y sẽ cho ta một điểm gần với biên.
*) Ví dụ: Hãy xem xét một miền với biên mở nhƣ sau: PON2: x + 7y < 6
Điểm nằm chính xác trên biên đƣợc xác định bởi vị từ: PON2’ : x + 7y = 6
Nhƣng điểm đó lại không phải là một phần của miền đang đƣợc xem xét. Điểm (- 1, 1) nằm chính xác trên biên PON2’ và là một điểm ON. Lƣu ý rằng điểm (-1, 1) không phải là một phần của miền đang đƣợc xem xét. Tƣơng tự nhƣ vậy, các điểm (0, 0.858), trong đó gần nhƣ trên biên, nó nằm rất gần với biên, là một điểm ON và nó nằm ngoài phạm vi quan tâm.
b. Điểm OFF:
*) Định nghĩa: Một điểm OFF của một biên là điểm nằm cách xa biên.
Tuy nhiên, khi lựa chọn một điểm OFF, chúng ta phải xem xét liệu một biên là mở hay đóng đối với một miền:
- Nếu một biên là mở với một miền đang đƣợc xem xét, thì khi đó một điểm OFF của biên đó là một điểm trong nằm bên trong miền với một khoảng cách nhỏ tùy ý từ biên.
- Nếu một biên là đóng so với miền đang đƣợc xem xét, thì sau đó một điểm OFF của biên đó là một điểm ngoài nằm ở phía ngoài của biên với một khoảng cách nhỏ tùy ý.
*) Ví dụ: Hãy xem xét một miền D1 với một biên đóng nhƣ sau: POFF1: x + 7y ≥ 6
Khi biên đƣợc đóng lại, một điểm OFF nằm ngoài miền này có nghĩa là bất đẳng thức biên không đáp ứng. Lƣu ý rằng điểm (-1, 1) nằm chính xác trên biên và nó thuộc về miền. Do đó, (-1, 1) không phải là một điểm OFF. Tuy nhiên, điểm (-1, 0.99) nằm bên ngoài miền, và nó không phải là một phần của miền đang đƣợc xem xét. Điều này có thể dễ dàng kiểm chứng bằng cách thay thế x = -1 và y = 0,99 vào trong bất đẳng thức POFF1, khi đó sẽ sinh ra một giá trị 5.93 < 6. Do đó, (-1, 0.99) là một điểm OFF.
*) Ví dụ: Hãy xem xét một miền D2, đó là miền tiếp giáp với miền D1 trong ví dụ trên với một biên mở nhƣ sau: POFF2: x + 7Y <6
Khi biên POFF2 là mở, một điểm OFF nằm bên trong miền. Có thể dễ dàng xác định điểm (-1, 0.99) nằm bên trong D2, và do đó nó là một điểm OFF cho miền D2 đối với biên POFF2.
c. Tổng quát:
- Trong khi kiểm thử một biên đóng, các điểm ON sẽ thuộc miền đƣợc kiểm tra, và các điểm OFF nằm trong một miền lân cận.
- Trong khi kiểm thử một biên mở, các điểm ON nằm trong một miền lân cận, còn các điểm OFF nằm trong miền đang đƣợc thử nghiệm.