Ứng dụng công cụ SOAP UI cho kiểm thử tự động các ứng dụng web

71 332 0
Ứng dụng công cụ SOAP UI cho kiểm thử tự động các ứng dụng web

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN THỊ MÙI PHƯƠNG PHÁP SINH BỘ KIỂM THỬ TỪ BIỂU ĐỒ TUẦN TỰ UML 2.0 VÀ ỨNG DỤNG CHO KIỂM THỬ PHẦN MỀM LUẬN VĂN THẠC SĨ Ngành: Hệ thống thông tin HÀ NỘI – 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN THỊ MÙI PHƯƠNG PHÁP SINH BỘ KIỂM THỬ TỪ BIỂU ĐỒ TUẦN TỰ UML 2.0 VÀ ỨNG DỤNG CHO KIỂM THỬ PHẦN MỀM Ngành: Hệ thống thông tin Chuyên ngành: Hệ thống thông tin Mã số: 60 48 01 04 LUẬN VĂN THẠC SĨ Ngành: Hệ thống thông tin NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Phạm Ngọc Hùng HÀ NỘI – 2015 VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY TRAN THI MUI A METHOD AND TOOL SUPPORTING FOR AUTOMATED TESTING OF UML 2.0 SEQUENCE DIAGRAMS THE MS THESIS Major: Information Systems Supervisor: Dr Pham Ngoc Hung HANOI - 2015 LỜI CẢM ƠN Đầu tiên, xin gửi lời cảm ơn chân thành sâu sắc tới thầy Phạm Ngọc Hùng – Người trực tiếp hướng dẫn nhiệt tình, giúp đỡ động viên tơi nhiều, cho tơi có hội tiếp xúc với tài liệu tham khảo q giá, góp ý cho tơi lời khuyên chân thành trình nghiên cứu để hồn thành đề tài Tiếp theo tơi xin gửi lời cảm ơn đến thầy cô giảng viên Trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội – người tận tâm truyền đạt kiến thức quý báu làm tảng cho suốt năm học Cuối cùng, xin gửi lời biết ơn sâu sắc tới gia đình ln bên cạnh tôi, mang lại cho nguồn động viên tinh thần to lớn tạo điều kiện thuận lợi cho tơi q trình học tập hồn thành luận văn Mặc dù cố gắng luận văn khơng tránh khỏi thiếu sót Rất mong nhận ý kiến đóng góp quý báu Thầy, Cô giáo bạn để luận văn hoàn thiện Xin trân trọng cảm ơn! Hà Nội, ngày 22 tháng 11 năm 2015 Học viên: Trần Thị Mùi TÓM TẮT Luận văn tập trung nghiên cứu phương pháp sinh kiểm thử từ biểu đồ UML 2.0 dựa lý thuyết kiểm thử mơ hình nhằm tự động hóa q trình kiểm thử, nâng cao hiệu quả, tiết kiệm chi phí thời gian Phương pháp thực thông qua bước sau Đầu tiên, để có mơ hình làm đầu vào cho kiểm thử, phương pháp thực chuyển đổi biểu đồ đồ thị dòng điều khiển cách tiến hành bóc, tách khối (fragment) biểu đồ Các khối lồng nhau, dựa vào quan hệ chúng, tiến hành xây dựng đồ thị cho khối, sau lồng chúng lại nhằm sinh đồ thị dòng điều khiển tương ứng với biểu đồ Kế tiếp, đồ thị dòng điều khiển phân tích để xây dựng tập đường kiểm thử Vận dụng kỹ thuật thực thi tượng trưng (Symbolic Execution - SE) nhằm xây dựng hệ ràng buộc tương ứng cho tập đường kiểm thử Cuối cùng, sử dụng công cụ SMT solver để giải hệ ràng buộc nhằm tìm kiếm nghiệm từ sinh ca kiểm thử Một công cụ hỗ trợ phương pháp cài đặt thử nghiệm với số ví dụ đơn giản nhằm minh chứng cho tính đắn hiệu phương pháp Kết thực nghiệm cho thấy tiềm ứng dụng công cụ việc kiểm thử tự động công ty Từ khóa: Kiểm thử dựa mơ hình, kiểm thử tự động, biểu đồ tuần tự, đồ thị dòng điều khiển, ca kiểm thử, độ bao phủ ABSTRACT This thesis researches a method to generate a set of test cases from the UML 2.0 sequence diagrams based on model-based testing in order to automate the testing process, increase effectiveness, reduce cost and time of testing The method follows the following steps At first, in order to have the input model for testing, it analyzes and divides the input diagram into fragments These fragments can be sequential or nested based on their relationship After that, it builds the corresponding graph for each of the fragments and merges them together in order to generate the corresponding control flow graph for the input sequence diagram The final control flow graph is analyzed to generate a set of testing paths Symbolic Execution (SE) technique is used to create restrictions associated with that set of testing paths Finally, the method uses SMT solver to solve the set of restrictions to find solution and then to generate a set of test cases A tool is also implemented and tested with some simple examples in order to show the correctness and effectiveness of the method The experimental results give us the potential application of the tool in automation testing in companies Keywords: Model base testing, automated testing, sequence diagram, control flow testing, test case LỜI CAM ĐOAN Tôi xin cam đoan nghiên cứu sinh tự động kiểm thử từ biểu đồ trình bày luận văn hướng dẫn TS Phạm Ngọc Hùng Những tơi viết khơng chép từ tài liệu, không sử dụng kết người khác mà khơng trích dẫn cụ thể Tơi xin cam đoan cơng cụ kiểm thử tự động tơi trình bày luận văn tự phát triển, không chép mã nguồn người khác Nếu sai hoàn toàn chịu trách nhiệm theo quy định Trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội Hà nội, ngày 22 tháng 11 năm 2015 Học viên: Trần Thị Mùi MỤC LỤC DANH SÁCH BẢNG BIỂU 10 Chương THỰC NGHIỆM Chương đề cập đến phương pháp sinh đồ thị dòng điều khiển từ biểu đồ Trong phương pháp này, biểu đồ chuyển đổi dạng đồ thị dòng điều khiển, đồ thị dòng điều khiển sinh trở thành đầu vào để sinh ca kiểm thử để cập chương Chương giới thiệu công cụ sinh kiểm thử dựa mô hình phần mềm gọi Software model testcase generation (gọi tắt MTG) nhằm mục đích kiểm tra lập trình có với thiết kế hay khơng Cơng cụ phát triển Eclipse, ngôn ngữ sử dụng java, chạy hệ điều hành Windows 7/8 Kiến trúc công cụ mô tả chi tiết sau: 5.1 Giới thiệu cơng cụ Trong q trình nghiên cứu phát triển chương trình, từ biểu đồ chứa thơng điệp khơng đồng bộ, vòng lặp, đặc biệt biểu thức điều kiện, tiến hành xây dựng công cụ để sinh đường kiểm thử, kết hợp với cơng trình khóa luận tốt nghiệp sinh viên Nguyễn Đức Anh [4] để cài đặt cơng cụ hồn thiện sinh kiểm thử từ thiết kế Đầu công cụ đầu vào công cụ sinh viên Nguyễn Đức Anh Tuy nhiên để sử dụng cơng cụ sinh viên Nguyễn Đức Anh tơi cần chuẩn hóa đầu định dạng đầu vào Đức Anh Điểm khác biệt công cụ với công cụ sinh viên đầu vào công cụ Nếu đầu vào Đức Anh mã nguồn C đầu vào tơi biểu đồ đặc tả thiết kế Dưới kiến trúc cơng cụ tơi phát triển: 57 Hình 5.24 Kiến trúc cơng cụ Trên hình phương pháp sinh mơ hình, có nơi để truyền giá trị đầu vào Để chọn file xmi, ta sử dụng nút “Browse” bên cạnh đầu vào File chứa đường kiểm thử đầu vào định dạng theo cách đường kiểm thử dòng, hành động ngăn cách dấu - -> Sau lựa chọn file đầu vào, nhấn “Generate and view” để sinh đường kiểm thử ca kiểm thử Kết sinh hiển thị giao diện hình 5.2 Thực nghiệm Để kiểm thử tính đắn hiệu lập trình so với thiết kế, tơi thực thử nghiệm với số đầu vào khác sau: Bảng 5.2 Môi trường thử nghiệm công cụ sinh ca kiểm thử từ thiết kế Processor Total Physical Memory OS Name IDE Ví dụ 1: Intel(R) Core(TM) i3/i7-2120 CPU @ 3.30GHz, 3300 Mhz, Core(s), Logical Processor(s) 3.40 GB Microsoft Windows 7/8 Ultimate Eclipse Đầu vào cơng cụ: 58 Hình 5.25 Hình vẽ biểu đồ tương ứng với ví dụ Dưới tệp xmi tương ứng: 59 60 Đầu cơng cụ: Hình 5.26 Kết đầu cơng cụ ví dụ Ví dụ 2: 62 Đầu vào công cụ: Tệp xmi sau: 65 Hình 5.27 Hình vẽ biểu đồ tương ứng với ví dụ Đầu cơng cụ: Hình 5.28 Kết đầu cơng cụ ví dụ 5.3 Ý nghĩa thực nghiệm Công cụ sinh tự động ca kiểm thử từ biểu đồ đề xuất giải pháp cho việc kiểm thử tự động từ thiết kế Thực nghiệm cho thấy hướng phát triển tiềm kỹ thuật kiểm thử dựa mơ hình với độ bao phủ lớn ca kiểm thử xảy Kiểm thử viên cần tạo đặc tả biểu đồ tuần tự, sau cơng cụ tự động sinh ca kiểm thử Trước đây, muốn kiểm thử cho tồn hệ thống kiểm thử viên phải viết kịch kiểm thử cho hệ thống đó, điều gây rủi ro cao, giá thời gian cơng sức bỏ lớn Thực nghiệm cho thấy, sau ghép nối, có 20 đường kiểm thử mà đó, đường dẫn chứa gần 70 đường chuyển trạng thái, việc áp dụng cơng cụ để kiểm thử tự động mang lại nhiều lợi ích Với lợi ưu điểm nêu, tương lai cơng cụ có khả áp dụng vào thực tế Hiện tại, công cụ triển khai thử nghiệm với số hệ thống phần mềm số công ty nhận phản hồi tích cực từ phía cơng ty 66 Chương KẾT LUẬN Trong ngữ cảnh công nghiệp đại, kiểm thử tự động xem giải pháp nhằm đảm bảo chất lượng, giảm chi phí thời gian q trình phát triển sản phẩm phần mềm Đã có nhiều giải pháp cơng cụ đề xuất nhằm thực hóa mục tiêu Tuy nhiên, hầu hết công cụ đề xuất tập trung cho kiểm thử đơn vị kiểm thử số yêu cầu phi chức tính an tồn, bảo mật, khả chịu tải, v.v Trong thực tế, kiểm thử tự động từ thiết kế tốn mở chưa có giải pháp thỏa đáng Nghiên cứu đề xuất phương pháp giải vấn đề Ý tưởng phương pháp gồm hai q trình chuyển đổi biểu đồ đồ thị dòng điều khiển từ đồ thị dòng điều khiển sinh kiểm thử Biểu đồ cung cấp dạng tệp xmi phân tích đường kiểm thử tương ứng đặc tả hoạt động Qua q trình phân tích, liệu từ tệp xmi đượcchuyển đổi thành cấu trúc liệu biểu đồ tương ứng Ứng với khối biểu đồ tuần tự, tiến hành bóc, tách khối dựa vào quan hệ khối để lồng khối nhằm sinh đồ thị dòng điều khiển Vận dụng kỹ thuật SE để xây dựng hệ ràng buộc tương ứng cho tập đường kiểm thử Cuối cùng, cách kết hợp kỹ thuật sinh ngẫu nhiên tận dụng mạnh công cụ SMT-Solver, hệ ràng buộc giải để sinh ca kiểm thử Phương pháp đề xuất yêu cầu đầu vào thiết kế dạng biểu đồ thành phần chuẩn hóa thành tệp xmi Đây ưu điểm lớn phương pháp thực tế, việc xây dựng biểu đồ thành phần công việc đơn giản Nhờ đó, cơng việc kiểm thử đảm bảo chất lượng giảm thiểu chi phí hạn chế tình trạng bùng nổ số lượng trạng thái Luận văn trình bày kiến thức lý thuyết kiểm thử dựa mơ hình, cung cấp phương pháp sinh đồ thị dòng điều khiển từ biểu đồ sinh ca kiểm thử từ đồ thị dòng điều khiển Cơng cụ thực phương pháp cài đặt thành công Về mặt thực nghiệm, cơng cụ dùng để sinh mơ hình tự động Ngồi ra, cơng cụ đóng vai trò to lớn việc tự động hóa số cơng đoạn việc phát triển phần mềm từ thiết kế, sinh mã nguồn, kiểm thử tự động cho nghiên cứu sau 67 Phương pháp hứa hẹn không áp dụng thiết kế mà kiểm thử mức mã nguồn Hiện nay, nhiều cơng cụ chuyển đổi từ mã nguồn sang biểu đồ đặc tả hành vi Trong tương lai, nghiên cứu tiếp tục pháp triển phương pháp với loại thiết kế đặc tả dạng khác Cấy lỗi vào mã nguồn tương ứng để đánh giá khả phát lỗi kiểm thử 68 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phạm Ngọc Hùng, Trương Anh Hoàng, Đặng Văn Hưng (2014), “Giáo trình kiểm thử phần mềm”, Nhà xuất giáo dục Việt Nam [2] Đỗ Đức Giáo (2011), “Toán rời rạc ứng dụng tin học”, Nhà xuất giáo dục Việt Nam [3] 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àngbuộc đối tượng OCL”, Tạp trí “Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT Tập V-1, Số 11 (31)” [4] Nguyễn Đức Anh (2015), “Khóa luận tốt nghiệp”, Trường Đại học Công nghệ, Đại học Quốc Gia, Hà Nội Tiếng Anh [5] Vahid Garousi, Lionel C Briand, and Yvan Labiche (2008), “Control Flow Analysis of UML 2.0 Sequence Diagrams” - Software Quality Engineering Laboratory (SQUALL), Department of Systems and Computer Engineering, Carleton University, 1125 Colonel By Drive, Ottawa, ON K1S5B6, Canada {vahid, briand, labiche} @ sce.carleton.ca [6] R.V Binder (1996), “Testing object-oriented software: a survey, Software TestingVerification and Reliability”, 6(3/4), 125-252 [7] R Mall (2009), “Fundamentals of Software Engineering, Prentice Hall, 3th edition” [8] J C King (1976), “Symbolic execution and program testing”, Communciations of the ACM, vol 19, no 7, , pp 385–394 [9] Manish Mishra, Shashi Mishra and Rabins Porwal (2012), “Basic Principle for testcase Generation Automatically”, VSRD-IJCSIT, Vol (9), pp.772-781 [10] Abdurazik Aynur and Offutt Jeff (2000),“Using uml collaboration diagrams for static checking and test generation”, Proceedings of the 3rd international conference on The unified modeling language: advancing the standard (Berlin, Heidelberg), UML’00, Springer-Verlag, pp 383–395 [11]El-Far I K and Whittaker J.A (2002), “Model-based software testing”, Encyclopedia of Software Engineering 825—-837 [12] J.C Corb ett, M.B Dwyer, J Hatcliff, S Laubach , C.S Pasareanu, Robby a nd Hong jun Zheng, "Bandera: extracting finite-state mo dels from Java source co de", Software Engineering, Pro ceedings of the 2000 Internat ional Conference on, pp 439-448d, 2000 [13] O Tkac huk, M.B Dwyer and C.S Pasareanu, “Automated environment generati on for software mo del checking“, Automated Software Engineering, Pro c eedings 18th IEEE International Conference on, pp 116-127, 2003 [14] D Lore nzoli, L Marian i and M Pezzè, “Automatic generation of software b ehavioral mo dels", ACM, Pro ceedings of the 30th international conference on Software engineering, pp 501-510, 2008 [15] L B Cuong and P N Hung, “A Metho d for Gene rating Mo dels of Black-b ox Comp onents ", 4th International Conference on Knowledge and Systems Engineering (KSE 2012), IEEE Computer So cie ty Press, pp 177-222, 2012 [16] A Gro ce, D Peled, and M Y annak a ki s, “Black box checking", J Autom Lang Comb., p p 225-246, Nov 2001 [17] A Gro ce, D Peled, and M Y annak a ki s, “Adaptive Mo del Checking", Logic Journal of the IGPL, vol 14, no 5, pp 729-744, Oct 2006 [18] H.M Duong, L.K Trin h and P N Hung, “An Assume-Guarantee Mo d el Checker for Comp onent-Based Systems", The 10th IEEE-RIVF International Conference on Computing and Communication Technologies, 2013 [19] L B Cuong and P N Hung, “A Method for Generating Models of Black-box Components”, 4th International Conference on Knowledge and Systems Engineering (KSE 2012), IEEE Computer Society Press, pp 177-222, 2012 [20] D Lorenzoli, L Mariani and M Pezz` e, “Automatic generation of software behavioral models”, ACM, Proceedings of the 30th international conference on Software engineering, pp 501-510, 2008 [21] J.C Corbett, M.B Dwyer, J Hatcliff, S Laubach, C.S Pasareanu, Robby and Hongjun Zheng, ”Bandera: extracting finite-state models from Java source code”, Software Engineering, Proceedings of the 2000 International Conference on, pp 439-448d, 2000 [22] O Tkachuk, M.B Dwyer and C.S Pasareanu, “Automated environment generation for software model checking”, Automated Software Engineering, Proceedings 18th IEEE International Conference on, pp 116-127, 2003 [23] H M Duong, L K Trinh, and P N Hung, “An Assume-Guarantee Model Checker for Component-Based Systems”, The 10th IEEE-RIVF International Conference on Computing and Communication Technologies, 2013 (accepted) [24] A Groce, D Peled, and M Y annak akis, “Black box checking”, J Autom Lang Comb., pp 225-246, Nov 2001 [25] A Groce, D Peled, and M Y annak akis, “Adaptive Model Checking”, Logic Journal of the IGPL, vol 14, no 5, pp 729-744, Oct 2006 [26] OMG document, UML 2.0 Superstructure Specification, 2003 http://www.omg.org/cgi-bin/doc?ptc/03-08-02 [27] UML sequence diagram http://www.uml-diagrams.org/sequence-diagrams-combined-fragment.html [28] Interaction operators in sequence diagrams http://pic.dhe.ibm.com/infocenter/rsarthlp/v8r5/topic/com.ibm.xtools.sequen ce.doc/topics/rinteracoperate.html [29] Business and Information System Modelling Solutions http://www.zicomi.com/combinedFragmentNegative.jsp ... nhằm minh chứng cho tính đắn hiệu phương pháp Kết thực nghiệm cho thấy tiềm ứng dụng công cụ việc kiểm thử tự động cơng ty Từ khóa: Kiểm thử dựa mơ hình, kiểm thử tự động, biểu đồ tuần tự, đồ thị... phương pháp kiểm thử dựa mơ hình ứng dụng cho kiểm thử phần mềm 2.1 Khái niệm kiểm thử dựa mô hình Trong trình kiểm thử tự động phần mềm, kiểm thử viên trước tiên tạo kịch kiểm thử cách ghi lại... đó, kiểm thử viên tiến hành kiểm thử theo kịch tạo với tham số khác Quá trình kiểm thử chạy tự động Tuy nhiên, việc tạo kịch kiểm thử lại tiến hành thủ công Hầu hết công cụ kiểm thử ngày kiểm thử

Ngày đăng: 08/12/2019, 22:42

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • TÓM TẮT

  • ABSTRACT

  • LỜI CAM ĐOAN

    • MỤC LỤC

    • DANH SÁCH BẢNG BIỂU

    • DANH SÁCH HÌNH VẼ

    • Chương 1. GIỚI THIỆU

    • Chương 2. TỔNG QUAN KIỂM THỬ DỰA TRÊN MÔ HÌNH

      • 2.1. Khái niệm kiểm thử dựa trên mô hình

      • 2.2. Quy trình chung của kiểm thử dựa trên mô hình

      • 2.3. Phương pháp đặc tả mô hình bằng máy trạng thái UML

      • 2.4. Thuận lợi và khó khăn của kiểm thử tự động dựa trên mô hình

      • Chương 3. PHƯƠNG PHÁP SINH ĐỒ THỊ DÒNG ĐIỀU KHIỂN TỪ BIỂU ĐỒ TUẦN TỰ

        • 3.1. Biểu đồ tuần tự

        • 3.2. Đồ thị dòng điều khiển

        • 3.3. Đường kiểm thử

        • 3.4. Chuyển đổi biểu đồ tuần tự sang đường kiểm thử

        • 3.5. Định dạng chuẩn khi viết tệp xmi từ biểu đồ tuần tự

        • 3.6. Thuật toán sinh tự động các đường kiểm thử

          • 3.6.1. Thuật toán phân tích biểu đồ tuần tự

          • 3.6.2. Thuật toán chuyển cấu trúc dữ liệu biểu đồ tuần tự sang đường kiểm thử

          • 3.6.3. Thuật toán xác định đường kiểm thử cho khối alt

          • 3.6.4. Thuật toán xác định đường kiểm thử cho khối opt và break

Tài liệu cùng người dùng

Tài liệu liên quan