3. Bố cục của luận văn
2.5.4. Hàm đánh giá
Hàm đánh giá đo xem một giải pháp tốt để đạt đƣợc mục tiêu tìm kiếm nhƣ thế nào. TSG sử dụng hai hàm đánh giá khác nhau:
Hàm đánh giá cho một phƣơng án kiểm thử khi nó đi đến một nút nj nhƣng lại không đi qua nút bố ni. Nó đƣợc sử dụng để tăng cƣờng việc tìm kiếm và tính bởi trung bình các hàm đánh giá đƣợc gọi là fnjni ( ̅)
Hàm đánh giá cho một kiểm thử khi nó đi đến nút ni. Nó đƣợc sử dụng để làm đa dạng việc tìm kiếm và đƣợc tính bởi trung bình của các hàm đánh giá đƣợc gọi là fpni( ̅).
Với mỗi việc thực hiện kiểm thử , TSG sử dụng cả hai giá trị đánh giá trên. Kiểm thử tốt nhất đƣợc tìm thấy sẽ lƣu trên CFG. Cụ thể là một nút CFG ni chứa giải BKS - việc cố gắng đi đến nút con nj của nó (đƣợc gọi là BKSnjni - phƣơng án tốt nhất của ni cho việc cố gắng đạt đến nút con nj của nó). Và BS là phƣơng án cho việc đi đến ni. Những phƣơng án tốt nhất đƣợc lƣu trong tất cả các nút CFG ngoại trừ nút gốc (nút mà không chứa BS từ tất cả những kiểm thử không có điều kiện), và những nút lá (nút mà không chứa BKS từ chúng không có nút con nào).
Ví dụ sau thể hiện ví dụ về những kiểm thử tốt nhất đƣợc chứa trong một nút ni mà có hai nút con nj và nk. Trong đó
Condni là quyết định xem có đi đến ni Condnjnilà quyết định xem có đến nj từ ni
Hình 2.3. Ví dụ về những kiểm thử tốt nhất được chứa trong một nút ni mà có hai nút con nj và nk
Trong suốt quá trình tìm kiếm, TSG sẽ thƣờng xuyên sử dụng BKSnsgoalni nhƣ một phƣơng án hiện tại (CS) để cố gắng đi qua nut sgoal nsgoal. Tuy nhiên, nếu việc tìm kiếm không thành công, thuật toán sẽ dùng BSni giống nhƣ CS để đa dạng hóa vùng tìm kiếm.
Hàm đánh giá fnjni( ̅):
Hàm đánh giá fnjni( ̅) đƣợc sử dụng để đánh giá các kiểm thử, mặc dù nó làm cho quyết định Condnjni bị False (không đạt tới node nj). Định nghĩa hàm đánh giá fnjni( ̅) đƣợc thể hiện trong bảng sau:
Loại quan hệ Condnj ni TSGen fnj ni ( ̅) Quan hệ bằng x=y x=y x=y |x-y|+α Quan hệ không bằng x?y x<y x>y |x-y| AND c1c2…cn
OR c1c2…cn Giá trị nhỏ nhất của các fnjni( ̅)cici = FALSE
NOT c Theo luật De Morgan
Bảng 2.1. Định nghĩa hàm đánh giá fnjni( ̅)
Trong đó σ đƣợc sử dụng để tránh trƣờng hợp hàm đánh giá bằng 0. Việc gán một hàm đánh giá thấp để những kiểm thử này gần với nhánh mà quyết định Connj đúng. Mục tiêu của TSG là hàm giá fnjni ( ̅) đạt cực tiểu.
Hàm đánh giá fpni( ̅):
Hàm đánh giá fpni( ̅) đƣợc sử dụng để đánh giá hàm giá của một kiểm thử tại mỗi node ni đƣợc đi qua. Trong suốt quá trình tìm kiếm, việc đánh giá sử dụng hàm đánh giá này sẽ xác định kiểm thử mà đƣợc chứa trong CFG nhƣ BSni. Giải pháp này đƣợc sử dụng nhƣ CS khi giải pháp BKSnsgoalni bị thất bại. Định nghĩa hàm đánh giá fpni( ̅) đƣợc thể hiện trong bảng sau:
Loại quan hệ Condni TSGen fpni( ̅) Quan hệ bằng x=y x=y x=y |x-y|+α Quan hệ không bằng x?y x<y x>y |x-y|
AND c1c2…cn Giá trị nhỏ nhất của cácfpni( ̅)cici = TRUE
OR c1c2…cn
NOT c Theo luật De Morgan
Bảng 2.2. Định nghĩa hàm đánh giá fpni( ̅)