Đặt vấn đề - Chương 2: Giới thiệu tổng quan vềmô hình thực thi được, tổng quan về kiểm thử dựa trên mô hình, một số phương pháp kiểm thử dựa trên mô hình. Tập trung nghiên cứu tìm hiểu về mô hình hóa quy trình nghiệp vụ và nghiên cứu cách thức sử dụng ký pháp của BPMN 2. Giới thiệu một số công cụ thiết kế và thực thi mô hình BPMN. - Chương 3: Phát biểu bài toán, đề xuất phương pháp sinh tự động ca kiểm thử từ mô hình BPMN.
- Chương 4: Mô tả cài đặt và kết quả thực nghiệm triển khai phương pháp đã đề xuất. - Chương 5: Trình bày tóm tắt kết quả đã đạt được, kết luận, những hạn chế và hướng nghiên cứu phát triển trong tương lai. 2 TIEU LUAN MOI download : skknchat@gmail.com CHƢƠNG2: TỔNG QUAN VỀ MÔ HÌNH HÓA QUY TRÌNH NGHIỆP VỤ VÀ KIỂM THỬ DỰA TRÊN MÔ HÌNH Chương 2 giới thiệu cơ sở lý thuyết cho luận văn bao gồm: tổng quan về mô hình thực thi được, kiểm thử dựa trên mô hình, giới thiệu một số phương pháp kiểm thử dựa trên mô hình. Tập trung tìm hiểu một mô hình thực thi được – mô hình hóa quy trình nghiệp vụ BPMN, các ràng buộc thiết kế và công cụ quản lý quy trình nghiệp vụ nhằm vận dụng, xây dựng ứng dụng thực nghiệm phục vụ cho kết quả chính của luận văn.1 Giới thiệu Phương pháp tiếp cận hướng mô hình hóa trong công nghiệp phần mềm có vai trò vô cùng quan trọng không chỉ cho quá trình phát triển phần mềm mà cho cả quá trình kiểm thử phần mềm nhằm tăng tính hiệu quả, đảm bảo chất lượng sản phẩm và tối ưu chi phí.
Do đó, các phương pháp sinh ca kiểm thử từ mô hình đã được đề cập trong nhiều nghiên cứu. Tuy nhiên, nghiên cứu sinh ca kiểm thử từ mô hình luồng quy trình nghiệp vụ BPMN chưa được đề cập nhiều. Trong khi BPMN là một mô hình cần thiết trong quá trình phát triển phần mềm để cung cấp cái nhìn tổng quan các nghiệp vụ hệ thống không chỉ cho nhà phát triển sản phẩm mà còn trực quan, dễ hiểu cho khách hàng và các bên liên quan. Nội dung các phần tiếp theo trong chương sẽ nêu kiến thức tổng quan về kiểm thử dựa trên mô hình, giới thiệu một số phương pháp kiểm thử mô hình, tổng quan về mô hình hóa quy trình nghiệp vụ (BPMN).2 Tổng quan về mô hình thực thi đƣợc 2.1 Khái niệm mô hình (Model) Mô hình là một biểu diễn trừu tượng của cấu trúc, tính năng và hành vi của hệ thống.
Mô hình có thể được biểu diễn bằng các ký hiệu đồ họa và diễn tả bằng ngôn ngữ đặc tả miền cụ thể dưới dạng ngôn ngữ hình thức. Dưới đây là hai định nghĩa về “mô hình” cơ bản của từ điển American Heritage: - Mô hình là một đối tượng nhỏđược xây dựng để quy mô, mô phỏng chi tiết một đối tượng khác thường là đối tượng lớn hơn [3]. - Mô hình là một sự biểu đồ hóa mô tả chi tiết hệ thống, đồng thời mô tả chi tiết các khía cạnh, các đặc tính của hệ thống [3]. Định nghĩa này thể hiện hai đặc điểm quan trọng của mô hình: Các mô hình phải nhỏ so với kích thước của hệ thống, rằng chúng ta có thể kiểm thử nó mà không mất quá nhiều chi phí, nhưng chúng phải đủ chi tiết để mô tả thực tế và các đặc điểm cần kiểm thử.
3 TIEU LUAN MOI download : skknchat@gmail.com Theo AnnneKe, mô hình được định nghĩa:"Một mô hình là một mô tả (hoặc một phần) của một hệ thống được viết bởi một ngôn ngữ hình thức" [4]. "Ngôn ngữ hình thức là ngôn ngữ với mẫu được xác định rõ ràng và ngữ nghĩa phù hợp với việc biên dịch tự động bởi máy tính" [4].1: Hình mô tả sự biểu diễn của mô hình.2 Khái niệm siêu mô hình (Meta- model) Meta-model là một mô hình ở mức trừu tượng hơn và sử dụng để biểu diễn mô hình.Meta-model được viết bởi ngôn ngữ gọi là meta-language. Meta- model được biểu diễn như hình sau [4]: Hình 2.2: Siêu mô hình (Meta-model) 4 TIEU LUAN MOI download : skknchat@gmail.3 Khái niệm mô hình thực thi đƣợc (executable model) Với xu thế áp dụng kỹ thuật ứng dụng hướng mô hình(MDE), phát triển phần mềm tập trung vào mô hình hóa các thành phần của hệ thống phần mềm dựa trên ngôn ngữ mô hình hóa. Ngôn ngữ mô hình hóa cho phép xác định cấu trúc và hành vi của hệ thống phần mềm một cách chính thức và ở mức trừu tượng cao gần với không gian vấn đề hơn là mức ngôn ngữ lập trình.
Ngôn ngữ mô hình thực thi không chỉ cho phép đặc tả các khía cạnh tĩnh của hệ thống mà còn đặc tả các khía cạnh động, tức là hành vi của hệ thống phần mềm thông qua các mô hình thực thi được. Do đó, “một mô hình có thể thực thi được nếu từ đó có thể viết được một chương trình thực thi hoặc chạy mô hình” [13,14]. Theo quan điểm trên Jordi Cabot cũng đã xác định: “một mô hình thực thi được là một một mô hình đủ để thực thi”[3]. Theo đó, một mô hình thực thi được khi ngữ nghĩa, hoạt động được xác định định nghĩa đầy đủ.
Trong thực tế, khả năng thực thi của mô hình phụ thuộc nhiều vào công cụ thực hiện hơn là bản thân của mô hình (ví dụ một công cụ có thể yêu cầu tính đầy đủ và chi tiết của mô hình hơn trong khi một số công cụ khác có khả năng “lấp đầy khoảng trống” – nghĩa là tự bổ sung những thành phần còn thiếu của mô hình dựa trên các định nghĩa có sẵn của công cụ để thực thi mô hình không đầy đủ đó). Một trong những mô hình thực thi được nổi tiếng nhất là UML được mô tả cụ tả cụ thể trong cuốn sách “Executable UML: A Foundation for Model-Driven Architecture” xuất bản lần đầu tiên vào năm 2002. Dựa trên các định nghĩa được xác định ở đây, bản thân tổ chức OMG đang trong quá trình chuẩn hóa các khái niệm dựa trên mô hình thực thi UML. Tuy nhiên, phiên bản hiện tại của tiêu chuẩn này cũng chưa nêu định nghĩamô hình thực thi được.
Cũng theo Jordi Cabot, việc sinh mã code từ mô hình và giải thích mô hình là hai chiến lược thay thế khác nhau để “implement”- thực hiện những công cụ thực thi: Hình 2.3: Mối quan hệ giữa mô hình thực thi với sinh mã code và giải thích mô hình [12]. 5 TIEU LUAN MOI download : skknchat@gmail.com Chiến lược sinh mã code liên quan đến việc sử dụng trình biên dịch mô hình (M2T- Model to Text) để tạo ra mô hình đại diện cấp thấp hơn của mô hình sử dụng các ngôn ngữ và nền tảng lập trình .Thay vào đó, chiến lược diễn giải mô hình dựa trên sự dễ dàng đọc và chạy mô hình. Trong luận văn này tôi đề cập đến mô hình thực thi được BPMN xuyên suốt tài liệu và từ đó đề xuất phương pháp sinh ca kiểm thử từ BPMN. Đây là mô hình quy trình luồng nghiệp vụ hệ thống với tập các ký pháp hỗ trợ mô tả hành vi của hệ thống.
Theo Maccello La Rosa & Marlon Dumas vòng đời quản lý quy trình nghiệp vụ (BPM- Business process model) mô tả như hình sau: Hình 2.4: Hình mô tả vòng đời quản lý quy trình nghiệp vụ [13]. BPMN là một mô hình mô tả cụ thể hành vi của người dùng và hệ thống đủ chi tiết để có thể thực thi được. Từ BPMN có thể sinh mã chương trình (M2T) thông qua sự hỗ trợ của ngôn ngữ thực thi được BPEL – Business process execution language và sinh các ca kiểm thử cũng như kịch bản kiểm thử tích hợp chức năng, kiểm thử hệ thống. Một thể hiện cụ thể hơn cho việc BPMN là mô hình đủ chi tiết để thực thi được là BPMN có thể thực thi trực tiếp trên công cụ quản lý quy trình nghiệp vụ (BPM).
Điều này có nghĩa là, khi có một mô hình BPMN được import vào công cụ BPM, ta có thể thực hiện được luồng nghiệp vụ trên công cụ. Trực quan hóa việc thực thi BPMN trên công cụ Activiti sẽ được trình bày chi tiết trong chương III và chương IV. 6 TIEU LUAN MOI download : skknchat@gmail.3 Tổng quan về kiểm thử dựa trên mô hình 2.1 Phƣơng pháp tiếp cận kiểm thử dựa trên mô hình Có bốn phương pháp chính tiếp cận với kiểm thử dựa trên mô hình như sau: - Sinh ra dữ liệu đầu vào kiểm thử từ một mô hình chính: đầu vào cơ bản của kiểm thử dựa trên mô hình là các mô hình, từ đó tạo ra các ca kiểm thử bằng cách chọn lựa thông minh một tập hợp con của tập giá trị các trường hợp có khả năng để đưa ra dữ liệu đầu vào kiểm thử. - Sinh ra các ca kiểm thử từ một mô hình môi trường: phương pháp này sử dụng một loại mô hình khác, mô hình này sẽ miêu tả môi trường mong muốn của SUT- Software under test.
Từ mô hình mô phỏng giả lập này đưa ra các tham số gọi tới SUT. Tuy nhiên, mô hình môi trường không mô hình hóa được toàn bộ hành vi của SUT. Vì vậy nó rất khó để xác định chính xác một kiểm thử là thành công hay thất bại. - Sinh ra các ca kiểm thử với các dự đoán từ một mô hình hành vi: đưa ra các ca kiểm thử có khả năng thực thi bao gồm các thông tin dự đoán các giá trị đầu ra mong muốn của SUT.
Hoặc một vài khâu kiểm tra tự động các giá trị đầu ra thực tế để có thể nhìn thấy nếu chúng là đúng đắn. Điều này khó hơn việc sinh ra dữ liệu kiểm thử đầu vào hoặc kiểm thử dựa trên trình tự gọi tới SUT mà không kiểm tra tới kết quả đầu ra. Để đưa ra kiểm thử với các dự đoán thì người đưa ra các ca kiểm thử phải có đầy đủ thông tin về các hành vi mong đợi của SUT để có thể tiên đoán hoặc kiểm tra các dữ liệu đầu ra của SUT. Một cách khác, với định nghĩa kiểm thử dựa trên mô hình này, mô hình phải mô tả các hành vi mong đợi của SUT, cũng như mối quan hệ giữa chúng, đồng thời mô tả đầu vào và đầu ra cho từng hành vi.
Thuận lợi của cách tiếp cận này là nó là phương pháp tiếp cận duy nhất giải quyết được vấn đề kiểm thử dựa trên mô hình bằng việc chọn lựa các giá trị đầu vào và việc đưa ra các trình tự của sự vận hành, việc đưa ra các ca kiểm thử có khả năng thực thi bao gồm thông tin quyết định sau mỗi ca kiểm thử.