1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kiểm thử dựa trên mô hình với cách tiếp cận mô hình hóa chuyên biệt miền (tt)

29 185 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 3,07 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Chu Thị Minh Huệ KIỂM THỬ DỰA TRÊN HÌNH VỚI CÁCH TIẾP CẬN HÌNH HĨA CHUN BIỆT MIỀN TĨM TẮT LUẬN ÁN TIẾN SỸ CƠNG NGHỆ THƠNG TIN Hà Nội - 2018 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Chu Thị Minh Huệ KIỂM THỬ DỰA TRÊN HÌNH VỚI CÁCH TIẾP CẬN HÌNH HĨA CHUN BIỆT MIỀN Chun ngành: Kỹ thuật Phần mềm Mã số: 9480103.01 TÓM TẮT LUẬN ÁN TIẾN SỸ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Ngọc Bình TS Đặng Đức Hạnh Hà Nội - 2018 Mục lục Giới thiệu 1.1 Đặt vấn đề 1.2 Mục tiêu nghiên cứu đóng góp luận án 1.3 Bố cục luận án 1 2 Kiến thức sở 2.1 Kiểm thử dựa ca sử dụng 2.2 hình hóa chun biệt miền 2.3 Chuyển đổi hình 2.4 Ngôn ngữ ràng buộc đối tượng OCL 3 4 Đặc 3.1 3.2 3.3 3.4 3.5 3.6 tả ca sử dụng theo hướng hình hóa chun biệt miền Giới thiệu Xác định miền cho ngữ cảnh đặc tả ca sử dụng Cú pháp USL 3.3.1 Cú pháp trừu tượng USL 3.3.2 Các luật hợp lệ siêu hình USL 3.3.3 Cú pháp cụ thể USL Ngữ nghĩa hình thức hình USL Chuyển đổi hình USL Kết chương 12 12 Phương pháp sinh tự động ca kiểm thử từ hình ca sử dụng 4.1 Giới thiệu 4.2 Tổng quan kỹ thuật đề xuất 4.3 Ngôn ngữ đặc tả ca kiểm thử TCSL 4.3.1 Xác định miền cho ngữ cảnh đặc tả ca kiểm thử chức 4.3.2 Định nghĩa siêu hình TCSL 4.4 Chuyển đổi hình từ USL sang TCSL 4.4.1 Xác định tiêu chí phủ 4.4.2 Sinh kịch ca sử dụng ràng buộc 4.4.3 Sinh liệu đầu vào kiểm thử 4.4.4 Sinh hình TCSL 4.5 Tổng kết chương THỰC NGHIỆM VÀ ĐÁNH GIÁ 5.1 Giới thiệu 5.2 Công cụ hỗ trợ USL 5.3 Đánh giá 5.3.1 Đánh giá ngôn ngữ USL 5.3.2 Đánh giá phương pháp sinh i ca kiểm thử USLTG 13 13 13 13 13 14 15 15 15 16 16 18 20 20 20 20 20 21 5.4 Kết chương 22 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 23 6.1 Các đóng góp luận án 23 6.2 Hướng phát triển 23 Danh mục cơng trình khoa học 25 ii Chương Giới thiệu 1.1 Đặt vấn đề Trong quy trình phát triển phần mềm, yêu cầu chức (functional software requirements) phần mềm đầu vào để xây dựng ca kiểm thử chức năng, hình cấu trúc (biểu đồ lớp), hình hành vi (biểu đồ tuần tự, biểu đồ hoạt động) cho hệ thống, v.v Trong thực tế, yêu cầu phần mềm thường hay thay đổi suốt quy trình phát triển phần mềm Khi yêu cầu phần mềm thay đổi, hình ca kiểm thử liên quan phải xây dựng thực thi lại (kiểm thử hồi quy) Vì vậy, nỗ lực yêu cầu để xác định, bảo trì, thực thi ca kiểm thử yêu cầu thay đổi lớn Đối với hoạt động kiểm thử phần mềm, giải pháp sinh thực thi ca kiểm thử cách tự động giúp tiết kiệm nhiều thời gian nỗ lực giảm số lượng lỗi sai sót hoạt động kiểm thử phần mềm Do đó, có nhiều nghiên cứu đề xuất giải pháp tăng tính tự động phát triển phần mềm hoạt động kiểm thử phần mềm Các cơng trình nghiên cứu sinh tự động ca kiểm thử chức từ ca sử dụng đa dạng, phức tạp với với nhiều cách tiếp cận khác Trong khuôn khổ nghiên cứu, luận án nghiên cứu phương pháp kiểm thử kiểm thử dựa hình với cách tiếp cận hình hóa chun biệt miền để giải toán sinh tự động ca kiểm thử chức từ ca sử dụng Trong luận án tập trung vào hai pha phương pháp kiểm thử dựa hình hình hóa sinh tự động ca kiểm thử, cụ thể sau: (i) Đặc tả hình ca sử dụng đủ xác để sinh tự động chế tác phần mềm khác có sinh ca kiểm thử (ii) Bài toán sinh tự động ca kiểm thử từ ca sử dụng Vì vây, mục tiêu luận án hướng đến tập trung đề xuất hai ngôn ngữ đặc tả chuyên biệt miền cho miền đặc tả ca sử dụng miền đặc tả ca kiểm thử phương pháp chuyển tự động từ hình ca sử dụng vào hình ca kiểm thử chức ngơn ngữ hình hóa chun biệt miền đề xuất Bài tốn có đầu vào biểu đồ ca sử dụng UML, tả ca sử dụng ngôn ngữ tự nhiên, hình lớp đặc tả khái niệm miền hệ thống Đối tượng nghiên cứu luận án kỹ thuật kiểm thử dựa hình, kỹ thuật xây dựng ngơn ngữ hình hóa chun biệt miền, phương pháp sinh tự động ca kiểm thử chức từ ca sử dụng Cụ thể, luận án quan tâm đến biểu đồ ca sử dụng, tả ca sử dụng, hình lớp đặc tả khái niệm miền hệ thống, tả ca kiểm thử chức Các hình lớp hình ca sử dụng xem xét mức đặc tả yêu cầu phần mềm ca kiểm thử chức xem xét xác định từ yêu cầu chức phần mềm tài liệu đặc tả yêu cầu phần mềm 1.2 Mục tiêu nghiên cứu đóng góp luận án Mục tiêu luận án đặt ca sử dụng vào ngữ cảnh quy trình kiểm thử dựa hình Điều cho phép tự động hóa hoạt động kiểm thử chức mà đầu vào yêu cầu chức phần mềm Thứ nhất, luận án đề xuất phương pháp đặc tả ca sử dụng với cách tiếp cận hình hóa chun biệt miền Thứ hai, luận án đề xuất phương pháp đặc tả ca kiểm thử Thứ ba, luận án đề xuất phương pháp chuyển tự động từ hình ca sử dụng USL sang hình đặc tả ca kiểm thử TCSL Cuối cùng, luận án xây dựng công cụ hỗ trợ USL Công cụ cho phép tích hợp ca sử dụng vào phương pháp phát triển hướng hình Để minh chứng khả ứng dụng USL vào thực tế, luận án trình bày kết áp dụng USL cho số ca sử dụng Ngoài ra, luận án đưa đánh giá, so sánh phương pháp đặc tả ca sử dụng phương pháp sinh ca kiểm thử với nghiên cứu khác liên quan Các kết nghiên cứu luận án nhằm xây dựng phương pháp hoàn chỉnh để sinh tự động ca kiểm thử chức từ ca sử dụng phương pháp kiểm thử dựa hình với cách tiếp cận hình hóa chun biệt miền Từ nghiên cứu hướng đến phương pháp hồn chỉnh cho phép tích hợp ca sử dụng vào phương pháp phát triển hướng hình 1.3 Bố cục luận án Luận án bao gồm sáu chương Trong đó, Chương trình bày kiến thức sử dụng luận án Chương trình bày cách tóm tắt kiến thức sở sử dụng chương Chương đề xuất ngôn ngữ đặc tả chuyên biệt miền cho miền đặc tả ca sử dụng tên USL Chương trình bày phương pháp sinh tự động ca kiểm thử chức từ ca sử dụng Công cụ hỗ trợ USL trình bày Chương Cuối cùng, Chương kết luận đưa hướng nghiên cứu luận án Chương Kiến thức sở 2.1 Kiểm thử dựa ca sử dụng Kiểm thử (Testing) quy trình thực chương trình với ý định tìm kiếm lỗi Kiểm thử phần mềm bao gồm việc kiểm chứng động hành vi chương trình tập hữu hạn ca kiểm thử (test case) Các ca kiểm thử lựa chọn phù hợp từ miền thực thi thường vơ hạn để có hành vi mong đợi Ca kiểm thử (Test case) tập liệu kiểm thử (test data), điều kiện thực (pre-condition), bước kiểm thử (test steps), kết đầu mong đợi (expected output) phát triển cho kịch kiểm thử (test scenario) cụ thể để kiểm chứng tuân thủ yêu cầu xác định Một ca kiểm thử định nghĩa thử nghiệm đơn lẻ thực để đạt mục tiêu kiểm thử phần mềm cụ thể, chẳng hạn qua đường thực thi chương trình cụ thể kiểm chứng tuân thủ yêu cầu cụ thể Dữ liệu kiểm thử (Test data) tập giá trị thực (thỏa mãn tiêu chuẩn bao phủ liệu chọn) xác định rõ đầu vào để thực ca kiểm thử trình kiểm thử Kịch kiểm thử (Test scenario) ca kiểm thử trừu tượng thường bao gồm nhiều ca kiểm thử liên quan Mục đích kịch kiểm thử kiểm tra việc thực chức từ đầu đến cuối chức phần mềm đảm bảo luồng logic hoạt động Với kịch kiểm thử, kiểm thử viên xác định nhiều liệu kiểm thử thỏa mãn kịch kiểm thử Một ca kiểm thử kết hợp kịch kiểm thử với liệu kiểm thử thỏa mãn kịch Kiểm thử dựa hình (Model-Based Testing - MBT ) kỹ thuật kiểm thử với mục đích để sinh ca kiểm thử tự động từ hình mà đặc tả khía cạnh liên quan hành vi hệ thống cần kiểm thử (System Under Testing - SUT ) Tiêu chuẩn bao phủ (Test coverage criteria) tập quy tắc mà hướng dẫn định yếu tố thích hợp cần đề cập để phủ để tạo đầy đủ cho ca kiểm thử thiết kế Mục đích để đánh giá mức độ hiệu ca kiểm thử, đo phần trăm độ bao phủ đặc tả chương trình ca kiểm thử so với yêu cầu phần mềm, thông qua kiểm thử để loại trừ sai sót tăng chất lượng phần mềm Luận án trình bày tiêu chí phủ kiểm thử mà luận án áp dụng để sinh ca kiểm thử Chương Tiêu chí phủ đường hoạt động Kundu Samanta đề xuất tiêu chí phủ kiểm thử tên phủ đường hoạt động (activity path coverage) Tiêu chí mục đích để sử dụng cho kiểm thử vòng lặp kiểm thử đồng thời hành động đồ thị hoạt động Ca sử dụng (use case) Ca sử dụng sử dụng rộng rãi phương tiện để nắm bắt yêu cầu chức phần mềm Một ca sử dụng tả chức sử dụng cụ thể hệ thống tác nhân (actor) Mỗi ca sử dụng tả tương tác tác nhân với hệ thống để đạt nhiệm vụ cụ thể (hoặc cung cấp có giá trị cho người dùng) Các ca sử dụng chế tác trung tâm phát triển phần mềm Chúng sử dụng đầu vào để xây dựng chế tác khác phần mềm, hình hành vi, hình cấu trúc, ca kiểm thử hệ thống hình ca sử dụng (use case model) Một hình ca sử dụng UML thường thể biểu đồ ca sử dụng liên kết lỏng lẻo với tả ca sử dụng ngơn ngữ tự nhiên trình bày mẫu có cấu trúc Trong biểu đồ ca sử dụng cung cấp tổng quan ca sử dụng, người dùng hệ thống mối quan hệ ca sử dụng người dùng Các tả ca sử dụng tả chuỗi tương tác môi trường hệ thống tả ca sử dụng ngôn ngữ tự nhiên cho phép người dùng bên tham gia phát triển phần mềm dễ dàng hiểu được u cầu hệ thống 2.2 hình hóa chun biệt miền Ngôn ngữ chuyên biệt miền (Domain-Specific Language - DSL) ngơn ngữ chương trình ngơn ngữ đặc tả thực thi, cách tích hợp khái niệm trừu tượng tri thức miền vào ngôn ngữ dạng ký hiệu có tính biểu cảm cao DSL tăng mức độ trừu tượng cách sử dụng khái niệm quen thuộc với chuyên gia miền thường giới hạn miền vấn đề cụ thể Ngơn ngữ hình hóa chuyên biệt miền (Domain-Specific Modeling Language DSML) ngôn ngữ chuyên biệt miền cụ thể DSML sử dụng để xây dựng hình đồ họa cho hệ thống phần mềm hình hóa chun biệt miền (Domain-Specific Modelling - DSM) sử dụng DSML để tạo hình, sinh mã từ hình với sinh mã Phát triển hướng hình (Model-Driven Development - MDD) hình phát triển mà sử dụng chế tác quy trình phát triển phần mềm Thông thường, MDD triển khai sinh tự động bán tự động từ hình 2.3 Chuyển đổi hình Một phép chuyển đổi hình chương trình để tạo tự động hình văn đầu từ hình đầu vào Chuyển đổi hình có ba dạng: Chuyển hình sang hình (Model to Model - M2M), hình sang văn (Model to Text M2T), văn sang hình (Text to Model - T2M) 2.4 Ngôn ngữ ràng buộc đối tượng OCL Ngôn ngữ ràng buộc đối tượng OCL (Object Constraint Language) đời nhằm mục đích khắc phục hạn chế UML việc biểu diễn xác khía cạnh chi tiết thiết kế hệ thống OCL phát triển lần đầu vào năm 1995 IBM tích hợp vào UML năm 1997 Đầu tiên, OCL sử dụng ngôn ngữ ràng buộc cho UML, nhiên phạm vi mở rộng nhanh chóng OCL trở thành thành phần quan trọng kỹ nghệ hướng hình MDE (Model-Driven Engineering) OCL sử dụng ngơn ngữ mặc định cho trình diễn tất truy vấn hình siêu hình, thực đặc tả yêu cầu OCL thường sử dụng để trình diễn chuyển hình (như phần hình nguồn hình đích luật chuyển hình), luật hợp lệ (như phần định nghĩa ngôn ngữ chuyên biệt miền mới), mẫu sinh mã nguồn (như cách để tả mẫu luật sinh) Chương Đặc tả ca sử dụng theo hướng hình hóa chun biệt miền 3.1 Giới thiệu Ca sử dụng chế tác phần mềm mà sử dụng chủ yếu để nắm bắt cấu trúc yêu cầu chức phần mềm hình ca sử dụng đặc tả chủ yếu biểu đồ ca sử dụng tả dạng văn cấu trúc lỏng lẻo Lợi ích đặc tả ca sử dụng ngôn ngữ tự nhiên dễ dàng cho bên liên quan khơng có kỹ thuật hiểu Tuy nhiên, hình ca sử dụng trình bày dạng thường chứa phần thơng tin mập mờ khơng xác Điều ngăn cản hình ca sử dụng sử dụng trực tiếp cách tiếp cận hướng hình, nguồn chuyển để cung cấp hình cấu trúc, hình hành vi, ca kiểm thử Trong chương này, luận án tập trung nghiên cứu xây dựng ngơn ngữ hình hóa chuyên biệt cho miền đặc tả thông tin tả ca sử dụng Luận án khắc phục hạn chế nêu nghiên cứu khác Cú pháp trừu tượng USL định nghĩa cách mở rộng siêu hình biểu đồ ca sử dụng biểu đồ hoạt động UML 3.2 Xác định miền cho ngữ cảnh đặc tả ca sử dụng Bảng 3.1 tả ca sử dụng Lend book, tả có định dạng theo cấu trúc mẫu tả ca sử dụng thông thường Một mẫu tả ca sử dụng thường gồm hai phần: phần tử thông tin tổng quan tả chi tiết luồng Phần thông tin tổng quan bao gồm: tên ca sử dụng (use case name), tả tóm lược (brief description) tả tóm lược ca sử dụng, tác nhân (actors) tả tác nhân thực ca sử dụng, tiền điều kiện (pre-condition) hậu điều kiện (postcondition) tả tiền hậu điều kiện ca sử dụng, kích hoạt (trigger) tả kiện kích hoạt ca sử dụng, yêu cầu đặc biệt (special requirement) tả yêu cầu phi chức ca sử dụng Phần thứ hai ca sử dụng thơng tin tả hai loại luồng: luồng (basic flow) luồng thay (alternative flows) Nội dung luồng tả bước thực ca sử dụng điều kiện thông thường ca sử dụng thực Một ca sử dụng có luồng Các luồng thay tả hành vi tùy chọn ngoại lệ hành vi thơng thường khác Luồng luồng thay thường cấu trúc bước (steps) luồng (subflows) Tuy nhiên, làm mịn luồng để chứa luồng số luồng thay Mỗi bước ca sử dụng tả nhiều hành động thực hệ thống tác nhân Mỗi bước luồng chứa hành động thực hệ thống tác nhân Các hành động tả bước chia thành chín loại hành động sau: Actor-Input hành động tác nhân để gửi liệu tới hệ thống miền công việc đặc tả ca sử dụng Bảng 3.1: tả ca sử dụng Lend book Use case name: Lend Book Brief description: The Librarian processes a book loan Actors: Librarian Precondition: The librarian has logged into the system successful Postcondition: If the use case successfully ends, the book loan is saved and a complete message is shown In the other case, the system displays an error message Trigger: The Librarian requests a book-loan process Special requirement: There is no special requirement Basic flow The Librarian selects the Lend Book function The system shows the Lend-book window, gets the current date and assigns it to the book-loan date The Librarian enters a book copy id The system checks the book copy id If it is invalid, it goes to step 4a.1 The Librarian enters a borrower id The system validates the borrower id If it is invalid, it goes to step 6a.1 The Librarian clicks the save-book-loan button The system validates the conditions to lend book If it is invalid, the system goes to step 8a.1 The system saves the book loan record, then executing two steps 10 and 11 concurrently 10 The system shows a complete message 11 The system prints the borrowing bill Alternate flows E1 request searched book The Librarian selects the search function after step 4a.1 The system executes the extending use case Search book 4a The book copy id is invalid The system shows an error message, then going to step 6a The Borrower id is invalid The system shows an error message, then going to step 8a The lending condition is invalid The system shows an error message The system ends the use case Actor-Request hành động tác nhân gửi yêu cầu tới hệ thống System-Display hành động hệ thống mà hệ thống thực hoạt động với giao diện người dùng System-Operation hành động hệ thống để thẩm định yêu cầu liệu, xử lý tính tốn liệu System-State hành động hệ thống để truy vấn cập nhật trạng thái bên hệ thống System-Output hành động hệ thống để gửi đầu cho tác nhân System-Request hành động hệ thống để gửi yêu cầu tới tác nhân phụ (secondary actor) System-Include hành động hệ thống để gọi ca sử dụng khác có quan hệ «include» với ca sử dụng System-Extend hành động hệ thống để gọi ca sử dụng khác có quan hệ «extend» với ca sử dụng 3.3 3.3.1 Cú pháp USL Cú pháp trừu tượng USL Hình 3.1 thể siêu hình USL Để ngắn gọn, luận án chia siêu hình vào bốn khối (a), (b), (c), (d) đánh nhãn số thứ tự khái niệm để chia khối Hình 3.1-a có nghĩa khối (a)) trình bày khái niệm mức Hình 3.1-b Khi đó: defGuard(a) định nghĩa sau:  preC(D), if a ∈ NI      guardE(e)(e ∈ D.E , target(e) = a), if a ∈ AcNode \ Nj      (e∈D.E ,target(e)=a) isCompleted(e)∧guardE(e), if a ∈ Nj = preC(DI )∧preA(a)∧guardE(e)(e ∈ D.E , target(e) = a), if a ∈ Actsi    preC(DX )∧preA(a)∧guardE(e)(e ∈ D.E , target(e) = a), if a ∈ Actse    preA(a)∧guardE(e)(s ∈ Af , target(e) = s), if ((a ∈ Aact )∧ (a = firstAct(s))   preA(a)(s ∈ Af , a ∈ actions(s)), if otherwise Định nghĩa 3.3 (Các hàm LTS) Cho LTS L hình USL D, g|a|r trạng thái thời L α, chuyển t = α −→ α ∈ L.T Luận án định nghĩa thuật ngữ sau: - preT(t) = α, postT(t) = α , guard(t) = g, postC(t) = r , act(t) = a - eval(g) giá trị ràng buộc g - reachable(α) = {t | preT(t) = α} tập chuyển mà α Bảng 3.2: Danh sách hàm định nghĩa D Hàm firstAct(c) = c Điều kiện c ∈ AcNode lastAct(c) = c c ∈ AcNode source(e) = ns tả Trả hành động chứa ControlNode Trả hành động cuối chứa ControlNode Trả USLNode nguồn FlowEdge Trả USLNode đích FlowEdge Trả điều kiện gác FlowEdge Trả điều kiện gác cạnh có nút nguồn nút đích truyền vào Trả tiền điều kiện hành động Trả hậu điều kiện hành động Trả tiền điều kiện ControlNode InitialNode Trả hậu điều kiện ControlNode FinalNode Trả hậu điều kiện ControlNode FinalNode Trả hậu điều kiện FinalNode Trả tiền điều kiện hình USL e ∈ E , ns ∈ A, nt ∈ A, g ∈ G, (ns , g, e, nt ) ∈ Fe target(e) = nt guardE(e) = g guardE(ns , nt ) = g a ∈ Actions(D), (pe , a, po ) ∈ Fc preA(a) = pe postA(a) = po preA(c) = True c ∈ (AcNode \ NI ) postA(c) = True c ∈ (AcNode \ Nf ) postA(c) = True c ∈ (AcNode \ Nf ) postC(c) = pu c ∈ Nf , (c, pu ) ∈ Ff preC(D) = cpreUC isCompleted(e) True = isCompleted(e) False = e ∈ E, lastAct(target(e)) hoàn thành thực thi e ∈ E, lastAct(target(e)) chưa hoàn thành thực thi 11 Trả trạng thái hoàn thành cạnh - firable(α) = {t ∈ reachable(α), eval(guard(t)) = true} tập chuyển mà kích hoạt (fired) từ α Định nghĩa 3.4 (Chuyển đồng thời) Cho LTS L hình USL D trạng thái α Một chuyển trạng thái đồng thời τ ∈ L.T tập chuyển t1 , t2 , , tn ∈ firable(α) Định nghĩa 3.5 (Thực thi kịch ca sử dụng) Cho kịch ca sử dụng hình USL D bao gồm chuỗi hành động (a0 , , an−1 ) Sự thực thi t t tn−1 kịch đường LTS L D: p = α0 → α1 → → αn , gi |ai |ri ti = αi −→ αi+1 (∀ i = 0, , n−1), α0 = L.αinit , αn ∈ L.F, ti ∈ L.T 3.5 Chuyển đổi hình USL USL xây dựng để đặc tả xác thành phần thơng tin tả hành vi cấu trúc ca sử dụng với mục đích tích hợp ca sử dụng vào phương pháp phát triển hướng hình Vì vậy, hình ca sử dụng USL sử dụng đầu vào cho chuyển đổi hình để chuyển sang hình cấu trúc biểu đồ lớp UML, hình hành vi biểu đồ hoạt động biểu đồ UML, ca kiểm thử chức mức hệ thống, tài liệu tả ca sử dụng ngôn ngữ tự nhiên theo mẫu Để minh họa cho khả sinh tự động sang hình tài liệu khác từ hình USL, luận án xây dựng chuyển USL2TUCD ngơn ngữ chuyển hình M2T Acceleo để chuyển tự động hình USL sang tả ca sử dụng dạng ngôn ngữ tự nhiên dựa theo mẫu (Template Use Case Description - TUCD) 3.6 Kết chương Trong chương này, luận án đề xuất ngôn ngữ hình hóa chun biệt miền tên USL để đặc tả xác ca sử dụng hình Để đạt mục tiêu này, luận án nghiên cứu miền đặc tả ca sử dụng mục đích sử dụng quy trình phát triển phần mềm Kế tiếp, luận án phát triển cú pháp trừu tượng cú pháp cụ thể cho ngôn ngữ, định nghĩa tập luật hợp lệ cho ngơn ngữ Ngồi ra, ngữ nghĩa thực thi cho hình USL định nghĩa cách ánh xạ sang hệ thống chuyển trạng thái gán nhãn Tiếp theo, để đánh giá khả tích hợp ngơn ngữ USL vào phương pháp phát triển phần mềm hướng hình, luận án thảo luận chuyển hình áp dụng để sinh tự động chế tác phần mềm khác từ hình USL Cuối cùng, luận án đánh giá khả diễn tả ngôn ngữ USL với ngôn ngữ khác tồn Kết nghiên cứu công bố kỷ yếu Hội nghị quốc tế lần thứ Information and Communication Technology 2017 (SoICT) (cơng trình khoa học số (4)), tạp chí International Journal of Computing and Informatics 2018 (Informatica) (cơng trình khoa học số (2)), kỷ yếu hội nghị nước lần thứ Fundamental and Applied Information Technology Research (Fair) (cơng trình khoa học số (5)) 12 Chương Phương pháp sinh tự động ca kiểm thử từ hình ca sử dụng Trong chương này, luận án đề xuất phương pháp sinh tự động ca kiểm thử chức từ hình ca sử dụng, phương pháp có tên USLTG Đầu tiên, luận án đề xuất xây dựng ngôn ngữ đặc tả ca kiểm chức tên TCSL Sau đó, phương pháp USLTG đọc hình USL đặc tả ca sử dụng để sinh tự động ca kiểm thử đặc tả hình TCSL Cụ thể, luận án xây dựng ba thuật tốn để sinh kịch kiểm thử, liệu kiểm thử, chuyển ca kiểm thử vào hình TCSL 4.1 Giới thiệu Trong kiểm thử chức năng, thiết kế ca kiểm thử thường thực thủ công, dựa vào tài liệu đặc tả yêu cầu phần mềm Tuy nhiên, yêu cầu phần mềm thường hay thay đổi suốt quy trình phát triển phần mềm Do đó, ca kiểm thử liên quan phải xây dựng lại thực thi lại Vì vậy, nỗ lực yêu cầu để xác định, bảo trì, thực thi ca kiểm thử cho ca sử dụng lớn Việc đề xuất phát triển kỹ thuật kiểm thử tự động trở nên cấp thiết Giải pháp sinh thực thi ca kiểm thử chức từ ca sử dụng tự động giúp tiết kiệm nhiều thời gian nỗ lực giảm số lượng lỗi sai sót hoạt động kiểm thử phần mềm Vì vậy, chương luận án tập trung vào nghiên cứu đề xuất ngôn ngữ đặc tả ca kiểm thử chức xây dựng quy trình để sinh tự động ca kiểm thử chức từ hình ca sử dụng 4.2 Tổng quan kỹ thuật đề xuất Hình 4.1 biểu diễn bước cách tiếp cận USLTG luận án USLTG mục đích để sinh tự động ca kiểm thử từ ca sử dụng 4.3 4.3.1 Ngôn ngữ đặc tả ca kiểm thử TCSL Xác định miền cho ngữ cảnh đặc tả ca kiểm thử chức Theo Raghavendra để ca kiểm thử sinh tự động tập lệnh thực thi kiểm thử công cụ thực thi kiểm thử tự động, ca kiểm thử phải gồm bốn phần thông tin khác là: bước kiểm thử (step), đối tượng kiểm thử bước kiểm thử (test object), hành động bên đối tượng kiểm thử (test action), liệu kiểm thử (test data) 13 Hình 4.1: Tổng quan cách tiếp cận USLTG Bảng 4.1: Hai ca kiểm thử ca sử dụng Lend book STT 4.3.2 Bước Librarian selects the Lend-book function Librarian enters a book copy id Librarian enters a borrower id Librarian enters a borrower id Librarian clicks the save-book-loan button The system save the book loan record the system shows a complete message the system prints the borrowing bill Đối tượng Hành động lendbookF select bcid bid bid enter enter enter SaveBLoan click BookLoan verify message verify bBill verify Dữ liệu Dữ liệu “bc 01” “” “b 02” “bc 03” “b 03” “b 02” a Book loan is recorded “Book loan save complete” “Book loan receipt is printed” Định nghĩa siêu hình TCSL Luận án đề xuất ngôn ngữ TCSL (Test Case Specification Language) để đặc tả ca kiểm thử chức mức Một hình TCSL với mục đích để nắm bắt thơng tin ca kiểm thử hệ thống Một hệ thống bao gồm tập ca sử dụng Mỗi ca sử dụng bao gồm nhiều snapshot mà nắm bắt trạng thái bên hệ thống trước thực ca sử dụng tập ca kiểm thử mà tạo từ kịch kiểm thử kết hợp với liệu kiểm thử Cụ thể, liệu kiểm thử ca sử dụng xác định dựa vào trạng thái bên hệ thống Những trạng thái thể khái niệm miền hệ thống mà liên quan tới ca sử dụng Hình 4.2 hiển thị siêu hình ngơn ngữ TCSL mà định nghĩa dự án EMF Eclipse Luận án định nghĩa luật hợp lệ siêu hình TCSL để thẩm định hình TCSL chúng tạo Luật 1: Một TestScenario có hai Step Luật 2: Tất Step TestScenario có số DataCase 14 Hình 4.2: Siêu hình TCSL Luật 3: Nếu hành động mà thực hai TestStep hai CheckPoint khác kịch kiểm thử TestScenario, DataTupe DataCase hai Steps phải có thuộc tính Luật 4: Tất DataCase Step TestScenario sinh từ SnapShot 4.4 4.4.1 Chuyển đổi hình từ USL sang TCSL Xác định tiêu chí phủ USL định nghĩa khái niệm dựa cấu trúc biều đồ hoạt động để đặc tả luồng điều khiển qua bước tả luồng kiện ca sử dụng Vì vậy, Luận án sử dụng tiêu chí phủ đường hoạt động đề xuất Kundu cộng để sinh ca kiểm thử từ hình USL Cụ thể, đường USL đường từ nút bắt đầu InitialNode tới nút kết thúc FinalNode hình USL Đường tương ứng với đường hoạt động đồ thị hoạt động Định nghĩa 4.1 (Ca kiểm thử USL) Một kịch ca sử dụng hình USL D mà gồm chuỗi hành động (a1 , , an ) Với tập liệu đầu vào cụ thể thỏa mãn tập tiền điều kiện thực hành động kịch bản, thực thi kiểm thử ứng với đường hệ thống chuyển trạng thái gán nhãn t t gi |ai |ri t n LTS L D : p = α0 → α1 → → αn , Khi ti = αi−1 −→ αi (∀ i = 1, , n), α0 = L.αinit , αn ∈ L.F, ti ∈ L.T Kết ca kiểm thử "Pass" tập tất hậu điều kiện hành động thỏa mãn tất chuyển, ngược lại kết "Fail" Định nghĩa 4.2 (Tiêu chí phủ đường USL) Cho Pu tập đường USL ca sử dụng u từ hình USL, T tập ca kiểm thử, T gọi thỏa mãn tiêu chí phủ đường USL vào ∀ pi ∈ Pu , ∃ t ∈ T cho kịch tương ứng với t thực theo đường USL pi 4.4.2 Sinh kịch ca sử dụng ràng buộc USLTG mục đích để sinh kịch kiểm thử mà thỏa mãn tiêu chí đầy đủ phủ kiểm thử Đầu tiên, USLTG sinh tất đường USL theo tiêu chí phủ đường USL từ nút bắt đầu InitialNode tới nút kết thúc FinalNode hình USL Chú ý với đường sinh, điều kiện gác cạnh FlowEdge kết hợp với tiền điều kiện hành động chuyển thành tiền điều kiện 15 hành động Mỗi đường xem kịch ca sử dụng Sau đó, kịch ca sử dụng thăm lại để sinh kịch kiểm thử Thuật toán 4.1 GenScenarios 34 GenScenarios(D) Input: D is a USL model Output: paths is a set of constrained use case scenarios returning from D BEGIN pt ← ∅; sc ← ∅; x ← the InitialNode of D; GenerateScenarios(pt,sc,x); END Procedure GenerateScenarios (pt,sc,x) prex = the last node in pt; push(pt,x) if x is FinalNode then sc ← sc ∪ x; paths ← paths ∪ sc; exit end if x is DecisionNode then if ∀ e ∈ outGoing(x) was visited then bf ← the BasicFlowEdge in outGoing(x) if ∃ bf then GenerateScenarios(pt, sc, targetNode(bf)); else exit ; else foreach t in outGoing(x) that was not visited ptn ← copy objects from pt; scn ← copy objects from sc GenerateScenarios(ptn, scn, targetNode(e)) end end else if x is ForkNode then sc ← sc ∪ x; jn ← null; allsubSteps ← ∅; allsubpaths ← ∅ foreach t in outGoing(x) subSteps ← null; subPaths ← null; //subSteps, a set of USLNode sequences, //subpaths, a set of Action sequences and jn, a JoinNode VisitSubpath(allsubSteps, allsubPaths, subSteps, subPaths, targetNode(e), jn) end //maxLength(allsubSteps) returns the max size of subpaths in allsubSteps for i=0; i

Ngày đăng: 14/03/2019, 14:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN