Khi đã xác định được tất cả các dữ liệu thử trong T cung cấp các đầu ra chính xác, bước tiếp theo là tạo ra một tập M – tập các đột biến P’ của chương trình gốc P. Sau khi tạo ra tập M chứa tất cả các đột biến, lần lượt các đột biến P’ này được thực hiện với T và các kết quả đầu ra của chúng được so sánh với các kết quả đầu ra của chương trình gốc P, lúc này có hai kịch bản khác nhau có thể xảy ra dưới đây.
- Lỗi được chèn vào trong chương trình đột biến được nhận biết, nghĩa là chương trình P và đột biến P’ cho ra các kết quả khác nhau. Trong trường hợp này, đột biến được gọi là bị diệt (killed) bởi dữ liệu thử . Khi đó, được gọi là dữ liệu thử thích hợp vì nó có khả năng phát hiện được sự khác nhau giữa chương trình gốc P và đột biến . Các đột biến như vậy trở nên không cần thiết vì dữ liệu thử hiện có đã phân biệt được chúng, và do đó chúng sẽ bị loại khỏi tập đột biến .
Ví dụ:
- Chương trình gốc và đột biến cho ra kết quả hoàn toàn giống nhau. Trong trường hợp này, có thể có hai khả năng xảy ra. Khả năng thứ nhất là dữ liệu thử không đủ tốt (hay được gọi là dữ liệu thử không thích hợp), chúng ta sẽ phải tiến hành thực hiện kiểm thử lại với các dữ liệu thử tốt hơn. Khả năng thứ hai là chương trình và đột biến là những chương trình tương đương nhau, mọi dữ liệu thử đều không thể phân biệt sự khác nhau giữa chúng do đó được gọi là đột biến tương đương. Trong cả hai trường hợp này, đột biến được cho là còn sống (alive).
Khi tất cả các dữ liệu thử trong đã được thực hiện trên tất cả các đột biến trong , các đột biến đó vẫn còn sống (vẫn còn tồn tại trong ) tức là cho đến lúc này vẫn không thể phân biệt chúng với chương trình gốc . Nói cách khác, không tồn tại dữ liệu thử trong làm cho những đột biến còn sống tính toán kết quả đầu ra khác so với . Những đột biến này trở thành mục tiêu cho lần lặp tiếp theo, trong đó dữ liệu thử mới sẽ được tạo ra với nỗ lực để phân biệt được chúng.
Quá trình này tiếp tục cho đến khi tất cả các đột biến trong bị diệt. Tuy nhiên, để diệt được các đột biến không phải là một công việc dễ dàng vì một số đột biến có thể có ngữ nghĩa giống với chương trình gốc. Những đột biến tương đương này sẽ luôn luôn tạo ra kết quả đầu ra giống với với bất kỳ dữ liệu vào nào.» Tin mới nhất:
» Các tin khác: