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.
» Tin mới nhất:
» Các tin khác: