Phát hiện đường dẫn khả thi

Một phần của tài liệu PHƯƠNG PHÁP SINH tự ĐỘNG các CA KIỂM THỬ từ đặc tả CA sử DỤNG (Trang 50 - 51)

Một trong những tính năng quan trọng của thuật toán đã trình bày là khả năng phát hiện đƣờng dẫn không khả thi. Đƣờng dẫn khả thi có nghĩa là không có bất kỳ dữ liệu nào để đáp ứng tất cả các ràng buộc trong đƣờng dẫn trừu tƣợng. Ví dụ, nếu đƣờng dẫn trừu tƣợng chứa các ràng buộc a >= 12 và a <= 5 và không có bất kỳ hậu điều kiện nào giữa hai ràng buộc này làm thay đổi giá trị của a, thì các ràng buộc này không thể đƣợc thỏa mãn. Vì vậy, đƣờng dẫn trừu tƣợng này đƣợc công nhận là đƣờng dẫn bất khả thi “Infeasible Path” và thuật toán tìm kiếm phải thực hiện quay ngƣợc lại. Với việc phát hiện các đƣờng dẫn nhƣ vậy và ngăn thuật toán tìm kiếm tiến triển theo các đƣờng này, hầu hết không gian tìm kiếm có thể bị loại bỏ và dẫn đến thời gian thực thi thuật toán thấp hơn.

Ví dụ, hãy xem xét máy trạng thái trong Hình 3.7 bao gồm một đƣờng dẫn không khả thi đƣợc biểu thị bằng màu đỏ. Đƣờng dẫn này là không khả thi vì không có bất kỳ dữ liệu kiểm thử nào để đáp ứng nó. Mỗi đƣờng dẫn cần đƣợc bắt đầu bằng bất kỳ giá trị nào cho biến “a” lớn hơn hoặc bằng 12. Với giá trị này, quá trình chuyển đổi từ “State0” sang “State1” có thể đƣợc thỏa mãn. Nếu “Event1” xảy ra, quá trình chuyển đổi thứ ba của con đƣờng màu xanh lá cây sẽ đƣợc thỏa mãn và “Operation1” sẽ đƣợc chạy nhƣ một hiệu ứng của quá trình chuyển đổi. Gọi “Operation1” sẽ đặt biến “a” thành 3, dựa trên điều kiện đăng của “Operation1”. Tuy nhiên, nếu “Event2” xảy ra, nó dẫn đến việc đi ngang qua chuyển tiếp thứ ba của đƣờng màu đỏ và dẫn đến việc gọi “Operation2”. Trong trƣờng hợp này, giá trị của biến “a” không thay đổi. Điều kiện bảo vệ của quá trình chuyển tiếp thứ tƣ trong cả hai đƣờng (đỏ và xanh lá cây) đƣợc định

42

nghĩa là “a <= 5”. Trong lần chuyển đổi thứ ba của đƣờng màu xanh lá cây, giá trị của biến “a” đƣợc đặt thành 3. Do đó, quá trình chuyển đổi thứ tƣ có thể đƣợc thỏa mãn. Mặt khác, sự chuyển đổi thứ ba của đƣờng dẫn màu đỏ không dẫn đến thay đổi giá trị của biến “a” và nó vẫn giữ giá trị trƣớc đó của nó (a> = 12). Vì vậy, điều kiện bảo vệ của quá trình chuyển đổi thứ tƣ không thể đƣợc thỏa mãn. Đây là lý do tại sao con đƣờng màu đỏ là một con đƣờng không khả thi.

Hình 3.7: Mô tả đƣờng đi khả thi (infeasible path detection).

Nếu không thể thỏa mãn một đƣờng dẫn, tất cả các phần mở rộng của đƣờng dẫn đó cũng sẽ không khả thi. Với việc tăng độ sâu của đƣờng dẫn tìm kiếm, số lƣợng đƣờng dẫn trừu tƣợng đƣợc phát hiện sẽ tăng theo cấp số nhân. Đối với một máy trạng thái lớn mà mỗi trạng thái có hai chuyển tiếp đi và độ sâu của máy trạng thái là 20, tổng số đƣờng dẫn trừu tƣợng sẽ là 1048576. Nếu một đƣờng dẫn trừu tƣợng có độ dài 6 đƣợc nhận dạng là đƣờng dẫn không khả thi, thì 16384 đƣờng dẫn trừu tƣợng sẽ là bị xóa khỏi không gian tìm kiếm. Vì vậy, với tính năng phát hiện đƣờng dẫn bất khả thi “Infeasible Path Detection” của thuật toán tìm kiếm, chúng ta có thể thoát khỏi việc tìm kiếm nhiều đƣờng dẫn vô ích.

Một phần của tài liệu PHƯƠNG PHÁP SINH tự ĐỘNG các CA KIỂM THỬ từ đặc tả CA sử DỤNG (Trang 50 - 51)