Kỹ thuật kiểm thử đột biến truyền thống [8] (hay còn được gọi là kiểm thử đột biến bậc một) được đề cập ở trên như là một phương pháp có sự tự động hóa và hiệu quả cao trong việc đánh giá chất lượng của các bộ dữ liệu thử. Nó có thể được áp dụng cho kiểm thử phần mềm, với nhiều ngôn ngữ lập trình khác nhau và tại nhiều mức kiểm thử khác nhau, như kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận,… Tuy nhiên, nó vẫn chưa được áp dụng rộng rãi vì vẫn còn tồn tại ba hạn chế chính [9] dưới đây.
- Số lượng các đột biến được sinh ra quá nhiều. Một chương trình có thể bao gồm rất nhiều toán tử ở các dòng lệnh khác nhau, vì vậy số lượng các đột biến được tạo ra là rất lớn. Ví dụ, có một chương trình đơn giản chỉ với một câu lệnh chính là trả về giá trị của phép toán chúng ta có thể có các đột biến chứa các phép toán khác, như Số lượng các đột biến lớn sẽ dẫn đến vấn đề chi phí tính toán lớn bởi vì những ca kiểm thử không chỉ được thực hiện trên chương trình gốc mà còn phải thực hiện trên tất cả các đột biến được sinh ra.
- Vấn đề liệu các đột biến đó có mô tả đúng các lỗi thực sự của phần mềm hay không. Các đột biến được sinh ra bởi việc chèn lỗi đơn giản (áp dụng các toán tử đột biến), do đó nó sẽ có thể không chứng tỏ một cách chính xác các lỗi thực của phần mềm, vì các lỗi này quá đơn giản. Theo Langdon và các cộng sự [20-21], 90% lỗi của các phần mềm là các lỗi phức tạp.
- Vấn đề các đột biến tương đương. Trong thực tế, có rất nhiều các toán tử đột biến có thể được dùng để tạo ra các đột biến tương đương có cùng “hành vi” với chương trình gốc. Trong trường hợp này, không thể có bất kỳ một dữ liệu thử nào phát hiện được sự khác nhau giữa chương trình gốc và đột biến tương đương của nó.
» Tin mới nhất:
» Các tin khác: