Đường dẫn con P1 thực thi

Một phần của tài liệu (LUẬN án TIẾN sĩ) các kỹ thuật sinh tự động dữ liệu kiểm thử dựa trên các biểu đồ UML luận án TS máy tính 624801 (Trang 91 - 92)

đường dẫn kiểm thử được sinh ra như sau:

P =<Start, B1, D1, D2, D3, B3, D1, D2, D3, B4, D1, D2, B2, D1, End>. Mục đích là

tìm dữ liệu đầu vào thỏa mãn để đường dẫn trên có thể được thực thi.

Giả sử lấy dữ liệu đầu vào ban đầu là y = 5. Từ Hình 3.15, với giá trị y= 5 thì đường dẫn con của P là: P1 =<Start, B1, D1, D2, D3, B3, D1> được duyệt. Việc vi phạm ràng buộc tại nút quyết định D1. Nhánh con đầu tiên tìm các giá trị cho các biến đầu vào y, L, rec1.data, rec1.lef t, và rec1.right mà P1 được duyệt và nút quyết định D1 xảy ra với điều kiện đúng. Phân tích dịng dữ liệu động theo các biến trong đồ thị Hình 3.15 xác định rec1.lef t ảnh hưởng nhánh vị từ D1. Khi D3 đúng thực thi đường dẫn con P1 thì B3 có p = p∗.lef t, có nghĩa

là rec1.lef t và adr(rec1) là địa chỉ của rec1. Hơn nữa, rec2 được tạo ra thì địa chỉ của rec2 được gán chorec1.lef t. Tại mỗi thời điểm cấu trúc mới được tạo ra,

các thành phần con trỏ trong cấu trúc đều nhận giá trị NIL và thành phần số nguyên sẽ nhận giá trị nguyên ngẫu nhiên. Do đó, rec2.data nhận giá trị ngẫu nhiên 3, rec2.lef t và rec2.right nhận giá trị NIL. Theo tuần tự đó, cấu trúc dữ liệu đầu vào được tạo ra.

Theo CFG, các giá trị đầu vào làm đường dẫn con:

P2 =<Start, B1, D1, D2, D3, B3, D1, D2, D3, B4, D1> được đi qua với các giá trị trên. Vi phạm ràng buộc xảy ra khi duyệt D1 lần thứ ba. Mục đích con thứ hai là tìm các giá trị y, L,rec1.lef t, rec1.right, rec2.lef t, rec2.rightmà P2 được đi qua và nhánh tại D1 là đúng. Phân tích dịng dữ liệu động xác định rec2.right ảnh hưởng đến giá trị của D1. Chỉ có các giá trị mà được gán cho rec2.righttại điểm đó là adr(rec1) hoặc adr(rec3) khi rec3 là cấu trúc động mới. Trong nỗ lực của quá trình tìm kiếm, hàm gán adr(rec1) cho rec2.right, và cấu trúc dữ liệu được

tạo ra như sau: thực thi với giá trị đầu vào trên thì đường dẫn con P3 sẽ được đi qua: P3 =<Start, B1, D1, D2, D3, B3, D1, D2, D3, B4, D1, D2>. Việc vi phạm ràng

buộc tại D2 làm cho đường dẫn kiểm thử chưa đi qua B2. Vì vị từ tại nút quyết định D2 là một biểu thức toán học cho nên áp dụng giải thuật tìm kiếm miêu

rec3 NIL 15 NIL 3 NIL NIL 45 L y=5 rec1 rec2

Một phần của tài liệu (LUẬN án TIẾN sĩ) các kỹ thuật sinh tự động dữ liệu kiểm thử dựa trên các biểu đồ UML luận án TS máy tính 624801 (Trang 91 - 92)