Với mục đích phát hiện lỗi, kiểm thử phần mềm thường phải trải qua các bước: tạo dữ liệu thử, thực thi phần mềm trên dữ liệu thử và quan sát kết quả nhận được. Trong các bước này, bước tạo dữ liệu đóng vai trò quan trọng nhất, bởi vì chúng ta không thể tạo ra mọi dữ liệu từ miền vào của chương trình, mà chúng ta chỉ có thể tạo ra các dữ liệu thử có khả năng phát hiện lỗi cao nhất. Vấn đề đặt ra là làm thế nào để đánh giá được khả năng phát hiện lỗi của một bộ dữ liệu thử?
Năm 1971, Dick Lipton đề xuất ra phương pháp kiểm thử đột biến, sau đó lĩnh vực này được đánh dấu sự ra đời và phổ biến bởi DeMillo [33] và Sayward_[34].
Kiểm thử đột biến [34] là một tiêu chuẩn nhằm tìm ra các lỗi trong chương trình. Tiêu chuẩn này tạo ra các phiên bản của chương trình có chứa các lỗi đơn giản và sau đó tìm ra các dữ liệu thử để chỉ ra các dấu hiệu của lỗi.
Kiểm thử đột biến là một kỹ thuật kiểm thử hộp trắng, hay còn gọi kỹ thuậtkiểm thử cấu trúc. Nó được tạo ra với mục đích kiểm tra, đánh giá bộ dữ liệu thử và giúp cho việc tạo ra các bộ dữ liệu thử 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 chương trình cần kiểm thử.Mỗi phiên bản chỉ chứa đúng một lỗi và đượ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òn đượ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ù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,..
Một cách cụ thểđột biến p' của chương trình gốc p là một chương trình tương tự với chương trình gốc p, p' khác p do chỉ một thay đổi nhỏ về cú pháp trong chương trình. Chẳng hạn,thay phép a+b bằng a-b.
Dựa trên tiêu chuẩn chất lượng đột biến, lần lượt các đột biến sẽ được thực hiện với một bộ dữ liệu thử để xác định có bao nhiêu đột biến thất bại (tức là cung cấp đầu ra không đúng cho đầu vào kiểm thử đó so với chương trình gốc). Nếu số đột biến thất bại càng nhiều, càng lớn thì bộ dữ liệu thử càng chất lượng
» Tin mới nhất:
» Các tin khác: