Kiểm thử đột biến
Kiểm thử đột biến được thiết kế nhằm tạo ra dữ liệu thử hiệu quả, nghĩa là có khả năng phát hiện lỗi của chương trình. Trong khi thực hiện kiểm thử đột biến, chúng ta tạo ra các phiên bản lỗi của chương trình gốc bằng cách chèn lỗi vào mã nguồn của nó. Sau đó, thực thi kiểm thử với lần lượt các dữ liệu thử cho từng phiên bản lỗi. So sánh kết quả đầu ra của từng phiên bản lỗi với chương trình gốc, từ đó đánh giá được khả năng phát hiện lỗi của dữ liệu thử [6].
Nguyên lý chung của công việc kiểm thử độtbiến là các lỗi được sử dụng bởi kiểm thử đột biến đại diện cho các lỗi sơ suất do lập trình viên thường tạo ra và các vấn đề kiểm thử liên quan khác. Các lỗi như thế được gieo một cách thận trọng vào chương trình gốc, bằng cách thay đổi cú pháp đơn giản, để tạo một tập các chương trình lỗi gọi là đột biến, mỗi đột biến mang một thay đổi cú pháp khác nhau. Để đánh giá chất lượng của một bộ thử đã cho, các đột biến đó được thực thi với các bộ dữ liệu thử đầu vào để xem có phát hiện được lỗi nào được gieo vào hay không.
Kiểm thử đột biến là một kỹ thuật kiểm thử hộp trắng hay kiểm thử cấu trúc, được xây dựng dựa vào hai giả thuyết cơ bản[6]:giả thuyết “lập trình viên giỏi” (competent programmer) và giả thuyết “hiệu ứng liên kết” (coupling effect). Giả thuyết lập “trình viên giỏi” giả thiết rằng lập trình viên chỉ phạm những lỗi đơn giản do sơ suất. Giả thuyết “hiệu ứng liên kết” giả thuyết rằng, nếu dữ liệu thử phát hiện được các lỗi đơn giản thì dữ liệu đó cũng cho phép phát hiện các lỗi phức tạp [6].
Kiểm thử đột biến bao gồm việc chèn các lỗi vào trong chương trình cần được kiểm thử để tạo ra các phiên bản lỗi của chương trình, mỗi phiên bản chỉ chứa đúng một lỗi. Mỗi phiên bản lỗi của chương trình gốc được gọi là một đột biến (mutant). Mỗi đột biến được tạo ra bởi chỉ một sự thay đổi cú pháp trong chương trình gốc, mỗi sự thay đổi cú pháp là một luật hay được gọi là một toán tử đột biến (mutation operator). Các toán tử đột biến được định nghĩa sẵn để tạo ra sự thay đổi cú pháp dựa trên các lỗi mà các lập trình viên thường phạm phải. Ví dụ, thay một biến bởi một biến khác có cùng kiểu, hoặc thay một toán tử số học bởi một toán tử số học khác, ...
» Tin mới nhất:
» Các tin khác: