Khái niệm kiểm thử đột biến

Một phần của tài liệu Kỹ thuật kiểm thử đột biến và ứng dụng để kiểm thử các chương trình Java (Trang 26)

Kiểm thử đột biến được đề xuất đầu tiên vào năm 1979 bởi DeMillo và đồng nghiệp [7]. Nó cung cấp một phương tiện để đánh giá và cải tiến chất lượng dữ liệu thử cho chương trình được kiểm thử (PUT).

Kiểm thử đột biến bao gồm việc chèn các lỗi vào trong PUT để 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 PUT đượ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 PUT, 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ụ: Toán tử đột biến toán tử quan hệ sẽ tạo ra một số các đột biến trong đó mỗi đột biến có sự xuất hiện của một toán tử quan hệ được thay thế bởi toán tử quan hệ khác. Hình 2.1 là một ví dụ về hai đột biến của PUT được tạo ra bởi toán tử đột biến toán tử quan hệ.

Hình 2.1 – Ví dụ về đột biến

Dựa trên tiêu chuẩn chất lượng đột biến, các đột biến đượ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ử đó). Thất bại càng nhiều, càng lớn thì

Chương trình PUT gốc

int max (int x, int y) { int mx = x ; if (x < y) mx = x; else mx = y; return mx; }

int max (int x, int y) { int mx = x ; if (x > y) mx = x; else mx = y; return mx; } Đột biến P’’

int max (int x, int y) { int mx = x; if (x >= y) mx = x; else mx = y; return mx; } Đột biến P’

bộ dữ liệu thử càng chất lượng. Mục đích của kiểm thử viên là tạo ra dữ liệu thử mới để cải tiến chất lượng của các dữ liệu thử hiện có. Một kết quả khá hữu ích của phương pháp này là việc cải tiến chất lượng của dữ liệu thử sẽ cải thiện sự tin tưởng của kiểm thử viên vào tính đúng đắn của PUT. Có thể nói rằng, sự tin tưởng của kiểm thử viên vào chương trình cành nhiều, thì càng nhiều kiểm thử tốt hơn sẽ được sử dụng.

Ngoài ra, kiểm thử đột biến là phương pháp để cải tiến chất lượng dữ liệu thử cung cấp nhiều hỗ trợ quan trọng. Nếu một lỗi làm cho đột biến của PUT thất bại khi thực hiện với một số dữ liệu thử và PUT thành công, thì chính PUT không thể chứa lỗi đó (tức là PUT là phiên bản đúng của chương trình đối với lỗi đó). Kiểm thử mọi đột biến có thể có giúp kiểm thử biết rằng không có các lỗi đó xuất hiện trong PUT. Phát triển dữ liệu thử theo cách này cho phép kiểm thử viên tăng sự tin tưởng của họ vào tính đúng đắn của PUT.

Một phần của tài liệu Kỹ thuật kiểm thử đột biến và ứng dụng để kiểm thử các chương trình Java (Trang 26)

Tải bản đầy đủ (PDF)

(76 trang)