Giới thiệu

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 25)

Hiệu quả của các dữ liệu thử khi chỉ ra được các lỗi của chương trình là rất quan trọng đối với kiểm thử phần mềm. Một dữ liệu thử được xem là “tốt” theo nghĩa nó có khả năng phát hiện ra lỗi cụ thể mà các dữ liệu thử khác không phát hiện ra. Ngược lại, một dữ liệu thử được xem là “nghèo” theo nghĩa nó không có khả năng phát hiện một lỗi nào cả, nhưng rất khó để xác định được bởi vì chúng ta không biết chương trình có lỗi hay không. Trong cả hai trường hợp, chúng ta không có cách nào để đo được hiệu quả của dữ liệu thử. Điều quan trọng là phải biết liệu có tồn tại lỗi để kiểm thử hay không, nhưng nếu biết được điều này thì kiểm thử là dư thừa [18]. Để gỡ bỏ nghịch lý này, người ta sử dụng các tiêu chuẩn để cung cấp các yêu cầu cho chất lượng dữ liệu thử, và vì vậy, mang lại một thước đo để đánh giá và cải tiến bộ dữ liệu thử. Ví dụ, các bộ dữ liệu thử được cải tiến lặp đi lặp lại cho đến khi chúng thực hiện tất cả các câu lệnh trong chương trình (kiểm thử câu lệnh), hoặc thực hiện tất cả các quyết định nhánh cả hai trường hợp đúng và sai (kiểm thử nhánh). Nếu phù hợp với tiêu chuẩn được xem xét thì dữ liệu thử được gọi là có chất lượng (đối với tiêu chuẩn đó), và do đó, có nhiều khả năng hơn để chỉ ra các lỗi nếu chúng tồn tại.

Tuy nhiên, các tiêu chuẩn thường không tập trung vào nguyên nhân thất bại của chương trình – được gọi là các lỗi; tiêu chuẩn chất lượng đột biến là một

loại tiêu chuẩn như vậy. Nó cung cấp một thước đo để đánh giá tính hiệu quả của dữ liệu thử bằng cách cho thấy các dữ liệu thử có thể làm lộ ra tất cả các lỗi đơn giản có thể có của một chương trình (ví dụ, sự khác biệt một từ đơn hoặc thay thế tên biến sai), tương tự như kiểm thử câu lệnh cho thấy tính hiệu quả của dữ liệu thử bằng cách đảm bảo rằng mọi dòng lệnh đã được thực hiện. Tuy nhiên, bộ dữ liệu thử có khả năng sẽ không thể xác định được tất cả các lỗi. Trong trường hợp như vậy, tiêu chuẩn chất lượng đột biến cung cấp một thước đo để xác định việc cải tiến bằng cách lựa chọn một bộ dữ liệu thử mới. Ví dụ, một bộ dữ liệu thử phát hiện 80% lỗi sẽ cho phép tạo ra dữ liệu thử tập trung vào 20% còn lại. Thước đo này cho phép kiểm soát, đánh giá và cải tiến dữ liệu thử lặp đi lặp lại dựa trên cơ sở kiểm thử đột biến (mutation testing) [7].

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 25)

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

(76 trang)