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ớ.