Bảng 1. Ví dụ về đột biến.
Chương trình gốc P |
Đột biến P’ |
Đột biến P’’ |
int max(int x,int y) { int mx=x; if (x < y) mx=y return mx; } |
int max(int x,int y) { int mx=x; if (x > y) mx=y return mx; } |
int max(int x,int y) { int mx=x; if (x >= y) mx=y return mx; } |
Sau khi tạo ra các đột biến, mỗi đột biến và chương trình gốc sẽ cùng được thực thi dưới một dữ liệu thử duy nhất, nếu kết quả đầu ra của đột biến khác với của chương trình gốc, đột biến này sẽ được gọi là bị diệt (killed). Nếu không có dữ liệu thử nào có thể diệt được đột biến, đột biến sẽ được gọi là đột biến tương đương (equivalent), tức là đột biến đó tương đương về mặt ngữ nghĩa so với chương trình gốc. Xét ví dụ phía trên, p'' là một đột biến tương đương vì p và p'' luôn cho ra kết quả giống nhau với mọi bộ dữ liệu thử. Sau khi chạy tất cả các đột biến và chương trình gốc trên bộ dữ liệu thử, một [NTB-KC1] tỉ lệ đột biến sẽ được tính toán bằng cách lấy phần trăm của số đột biến bị diệt chia cho tổng số đột biến không tương đương. Tỉ lệ đột biến (Mutation Score - MS) được tính bằng công thức sau:
Trong đó,
» Tin mới nhất:
» Các tin khác: