3.3. Pha sinh dữ liệu kiểm thử
3.3.2. Xếp hạng đường thi hành
Phần này trình bày thuật toán xếp hạng đường thi hành được nêu trong dòng 7 thuật toán LDFS. Tại bước này, từng đường thi hành được xếp hạng để đánh giá độ ưu tiên. Đường thi hành tăng độ phủ càng lớn thì độ ưu tiên càng cao. Mức độ tăng độ phủ được đánh giá qua trạng thái đồ thị CFG. Trong trường hợp hai đường thi hành
nhân bởi vì chi phí phân tích mã nguồn khá lớn, những đường thi hành ngắn hơn được ưu tiên hơn các đường thi hành khác để giảm chi phí phân tích mã nguồn.
Hiện tại, nhiều công trình đề xuất các phương pháp chọn đường thi hành kế tiếp khác nhau. Theo tư tưởng của kĩ thuật kiểm thử tự động định hướng, bộ dữ liệu kiểm thử kế tiếp được sinh ra từ nhánh/câu lệnh chưa được đi qua bởi các bộ dữ liệu kiểm thử trước đó. Bởi thế, bộ dữ liệu kiểm thử kế tiếp làm tăng độ phủ. Phương pháp đơn giản nhất được đề xuất vào năm 2005 bởi nhà nghiên cứu Patrice Godefroid và được áp dụng trong công cụ DART. Theo như phương pháp này, nhánh cuối cùng của đường thi hành mới nhất được phủ định. Tuy nhiên, quá trình phủ định này có thể khiến quá trình sinh dữ liệu kiểm thử rơi vào vòng lặp vô hạn trong trường hợp hàm có vòng lặp. Sau này, các nghiên cứu trong [10] và [4] giải quyết vấn đề này bằng cách hạn chế số lần lặp tối đa của vòng lặp. Ví dụ, mọi vòng lặp chỉ lặp tối đa 100 lần. Tiếp nối với các nghiên cứu trước đó, số lượng bộ dữ liệu kiểm thử được giảm thiểu hơn nữa bởi các nghiên cứu của nhóm CREST [1], nhóm CAUT [11] [12] do áp dụng đồ thị dòng điều kiển để chọn nhánh phủ định tốt nhất. Về bản chất, chiến thuật chọn đường thi hành kế tiếp trong luận văn dựa trên trạng thái của đồ thị CFG tương tự CREST và CAUT.