ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VĂN HÒA PHƢƠNG PHÁP SINH DỮ LIỆU KIỂM THỬ TỰ ĐỘNG TỪ BIỂU ĐỒ TUẦN TỰ UML, BIỂU ĐỒ LỚP VÀ RÀNG BUỘC OCL LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM HÀ NỘI – 2016 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VĂN HÒA PHƢƠNG PHÁP SINH DỮ LIỆU KIỂM THỬ TỰ ĐỘNG TỪ BIỂU ĐỒ TUẦN TỰ UML, BIỂU ĐỒ LỚP VÀ RÀNG BUỘC OCL Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM CÁN BỘ HƢỚNG DẪN KHOA HỌC: PGS. PHẠM NGỌC HÙNG HÀ NỘI – 2016 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING TECHNOLOGY NGUYEN VAN HOA A METHOD AND TOOL SUPPORTING FOR AUTOMATED TESTING FROM UML SEQUENCE DIAGRAMS, CLASS DIAGRAMS AND OCL CONSTRAINS THE MS. THESIS INFORMATION TECHNOLOGY Supervisor: Assoc., PHAM NGOC HUNG, PhD HÀ NỘI – 2016 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com i LỜI CẢM ƠN Đầu tiên, tôi xin gửi lời cảm ơn chân thành và 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 đỡ và động viên tôi rất nhiều, cho tôi có cơ hội đƣợc tiếp xúc với các tài liệu tham khảo quý giá, góp ý cho tôi những lời khuyên chân thành trong quá trình nghiên cứu để hoàn thành đề tài này. Tiếp theo tôi xin gửi lời cảm ơn đến các thầy cô giảng viên Trƣờng Đại học Công Nghệ - Đại học Quốc Gia Hà Nội – những ngƣời đã tận tâm truyền đạt những kiến thức quý báu làm nền tảng cho tôi suốt 2 năm học. Cuối cùng, tôi xin gửi lời biết ơn sâu sắc tới gia đình vì đã luôn ở bên cạnh tôi, mang lại cho tôi nguồn động viên tinh thần to lớn và tạo mọi điều kiện thuận lợi cho tôi trong quá trình học tập và hoàn thành luận văn này. Với luận văn này tôi rất mong nhận đƣợc ý kiến đóng góp từ Thầy, Cô giáo và các bạn quan tâm để hoàn thiện và phát triển nhiều hơn về các phƣơng pháp mới trong kiểm thử phần mềm. Xin trân trọng cảm ơn! Hà Nội, ngày 10 tháng 10 năm 2016 Học viên Nguyễn Văn Hòa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ii TÓM TẮT Luận văn này trình bày một phƣơng pháp nghiên cứu tự động hóa quá trình kiểm thử dự án phần mềm từ biểu đồ tuần tự UML 2. Hƣớng nghiên cứu dựa trên lý thuyết kiểm thử dựa trên mô hình. Mục tiêu đề ra là tự động hóa quá trình kiểm thử, nâng cao hiệu quả kiểm thử, tiết kiệm chi phí và thời gian phát triển dự án. Phƣơng pháp đƣợc đề xuất với nội dung chính nhƣ sau. Đầu vào là biểu đồ tuần tự UML 2.0 lƣu giữ dƣới dạng tệp xmi. Chƣơng trình kiểm thử biến đổi tệp xmi bằng cách bóc tách các thông điệp, toán tử và các ràng buộc đƣợc đƣa vào trong thiết kế, từ đó vẽ đồ thị dòng điều khiển tƣơng ứng. Từ đồ thị dòng điều khiển sử dụng thuật toán dò tìm, thuật toán sinh ca kiểm thử cho các toán tử song song có các điểm chia sẻ dữ liệu tìm ra các đƣờng đi từ điểm bắt đầu cho tới điểm kết thúc gọi là các đƣờng kiểm thử. Tập các đƣờng kiểm thử đƣợc chia tƣơng ứng thành 3 cấp độ kiểm thử khác nhau. Các ràng buộc trên mỗi đƣờng đi đƣợc thu thập và giải lấy kết quả dựa trên công cụ SMT solver kết hợp phƣơng pháp sinh ngẫu nhiên. Kết quả thu đƣợc sau khi giải hệ chính là đầu vào cho các ca kiểm thử tƣơng ứng. Cuối cùng trích xuất ra tệp excel là các ca kiểm thử theo từng độ bao phủ dùng cho kiểm thử thiết kế. Để kiểm nghiệm mức độ khả thi của phƣơng pháp, một công cụ hỗ trợ đã đƣợc cài đặt và thử nghiệm với một số ví dụ đơn giản nhằm minh chứng cho tính đúng đắn và hiệu quả của phƣơng pháp trên. Kết quả thực nghiệm cho thấy hiệu quả của các ca kiểm thử cũng là khả quan để áp dụng cho các công ty phát triển phần mềm. Từ khóa: Kiểm thử dựa trên mô hình, kiểm thử tự động, biểu đồ tuần tự, đồ thị dòng điều khiển, kiểm thử luồng song song, kiểm thử có chia sẻ dữ liệu luồng song song. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com iii ABSTRACT The content of this thesis is research and propose a method to generate a set of test cases from the UML 2. 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 generates 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, Parallel threading testing, threading testing with data shared. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com iv LỜI CAM ĐOAN Tôi xin cam đoan rằng những nghiên cứu về sinh tự động bộ kiểm thử từ biểu đồ tuần tự đƣợc trình bày trong luận văn này dƣới sự hƣớng dẫn của thầy Phạm Ngọc Hùng là của tôi. Những gì tôi viết ra không sao chép từ các tài liệu, không sử dụng các kết quả của 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 trong luận văn là do tôi tự phát triển, không sao chép mã nguồn của ngƣời khác. Nếu sai tôi hoàn toàn chịu trách nhiệm theo quy định của Trƣờng Đại học Công Nghệ - Đại học Quốc Gia Hà Nội. Hà nội, ngày 10 tháng 10 năm 2016 Học viên: Nguyễn Văn Hòa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com v MỤC LỤC LỜI CẢM ƠN.iii LỜI CAM ĐOAN . iv MỤC LỤC . v DANH SÁCH BẢNG BIỂU . vii DANH SÁCH HÌNH VẼ.viii BẢNG THUẬT NGỮ VIẾT TẮT . x Chƣơng 1: GIỚI THIỆU. 1 Chƣơng 2: CÁC KHÁI NIỆM VÀ TỔNG QUAN KIỂM THỬ DỰA TRÊN MÔ HÌNH .1 Tổng quan kiểm thử dựa trên mô hình . Khái niệm kiểm thử dựa trên mô hình . Quy trình chung của kiểm thử dựa trên mô hình. Phƣơng pháp đặc tả mô hình bằng máy trạng thái UML . Thuận lợi và khó khăn của kiểm thử tự động dựa trên mô hình .2 Biểu đồ tuần tự và các khối phân đoạn trong UML . Biểu đồ tuần tự . Các phân đoạn sử dụng trong biểu đồ tuần tự .3 Đồ thị dòng điều khiển . 17 Chƣơng 3: PHƢƠNG PHÁP SINH ĐỒ THỊ DÒNG ĐIỀU KHIỂN TỪ BIỂU ĐỒ TUẦN TỰ.1 Điều kiện ràng buộc trong thiết kế .2 Thuật toán biến đổi biểu đồ tuần tự sang đồ thị dòng điều khiển . Thuật toán sinh đồ thị dòng điều khiển . Đồ thị dòng điều khiển tƣơng ứng với các phân đoạn . 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.3 Kỹ thuật sinh kịch bản kiểm thử. Kịch bản kiểm thử cho các toán từ thông thƣờng . Kịch bản kiểm thử cho các phân đoạn song song (Par, Seq) .4 Xây dựng hệ ràng buộc .5 Giải hệ sử dụng SMT-Solver .6 Các nghiên cứu liên quan . 46 Chƣơng 4: CÔNG CỤ VÀ THỰC NGHIỆM .1 Giới thiệu công cụ và môi trƣờng thực nghiệm .3 Ý nghĩa thực nghiệm . 57 Chƣơng 5: KẾT LUẬN . 59 TÀI LIỆU THAM KHẢO . 61 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com vii DANH SÁCH BẢNG BIỂU ảng 2.1 Ca kiểm thử độ bao phủ yếu .2 Ca kiểm thử độ bao phủ trung bình.3 Ca kiểm thử độ bao phủ mạnh .1 Các khóa cơ bản và ý nghĩa trong tệp xmi .2 Dữ liệu thu thập tƣơng ứng theo các nốt đƣợc nối với nhau .1 Môi trƣờng thử nghiệm công cụ sinh ca kiểm thử từ thiết kế. 49 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com viii DANH SÁCH HÌNH VẼ Hình 2.1 Qui trình kiểm thử dựa trên mô hình.2 Phân đoạn Alt.3 Phân đoạn Opt.4 Phân đoạn Loop vô hạn.5 Phân đoạn Loop với cận trên bằng cận dƣới bằng 10.6 Phân đoạn Loop với cận trên bằng 5, cận dƣới bằng 10.7 Phân đoạn Break.8 Phân đoạn Par.9 Phân đoạn Seq.10 Phân đoạn Strict.11 Phân đoạn Ignore.12 Phân đoạn Consider.13 Phân đoạn Neg.14 Phân đoạn Assert.15 Phân đoạn Critical.16 Đồ thị dòng điều khiển tƣơng ứng của phân đoạn Par.1 Thiết kế tên thông điệp.2 Thiết kế ràng buộc.3 Khai báo biến trong ràng buộc tƣơng ứng cho các lớp.4 Xóa triệt để các đối tƣợng không dùng nữa.5 Đồ thị CFG tƣơng ứng cho phân đoạn Alt.6 Đồ thị CFG tƣơng ứng cho phân đoạn Opt.7 Đồ thị CFG tƣơng ứng cho phân đoạn Loop.8 Đồ thị CFG tƣơng ứng cho phân đoạn Break.9 Đồ thị CFG tƣơng ứng cho phân đoạn Par.10 Đồ thị CFG tƣơng ứng cho phân đoạn Seq. 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ix Hình 3.11 Đồ thị CFG tƣơng ứng cho phân đoạn Ignore.12 Đồ thị CFG tƣơng ứng cho phân đoạn Consider.13 Đồ thị CFG tƣơng ứng cho phân đoạn Neg.14 Đồ thị CFG tƣơng ứng cho phân đoạn Assert.15 Đồ thị CFG tƣơng ứng cho phân đoạn Strict.16 Ví dụ cây đồ thị cần duyệt.17 Đồ thị dòng điều khiển.18 Ví dụ về ràng buộc OCL đƣợc khai báo trong thiết kế.19 Mô tả công cụ SMT Solver .1 Cấu trúc công cụ thực nghiệm.2 Đầu vào công cụ của ví dụ 1.3 Đầu ra - đồ thị CFG của ví dụ 1.4 Đồ thị CFG và ca kiểm thử độ bao phủ yếu cho ví dụ 1.5 Ca kiểm thử độ bao phủ yếu cho ví dụ 1.6 Ca kiểm thử độ bao phủ trung bình cho ví dụ 1.7 Dữ liệu kiểm thử sau khi xuất ra tệp MS Excel .8 Đầu vào của ví dụ 2.9 Đầu ra đồ thị CFG cho ví dụ 2.10 Ca kiểm thử độ bao phủ yếu cho ví dụ 2.11 Ca kiểm thử độ bao phủ trung bình cho ví dụ 2.12 Ca kiểm thử độ bao phủ mạnh cho ví dụ 2.13 Đƣờng đi tƣơng ứng của một ca kiểm thử độ bao phủ mạnh của ví dụ 2. 57 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.
Luận Văn Thạc Sĩ: Phương Pháp Sinh Dữ Liệu Kiểm Thử Tự Động Từ Biểu Đồ UML
Luận văn thạc sĩ VNU UET trình bày phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồ tuần tự UML, biểu đồ lớp và ràng buộc OCL.
Trường đại học
Trường Đại học Công Nghệ - Đại học Quốc Gia Hà NộiChuyên ngành
Công Nghệ Thông TinNgười đăng
Ẩn danhThể loại
Luận Văn Thạc SĩPhí lưu trữ
30 PointMục lục chi tiết
THÔNG TIN CHI TIẾT
Tác giả: Nguyễn Văn Hòa
Người hướng dẫn: PGS. Phạm Ngọc Hùng
Trường học: Trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Chuyên ngành: Công Nghệ Thông Tin
Đề tài: Phương Pháp Sinh Dữ Liệu Kiểm Thử Tự Động Từ Biểu Đồ Tuần Tự UML, Biểu Đồ Lớp Và Ràng Buộc OCL
Loại tài liệu: Luận Văn Thạc Sĩ
Năm xuất bản: 2016
Địa điểm: Hà Nội
Trích đoạn nội dung tài liệu
Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ