Bài viết Cải tiến thực thi đột biến trong kiểm thử đột biến cho các mô hình Simulink sử dụng tính toán song song trình bày giải pháp để cải thiện chi phí thời gian thực thi đột biến trên các mô hình Simulink sử dụng tính toán song song trên các máy tính đa nhân.
Lê Thị Mỹ Hạnh, Khuất Thanh Tùng, Nguyễn Thanh Bình CẢI TIẾN THỰC THI ĐỘT BIẾN TRONG KIỂM THỬ ĐỘT BIẾN CHO CÁC MƠ HÌNH SIMULINK SỬ DỤNG TÍNH TỐN SONG SONG IMPROVING MUTATION EXECUTION IN MUTATION TESTING FOR SIMULINK MODELS USING PARALLEL COMPUTING Lê Thị Mỹ Hạnh, Khuất Thanh Tùng, Nguyễn Thanh Bình Trường Đại học Bách khoa, Đại học Đà Nẵng; Email: ltmhanh@dut.udn.vn Tóm tắt – Kiểm thử đột biến chiến lược kiểm thử dựa lỗi để đánh giá chất lượng kiểm thử, cách chèn lỗi vào chương trình kiểm thử Kiểm thử đột biến không cho phép xây dựng liệu thử chất lượng, nghĩa có khả phát lỗi cao, mà cịn dễ dàng tự động hóa nhằm giảm chi phí Vì vậy, kiểm thử đột biến kỹ thuật kiểm thử hộp trắng ứng dụng rộng rãi Tuy nhiên, hạn chế kiểm thử đột biến thời gian thực thi đột biến cao, số lượng đột biến sinh nhiều Trong báo này, chúng tơi trình bày giải pháp để cải thiện chi phí thời gian thực thi đột biến mơ hình Simulink sử dụng tính tốn song song máy tính đa nhân Abstract – Mutation testing is a fault-based testing strategy to measure the quality of testing by inserting faults into the program under test Mutation testing not only allows the design of good quality tests, i.e high error detection capability, but can also be easily automated to reduce cost Hence, mutation testing is one of white-box testing methods popularly applied One problem that prevents mutation testing from becoming a practical testing technique is the high computational cost of executing enormous number of mutants against a test set In this paper, we propose an approach to improving the cost of mutation execution for Simulink models using parallel computing on a multicore machine Từ khóa – kiểm thử phần mềm, kiểm thử đột biến, chi phí kiểm thử đột biến, Simulink, tính tốn song song Key words – software testing, mutation testing, mutation testing cost, Simulink, parallel computing Đặt vấn đề Nhiều kỹ thuật nghiên cứu nhằm giảm chi phí phân tích đột biến Các công nghệ kỹ thuật Kiểm thử phần mềm hoạt động đóng vai trị đưa vào kiểm thử đột biến, nhằm hướng đến cải tiến quan trọng để bảo đảm chất lượng phần mềm hoạt công đoạn riêng lẻ để nâng cao tốc độ chung kiểm động mang tính sống cịn dự án sản xuất gia thử đột biến Các kỹ thuật nghiên cứu theo ba chiến cơng phần mềm Trong đó, với mục đích phát lỗi, hoạt lược: làm thơng minh hơn, làm làm nhanh động kiểm thử phần mềm thường phải trải qua bước: Chiến lược làm hướng đến lựa chọn đột biến tạo liệu thử, thực thi phần mềm liệu thử quan cho hiệu đảm bảo chất lượng kiểm sát kết nhận Trong bước này, bước tạo liệu thử, gồm kỹ thuật đột biến lựa chọn [17], đột biến đóng vai trị quan trọng nhất, tạo dựa ràng buộc (constrained mutation) [11], lấy mẫu đột liệu từ miền vào chương trình, mà biến (mutation sampling) [3] Các kỹ thuật làm nhanh tạo liệu thử có khả phát lỗi hướng vào tự động hoá số công đoạn giảm tải cao công đoạn chiếm nhiều chi phí tính tốn, nhằm mục đích Có tiêu chuẩn để đánh giá tính hiệu liệu tạo chạy chương trình đột biến nhanh hệ thử cách cho thấy liệu thử làm lộ tất thống chuẩn Các phương pháp làm thông minh mong lỗi đơn giản có chương trình, muốn sử dụng phương pháp “thơng minh” để cải thiện tiêu chí chất lượng đột biến Trong trường hợp liệu thử khả thực Như kỹ thuật đột biến yếu [10], thay xác định tất lỗi, tiêu chí chất lượng so sánh trạng thái đột biến với chương trình gốc đột biến cung cấp thước đo để xác định việc cải tiến kết thúc chương trình đột biến yếu so sánh sau câu cách lựa chọn liệu thử Thước đo lệnh đột biến Hay sử dụng kiến trúc phân tán (distributed cho phép kiểm soát, đánh giá cải tiến liệu thử dựa architectures), kiểm thử đột biến áp dụng sở kiểm thử đột biến [3] Năm 1971, Dick Lipton đề xuất nhiều máy tính nhằm phân tán tính tốn nhiều vi xử phương pháp kiểm thử đột biến, sau lĩnh vực lý Krauser tác giả, áp dụng kiểm thử đột biến đánh dấu đời phổ biến DeMillo [6] ngôn ngữ Fotran, đề xuất giải pháp thực thi tương Lý thuyết kết thực nghiệm cho thấy rằng, kiểm tranh đột biến kiến trúc máy tính SIMD [18] thử đột biến phương pháp hiệu để đánh giá chất lượng Fleyshgakker Weiss giới thiệu thuật toán song song cho liệu thử Tuy nhiên, kỹ thuật có số phép cải tiến hiệu việc thực thi đột biến [20] hạn chế Một hạn chế chi phí kiểm Offut đồng tác giả đề xuất giải pháp phân tán chi phí thử đột biến cao, tập trung ba bước tốn sản thực thi đột biến kiến trúc máy tính MIMD [19] sinh đột biến, biên dịch đột biến kiểm thử phiên Các kỹ thuật phát triển theo hướng phân tán việc thực thi đột biến nhiều máy tính đột biến với liệu kiểm thử Các hệ thống kiểm thử đột biến truyền thống thường tạo số lượng lớn chương trình đột biến Điều làm tăng chi phí thực thi đột biến phải thực thi với ca kiểm thử Trong báo này, đề xuất giải pháp song song để cải thiện tốc độ thực thi đột biến áp dụng cho mơ hình Simulink Điều thực được, đột biến hay nhóm đột biến thực độc lập với TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 1(74).2014.QUYỂN II đột biến khác thực thi riêng rẽ Bài báo tổ chức gồm mục: Mục giới thiệu kiểm thử đột biến ứng dụng kiểm thử đột biến cho Simulink; Mục đề xuất giải pháp song song hóa việc thực thi đột biến máy tính đa nhân; Mục trình bày số kết thử nghiệm giải pháp đề xuất cuối Mục kết luận thử có MS 1.0, nghĩa tất đột biến bị diệt Khi đó, liệu thử phát tất lỗi chèn vào chương trình, liệu có khả phát lỗi khác chương trình Kiểm thử đột biến xây dựng dựa hai giả thuyết bản: giả thuyết “lập trình viên giỏi” (competent programmer hypothesis - CPH) giả thuyết “hiệu ứng liên kết” (coupling effect hypothesis - CEH) [14] Giả thuyết lập Kiểm thử đột biến cho mơ hình Simulink trình viên giỏi cho thơng thường lập trình viên 2.1 Kiểm thử đột biến giỏi họ không viết chương trình Kiểm thử đột biến kỹ thuật hỗ trợ cho hoạt động cách tuỳ tiện, cẩu thả Trong trình viết lệnh cho chương kiểm thử, tạo với mục đích kiểm tra, đánh giá trình, lập trình viên có sai sót, tạo liệu thử giúp cho việc tạo liệu thử có chương trình gần với phiên chương khả phát lỗi chương trình Trong thực trình, nghĩa có vài thay đổi cú pháp nhỏ so kiểm thử đột biến, tạo phiên lỗi với chương trình đúng, gọi lỗi đơn giản Do vậy, chương trình gốc cách chèn lỗi vào mã nguồn kiểm thử đột biến, lỗi đơn giản tạo chương trình cần kiểm thử Mỗi phiên chứa việc thực thay đổi nhỏ cú pháp áp dụng, lỗi gọi đột biến (mutant) Mỗi đột biến nhằm biểu diễn lỗi phạm phải “lập trình viên tạo thay đổi cú pháp chương giỏi” Giả thuyết hiệu ứng liên kết cho lỗi phức tạp trình gốc, thay đổi cú pháp gọi luật hay liên kết từ lỗi đơn giản, liệu kiểm gọi toán tử đột biến (mutation operator) Các thử đủ khả phát tất lỗi đơn giản toán tử đột biến định nghĩa sẵn để tạo thay đổi chương trình có khả phát lỗi phức cú pháp dựa lỗi mà lập trình viên thường phạm tạp Giả thuyết chứng minh nhiều nghiên phải Ví dụ, thay biến biến khác kiểu, cứu lý thuyết thực nghiệm [14], cho phép đột biến sử thay toán tử số học toán tử số học khác, dụng kiểm thử đột biến giới hạn đột biến đơn xố tồn biểu thức; thay đổi câu lệnh Các tốn tử giản, tạo kiểm thử hiệu xác đột biến xây dựng dựa ngôn ngữ dùng để cài đặt định lỗi phức tạp chương trình kiểm thử 2.2 Kiểm thử đột biến cho mô hình Simulink Một cách cụ thể, đột biến P’ chương trình gốc P Kể từ kiểm thử đột biến đề xuất DeMillo chương trình tương tự với chương trình gốc P; P’ khác [6], kiểm thử đột biến áp dụng cho nhiều ngôn P thay đổi cú pháp chương trình Chẳng ngữ lập trình khác Ban đầu kiểm thử đột biến hạn, chương trình gốc P có biểu thức (a>0 && b>0), đề xuất áp dụng cho chương trình Fortran, sau P’ đột biến P cách thay đổi cú pháp phép áp dụng cho chương trình Ada [5], C [4], Java [12] toán quan hệ, thay && || ta có biểu thức P’ C# [8] Kiểm thử đột biến áp dụng mức thiết (a>0 || b>0) kế, đột biến đặc tả [7][9] Trong báo [2], Khi tiến hành kiểm thử, chương trình gốc P áp dụng kiểm thử đột biến cho mơ hình thiết kế đột biến P’ thực với liệu thử T Nếu lỗi mơi trường Simulink, chúng tơi đề xuất chèn vào chương trình đột biến P’ bị nhận biết gồm 13 toán tử đột biến chương trình P đột biến P’ cho kết khác nhau, đột Các kết lý thuyết thực nghiệm cho thấy rằng, biến P’ gọi bị diệt liệu thử T T gọi kiểm thử đột biến phương pháp hiệu để đánh giá chất liệu thử thích hợp T có khả phát lượng liệu thử Tuy nhiên, kỹ thuật có khác chương trình gốc P (chương trình số hạn chế Một hạn chế chi phí đúng) đột biến P’ (chương trình sai) Nếu chương trình kiểm thử đột biến cao, tập trung ba bước tốn gốc P đột biến P’ cho kết hoàn toàn giống sản sinh đột biến, biên dịch đột biến kiểm thử có hai khả xảy Khả thứ liệu phiên đột biến với liệu kiểm thử Vì vậy, có thử T không đủ tốt (T gọi liệu thử khơng thích nhiều giải pháp nghiên cứu để cải thiện chi phí hợp), tiến hành thực kiểm thử lại với Một giải pháp tự động hóa công đoạn liệu thử tốt Khả thứ hai chương trình P kiểm thử đột biến Do đó, để áp dụng kiểm thử đột biến đột biến P’ chương trình tương tự nhau, khơng cho mơ hình Simulink, chúng tơi thiết kế cài đặt có liệu thử tìm cách phân biệt framework nhằm tự động hóa cơng đoạn sinh đột biến khác chúng, đột biến P’ gọi đột sinh liệu thử, gọi MuSimulink [1] biến tương đương Trong hai trường hợp này, đột biến P’ cho sống Trong hệ thống kiểm thử đột biến tự động Sau thực thi tất liệu thử, tỷ lệ phần có vài bước quan trọng mà kiểm thử viên trăm số đột biến bị diệt chia cho số đột biến khơng cần tn theo Bởi vì, số đột biến sinh chương tương đương gọi tỷ lệ đột biến (mutation score - trình lớn, khơng thực tế để biên dịch lưu trữ MS) Mục tiêu kiểm thử viên tạo liệu chương trình đột biến cách riêng rẽ Vì hầu 10 Lê Thị Mỹ Hạnh, Khuất Thanh Tùng, Nguyễn Thanh Bình hết hệ thống đột biến, kể MuSimulink, xây dựng hệ thống thông dịch Với phương pháp này, thay tạo, biên dịch lưu trữ nhiều mơ hình đột biến riêng lẻ, mơ hình dịch lần vào cấu trúc trung gian đột biến lưu trữ dạng mô tả ngắn thay đổi cần thiết để tạo đột biến Trong MuSimulink, mô tả lưu trữ cấu trúc liệu gọi bảng mô tả đột biến (MDT – Mutants Description Table), phần tử cấu trúc ghi mơ tả đột biến (MD) Các bước qui trình kiểm thử đột biến liệt kê đây: kết kiểm thử, lỗi P phát ra, sau P phải sửa đổi trình kiểm thử lại lặp lại Các ca kiểm thử tái sử dụng để thử nghiệm bước Quá trình kiểm thử tiếp tục kiểm thử viên có liệu thử với tỷ lệ đột biến đạt yêu cầu bị buộc phải dừng lại ràng buộc thời gian chi phí 2.3 Giải pháp thực thi đột biến Để tiến hành thực thi đột biến, MuSimulink [2], đề xuất giải pháp thực thi đột biến theo cách tuần Tải mơ hình: Một mơ hình gốc P (cần kiểm thử) tự Hình Trong suốt trình thực thi đột biến, với tải lên để thử nghiệm, phân tích để tạo dạng ca kiểm thử mơ hình gốc phải thực trước trung gian cho thông dịch Ở đây, sử dụng kiểm tra kết đầu Nếu đầu không hợp lệ, tức đồ thị lưu trữ phần tử mơ hình (khối, đường nối) mơ hình gốc bị lỗi, dừng lại để sửa lỗi mơ hình gốc Nếu khơng, kết thực thi mơ hình gốc lưu lại vào mối quan hệ khối biến tạm Sau đó, với đột biến cịn sống Lựa chọn tốn tử đột biến: Có thể nhiều toán danh sách đột biến (MDT) thực với ca tử đột biến lựa chọn để áp dụng cho mơ hình P Các kiểm thử Nếu việc thực thi mơ hình đột biến kiểm thử viên thường sử dụng tất toán tử đột biến kết thúc khơng bình thường, báo lỗi xem đột có sẵn biến bị diệt đánh dấu trạng thái bị diệt cho đột biến Sinh đột biến: Mỗi toán tử đột biến chọn Nếu không, kết đầu đột biến so sánh TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI H áp dụng cho P tạo MDT mô tả tập hợp đột biến với kết đầu mơ hình gốc Trường hợp kết so M P dấu độtsách biến trạng bị diệt, sánhđánh khác nhau,danh đánhsách dấutrạng trongthái danh thái đột giữngược nguyênlại trạng sống độtcòn biếnsống bịlại diệt, giữ thái nguyên trạngcủa thái Sinh liệu thử: Một tập hợp ca kiểm thử T biếnngược tiếp tục tấtđến bị đột đột Q biếntrình Q trình tiếp tục cho khiđột tất biến nạp vào Mỗi ca kiểm thử T có giá trị cho biến diệt khơng cịn ca kiểm thử đầu vào P T tạo thủ công tự động biến bị diệt khơng cịn ca kiểm thử MuSimulink cung cấp chức sinh liệu thử dựa Đầu vào: vào đặc tả cho miền liệu đầu vào Tệp chứa liệu thử T Thực thi mơ hình gốc: Mơ hình gốc P thực Tập toán tử đột biến chọn thực thi O thi ca kiểm thử tạo tập đầu Danh sách đột biến M mong đợi O Các kết dự kiến P kiểm Đầu ra: tra q trình kiểm thử để xác định P có thực Danh sách đột biến sống/bị diệt T hay khơng Nếu có đầu khơng xác, Thuật tốn: Đọc từ tệp chứa liệu thử T P không cần phải sửa lại, trình kiểm tra foreach (testcase t in T) lại khởi động lại từ bước Thực thi mơ hình gốc P t Thực thi mơ hình đột biến: Mỗi mơ hình đột biến if (P lỗi) thông báo lỗi kết thúc thông dịch thực thi ca kiểm thử T else ghi nhận kết ∆(P,t) Việc tạo tập đầu đột biến O’ gồm khoảng endif |M| x |T| phần tử Nhưng số đột biến bị diệt thường foreach (tốn tử op in O) khơng thực thi lại với các ca kiểm thử nên O’ foreach(đột biến sống m in M(op)) thường nhỏ |M| x |T| Tạo mơ hình đột biến P’ So sánh kết đầu ra: Mỗi phần tử O’ so Thực thi P’trên t sánh với phần tử O tạo từ tập Ghi nhận kết ∆(P’, t) liệu thử Nếu đầu khác nhau, đột biến bị diệt Sau if (P’ lỗi) đánh dấu m bị diệt so sánh đầu ra, số đột biến cịn sống, elseIf (∆(P’, t) ≠ ∆(P, t)) liệu thử T khơng thích hợp đột biến đánh dấu m bị diệt Else m cịn sống tương đương với P, khơng bị diệt Xác endif định đột biến tương đương quy trình thủ cơng tốn endfor nhiều thời gian kiểm thử đột biến endfor Phân tích kết quả: Kết kiểm thử phân tích endfor cần thiết, ca kiểm thử bổ sung phải thực Ghi kết thực thi vào tệp kết hiển thị Nếu tất toán tử đột biến áp dụng cho P tất Hình 1: Thuật tốn thực thi đột biến đột biến bị diệt, khơng cần thiết phải tiếp tục Hình Thuật toán thực thi đột biến Trong thuật Hình chúng thấy việc “thực kiểm thử Nhưng nhiều đột biến khơng tương Trongtốn thuật tốn ở1,Hình 1, ta thấy t” “Ghi nhận kết ∆(P , t)” thực đương sống, ca kiểm thử bổ sung cần thêm thi P’ việc “thực thi P’ t” “Ghi nhận kết ∆(P’,hiện mỗiđược trường hợp thử Bước nếuhợp vào T bước thích hợp trình lặp lại Nếu trênt)” thực trường thử.thực Bước nàytuần thực tuần tự, hết đột biến đến đột biến khác, dẫn đến chi phí lớn Vì vậy, 11 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG - SỐ 1(74).2014.QUYỂN II tự, hết đột biến đến đột biến khác, dẫn đến chi phí lớn Vì vậy, bước mà xem xét để đề xuất giải pháp xử lý song song kích thước tập mơ hình đột biến M, nên chúng tơi thực phương pháp tiếp cận thứ cách song song đột biến Chúng sử dụng công cụ Parallel Computing Toolbox Giải pháp song song cho MuSimulink (PCT) Matlab để cài đặt cho giải pháp song song Chúng ta thấy rằng, hầu hết chi phí tính tốn đề xuất Cơng cụ PCT Matlab cho phép nhiều cơng q trình kiểm thử đột biến thực thi mơ hình gốc, thực thi nhân (worker) làm việc máy đơn có đa nhân mơ hình đột biến, so sánh kết quả, sinh liệu thử Vì Parfor cách đơn giản để thực công việc lặp việc thực thi đột biến thực lần cho lặp lại Các lần lặp lại parfor thực đột biến ca kiểm thử, xem vịng lab/worker Một worker thể độc lập lặp nội Vịng lặp nội bao gồm việc thơng dịch MATLAB chạy tiến trình hệ điều hành riêng đột biến với ca kiểm thử, so sánh kết mơ hình đột biệt Các worker thực nhân xử lý, biến với kết mơ hình gốc, chúng khác nhau, đột số lượng worker không cần phải tương ứng với số biến xem bị diệt Cho đến nay, vịng lặp nội lượng nhân Hình giải thuật đề xuất nhằm song song hóa xem phần tính tốn tốn kiểm thử đột biến, mục tiêu giải pháp song song việc thực thi đột biến Trong Hình 2, phần đóng khung đứt nét, thơng dịch đột biến so sánh kết giao cho chúng tơi TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ, ĐẠIviệc HỌC ĐÀ NẴNG - SỐ ………… worker xử lý, worker chịu trách nghiệm phần lượng worker cầnViệc phải thông tương dịch ứng với số sánh kết Đầu vào: trongcác tổng số không đột biến so lượng nhân Tệp chứa liệu thử T thực thi đột biến nằm vòng lặp cho tất đột Hình giải thuật đề xuất nhằm song Tập toán tử đột biến chọn thực thi O biến cịn sống song hóa việc thực thi đột biến Trong Hình 2, phần Tệp chứa danh sách đột biến D songthông dịch tổ chức Vịng đóng Chiến khunglược đứt song nét, việc đột gồm biến hai phần so Danh sách đột biến M lặp thực thi đột biến đặt worker, phần thực thi mô sánh kết giao cho worker xử lý, Đầu ra: hình gốcchịu trách phânnghiệm tích kếtmột đặttrong tổng chương trình worker phần số Danh sách đột biến cịn sống/bị diệt client Giải thuậtdịch vi thi xử lý đột biến Việc thơng vàđề soxuất sánhtrong kết thực Thuật toán: (client) phân phối đột biến đến worker đột biến nằm vòng lặp cho tất đột biến Đọc từ tệp chứa liệu thử T sống worker thực việc thông dịch đột biến Khởi động N worker W Chiến ca kiểm thử.lược song song tổ chức gồm hai foreach (testcase t in T) phần Vòng lặp thực thi đột biến đặt worker, Thực thi mơ hình gốc P t Ban đầu, worker chưa sử dụng, vi xử lý phần thực thi mơ hình gốc phân tích kết đặt if (P lỗi) máy client tính tốn lưu trữ kết dự kiến từ chương trình client Giải thuật đề xuất Thơng báo lỗi, đóng worker kết thúc mơ hình gốc ban đầu Sau đó, máy chủ client bắt đầu vi xử lý (client) phân phối đột else ghi nhận kết ∆(P,t) gửi thông tin khởi động đến worker Đối với biến đến worker worker thực endif ca kiểm thử, ca kiểm thử kết dự kiến gửi việc thông dịch đột biến ca kiểm thử foreach (tốn tử op in O) đến khiđược sử worker thông dịch Banworker, đầu, sau worker chưa dụng, Gởi liệu thử t đến worker đột biến ca kiểm thử, so sánh kết trả vi xử lý máy client tính tốn lưu trữ kếtclient Gởi kết ∆(P,t)đến worker trạng biến còngốc sống/bị diệt.Sau Nếu cảmáy đột biến dự thái kiến đột từ mơ hình ban đầu đó,tất foreach (đột biến cịn sống m in M(op)) bị diệt hết, giải thuật kết thúc sớm không cần chủ client bắt đầu gửi thông tin khởi động đến gửi thêm Gởi thông tin đột biến đến worker ca worker kiểm thửĐối nàovới đếnmỗi worker, kiểm ca kiểm ngược thử, ca lại, kiểmcathử thử tiếp Tạo mơ hình đột biến P’ theo gửi Việc gửi đột biến đến worker kết dự kiến gửi đến worker, sau Thực thi P’ t tự động thực parfor tùy theo tình trạng một worker thơng dịch đột biến ca Ghi nhận kết ∆(P’, t) worker rảnh kiểm thử, so sánh kết trả client trạng thái if (P’ lỗi) đánh dấu m bị diệt đột biến sống/bị diệt Nếu tất đột biến bị elseif (∆(P’,t)≠∆(P,t)) hết, Thửgiải nghiệm thúc đánhsớm giávà không cần gửi thêm diệt thuật kết đánh dấu m bị diệt ca kiểm thử lại,pháp ca kiểm Chúng đến tiếnworker, hành cài ngược đặt giải đề thử xuất thử else m sống Việc gửi cáctrên đột hai biếnmáy đếntính đa nhân, nghiệm cho 7gửi mơđi hình Simulink endif worker tự động parfor Cập nhật số đột biến bị diệt kết thử nghiệm thực trìnhhiện bày Bảng 1tùy Bảng theo tình trạng worker rảnh endfor Trong Bảng 1, chúng tơi tiến hành thử nghiệm máy endfor 4.tính ThửAnghiệm đánh với cấuvàhình giá nhân, GB RAM, Intel ® Core ™ endfor Chúng tơi tiến hành cài đặt giảiBảng pháp 2, đềchúng xuất tiến i5-3337U CPU @ 1.80GHz Trong Đóng N worker vàhành thử thử nghiệm cho mơ hình Simulink hai máy nghiệm máy tính B với cấu hình nhân, GB Ghi kết thực thi tệp kết hiển thị tính đa nhân, thử Q6600 trình bày@trong RAM, Intel kết ® Core ™2nghiệm Quad CPU 2.40GHz Hình 2: Thuật toán thực thi đột biến song song Bảng Bảng Nhìn vào kết thu từ việc thực thi Hình Thuật tốn thực thi đột biến song song Trong Bảng 1, tiến hành thử nghiệmmơ hình haiđể cách để song song song hóa việc thi biến đột Có hai Có cách song hóa việc thực thực thi đột haimáy chế tính độ tuần tựcấu song với4 GB cùngRAM, dữIntel liệu thử A với hình 2song nhân, cung cấpbộcho xử lý tấtcacảkiểm ca cungbiến cấplàcho xửmỗi lý tất thửkiểm ®nhau, thấy hiệu giải pháp song song đề Core ™ i5-3337U CPU @ 1.80GHz Trong Bảng 2, thử hợphoặc đột biến, cấplýmỗi chúng tập hợp cácmột độttập biến, cung cấphoặc mỗicung xử tất xuất.tôi Thời đột biến dụng giải tiếngian hànhthực thử thi nghiệm máyáp tính B với cấupháp song lý tất biến tập hợp ca kiểm nhân, RAM, Coremáy ™2 A, Quad đột xử biến tậpđộthợp cácvàca kiểm thử Ở đây, kích hình song giảm 2từGB 57% đếnIntel 73%®trên CPU giảm từ 58% thử Ở đây, kích thước tập liệu thử T @ 2.40GHz thước tập liệu thử T thường tương đối thường nhỏ so với Q6600 đến 81% máy B tương đối nhỏ so với kích thước tập mơ hình Bảng Thời gian thực thi đột biến máy A 12 đột biến M, nên thực phương pháp Số Thời gian (s) Trong Bảng 1, tiến hành thử 132.55 25.78 81% 484 SmokeDetector nghiệm máy tính A với cấu hình nhân, Lê Thị Mỹ Hạnh, Khuất Tùng,76% Nguyễn Thanh Bình 63.826Thanh 15.02 213 Tiny GB RAM, Intel ® Core ™ i5-3337U CPU @ Kết cho thấy tốc độ thực thi đột biến cải thiện5 Kết luận CNTT&TT lần thứphát 16 11/2013 hướng triển(đang xuất bản) 1.80GHz Trong Bảng 2, tiến hành thử [2] Le Thi My Hanh, Nguyen Thanh Binh, Mutation Operators thực thi song song, kết khơng phải thay nghiệm máy tính B với cấu hình nhân, for Simulink Proceedings of the pháp Fourth International Kiểm thử độtmodels biến phương đổi tuyến tính theo số nhân có máy, mà cịn phụ thuộc Conference on Knowledge and Systems Engineering (KSE 2012), GB RAM, Intel ® Core ™2 Quad CPU Q6600 hiệu việc đánh giá liệu thử vào loại CPU hỗ trợ No: 4, Pages: 54-60, 2012 @ 2.40GHz Tuy [3] nhiên, T hạn phương T Acree, A Budd, R A.chế DeMillo, R J Lipton, and F G Sayward, “Mutation Analysis,” Georgia Institute Bảng 1: Thời gian thực biếntrên trênmáy máyAA pháp chi phí cho việc thực thi với số of Technology, Bảng Thời gian thực thithi độtđột biến Atlanta, Georgia, Technique Report GIT-ICS-79/08, 1979 lượng[4]đột lớn R cácB.caHathaway, kiểm thử H biến Agrawal, A tất DeMillo, W Hsu, W Hsu, Thời gian (s) Số đột Để khắc phục hạn chế cho công E W Krauser, R J Martin, A P Mathur,cụand E Spafford, Hiệu À CÔNG NGHỆ, ĐẠITên HỌC ĐÀ NẴNG SỐ ………… biến “Design of Mutant Operators the pháp C Programming Language,” Song MuSimulink, chúng tơi đề xuấtforgiải thực mơ hình Purdue University, West Lafayette, Indiana, Technique Report sinh Tuần gốc ban hiệu giải pháp songtựsongsong đề xuất thi song SERC-TR-41-P, song áp dụngMarch 1989 máy tính đa nhân Sử Thời gian thực thi đột biến áp dụng giải pháp đầu gửi J H “Reference Manual Adaviệc Mutant Operators,” dụng[5] công cụ Bowser, PCT Matlab nên cácfor công Constant_Accel 162 12.980 5.57 57% song song giảm từ 57% đến 73% máy A, Georiga Institute of Technology, Atlanta, Georgia, Technique Report er Đối phân phối đến worker làm việc CheckInputs 245 35.334 12.66 64% GITSERC-88/02, 1988 giảm từ 58% đến 81% máy B t thân cụ tựR.điều phốiandtrên sở cân [6] R.công A DeMillo, J Lipton, F G.cơ Sayward, “Hints on test data Motor_Model 178 12.324 3.98 68% sau selection: Help for the practicing programmer”, IEEE Computer, Kết cho thấy tốc độ thực thi đột biến tải worker Kết thử nghiệm Quadratic 225 118.592 31.79 73% 11(4), April 1978 cải thiện thực thi song song, kết iến trên [7] mộtM.sốE.mơ hình cho thấy giải pháp đề Based Testing Delamaro, “Proteum - A Mutation Analysis sldemo_f14 584 152.179 57.43 62% khơng phải thay đổi tuyến tính theo số client of S~ao xuất kháEnvironment”, hiệu quả.Master CôngThesis, việcUniversity củaPaulo, Sao Paulo, SmokeDetector 484 115.239 33.49 71% Brazil, 1993 nhân có máy, mà cịn phụ thuộc vào loại u tất chúng tiến “Quality hành cài đặt giải pháp song Tiny 213 51.496 14.45 72% [8] Derezinska, Assessment of Mutation Operators Dedicated CPU hỗ trợ kết thúc song nhiều máy tính, nghiên cứu for C# Programs,” in Proceedings of để the áp 6th International Nhìn vào kết thu từ việc thực thi Conference on Quality Software (QSIC’06), Beijing, Bảng 2: Thời gian thực biếntrên trênmáy máyBB đến Bảng Thời gian thực thithi độtđột biến dụng chiến lược phân chia công việc đến China, 27-28 mơ hình hai chế độ song song October 2006 eo worker [9] A S Gopal and T A Budd, “Program Testing by Speci?cation Thời gianchúng (s) ta thấy với liệu thử nhau, Số đột Tên Hiệu worker Mutation”, University of Arizona, Tucson, Arizona, Technical biến LIỆU THAM KHẢO Song TÀI Report TR83-17, 1993 mơ hình for tùy Tuần tự sinh raNguyễn Thanh E cho Howden, “Weak Mutation Testing and Completeness of songBình, Tự động sinh[10] [1] Lê Thị Mỹ Hạnh, độtW biến mơ hình Simulink/Matlab, pháp đề ink m Constant_Accel 162 17.509 7.27 58% CheckInputs 245 43.67 12.08 72% Motor_Model 178 14.574 5.47 62% Quadratic 225 143.433 28.13 80% sldemo_f14 584 241.943 47.38 80% [11] [12] TestSets”, ”, IEEE Transactions on Software Engineering, vol 8, no 4, pp 371–379, July 1982 S Hussain, “Mutation Clustering, Masters Thesis, King’s College London, Strand, London, 2008 S Kim, J A Clark, and J A McDermid, “The Rigorous Generation of Java Mutation Operators Using HAZOP,” in Proceedings of the 12th International Cofference Software and Systems Engineering and their Applications (ICSSEA 99), Paris, France, 29 November-1 December 1999 P Mathur, “Performance, Effectiveness, and Reliability Issues in Software Testing," in Proceedings of the 5th International Computer Software and Applications Conference (COMPSAC’79), Tokyo, Japan, 11-13 September 1991, pp 604–605 A J Offutt, “The Coupling Effect: Fact or Fiction,” ACM SIGSOFT Software Engineering Notes, vol 14, no 8, pp 131–140, December1989 A J Offutt and K N King, “A Fortran 77 Interpreter for Mutation Analysis,” ACM SIGPLAN Notices, vol 22, no 7, pp 177–188, July 1987 J Offutt, G Rothermel, and C Zapf, “An Experimental Evaluation of Selective Mutation,” in Proceedings of the 15th International Conference on Software Engineering (ICSE’93) Baltimore, Maryland: IEEE Computer Society Press, May 1993, pp 100–107 R H Untch, A J Offutt, and M J Harrold, “Mutation Analysis Using Mutant Schemata,” in Proceedings of the International Symposium on Software Testing and Analysis (ISSTA’93), Cambridge, Massachusetts, 1993, pp 139–148 E W Krauser, A P Mathur, and V J Rego, “High Performance Software Testing on SIMD Machines,” IEEE Transactions on Software Engineering, vol 17, no 5, pp 403–423, May 1991 A J Offutt, R P Pargas, S V Fichter, and P K Khambekar, “Mutation Testing of Software Using a MIMD Computer,” in Proceedings of the International Conference on Parallel Processing, Chicago, Illinois,August 1992, pp 255–266 S N Weiss and V N Fleyshgakker, “Improved Serial Algorithms for Mutation Analysis,” ACM SIGSOFT Software Engineering Notes, vol 18, no 3, pp 149–158, July 1993 [13] ành thử 132.55 25.78 81% 484 SmokeDetector nhân, 63.826 15.02 76% 213 Tiny CPU @ [14] Kết luận hướng phát triển hành thử5 Kết luận hướng phát triển nhân, Kiểm thử đột biến phương pháp Kiểm thử đột biến phương pháp hiệu [15] Q6600 hiệu việc đánh giá liệu thử việc đánh giá liệu thử Tuy nhiên, Tuycủa nhiên, mộtpháp hạnphíchế hạn chế phương nàycác chi chocủa việcphương thực thi với pháp chi phí cho việc thực thithử với Để số khắc [16] áy A số lượng đột biến lớn tất ca kiểm tất ca chúng kiểm thử phục lượng hạn chếđột nàybiến cholớn côngtrên cụ MuSimulink, đề Để pháp khắc thực phục chế chotrên công thi hạn song song áp dụng máy cụ tính đa Hiệu xuất giải xuất giải thực việc Sử dụng côngchúng cụ PCT củađềMatlab nênpháp công nhân.MuSimulink, [17] thi phân phối đếnáp cácdụng worker làm tính việc đa nhân thân song song máy Sử công điều công phối cụ trênPCT sở bằngnên tải worker củacân Matlab công việc 57% cụ tựdụng Kết thử nghiệm số mơ hình phân phối đến worker làm cho việcthấy giải 64% pháp đề xuất hiệu Công việc chúng [18] thân công cụ tự điều phối sở cân 68% tiến hành cài đặt giải pháp song song nhiều máy tải worker Kết thử nghiệm 73% tính, nghiên cứu để áp dụng chiến lược phân chia [19] số mơ hình cho thấy giải pháp đề 62% công việc đến worker xuất hiệu Công việc 71% tiến hànhtham cài đặt Tài liệu khảogiải pháp song 72% [20] song nhiều máy tính, nghiên cứu sinh để áp [1] Lê Thị Mỹ Hạnh, Nguyễn Thanh Bình, Tự động đột biến thực thi cho cáccác mơchiến hình Simulink/Matlab, yếu Hội dụng lược phân chiaKỷcơng việcthảo đếnQuốc gia ng song worker g ta thấy (BBT nhận bài: 25/12/2013, phản biện xong: 05/01/2014) TÀI LIỆU THAM KHẢO nh, Tự động sinh đột biến cho mơ hình Simulink/Matlab, 13 ... II đột biến khác thực thi riêng rẽ Bài báo tổ chức gồm mục: Mục giới thi? ??u kiểm thử đột biến ứng dụng kiểm thử đột biến cho Simulink; Mục đề xuất giải pháp song song hóa việc thực thi đột biến. .. pháp thực thi đột biến Để tiến hành thực thi đột biến, MuSimulink [2], đề xuất giải pháp thực thi đột biến theo cách tuần Tải mơ hình: Một mơ hình gốc P (cần kiểm thử) tự Hình Trong suốt trình thực. .. tốn tử đột biến: Có thể nhiều tốn danh sách đột biến (MDT) thực với ca tử đột biến lựa chọn để áp dụng cho mơ hình P Các kiểm thử Nếu việc thực thi mơ hình đột biến kiểm thử viên thường sử dụng