Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 175 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
175
Dung lượng
1,25 MB
Nội dung
CÁC KỸ THUẬT SINH TỰ ĐỘNG DỮ LIỆU KIỂM THỬ DỰA TRÊN CÁC BIỂU ĐỒ UML VŨ THỊ ĐÀO Tháng 04 năm 2018 LỜI CẢM ƠN Luận án thực Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội, hướng dẫn PGS.TS Nguyễn Việt Hà Tôi xin gửi lời cảm ơn chân thành sâu sắc tới PGS.TS Nguyễn Việt Hà – Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ Người thầy tâm huyết tận tình hướng dẫn, động viên khích lệ, dành nhiều thời gian q báu để định hướng cho tơi q trình tham gia khóa học hồn thiện luận án Tôi xin gửi lời cảm ơn chân thành tới lãnh đạo trường Đại học Công nghệ, lãnh đạo Khoa Công nghệ thông tin, cảm ơn đồng nghiệp tạo điều kiện thuận lợi cho trình làm luận án Tơi xin gửi lời cảm ơn chân thành tới thầy, cô Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ, người hướng dẫn, định hướng, góp ý cho tơi q trình viết luận án Cuối cùng, xin gửi lời cảm ơn sâu sắc tới gia đình bạn bè, người ln ủng hộ hỗ trợ mặt để tơi n tâm học tập, nghiên cứu, hồn thành luận án i LỜI CAM ĐOAN Tôi xin cam đoan: Bản luận án tốt nghiệp cơng trình nghiên cứu thực cá nhân Các kết viết chung với tác giả khác đồng ý đồng tác giả trước đưa vào luận án Các kết nêu luận án trung thực chưa công bố hình thức trước trình, bảo vệ công nhận “Hội Đồng đánh giá luận án tốt nghiệp Tiến sĩ Công nghệ Thông Tin” Một lần nữa, xin khẳng định trung thực lời cam kết Tác giả: ii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii DANH MỤC CÁC THUẬT NGỮ VÀ KÝ HIỆU vii DANH MỤC CÁC BẢNG ix DANH MỤC CÁC HÌNH VẼ xi TÓM TẮT LUẬN ÁN Chương xiii GIỚI THIỆU 1.1 Đặt vấn đề 1.2 Phương pháp nội dung nghiên cứu 1.3 Cấu trúc luận án Chương KIẾN THỨC NỀN TẢNG 2.1 Các khái niệm 2.2 Kiểm thử dựa mơ hình 2.3 Các biểu đồ UML ràng buộc OCL 12 2.3.1 Biểu đồ UML toán tử 12 2.3.2 Các ràng buộc OCL biểu đồ UML 17 2.3.3 Đồ thị dòng điều khiển 18 iii 2.4 2.5 Các độ bao phủ độ phân tích đột biến kiểm thử 20 2.4.1 Độ bao phủ tương tranh 20 2.4.2 Độ bao phủ kiểm thử vòng lặp 21 2.4.3 Độ phân tích đột biến 22 Tổng quan sinh liệu kiểm thử tự động 23 2.5.1 Sinh liệu kiểm thử kiểm thử cấu trúc 24 2.5.2 Sinh liệu kiểm thử kiểm thử chức 28 2.5.3 Sinh liệu kiểm thử tự động từ biểu đồ UML 30 2.6 Các công cụ sinh liệu kiểm thử 31 2.7 Tổng kết 34 Chương SINH DỮ LIỆU KIỂM THỬ CHO KIỂU DỮ LIỆU SỐ VÀ CẤU TRÚC ĐỘNG 35 3.1 Giới thiệu 35 3.2 Những nghiên cứu liên quan 37 3.3 Phương pháp sinh liệu kiểm thử cho biến kiểu liệu số cấu trúc động 40 3.4 3.5 3.3.1 Tổng quan phương pháp đề xuất 40 3.3.2 Chuyển đổi biểu đồ UML thành CFG 41 3.3.3 Sinh kịch kiểm thử 57 3.3.4 Chọn vị từ chuyển thành hàm vị từ 60 3.3.5 Hàm vị từ với ràng buộc OCL 60 3.3.6 Sinh liệu kiểm thử từ hàm vị từ 65 Thực nghiệm 78 3.4.1 Công cụ 79 3.4.2 Kết đánh giá 79 Tổng kết 85 Chương SINH DỮ LIỆU KIỂM THỬ CHO VÒNG LẶP VÀ iv CÁC ỨNG DỤNG TƯƠNG TRANH 87 4.1 Giới thiệu 87 4.2 Những nghiên cứu liên quan 88 4.3 Phương pháp sinh liệu kiểm thử theo độ bao phủ tương tranh lặp 92 4.4 4.5 4.3.1 Tổng quan phương pháp đề xuất 92 4.3.2 Sinh kịch kiểm thử 93 4.3.3 Sinh liệu kiểm thử 98 Thực nghiệm 109 4.4.1 Công cụ 109 4.4.2 Kết đánh giá 110 Tổng kết 113 Chương SINH DỮ LIỆU KIỂM THỬ CHO KIỂU DỮ LIỆU CHUỖI 115 5.1 Giới thiệu 115 5.2 Những nghiên cứu liên quan 117 5.3 Phương pháp sinh tự động liệu kiểm thử cho ràng buộc chuỗi 119 5.4 5.5 5.3.1 Tổng quan phương pháp đề xuất 119 5.3.2 Sinh kịch kiểm thử 120 5.3.3 Giải ràng buộc chuỗi 122 Thực nghiệm 137 5.4.1 Công cụ 138 5.4.2 Kết đánh giá 139 Tổng kết 142 Chương 6.1 KẾT LUẬN 144 Các kết đạt luận án 144 v 6.2 Hướng nghiên cứu 146 DANH MỤC CÁC CƠNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN ÁN 148 TÀI LIỆU THAM KHẢO 149 vi DANH MỤC CÁC THUẬT NGỮ VÀ KÝ HIỆU Tên thuật ngữ đầy đủ Chữ viết tắt Giải nghĩa Breadth-first search BFS Thuật tốn tìm kiếm theo chiều rộng Black box testing Control Flow Graph Kiểm thử hộp đen CFG Đồ thị dòng điều khiển Constraint solver Bộ giải ràng buộc Coverage criteria Tiêu chuẩn bao phủ Dynamic Domain Reduction DDR Deadlock Depth-first search Phương pháp giảm miền động Khóa chết DFS Thuật tốn tìm kiếm theo chiều sâu Extended Finite State Machine EFSM Máy hữu hạn trang thái mở rộng Finite State Machine Máy hữu hạn trạng thái FSM Gray box testing Kiểm thử hộp xám Invariant Bất biến Linear Temporal Logic LTL Logic thời gian tuyến tính Message Thơng điệp Model Checking Kiểm chứng mơ hình Mutation Score MS Độ đo đột biến Object Constraint Language OCL Ngơn ngữ ràng buộc đối tượng Parallel Fragment Par Tốn tử song song Post–condition Hậu điều kiện Pre–condition Tiền điều kiện Predicate Vị từ Safety property Thuộc tính an tồn Satisfiable SAT Thỏa mãn Symbolic execution SE Thực thi tượng trưng Weak Sequencing Fragment Seq Toán tử yếu vii Tên thuật ngữ đầy đủ Chữ viết tắt Giải nghĩa Satisfiability Modulo Theories SMT Các lý thuyết môđun tính thỏa System Under Testing SUT Hệ thống kiểm thử Test Case Ca kiểm thử Test Data Dữ liệu kiểm thử Test Scenario Kịch kiểm thử Test Script Mã kiểm thử dạng đặc tả kịch dùng để tự động hóa Unified Modeling Language UML Ngơn ngữ mơ hình hóa thống Unsatisfiable UNSAT Khơng thỏa mãn Variable Assignment Graph VAG Đồ thị tham số biến White box testing eXtensible Markup Language Kiểm thử hộp trắng XML Z3-Str solver Ngôn ngữ đánh dấu mở rộng Bộ giải Z3-Str viii DANH MỤC CÁC BẢNG 2.1 Các biểu đồ UML sử dụng để mơ hình hóa cho kiểm thử [100] 30 3.1 Bảng giá trị chân lý cho toán tử logic [3] 61 3.2 Hàm vị từ cho toán tử logic OCL [3] 62 3.3 Hàm vị từ cho toán tử quan hệ OCL cho kiểu liệu số [3] 64 3.4 Các kịch kiểm thử sinh máy bán hàng tự động 70 3.5 So sánh kết đề xuất kết nghiên cứu [72] 81 3.6 Thực nghiệm đưa độ bao phủ đường dẫn đồ thị phương pháp đưa phương pháp kiểm thử ngẫu nhiên 82 3.7 Kết thực nghiệm so sánh phương pháp đề xuất với phương pháp [30] 84 4.1 Kết MS sử dụng cho kịch kiểm thử sinh cách tiếp cận [95] Phương pháp đề xuất 111 4.2 Kết MS phương pháp đề xuất phương pháp ngẫu nhiên112 5.1 Ví dụ giải toán tử chuỗi 125 5.2 Cách Z3–str thực xử lý ràng buộc chuỗi Bảng 5.1 125 5.3 Ngữ pháp ràng buộc Z3–str, mở rộng cho search replaceAll so với [114] 127 5.4 Định nghĩa cho Thuật toán 5.2 [114] 129 5.5 Các quy tắc giảm [114] 131 5.6 Quy tắc giảm sử dụng gọi đệ quy 133 5.7 Các quy tắc tiền xử lý cho toán tử chuỗi 135 5.8 So sánh khả tìm lỗi chức ứng dụng 140 ix phát triển sâu vào độ đo đặc điểm loại độ đo khác để việc sinh liệu kiểm thử phù hợp với ứng dụng khác Chương đưa thuật toán sinh kịch kiểm thử khó kiểm sốt theo tiêu chuẩn bao phủ tương tranh khác Hơn nữa, việc chuyển đổi tập ràng buộc chuỗi đường dẫn kiểm thử vào giải Z3–Str thực thủ công Tác giả nghiên cứu việc áp dụng chuyển đổi ràng buộc chuỗi để thực tự động Ngồi ra, hướng nghiên cứu khả chuẩn hóa kịch kiểm thử sinh để thực tự động hóa hệ thống thực hướng mà tác giả quan tâm 147 DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN ÁN Vũ Thị Đào, Tô Văn Khánh Nguyễn Việt Hà (2014) Phương pháp sinh ca kiểm thử tự động từ mơ hình thiết kế UML ngôn ngữ ràng buộc đối tượng OCL Chuyên san Các cơng trình nghiên cứu, phát triển ứng dụng CNTT–TT, ISSN: 1859 – 3526 , Tập V-1, số 11(31), pp 70–82 Thi Dao Vu, Pham Ngoc Hung, Viet Ha Nguyen (2015) A Method for Automated Test Data Generation from Sequence Diagrams and Object Constraint Language Proc Of the Sixth International Symposium Information and Communication Technology (SoICT 2015), pp 335-–441 ACM International Publishing Thi Dao Vu, Pham Ngoc Hung, Viet Ha Nguyen (2016) Automated Testing for Java Programs with Test Cases Generation from Sequence Diagrams and Object Constraint Language (poster) The 14th Asian Symposium on Programming Languages and Systems – (APLAS 2016) Springer International Publishing Thi Dao Vu, Pham Ngoc Hung, Viet Ha Nguyen (2016) A Method for Automated Test Cases Generation from Sequence Diagrams and Object Constraint Language for Concurrent Programs VNU Journal of Science: Computer Science and Communication Engineering, ISSN: 0866–8612 , Vol 32, No (2016), pp 54–71 Thi Dao Vu, Pham Ngoc Hung, Viet Ha Nguyen (2017) A Method for Automated Test Cases Generation from UML Models with String Constraints Proc Of the 9th Asian Conference on Intelligent Information and Database Systems (ACIIDS 2017), pp 525–536 Springer International Publishing 148 TÀI LIỆU THAM KHẢO [1] Ieee standard glossary of software engineering terminology IEEE Std 610.12-1990, pages 1–84, Dec 1990 [2] Aynur Abdurazik and Jeff Offutt Using uml collaboration diagrams for static checking and test generation Proceedings of the 3rd International Conference on The Unified Modeling Language: Advancing the Standard, pages 383–395, 2000 [3] Shaukat Ali, Muhammad Zohaib Iqbal, Andrea Arcuri, and Lionel C Briand Generating test data from ocl constraints with search techniques IEEE Transactions on Software Engineering, 39(10):1376–1402, 2013 [4] Larry Apfelbaum and John Doyle Model based testing In Software Quality Week Conference, pages 296–300, 1997 [5] Adnan Bader, A Sayed Muhammed Sajeev, and Sita Ramakrishnan Testing concurrency and communication in distributed objects In The 5th International Conference on High Performance Computing, HIPC’98, pages 422–428 IEEE, 1998 [6] Boris Beizer Software testing techniques Dreamtech Press, 2003 [7] Mohammed Benattou, Jean-Michel Bruel, and Nabil Hameurlain Generating test data from ocl specification In Proc ECOOP Workshop Integration and Transformation of UML Models, 2002 [8] Antonia Bertolino and Martina Marré Automatic generation of path covers based on the control flow analysis of computer programs IEEE Transactions on Software Engineering, 20(12):885–899, 1994 [9] Robert V Binder Testing object-oriented software: a survey Software Testing, Verification and Reliability, 6(3–4):125–252, 1996 149 [10] Prithvi Bisht, Timothy Hinrichs, Nazari Skrupsky, Radoslaw Bobrowicz, and VN Venkatakrishnan Notamper: automatic blackbox detection of parameter tampering opportunities in web applications In Proceedings of the 17th ACM conference on Computer and communications security, pages 607–618 ACM, 2010 [11] Nikolaj Bjørner, Nikolai Tillmann, and Andrei Voronkov Path feasibility analysis for string-manipulating programs Tools and Algorithms for the Construction and Analysis of Systems, pages 307–321, 2009 [12] Pakinam N Boghdady, Nagwa L Badr, Mohamed Hashem, and Mohamed F Tolba Test case generation and test data extraction techniques International Journal of Elec trical & Computer Sciences IJECS-IJENS, 11(03):113803–9191, 2011 [13] Fabrice Bouquet and Bruno Legeard Reification of executable test scripts in formal specification-based test generation: The java card transaction mechanism case study In Proceedings of the International Symposium of Formal Methods Europe, volume 2805, pages 778–795 Springer, 2003 [14] Igor Bourdonov, Alexander Kossatchev, Victor Kuliamin, and Alexander Petrenko Unitesk test suite architecture FME 2002: Formal Methods—Getting IT Right, pages 121–152, 2002 [15] Ilene Burnstein Practical software testing: a process-oriented approach Springer, 2006 [16] Emanuela Cartaxo, Francisco Neto, and Patricia Machado Test case generation by means of uml sequence diagrams and labeled transition systems In Proceedings of the IEEE International Conference on Systems, Man and Cybernetics (ISIC), pages 1292–1297 IEEE, 2007 [17] Mingsong Chen, Prabhat Mishra, and Dhrubajyoti Kalita Coveragedriven automatic test generation for uml activity diagrams In Proceedings of the 18th ACM Great Lakes Symposium on VLSI, GLSVLSI ’08, pages 139–142, New York, NY, USA, 2008 150 [18] Alessandro Cimatti, Edmund Clarke, Fausto Giunchiglia, and Marco Roveri Nusmv: a new symbolic model checker International Journal on Software Tools for Technology Transfer, 2(4):410–425, 2000 [19] L A Clarke A system to generate test data and symbolically execute programs IEEE Transactions on Software Engineering, SE–2(3):215–222, 1976 [20] Manuel Clavel, Marina Egea, and Miguel Angel García de Dios Checking unsatisfiability for ocl constraints Electronic Communications of the EASST, 24, 2010 [21] Alberto Coen-Porisini and Flavio De Paoli Array representation in symbolic execution Computer Languages, 18(3):197–216, 1993 [22] Jacques Cohen Constraint logic programming languages Communications of the ACM, 33(7):52–68, 1990 [23] George Dantzig Linear programming and extensions Princeton university press, 2016 [24] Rashid Darwish, Lynnie Nakyanzi Gwosuta, and Richard Torkar A controlled experiment on coverage maximization of automated model-based software test cases in the automotive industry In Proceedings of the 10th IEEE International Conference on Software Testing, Verification and Validation (ICST), pages 546–547 IEEE, 2017 [25] Leonardo De Moura and Nikolaj Bjørner Z3: An efficient smt solver Tools and Algorithms for the Construction and Analysis of Systems, pages 337–340, 2008 [26] RA DeMilli and A Jefferson Offutt Constraint-based automatic test data generation IEEE Transactions on Software Engineering, 17(9):900–910, 1991 [27] R.A DeMillo, D.S Guindi, F.N King, W.M McCracken, and A.J Offutt An extended overview of the mothra software testing environment In Proceedings of the Second Workshop on Software Testing, Verification, and Analysis, pages 142–151 IEEE Computer Society Press, July 1988 151 [28] R.A DeMillo and A.J Offutt Experimental results from an automatic test case generator In ACM Transactions on Software Engineering Methodology, volume 2, pages 109–127, April 1993 [29] Richard A DeMillo and A Jefferson Offutt Experimental results from an automatic test case generator ACM Transactions on Software Engineering and Methodology (TOSEM), 2(2):109–127, 1993 [30] Trung Dinh-Trong, Sudipto Ghosh, and Robert France A systematic approach to generate inputs to test uml design models In Proceedings of the 17th International Symposium on Software Reliability Engineering, ISSRE’06, pages 95–104 IEEE, 2006 [31] Trung Dinh-Trong, Sudipto Ghosh, Robert France, Benoit Baudry, and Franck Fleury A taxonomy of faults for uml designs In 2nd MoDeVa workshop-Model design and validation, 2005 [32] Eitan Farchi, Alan Hartman, and Shlomit S Pinter Using a model-based test generator to test for standard conformance IBM systems journal, 41(1):89–110, 2002 [33] João Pascoal Faria, Ana CR Paiva, and Zhuanli Yang Test generation from uml sequence diagrams In Proceeding of the Eighth International Conference on the Quality of Information and Communications Technology (QUATIC), pages 245–250 IEEE, 2012 [34] Roger Ferguson and Bogdan Korel The chaining approach for software test data generation ACM Transactions on Software Engineering and Methodology (TOSEM), 5(1):63–86, 1996 [35] Mark Fewster and Dorothy Graham Software test automation AddisonWesley, 1999 [36] Falk Fraikin and Thomas Leonhardt Seditec-testing based on sequence diagrams In Proceedings of the 17th IEEE International Conference on Automated Software Engineering (ASE), pages 261–266 IEEE, 2002 152 [37] P.G Frankl and E.J Weyuker An applicable family of data flow testing criteria In IEEE Transactions on Software Engineering, volume 14, pages 1483–1498, October 1988 [38] Phyllis G Frankl, Stewart N Weiss, and Elaine J Weyuker Asset: A system to select and evaluate tests In In Proceedings of the Conference on Software Tools IEEE, 1985 [39] Shoichiro Fujiwara, Kazuki Munakata, Yoshiharu Maeda, Asako Katayama, and Tadahiro Uehara Test data generation for web application using a uml class diagram with ocl constraints Innovations in Systems and Software Engineering, 7(4):275–282, 2011 [40] Stefan J Galler and Bernhard K Aichernig Survey on test data generation tools International Journal on Software Tools for Technology Transfer, 16(6):727–751, 2014 [41] Parul Gandhi et al A survey on prospects of automated software test case generation methods In Computing for Sustainable Global Development (INDIACom), 2016 3rd International Conference on, pages 3867–3871 IEEE, 2016 [42] Vijay Ganesh and David L Dill A decision procedure for bit-vectors and arrays In CAV, volume 4590, pages 519–531 Springer, 2007 [43] Mechelle Gittens, Keri Romanufa, David Godwin, and Jason Racicot All code coverage is not created equal: a case study in prioritized code coverage In Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research, page 11 IBM Corp, 2006 [44] Patrice Godefroid, Nils Klarlund, and Koushik Sen Dart: directed automated random testing In ACM Sigplan Notices, volume 40, pages 213223 ACM, 2005 [45] Martin Gogolla, Fabian Bă uttner, and Mark Richters Use: A uml-based specification environment for validating uml and ocl Science of Computer Programming, 69(1):27–34, 2007 153 [46] John B Goodenough and Susan L Gerhart Toward a theory of test data selection IEEE Transactions on software Engineering, (2):156–173, 1975 [47] Arnaud Gotlieb and Matthieu Petit Path-oriented random testing In Proceedings of the 1st international workshop on Random testing, pages 28–35 ACM, 2006 [48] Wolfgang Grieskamp, Xiao Qu, Xiangjun Wei, Nicolas Kicillof, and Myra Cohen Interaction coverage meets path coverage by smt constraint solving Testing of Software and Communication Systems, pages 97–112, 2009 [49] Object Management Group The Unified Modeling Language UML 2.0 Technical Report formal/2011-08-06 The Object Management Group (OMG), 2011 [50] R.G Hamlet Testing programs with the aid of a compiler In IEEE Transactions on Software Engineering, volume 3, pages 279–290, July 1977 [51] Alan Hartman and Kenneth Nagin Model driven testing-agedis architecture interfaces and tools In 1st European Conference on Model Driven Software Engineering, pages 1–11, 2003 [52] Alan Hartman and Kenneth Nagin The agedis tools for model based testing ACM SIGSOFT Software Engineering Notes, 29(4):129–132, 2004 [53] Pieter Hooimeijer and Westley Weimer A decision procedure for subset constraints over regular languages ACM Sigplan Notices, 44(6):188–198, 2009 [54] J.R Horgan and S London Atac: A data flow coverage testing tool for c In Proceedings of the Symposium of Quality Software Development Tools, pages 2–10 New Orleans LA, May 1992 [55] Antti Huima Implementing conformiq qtronic TestCom/FATES, 4581:1– 12, 2007 [56] Joxan Jaffar and J-L Lassez Constraint logic programming In Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 111–119 ACM, 1987 154 [57] Eddie Jaffuel and Bruno Legeard Leirios test generator: Automated test generation from b models B, 4355:277–280, 2007 [58] M Khandai, A.A Acharya, and D.P Mohapatra A novel approach of test case generation for concurrent systems using uml sequence diagram In Electronics Computer Technology (ICECT), 3rd International Conference, volume 1, pages 157–161, 2011 [59] M Khandai, A.A Acharya, and D.P Mohapatra Test case generation for concurrent system using uml combinational diagram In International Journal of Computer Science and Information Technologies (IJCSIT), volume 2, pages 97–102, 2011 [60] Adam Kiezun, Vijay Ganesh, Philip J Guo, Pieter Hooimeijer, and Michael D Ernst Hampi: a solver for string constraints In Proceedings of the eighteenth international symposium on Software testing and analysis, pages 105–116 ACM, 2009 [61] Bogdan Korel Automated software test data generation IEEE Transactions on software engineering, 16(8):870–879, 1990 [62] Nikolai Kosmatov, Bruno Legeard, Fabien Peureux, and Mark Utting Boundary coverage criteria for test generation from formal models In Proceedings of the 15th International Symposium on Software Reliability Engineering, ISSRE 2004., pages 139–150 IEEE, 2004 [63] Matthias P Krieger, Alexander Knapp, and Burkhart Wolff Automatic and efficient simulation of operation contracts In ACM SIGPLAN Notices, volume 46, pages 53–62 ACM, 2010 [64] Bruno Legeard, Fabien Peureux, and Mark Utting Controlling test case explosion in test generation from b formal models Software Testing, Verification and Reliability, 14(2):81–103, 2004 [65] Bao-Lin Li, Zhi-shu Li, Li Qing, and Yan-Hong Chen Test case automate generation from uml sequence diagram and ocl expression In Computational Intelligence and Security, 2007 International Conference on, pages 1048–1052 IEEE, 2007 155 [66] YS Ma, J Offutt, and YR Kwon Mujava: an automated class mutation system Software Testing, Verification and Reliability, 15(2):97–133, 2005 [67] R Mall Fundamentals of Software Engineering Prentice Hall, the third edition, 2009 [68] Phil McMinn Search-based software test data generation: a survey Software testing, Verification and reliability, 14(2):105–156, 2004 [69] Webb Miller and David L Spooner Automatic generation of floating-point test data IEEE Transactions on Software Engineering, (3):223–226, 1976 [70] Hoang Minh Duong, Le Khanh Trinh, and Pham Ngoc Hung An assumeguarantee model checker for component-based systems In The 10th IEEERIVF International Conference on Computing and Communication Technologies, pages 22–26, 2013 [71] Daniel J Mosley and Bruce A Posey Just enough software test automation Prentice Hall Professional, 2002 [72] A Nayak and D Samanta Automatic test data synthesis using uml sequence diagrams Journal of Object Technology, 9(2):115–144, 2010 [73] Simeon C Ntafos and S Louis Hakimi On path cover problems in digraphs and applications to program testing IEEE Transactions on Software Engineering, (5):520–529, 1979 [74] A Jefferson Offutt An integrated automatic test data generation system Journal of Systems Integration, 1(3-4):391–409, 1991 [75] A Jefferson Offutt, Zhenyi Jin, and Jie Pan The dynamic domain reduction procedure for test data generation Software-Practice and Experience, 29(2):167–93, 1999 [76] OMG Unified modeling language (omg uml), superstructure Technical report, version 2.4 Tech rep., Object Management Group, 2011 [77] Omg O.M.G Object constraint language specification version 2.4 Technical report, 2014 156 [78] Allen S Parrish and Stuart H Zweben Clarifying some fundamental concepts in software testing IEEE Transactions on Software Engineering, 19(7):742–746, 1993 [79] Stacy J Prowell Jumbl: A tool for model-based statistical testing In System Sciences, 2003 Proceedings of the 36th Annual Hawaii International Conference on, pages 331–345 IEEE, 2003 [80] Chittoor V Ramamoorthy, S-BF Ho, and WT Chen On the automated generation of program test data IEEE Transactions on software engineering, (4):293–300, 1976 [81] Gideon Redelinghuys, Willem Visser, and Jaco Geldenhuys Symbolic execution of programs with strings In Proceedings of the South African Institute for Computer Scientists and Information Technologists Conference, pages 139–148 ACM, 2012 [82] Philip Samuel and Anju Teresa Joseph Test sequence generation from uml sequence diagrams In The Ninth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing (SNPD’08), pages 879–887 IEEE, 2008 [83] Philip Samuel, R Mall, and Ajay Kumar Bothra Automatic test case generation using unified modeling language (uml) state diagrams IET software, 2(2):79–93, 2008 [84] Philip Samuel, Rajib Mall, and Pratyush Kanth Automatic test case generation from uml communication diagrams Information and software technology, 49(2):158–171, 2007 [85] Monalisa Sarma, Debasish Kundu, and Rajib Mall Automatic test case generation from uml sequence diagram In International Conference on Advanced Computing and Communications (ADCOM), pages 60–67 IEEE, 2007 [86] Monalisa Sarma and Rajib Mall Automatic test case generation from uml models In The 10th International Conference on Information Technology (ICIT), pages 196–201 IEEE, 2007 157 [87] Prateek Saxena, Devdatta Akhawe, Steve Hanna, Feng Mao, Stephen McCamant, and Dawn Song A symbolic execution framework for javascript In IEEE Symposium on Security and Privacy (SP), pages 513–528 IEEE, 2010 [88] Koushik Sen, Darko Marinov, and Gul Agha Cute: a concolic unit testing engine for c In ACM SIGSOFT Software Engineering Notes, volume 30, pages 263–272 ACM, 2005 [89] Mahesh Shirole and Rajeev Kumar Testing for concurrency in uml diagrams SIGSOFT Softw Eng Notes, 37(5):1–8, 2012 [90] Anastasis A Sofokleous and Andreas S Andreou Automatic, evolutionary test data generation for dynamic software testing Journal of Systems and Software, 81(11):1883–1898, November 2008 [91] Praveen Ranjan Srivastava, Vinod Ramachandran, Manish Kumar, Gourab Talukder, Vivek Tiwari, and Prateek Sharma Generation of test data using meta heuristic approach In TENCON 2008-2008 IEEE Region 10 Conference, pages 1–6 IEEE, 2008 [92] Keith Stobie Model based testing in practice at microsoft Electronic Notes in Theoretical Computer Science, 111:5–12, 2005 [93] Chang-ai Sun A transformation-based approach to generating scenariooriented test cases from uml activity diagrams for concurrent applications In The 32nd Annual IEEE International Computer Software and Applications (COMPSAC’08), pages 160–167 IEEE, 2008 [94] Chang-ai Sun, Guan Wang, Kai-Yuan Cai, and Tsong Yueh Chen Distribution-aware mutation analysis In The 36th Annual Computer Software and Applications Conference Workshops (COMPSACW), pages 170– 175 IEEE, 2012 [95] Chang-ai Sun, Yan Zhao, Lin Pan, Xiao He, and Dave Towey A transformation-based approach to testing concurrent programs using uml activity diagrams Software: Practice and Experience, 46(4):551–576, 2016 158 [96] Fangqi Sun, Liang Xu, and Zhendong Su Static detection of access control vulnerabilities in web applications In USENIX Security Symposium, 2011 [97] Ranjita Swain, Vikas Panthi, Prafulla Kumar Behera, and Durga Prasad Mohapatra Automatic test case generation from uml state chart diagram International Journal of Computer Applications, 42(7):26–36, 2012 [98] Takaaki Tateishi, Marco Pistoia, and Omer Tripp Path-and indexsensitive string analysis based on monadic second-order logic ACM Transactions on Software Engineering and Methodology (TOSEM), 22(4):33, 2013 [99] Nigel Tracey, John Clark, and Keith Mander Automated program flaw finding using simulated annealing In ACM SIGSOFT Software Engineering Notes, volume 23, pages 73–81 ACM, 1998 [100] Mark Utting and Bruno Legeard Practical Model-Based Testing: A Tools Approach Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2006 [101] Lionel Van Aertryck and Thomas Jensen Uml-casting: Test synthesis from uml models using constraint resolution In Proc AFADL’2003 (Approches Formelles dans l’Assistance au Dévelopment de Logiciel), 2003 [102] Margus Veanes, Colin Campbell, Wolfgang Grieskamp, Wolfram Schulte, Nikolai Tillmann, and Lev Nachmanson Model-based testing of objectoriented reactive systems with spec explorer Formal methods and testing, pages 39–76, 2008 [103] Margus Veanes, Colin Campbell, Wolfram Schulte, and Nikolai Tillmann Online testing with model programs In ACM SIGSOFT Software Engineering Notes, volume 30, pages 273–282 ACM, 2005 [104] Margus Veanes, Peli De Halleux, and Nikolai Tillmann Rex: Symbolic regular expression explorer In The Third International Conference on Software Testing, Verification and Validation (ICST), pages 498–507 IEEE, 2010 159 [105] HS Wang, SR Hsu, and JC Lin A generalized optimal path-selection model for structural program testing Journal of Systems and Software, 10(1):55–63, 1989 [106] Stephan Weißleder and Bernd-Holger Schlingloff Deriving input partitions from uml models for automatic test generation In Models in Software Engineering, pages 151–163 Springer-Verlag, 2008 [107] Elaine J Weyuker Axiomatizing software test data adequacy IEEE transactions on software engineering, (12):1128–1138, 1986 [108] Nicky Williams, Bruno Marre, Patricia Mouy, and Muriel Roger Pathcrawler: Automatic generation of path tests by combining static and dynamic analysis In EDCC, volume 3463, pages 281–292 Springer, 2005 [109] Martin R Woodward, David Hedley, and Michael A Hennell Experience with path analysis and testing of programs IEEE Transactions on Software Engineering, (3):278–286, 1980 [110] Man Xiao, Mohamed El-Attar, Marek Reformat, and James Miller Empirical evaluation of optimization algorithms when used in goal-oriented automated test data generation techniques Empirical Software Engineering, 12(2):183–239, 2007 [111] Jia Zeng, Cristian Soviani, and Stephen A Edwards Generating fast code from concurrent program dependence graphs In ACM SIGPLAN Notices, volume 39, pages 175–181 ACM, 2004 [112] Jian Zhang A path-based approach to the detection of infinite looping In Proceedings of Second Asia-Pacific Conference on Quality Software, pages 88–94 IEEE, 2001 [113] Jian Zhang, Xu Chen, and Xiaoliang Wang Path-oriented test data generation using symbolic execution and constraint solving techniques In Proceedings of the Second International Conference on Software Engineering and Formal Methods (SEFM), pages 242–250 IEEE, 2004 [114] Yunhui Zheng, Xiangyu Zhang, and Vijay Ganesh Z3-str: A z3-based string solver for web application analysis In Proceedings of the 2013 9th 160 Joint Meeting on Foundations of Software Engineering, pages 114–124 ACM, 2013 [115] Hang Zhou, Zhiqiu Huang, and Yi Zhu Polymorphism sequence diagrams test data automatic generation based on ocl In the 9th International Conference for Young Computer Scientists, ICYCS 2008, pages 1235–1240 IEEE, 2008 161