Xây dựng hệ ràng buộc từ đường thi hành

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp phân tích mã nguồn và sinh dữ liệu kiểm thử cho các dự án c,c++ luận văn ths máy tính 604801 (Trang 29 - 30)

3.3. Pha sinh dữ liệu kiểm thử

3.3.3. Xây dựng hệ ràng buộc từ đường thi hành

Sau khi tập đường thi hành được xếp hạng, ta cần tìm nghiệm từng đường thi hành xuất phát từ đường thi hành có độ ưu tiên cao nhất. Nếu đường thi hành độ ưu tiên cao nhất hiện tại vô nghiệm, đường thi hành có độ ưu tiên nhỏ hơn kế tiếp được phân tích. Quá trình này kết thúc khi một hệ ràng buộc được xây dựng. Hệ ràng buộc này được giải và lưu thành dữ liệu kiểm thử kế tiếp.

Quy trình xây dựng hệ ràng buộc từ đường thi hành được mô tả trong hàm

has_solution() trong dòng 9 tại Thuật toán 3.1 gồm hai bước. Bước đầu tiên xây dựng hệ ràng buộc từ đường thi hành. Bước kế tiếp, hệ ràng buộc này được giải để tìm nghiệm thỏa mãn.

Về bản chất, hệ ràng buộc là hệ phương trình/bất phương trình thu được sau khi phân tích một đường thi hành sử dụng kĩ thuật thực thi tượng trưng. Nghiệm của hệ ràng buộc thỏa mãn đi qua các câu lệnh trong đường thi hành khi thực thi nghiệm đó

trong môi trường chạy. Các biến trong hệ ràng buộc gồm tham số truyền vào hàm và biến ngoài (biến static, biến external, v.v.). Về cơ bản, số lượng câu lệnh điều khiển trên đường thi hành bằng số lượng phương trình/bất phương trình trong hệ ràng buộc tương ứng.

Để xây dựng được hệ ràng buộc từ đường thi hành, kĩ thuật thực thi tượng trưng được sử dụng. Kĩ thuật này được đề xuất lần đầu tiên vào năm 1976 và được ứng dụng rộng rãi trong nhiều bài toán khoa học kĩ thuật. Tư tưởng chính của thuật thực thi tượng trưng là biểu diễn đường thi hành dưới dạng hệ ràng buộc bằng cách sử dụng mô hình bộ nhớ.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp phân tích mã nguồn và sinh dữ liệu kiểm thử cho các dự án c,c++ luận văn ths máy tính 604801 (Trang 29 - 30)

Tải bản đầy đủ (PDF)

(68 trang)