Kỹ thuật kiểm thử đột biến rất hiệu quả trong việc đánh giá chất lượng dữ liệu thử và dễ dàng tự động hóa. Tuy nhiên, kỹ thuật này có một số hạn chế.
Thứ nhất, việc nhận dạng các đột biến tương đương là rất quan trọng nhưng rất khó khăn để thực hiện nhận dạng chúng.
Thứ hai, một số các đột biến không tương đương nhưng vẫn còn tồn tại, được gọi là các đột biến không tương đương “ngoan cố”, và rất khó trong việc diệt chúng.
Cuối cùng, “chi phí tính toán” của kiểm thử đột biến rất cao [2].
Đột biến truyền thống (Đột biến bậc một) được tạo ra bằng cách chèn vào một lỗi đơn giản. Thông thường đó là những lỗi nhỏ và dễ dàng bị diệt. Các đột biến bậc cao (Higher Order Mutant- HOM) được tạo ra bằng cách chèn hai hay nhiều lỗi vì vậy mà khó bị diệt hơn. [7].
Cho đến hiện nay, có rất nhiều nghiên cứu về việc áp dụng và cải tiến kiểm thử đột biến bậc cao [9-30]. Trong các nghiên cứu này, có hai hướng nghiên cứu chính dưới đây
Nhóm thứ nhất: Mark Harman, Yue Jia và William B.Langdon [..]
Các tác giả đã sử dụng 2 sự thay đổi thông qua các toán tử đột biến để tạo ra các đột biến. Do đó các đột biến sinh ra được gọi là đột biến bậc 2. Có 5 nhóm tác giả đã để xuất các thuật toán khác nhau để áp dụng kiểm thử đột biến bậc 2. Kết quả của các nhóm tác giả dưới góc nhìn các tỷ lệ (%) về việc giảm số lượng đột biến (Mutant Reduction) và giảm số lượng đột biến tương đương (Equivalent Mutant Reduction) là số lượng đột biến có thể được giảm khoảng 50% và số lượng đột biến tương đương được giảm xuống từ 40% đến 78%.
- Nhóm tác giả 2: NguyenQuang Vu và Lech Madeyski [..]
Với nhóm tác giả này sử dụng từ 2 đến n sự thay đổithông qua các toán tử đột biến để tạo ra các đột biến. Do đó các đột biến được gọi là đột biến bậc n. Có 5 nhóm tác giả đã đề xuất việc áp dụng các thuật toán tối ưu hóa một mục tiêu và tối ưu hóa đa mục tiêu để tìm kiếm các đột biến bậc cao thích hợp, theo sự phân loại của chính họ. Các tác giả đã sử dụng lần lượt từ 2 đến 70 sự thay đổi để tạo ra các đột biến từ bậc 2 đến bậc 70. Kết quả nghiên cứu của các tác giả cho thấy các đột biến sinh ra phức tạp và khó bị diệt hơn. Điều này chứng tỏ, các đột biến đã miêu tả đúng với lỗi thực của các phần mềm hơn là các đột biến bậc 1. Ngoài ra, với các đột biến khó bị diệt, có nghĩa là chúng ta cần cải thiện chất lượng của các bộ kiểm thử nhằm có thể phát hiện ra sự khác biệt giữa đột biến và chương trình gốc. Dó đó chất lượng của các bộ kiểm thử được tăng lên so với khi kiểm thử chương trình gốc. Một kết quả đáng lưu ý của kỹ thuật kiểm thử đột biến bậc cao nữa là số lượng các đột biến tương đương đã được giảm xuống. Tuy nhiên, có một hạn chế lớn của nhóm này là số lượng các đột biến có thể tăng nhanh theo từng bậc đột biến. Ví dụ như trong phương pháp của Langdon và các cộng sự [7-8], họ đã sử dụng thuật toán NSGA-II, một thuật toán tối ưu hóa đa mục tiêu, cùng với lập trình di truyền để tìm các đột biến phức tạp và khó bị diệt hơn. Số lượng đột biến tương đương giảm rất nhiều, trong khi đó số lượng đột biến được sinh ra là một con số “khổng lồ”. Với một chương trình C đơn giản, trong đó có 17 lượt sử dụng các toán tử so sánh (bao gồm 6 toán tử so sánh <,<=, ==, !=, >=, >), sẽ có 85 đột biến bậc 1, 3400 đột biến bậc 2, 85000 đột biến bậc 3, 1487500 đột biến bậc 4,...
» Tin mới nhất:
» Các tin khác: