Làm nhanh hơ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 38)

Các kỹ thuật làm nhanh hơn nhằm mục đích tạo ra và chạy các chương trình đột biến nhanh hơn các hệ thống chuẩn. Hầu hết các hệ thống đột biến truyền thống thông dịch các đột biến của chúng, nó thì thuận tiện nhưng chậm hơn so với thực hiện biên dịch chương trình.

Proteum (hệ thống đột biến cho C) [6] tạo ra và biên dịch từng đột biến trước khi thực hiện, gọi là kỹ thuật biên dịch riêng rẽ. Điều này sẽ làm tăng tốc

độ chạy từ 15-20 lần so với hệ thống truyền thống [26]. Tuy nhiên, nếu thời gian biên dịch lớn hơn nhiều so với thời gian chạy thì tắc nghẽn biên dịch có thể xảy

ra, kết quả là trong khi xây dựng các chương trình được biên dịch, sự thực thi vẫn đang diễn ra [18].

Để tránh tắc nghẽn, Krauser đã sử dụng một cơ chế đột biến tích hợp trình

biên dịch [12], sử dụng một trình biên dịch mới để biên dịch đồng thời PUT và

phát triển các đoạn chương trình biểu diễn cho các đột biến. Trước khi thực thi, các đoạn chương trình cần thiết được áp dụng để PUT được biên dịch cung cấp một chương trình đột biến thực hiện với tốc độ biên dịch. Do đó, PUT chỉ cần được biên dịch một lần. Các kết quả của Krauser chứng minh rằng phương pháp tích hợp trình biên dịch làm tăng tốc độ đáng kể (tính bằng tỷ lệ giữa các kỹ thuật thời gian thực hiện trung bình trên mỗi đột biến để tạo ra và thực hiện tất cả các đột biến đối với một trường hợp kiểm thử) so với biên dịch riêng rẽ khi thời gian thực hiện PUT thấp. Ví dụ, sử dụng phương pháp tích hợp trình biên dịch cho chương trình TRANSPOSE nhanh hơn 7,58 lần so với sử dụng kỹ thuật biên dịch riêng rẽ và làm cho chương trình TRITYP nhanh hơn 27,33 lần.

Nói chung, thời gian thực hiện chương trình ảnh hưởng đến sự gia tăng tốc độ của phương pháp tích hợp trình biên dịch. Với thời gian thực hiện thấp (tức là thời gian thực hiện < thời gian biên dịch), phương pháp biên dịch riêng rẽ thực hiện các đột biến nhanh hơn. Sự chậm trễ lúc biên dịch xảy ra trong toàn bộ thời gian thực hiện tất cả các đột biến tăng và vì vậy làm tăng thời gian thực hiện đột biến trung bình. Tuy nhiên, với số lần thực hiện cao hơn (tức là thời gian thực hiện > thời gian biên dịch), thời gian biên dịch sẽ trở nên ít quan trọng. Các đột biến có thể dễ dàng được biên dịch trước khi thực hiện có nghĩa là thời gian trung bình để thực hiện từng đột biến bằng phương pháp biên dịch riêng rẽ chỉ phụ thuộc vào thời gian thực hiện - giống như kỹ thuật tích hợp trình biên dịch, có nghĩa là tỷ lệ gia tăng tốc độ các phương pháp là 1/1.

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

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

(76 trang)