Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 158 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
158
Dung lượng
4,22 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG - - LÊ THỊ MỸ HẠNH KIỂM THỬ ĐỘT BIẾN TRONG MÔI TRƯỜNG SIMULINK/MATLAB LUẬN ÁN TIẾN SĨ KỸ THUẬT Người hướng dẫn khoa học: PGS.TS Nguyễn Thanh Bình PGS.TS Đoàn Văn Ban Đà Nẵng, 10/2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG - - LÊ THỊ MỸ HẠNH KIỂM THỬ ĐỘT BIẾN TRONG MÔI TRƯỜNG SIMULINK/MATLAB Chuyên ngành : KHOA HỌC MÁY TÍNH Mã số : 62 48 01 01 LUẬN ÁN TIẾN SĨ KỸ THUẬT Đà Nẵng, 10/2015 LỜI CAM ĐOAN Tôi tên Lê Thị Mỹ Hạnh Tôi xin cam đoan công trình nghiên cứu thực Các nội dung kết nghiên cứu trình bày Luận án trung thực chưa công bố tác giả hay công trình khoa học khác Tác giả Lê Thị Mỹ Hạnh LỜI CẢM ƠN Trước tiên tác giả xin gửi lời cảm ơn đến Ban Sau đại học Đại học Đà Nẵng, Khoa Công nghệ Thông tin, Phòng Khoa học, Sau đại học Hợp tác quốc tế trường Đại học Bách khoa, tạo điều kiện thuận lợi cho tác giả thời gian nghiên cứu hoàn thành Luận án Với lòng kính trọng biết ơn sâu sắc, tác giả xin gửi lời cảm ơn tới hai thầy giáo hướng dẫn PGS TS Nguyễn Thanh Bình PGS TS Đoàn Văn Ban tận tình giúp đỡ tác giả từ bước xây dựng ý tưởng nghiên cứu, suốt trình nghiên cứu hoàn thiện Luận án Hai thầy ủng hộ, động viên hỗ trợ điều kiện tốt để tác giả hoàn thành luận án Tác giả xin gửi lời cảm ơn chân thành tới thầy, cô giáo bạn đồng nghiệp Khoa Công nghệ Thông tin, Bộ môn Công nghệ phần mềm tạo điều kiện thuận lợi giúp đỡ tác giả thời gian học tập nghiên cứu Cuối cùng, với tình yêu từ đáy lòng, tác giả xin gửi lời cảm ơn tới bố, mẹ, anh, chị, em chồng tác giả, người thân yêu gia đình bên cạnh tác giả, động viên tác giả vật chất tinh thần để tác giả vững tâm hoàn thành luận án Tác giả Lê Thị Mỹ Hạnh -i- MỤC LỤC LỜI CAM ĐOAN .i LỜI CẢM ƠN ii MỤC LỤC i DANH MỤC CÁC TỪ VIẾT TẮT iv DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ viii LỜI MỞ ĐẦU x Mục tiêu, đối tượng phạm vi nghiên cứu .xii Nhiệm vụ nghiên cứu kết đạt xiii Cấu trúc luận án xiii Đóng góp Luận án xiv TỔNG QUAN KIỂM THỬ ĐỘT BIẾN Giới thiệu Lý thuyết kiểm thử đột biến Khái niệm kiểm thử đột biến Cơ sở kiểm thử đột biến Quy trình kiểm thử đột biến Một số khái niệm Một số vấn đề kiểm thử đột biến 11 Một số kỹ thuật cải tiến hiệu kiểm thử đột biến 12 Giảm chi phí tính toán phân tích đột biến 12 Tăng tự động hóa 22 Vấn đề Oracle 26 Ứng dụng kiểm thử đột biến 26 Đột biến mã nguồn 27 Đột biến đặc tả 30 Kết luận 33 BỘ TOÁN TỬ ĐỘT BIẾN CHO SIMULINK 34 Simulink đặc trưng ngôn ngữ thiết kế Simulink 34 Các kết liên quan 35 Bộ toán tử đột biến cho Simulink 38 Kiến trúc lớp lỗi Kuhn [97] 38 Các lớp lỗi Simulink 39 -ii- Bộ toán tử đột biến đề xuất 45 Một số thử nghiệm đánh giá toán tử đột biến đề xuất 48 Tạo đột biến 48 Thực thi đột biến 49 Nhận xét 53 Kết luận 54 TỰ ĐỘNG SINH VÀ THỰC THI ĐỘT BIẾN 55 Giới thiệu 55 Các kết nghiên cứu liên quan 57 Công cụ sinh đột biến cho Simulink 59 Quy trình kiểm thử đột biến tự động 59 Hệ thống sinh đột biến MuSimulink 61 Phân tích đột biến 65 Cải thiện chi phí thực thi đột biến 66 Kỹ thuật song song Matlab 66 Giải pháp song song thực thi đột biến sử dụng máy tính đa lõi 68 Giải pháp song song việc thực thi đột biến nhiều máy 70 Kết thử nghiệm đánh giá 70 Dữ liệu thử 71 Thực thi đột biến song song 72 Nhận xét 74 Kết luận 75 SINH DỮ LIỆU THỬ DỰA TRÊN ĐỘT BIẾN 76 Giới thiệu 76 Các phương pháp sinh liệu thử 77 Sinh liệu thử ngẫu nhiên 78 Sinh liệu thử dựa ràng buộc 79 Đồ thị luồng điều khiển cải tiến 80 Thực thi ký hiệu động 81 Sinh liệu thử dựa vào tìm kiếm 83 Thuật toán lai 85 Sinh liệu thử dựa đột biến cho Simulink 85 Áp dụng thuật toán di truyền để sinh liệu thử 88 Áp dụng thuật toán luyện kim 93 Áp dụng thuật toán chọn lọc vô tính để sinh liệu thử 95 Kết thử nghiệm đánh giá 102 -iii- Kết thử nghiệm 104 Thuật toán lai di truyền miễn dịch nhân tạo (HAIGA - Hybrid Artificial Immune Genetic Algorithm) 108 Kết luận 114 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 115 DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ 117 TÀI LIỆU THAM KHẢO 118 PHỤ LỤC i Phụ lục A Công cụ MuSimulink .i Phát triển công cụ MuSimulink i Đặc tả toán tử đột biến ii Một số giao diện chức MuSimulink ii Phụ lục B Các mô hình Simulink sử dụng thử nghiệm Luận án viii Mô hình Constant_Accel viii Mô hình Motor_Model viii Mô hình Quadratic_v2 ix Mô hình Tiny x Mô hình Check_Input x Mô hình Quadratic_v1 xi Mô hình SmplSw .xi Mô hình RandMdl xi Mô hình Smoke_Detector xii 10 Mô hình Calc-Start-Progress xiii -iv- DANH MỤC CÁC TỪ VIẾT TẮT AAR Array Reference For Array Reference Replacement ABS Absolute Value Insertion ACR Array Reference For Constant Replacement AIS Artificial Immune System AOP Aspect-Oriented Programming AOR Arithmetic Operator Replacement ASR Array Reference For Scalar Variable Replacement BOFs Buffer Overflows CAR Constant For Array Reference Replacement CBT Constraint-based testing CEH Coupling effect hypothesis CLONALG CLONal ALGorithm CNR Comparable Array Name Replacement CPH Competent programmer hypothesis CRP Constant Replacement CSR Constant For Scalar Variable Replacement DDR Dynamic Domain Reduction DSA Data Statement Alterations ENF Expression Negation Fault FOM First Order Mutant FSBs Format String Bugs FSM Finite State Machines GA Genetic Algorithms GLR Goto Label Replacement HAIGA Hybrid Artificial Immune Genetic Algorithm HOM Higher Order Mutant LCR Logical Connector Replacement MFC Missing Condition Fault MIMD Multiple-Instruction, Multiple-Data -v- MS Mutation Score MSG Mutant Schema Generation PFSM Probabilistic Finite State Machines ROR Relational Operator Replacement RSR Return Statement Replacement SA Simulated Annealing SAN Statement Analysis SAR Scalar Variable For Array Reference Replacement SCR Scalar For Constant Replacement SDL Statement DeLetion SIMD Single-Instruction, Multiple-Data SRC Source Constant Replacement SSHOM Strongly Subsuming Higher Order Mutant SVR Scalar Variable Replacement UOI Unary Operator Insertion VNF Variable Negation Fault VRF Variable Reference Fault -vi- DANH MỤC BẢNG BIỂU Bảng 1.1 Ví dụ minh họa đột biến Bảng 1.2 Ví dụ toán tử đột biến ROR Bảng 1.3 Tập toán tử đột biến dùng Mothra (cho ngôn ngữ Fortran) .9 Bảng 1.4 Ví dụ đột biến tương đương .10 Bảng 2.1 Bộ toán tử đột biến đề xuất [96] 37 Bảng 2.2 Các khối Simulink 44 Bảng 2.3 Các toán tử đột biến đề xuất cho Simulink 47 Bảng 2.4 Số đột biến sinh 48 Bảng 2.5 Các mô hình thử nghiệm 49 Bảng 2.6 Số lượng đột biến sinh 49 Bảng 2.7 Tỷ lệ đột biến liệu thử cho mô hình Constant_Accel 50 Bảng 2.8 Tỷ lệ đột biến liệu thử cho mô hình Motor_Model 51 Bảng 2.9 Tỷ lệ đột biến liệu thử cho mô hình Tiny 51 Bảng 2.10 Tỷ lệ đột biến liệu thử cho mô hình Quaradtic_v2 52 Bảng 2.11 Tỷ lệ đột biến liệu thử cho mô hình Check_Input 52 Bảng 2.12 Các đột biến bị diệt (BD)/còn sống (CS) loại đột biến 53 Bảng 3.1 Các công cụ đột biến công bố 58 Bảng 3.2 Kết sinh đột biến 70 Bảng 3.3 Kết thực thi đột biến 72 Bảng 3.4 Kết thực thi song song 73 Bảng 4.1 Ánh xạ hệ miễn dịch nhân tạo kiểm thử đột biến 98 Bảng 4.2 Các tham số cấu hình cho GA 103 Bảng 4.3 Các tham số cấu hình cho SA 103 Bảng 4.4 Các tham số cấu hình cho AIS .103 Bảng 4.5 Các mô hình Simulink thử nghiệm 104 Bảng 4.6 Kết sinh liệu thử cho mô hình SmplSw .104 -125- [115] Mark Harman, Yue Jia and William B Langdon, "Strong Higher Order Mutation-Based Test Data Generation," in Proceedings of the 19th ACM SIGSOFT symposium, New York, USA, 2011 [116] Y Zhan, "A Search-Based Framework for Automatic Test-Set Generation for Matlab/Simulink models," 2005 [117] A Brillout, N He, M Mazzucchi, D Kroening, M Purandare, P Rummer, and G Weissenbacher, "Mutation-based Test case generation for Simulink models," in FMCO, LNCS Springer, 2010 [118] Meng Li and Ratnesh Kumar, "Model-Based Automatic Test Generation for Simulink/Stateflow using Extended Finite Automaton," 2011 [119] Sangharatna Godboley, Adepu Sridhar, Bhupendra kharpuse, Durga Prasad Mohapatra, and Banshidhar Majhi, "Generation of Branch Coverage Test Data for Simulink/Stateflow Models using Crest Tool," International Journal of Advanced Computer Research, vol III, no 13, pp 222-229, 2013 [120] Jungsup Oh, Mark Harman, and Shin Yoo, "Transition Coverage Testing for Simulink/Stateflow Models Using Messy Genetic Algorithms," in GECCO'11, Dublin, Ireland, 2011 [121] M Satpathy, A Yeolekar, and S Ramesh, "Randomized directed testing (redirect) for simulink/stateflow models," in Proceedings of the 8th ACM international conference on Embedded software, New York, USA, 2008 [122] A J Offutt and J M Voas, "Subsumption of Condition Coverage Techniques by Mutation Testing," 1996 [123] J H Holland, Adaptation in Natural and Artificial Systems, University of Michigan Press, 1975 [124] Kirkpatrick S , Gelatt C.D., Vecchi M.P, "Optimization by Simulated Annealing," Science, vol 220, no 4598, pp 671-680, 1983 [125] G L Ada and G Nossal, "The clonal selection theory," Scientific American, vol 257, pp 5057, 1987 [126] L.N de Castro, and J Timmis, "Artificial Immune Systems: A New Computational Intelligence Approach," 2002 [127] L N de Castro and F J Von Zuben, "Learning and optimization using the clonal selection principle," IEEE Transactions on Evolutionary Computation, no 6(3), pp 239-251, 2002 [128] "Simulink – Simulation and Model-Based http://www.mathworks.com/products/simulink/ Design," [Online] Available: -i- PHỤ LỤC Phụ lục A Công cụ MuSimulink Phụ lục A trình bày vấn đề liên quan đến việc phát triển công cụ MuSimulink số hình ảnh minh họa MuSimulink Phát triển công cụ MuSimulink MuSimulink phát triển tảng Visual C++ Matlab Toàn công việc phân tích mô hình, sinh đột biến, sinh liệu thử phát triển ngôn ngữ C++; riêng phần thực thi mô hình gốc mô hình đột biến liệu thử triển khai Matlab Bởi nhiều đột biến sinh việc sinh đột biến phần quy trình kiểm thử đột biến, hiệu yêu cầu quan trọng Bộ sinh đột biến cần thỏa mãn yêu cầu sau: Chỉ tạo đột biến hợp lý cú pháp ngữ nghĩa Bộ sinh đột biến cố gắng dự đoán tránh tạo đột biến bất hợp lý Ví dụ, có khả đột biến dẫn đến phép chia cho 0, đột biến không tạo Hoặc trường hợp đột biến có khả tương đương, sinh đột biến bỏ qua, không sinh đột biến Chẳng hạn đột biến * (nhân với 1), / (chia cho 1),… Cho phép người dùng áp dụng toán tử đột biến có lựa chọn Giảm tối đa yêu cầu nhớ Vì đồ thị phân tích cú pháp lớn, cần tránh lưu trữ nhiều thông tin với nút đồ thị phân tích cú pháp Khi phân tích cú pháp, đối tượng (block, line) cấp phát vùng nhớ lần Đồ thị liên kết đến địa đối tượng này, thông qua việc sử dụng trỏ Tối ưu hóa tốc độ thành phần sinh đột biến Đồ thị phân tích cú pháp duyệt lần cho toán tử đột biến, biểu thức tương ứng với nút không nên xác định lần duyệt, thay vào đó, nên tính toán trước lưu trữ đồ thị phân tích cú pháp Điều mâu thuẫn với yêu cầu trước -ii- Phát triển phân tích cú pháp để đọc phân tích mô hình cần kiểm thử, bóc tách thành phần thông tin, xác định thành phần mô hình với tham số mối quan hệ chúng Tổ chức cấu trúc liệu cấp thấp với thao tác liên quan: quản lý lưu trữ, xử lý đồ thị có hướng, trỏ, bảng băm Đặc tả toán tử đột biến Bảng A.1 đặc tả chi tiết toán tử đột biến áp dụng cho MuuSSmulink Bảng đặc tả bao gồm thông tin liên quan đến toán tử đột biến, tên toán tử, đối tượng áp dụng toán tử, tên thuộc tính áp dụng, tên thao tác xử lý liên quan đến toán tử, giá trị thuộc tính nhận,… Ví dụ, toán tử ASR áp dụng khối Add, Subtract thuộc kiểu khối Sum, khối Product, Divide thuộc kiểu khối Product; toán tử AOR áp dụng thuộc tính Inputs khối này, thao tác áp dụng toán tử Replace; cụ thể thay toán tử + với – khối kiểu Sum thay toán tử * với / kiểu khối Product Việc tổ chức bảng đặc tả toán tử đột biến giúp hệ thống dễ dàng bổ sung thêm toán tử đột biến Một số giao diện chức MuSimulink Giao diện MuSimulink tổ chức gồm bốn trang hình để thực chức hệ thống (Mutation Generator, Mutations Viewer, Testcase Runner Testcase Generator) Trong phần giới thiệu số giao diện chức MuSimulink Hình A.1 giao diện “Mutation Generator”, cho phép người dùng thiết kế kịch kiểm thử bao gồm chọn tập tin đối tượng cần kiểm thử (mô hình Simulink mdl) chọn tập toán tử đột biến Sau nhấn “Generate”, đột biến sinh người dùng chuyển sang trang hình “Mutation Viewer” để xem chi tiết đột biến Hình A.2 giao diện trang xem chi tiết đột biến, gồm số lượng đột biến loại sinh thông tin cụ thể đột biến Hình A.3 giao diện trang hình “Testcase Generator” Tại đây, người -iii- dùng đặc tả miền liệu đầu vào mô hình chọn thuật toán áp dụng để sinh liệu thử diệt nhiều đột biến cho mô hình Tập liệu thử sinh chọn lưu trữ vào tập tin Excel Hình A.1 Giao diện chọn toán tử đột biến tập tin mô hình mdl áp dụng Hình A.2 Giao diện xem chi tiết đột biến Chức thực thi đột biến mô hình thực trang “Testcase Runner”, minh họa Hình A.4 Đầu vào cho việc thực thi đột biến tập tin Excel chứa liệu thử tổ chức cấu trúc quy định: dòng tương ứng với -iv- trường hợp liệu thử, cột tương ứng với biến đầu vào mô hình Kết việc thực thi đột biến hiển thị hình, cho biết số đột biến bị diệt, số đột biến sống, tỷ lệ đột biến, danh sách đột biến sống, danh sách đột biến bị diệt… Hình A.3 Giao diện sinh liệu thử Hình A.4 Giao diện thực thi đột biến Khi sinh liệu thử thực thi đột biến, người dùng chọn chế độ thực thi song song Khi chọn chế độ thực thi song song, người dùng cần cấu hình số worker làm việc -v- Bảng A Bảng đặc tả toán tử đột biến TT Toán tử Khối Kiểu khối Thuộc tính liên quan Các giá trị thuộc tính nhận double;single;uint8;int8;uint16; OutDataTypeStr ReplaceRound int16;uint32;int32;fixdt(1,16) double;single;uint8;int8;uint16; OutDataTypeStr ReplaceRound int16;uint32;int32 double;single;uint8;int8;uint16; OutDataTypeStr ReplaceRound int16;uint32;int32 Mặc định ThaoTac Inherit: Inherit from ''Constant value'' TRO Constant Constant TRO Gain Gain TRO Switch Switch TRO Compare To Constant Compare To Constant OutDataTypeStr ReplaceRound uint8;boolean TRO Logical Operator Logic OutDataTypeStr ReplaceRound fixdt(1,16);boolean TRO Add,Subtract Sum OutDataTypeStr ReplaceRound TRO Product,Divide Product CCO Constant Constant Value ChangeConst CCO Gain Gain Gain ChangeConst 10 CRO Constant Constant Value ReplaceConst 11 CRO Gain Gain Gain ReplaceConst 12 CRO Compare To Constant Compare To Constant const ReplaceConst 13 SSO SwapPort13 14 DCO Integrator Integrator InitialCondition ChangeConst 15 DCO Unit Delay UnitDelay InitialCondition ChangeConst Switch Inherit: Inherit via internal rule Inherit: Logical (see Configuration Parameters: Optimization) Inherit: Same as first input Inherit: Same as first input -v- Switch double;single;uint8;int8;uint16; int16;uint32;int32 double;single;uint8;int8; OutDataTypeStr ReplaceRound uint16;int16;uint32;int32 Inherit: Same as input -vi- Bảng A Bảng đặc tả toán tử đột biến (tiếp) Thuộc tính liên quan Các giá trị thuộc tính nhận TT Toán tử 16 LOR Logical Operator Logic 17 VNO Logical Operator Logic InsertBlock Not 18 VNO Relational Operator RelationalOperator InsertBlock Not 19 VNO Compare To Zero Compare To Zero InsertBlock Not 20 All except Subsystem VCO and Inport and block Else in VNO InsertBlock Abs;Add;Subtract;Product; Divide 21 VNO Compare To Constant Compare To Constant InsertBlock Not 22 ROR Relational Operator RelationalOperator Operator ReplaceRound >=;>;=;>;= 1000) ∧ (Z × Z >= 8950) đúng, đầu (X + Y), ngược lại đầu (Z × Z) Tất đầu vào thuộc kiểu double, với miền giá trị [-100 100] độ xác 0.0001 Hình B.4 Mô hình Tiny Mô hình Check_Input Hình B.5 Mô hình Check_Input -xi- Mô hình Check_Input (Hình B.5) có hai đầu vào X, Y, thực việc đếm số lượng cặp đầu vào liên tiếp thỏa mãn quan hệ Xi + Yi = Xi-1-Yi-1 Giá trị mong đợi cho số lượng lớn Nếu đầu vào thỏa mãn yêu cầu đó, xuất kết 1, không, kết đầu Cả hai đầu vào phải số nguyên [-1000 1000] Mô hình Quadratic_v1 Mô hình Quadratic_v1 (Hình B.6) mô hình biến đổi biểu thức đơn giản Nó gồm hai đầu vào X, Y ba đầu Z1, Z2, Z3 Giả mã phương trình trình bày sau: if ((X – 10)2 ≥ 8099) then Z1 = X else Z1 = (X – 10)2 if ((X – 10) * (Y + 5) ≥ 0) then Z2 = X – 10 else Z2 = Y + if ((Y + 5)2 ≥ 2) then Z3 = (Y + 5)2 else Z3 = Y Hình B.6 Mô hình Quadratic_v1 Mô hình SmplSw Mô hình SmplSw, Hình B.7, biểu diễn ghép nối tiếp hai khối Switch để mô hình hóa đoạn lệnh đơn giản với hai đầu vào X, Y đầu Z if (X + Y ≥ 100) then temp = X + Y else temp = X – Y if (temp ≥ 50) then Z = temp else Z = X * Y Mô hình RandMdl Hình B.7 Mô hình SmplSw Mô hình RandMdl (Hình B.8) bao gồm ba khối Inport, khối Outport, ba -xii- khối Sum, ba khối Product bốn khối Switch Mô hình mô tả cho đoạn giả mã đây: double Out1 = calculate(In1:double, In2: double, In3: double); tmpSum = In1 + In2; tmpSum1 = In2 – In3; tmpSum2 = In3 – In1; tmpProduct = tmpSum1 × tmpSum2; tmpProduct1=tmpSum×tmpSum1×tmpSum2; tmpProduct2 = In3 × In3; if (tmpProduct1 >= 8100) tmpSwitch1 = In1; else tmpSwitch1 = tmpSum2; endif if (tmpProduct >= 1000) tmpSwitch2 = tmpSum1; else tmpSwitch2 = In3; endif if (tmpProduct2 >= 8100) tmpSwitch3 = tmpProduct2; else tmpSwitch3 = In3; endif if (tmpSwitch2 >= 0) Out1 = tmpSwitch1; else Out1 = tmpSwitch3; Endif Hình B.8 Mô hình RandMdl Mô hình Smoke_Detector Hình B.9 mô hình Smoke_Detector mô phỏng hệ thống phát khói thuốc Hệ thống nhận vào liệu vào số thực - biểu diễn mức khói thời phòng – đầu hai đối số làm việc biến cờ báo sử dụng để định xem còi báo hiệu chuyển sang trạng thái bật tắt Còi báo động làm việc công tắc, sau tín hiệu “bật” nhận, còi báo -xiii- trạng thái bật đến nhận tín hiệu “tắt” Chức thiết kế bao gồm kiểm soát thời gian chạy thường xuyên (mỗi giây) Khi mức độ khói phòng cao ngưỡng cho phép khoảng thời gian định (3 giây), còi báo vang lên Khi mức khói phòng trở mức an toàn khoảng thời gian định biến cờ “chờ” nhận giá trị Sau đó, còi báo tắt sau giây trạng thái tắt mức khói phòng lại vượt ngưỡng cho phép Hình B.9 Mô hình Smoke_Dectector 10.Mô hình Calc-Start-Progress Mô hình Calc-Start-Progress, Hình B.10, hệ thống hệ thống điều khiển công nghiệp Nó xác định tiến trình tổng thể để bắt đầu thực quy trình dựa ba tín hiệu trạng thái thành phần khác hệ thống -xiv- Hình B.10 Mô hình Calc-Start-Progress [...]... bản đột biến được biên dịch và kiểm thử với từng dữ liệu thử Ngoài ra, trong kiểm thử đột biến còn có một số công việc, như: hiệu chỉnh chương trình gốc, đánh giá đột biến, tạo dữ liệu -12- kiểm thử Tuy nhiên, chi phí trong kiểm thử đột biến tập trung ba bước tốn kém nhất là sản sinh đột biến, biên dịch các đột biến và kiểm thử từng phiên bản đột biến với các dữ liệu thử Như vậy, số lượng lớn các đột. .. tử đột biến có thể sẽ dẫn đến số lượng rất lớn các đột biến, làm cho chi phí kiểm thử đột biến rất lớn Vì vậy, nếu giảm số lượng các đột biến được sinh ra, sẽ giảm chi phí tính toán của kiểm thử đột biến Việc giảm số lượng đột biến cũng có thể đạt được bằng cách giảm số lượng các toán tử đột biến được áp dụng Kiểm thử đột biến lựa chọn tìm tập con các toán tử đột biến mà chỉ tạo ra tập con các đột biến. .. thấy rằng 2 -đột biến lựa chọn đạt được tỷ lệ đột biến 99,99% trong khi loại bỏ được 23,98% số các đột biến, 4 -đột biến lựa chọn đạt được tỷ lệ đột biến 99,84% trong khi loại bỏ được 41,36% số các đột biến, và 6 -đột biến lựa chọn đạt được tỷ lệ đột biến 88,71% trong khi loại bỏ được 60,56% các đột biến Như vậy, các tỷ lệ đột biến cao thu được từ các tập dữ liệu thử chất lượng dựa trên đột biến lựa chọn... của bộ dữ liệu thử, chúng ta dựa vào tỷ lệ đột biến Tỷ lệ đột biến càng cao thì khả năng phân biệt các đột biến của bộ dữ liệu thử càng tốt Như vậy, mục tiêu của kiểm thử đột biến là xây dựng bộ dữ liệu thử sao cho có thể diệt tất cả các đột biến không tương đương hay đạt tỷ lệ đột biến cao Một số vấn đề của kiểm thử đột biến Lý thuyết và kết quả thực nghiệm đã cho thấy rằng, kiểm thử đột biến là phương... lại dựa trên cơ sở kiểm thử đột biến (mutation testing) [3] Kiểm thử đột biến là một trong những kỹ thuật được phát triển rất sớm và đang được ứng dụng rộng rãi Đây là kỹ thuật kiểm thử dựa trên lỗi nhằm cung cấp một tiêu chuẩn kiểm thử, được gọi là tỷ lệ đột biến Tỷ lệ đột biến được sử dụng để đánh giá tập dữ liệu thử theo khả năng phát hiện lỗi Nguyên tắc cơ bản của kiểm thử đột biến là các lỗi được... là các lỗi chưa biết Khái niệm kiểm thử đột biến Kiểm thử đột biến là một kỹ thuật kiểm thử hộp trắng, hay còn gọi kỹ thuật kiểm thử cấu trúc Nó là một công cụ hỗ trợ cho công việc kiểm thử, được tạo ra với mục đích kiểm tra, đánh giá bộ dữ liệu thử và giúp cho việc tạo ra các bộ dữ liệu thử có khả năng phát hiện lỗi của chương trình Trong khi thực hiện kiểm thử đột biến, chúng ta tạo ra các phiên... lớn các đột biến sẽ làm cho chi phí kiểm thử đột biến rất lớn - 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, vì các đột biến tương đương hoạt động giống như chương trình gốc và trong quá trình kiểm thử những đột biến tương đương không thể bị diệt - Một số các đột biến không tương đương nhưng vẫn còn tồn tại trong quá trình kiểm thử, được gọi là các đột biến không tương... hiện tự động các đột biến tương đương và các dữ liệu kiểm thử không hiệu quả, tức là không diệt được các đột biến, cũng như các kỹ thuật nhận dạng các đột biến không tương đương “ngoan cố” Một số kỹ thuật cải tiến hiệu quả của kiểm thử đột biến Giảm chi phí tính toán trong phân tích đột biến Các hệ thống kiểm thử đột biến truyền thống thường tạo ra số lượng lớn các chương trình đột biến Ví dụ, với thủ... của các bộ dữ liệu thử Tuy nhiên, kiểm thử đột biến gặp phải một số vấn đề khó khăn trong ngành công nghiệp phần mềm Các vấn đề này được chia thành hai nhóm: chi phí tính toán - tốn rất nhiều thời gian và công sức để thực hiện kiểm thử đột biến; và tự động hóa - để giảm công sức của kiểm thử viên - Trong kiểm thử đột biến, các toán tử đột biến được áp dụng để tạo các phiên bản đột biến từ chương trình... quan về kiểm thử phần mềm nói chung và kiểm thử đột biến nói riêng, cũng như các kỹ thuật kiểm thử đột biến 2) Tìm hiểu môi trường Simulink/Matlab, các đặc trưng cơ bản của ngôn ngữ thiết kế mô hình này 3) Trên cơ sở kết quả của các nghiên cứu, đề xuất các toán tử đột biến (mutation operator) cho Simulink 4) Đề xuất giải pháp tự động hóa các hoạt động trong kiểm thử đột biến bao gồm sinh các đột biến ... TỔNG QUAN KIỂM THỬ ĐỘT BIẾN Giới thiệu Lý thuyết kiểm thử đột biến Khái niệm kiểm thử đột biến Cơ sở kiểm thử đột biến Quy trình kiểm thử đột biến ... sức kiểm thử viên - Trong kiểm thử đột biến, toán tử đột biến áp dụng để tạo phiên đột biến từ chương trình gốc Các phiên đột biến biên dịch kiểm thử với liệu thử Ngoài ra, kiểm thử đột biến. .. đột biến, tạo liệu -12- kiểm thử Tuy nhiên, chi phí kiểm thử đột biến tập trung ba bước tốn sản sinh đột biến, biên dịch đột biến kiểm thử phiên đột biến với liệu thử Như vậy, số lượng lớn đột