Tổng quan nghiên cứu
Trong kỹ nghệ phần mềm hiện đại, hoạt động kiểm thử thường chiếm từ 40% đến 50% tổng chi phí và thời gian của toàn bộ vòng đời phát triển dự án. Phương pháp kiểm thử truyền thống chủ yếu dựa vào việc tạo ca kiểm thử thủ công từ tài liệu đặc tả yêu cầu, dẫn đến nhiều hạn chế như tốn kém nhân lực, dễ sai sót chủ quan và độ bao phủ không đồng đều. Nhằm giải quyết triệt để vấn đề này, đề tài nghiên cứu tập trung vào hướng tiếp cận kiểm thử dựa trên mô hình (Model-Based Testing - MBT), cụ thể là tự động hóa quá trình sinh ca kiểm thử từ mô hình luồng quy trình nghiệp vụ BPMN (Business Process Model and Notation).
Mục tiêu cốt lõi của nghiên cứu là xây dựng thuật toán và cài đặt công cụ hỗ trợ chuyển đổi tệp mô hình BPMN dưới dạng XML thành đồ thị dòng điều khiển (Control Flow Graph - CFG), từ đó tự động dò tìm và sinh ra tập hợp các ca kiểm thử tối ưu. Đề tài được thực hiện bởi học viên Dương Thị Thanh Huyền dưới sự hướng dẫn khoa học của TS. Đặng Đức Hạnh tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội vào năm 2017, thuộc chuyên ngành Kỹ thuật phần mềm (Mã số: 60480103). Nghiên cứu mang ý nghĩa thực tiễn to lớn khi giúp các doanh nghiệp phần mềm giảm khoảng 45% thời gian thiết kế kịch bản thử nghiệm, nâng cao độ tin cậy và đạt tỷ lệ bao phủ kiểm thử nhánh lên tới 100% trên các luồng nghiệp vụ thực thi được.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khung lý thuyết áp dụng
Nghiên cứu được xây dựng dựa trên nền tảng kỹ thuật công nghệ phần mềm hướng mô hình (Model-Driven Engineering - MDE) và lý thuyết kiểm thử dựa trên mô hình (MBT). Hệ thống lý thuyết tập trung vào các khái niệm trọng tâm:
- Mô hình thực thi được (Executable Model): Mô hình trừu tượng mô tả đầy đủ cấu trúc tĩnh và hành vi động của hệ thống, cho phép phần mềm thực thi trực tiếp hoặc biên dịch tự động thành mã nguồn (Model-to-Text).
- Chuẩn mô hình hóa quy trình nghiệp vụ BPMN 2.0: Chuẩn quốc tế do tổ chức OMG (Object Management Group) ban hành và hoàn thiện vào tháng 12 năm 2013. Mô hình gồm 5 nhóm phần tử cơ bản:
- Flow Objects: Gồm 3 nhóm chính là Sự kiện (Start, Intermediate, End Event), Hoạt động (Task, Sub-process, Transaction, Call Activity) và Cổng điều hướng (Exclusive, Parallel, Inclusive, Complex Gateway).
- Data Objects: Gồm 4 thành phần biểu diễn dữ liệu là Data Object, Data Input, Data Output và Data Store.
- Connection Objects: Gồm 4 dạng liên kết là Sequence Flow, Message Flow, Association và Data Association.
- Swimlanes (Pool, Lane) và Artifacts (Group, Text Annotation).
- Đồ thị dòng điều khiển (CFG): Mô hình toán học biểu diễn các đường thực thi từ nút bắt đầu đến nút kết thúc phục vụ sinh ca kiểm thử.
Phương pháp nghiên cứu
Nghiên cứu sử dụng phương pháp thực nghiệm kết hợp mô hình hóa hình thức với quy trình triển khai chặt chẽ:
- Cỡ mẫu và nguồn dữ liệu: Khảo sát và phân tích trên 3 mô hình quy trình nghiệp vụ thực tế có cấu trúc phức tạp từ đơn giản đến đa nhánh, bao gồm quy trình phê duyệt nghỉ phép, quy trình chia sẻ dữ liệu nội bộ và quy trình tuyển dụng ứng viên (Apply for job).
- Phương pháp chọn mẫu: Lựa chọn mẫu có chủ đích (purposive sampling), tập trung vào các quy trình chứa đầy đủ các cổng rẽ nhánh logic Exclusive Gateway, luồng song song Parallel Gateway và luồng trao đổi thông điệp Message Flow để kiểm chứng toàn diện thuật toán.
- Phương pháp phân tích: Chuyển đổi tệp cấu trúc XML của BPMN 2.0 sang đồ thị CFG bằng cách bóc tách 100% các thẻ phần tử thông điệp, toán tử điều kiện và ràng buộc logic. Thuật toán duyệt đồ thị theo chiều sâu và chiều rộng được áp dụng để trích xuất toàn bộ các đường dẫn kiểm thử (test paths). Lý do lựa chọn phương pháp này là nhằm đảm bảo tính tự động hóa triệt để, tái tạo chính xác ngữ nghĩa quy trình mà không phụ thuộc vào mã nguồn cài đặt. Toàn bộ quá trình nghiên cứu và thử nghiệm được triển khai trong thời gian 12 tháng tại phòng thí nghiệm công nghệ phần mềm.
Kết quả nghiên cứu và thảo luận
Những phát hiện chính
Nghiên cứu đã đạt được các kết quả thực nghiệm nổi bật thông qua việc cài đặt công cụ tự động hóa:
- Tự động bóc tách và chuyển đổi dữ liệu XML: Công cụ xây dựng đã phân tích cú pháp chính xác 100% các tệp XML xuất ra từ các công cụ thiết kế quy trình chuẩn như Bizagi Modeler và Activiti Designer, chuyển đổi thành công sang cấu trúc đồ thị CFG tương ứng.
- Sinh kịch bản kiểm thử toàn diện cho các ca điển hình:
- Đối với bài toán chia sẻ dữ liệu (Share data), hệ thống tự động sinh ra 3 kịch bản kiểm thử hoàn chỉnh, bao phủ từ trường hợp từ chối quyền truy cập (Access Denied) đến xử lý cấp quyền thành công.
- Đối với bài toán quy trình tuyển dụng nhân sự (Apply for job), công cụ đã tự động phân tích và sinh ra 5 kịch bản kiểm thử độc lập, mô phỏng chính xác các trường hợp từ nộp hồ sơ, đánh giá phỏng vấn, chấp nhận đề nghị (Accept offer), từ chối đề nghị, cho đến quy trình thương lượng lại hợp đồng (Discuss offer again).
- Tối ưu hóa hiệu suất và độ bao phủ: Phương pháp sinh tự động giúp đạt độ bao phủ nhánh và bao phủ điều kiện 100% trên các mô hình khảo nghiệm, giúp giảm khoảng 45% thời gian thiết kế ca kiểm thử so với phương pháp thủ công.
Thảo luận kết quả
Cơ chế hoạt động của công cụ cho thấy việc sinh ca kiểm thử trực tiếp từ tệp XML của BPMN giúp phát hiện sớm các sai sót logic ngay từ giai đoạn thiết kế mô hình quy trình trước khi lập trình viên bắt tay vào viết mã nguồn.
Trong thực tế triển khai, toàn bộ dữ liệu kiểm thử và luồng thực thi có thể được biểu diễn trực quan qua biểu đồ dòng điều khiển (CFG) đối chiếu song song với bảng ma trận ca kiểm thử (Test Matrix). Sự kết hợp giữa biểu đồ đường đi và bảng mô tả dữ liệu đầu vào/đầu ra giúp kiểm thử viên nắm bắt trọn vẹn trạng thái hệ thống tại từng cổng rẽ nhánh.
So sánh với các phương pháp sinh ca kiểm thử từ biểu đồ tuần tự UML (Sequence Diagram) hay ngôn ngữ ràng buộc OCL (Object Constraint Language), hướng tiếp cận dựa trên BPMN XML thể hiện ưu thế vượt trội về tính trực quan và khả năng biểu diễn luồng nghiệp vụ doanh nghiệp. Theo các nghiên cứu liên quan, mô hình BPMN giúp giảm khoảng 30% độ phức tạp khi mô tả các tương tác đa tác nhân so với UML, đồng thời cho phép tích hợp trực tiếp lên các nền tảng thực thi quy trình nghiệp vụ như BPEL hay Activiti Engine để tiến hành kiểm thử tích hợp hệ thống một cách đồng bộ.
Đề xuất và khuyến nghị
Dựa trên kết quả nghiên cứu, 4 khuyến nghị và giải pháp hành động cụ thể được đề xuất nhằm nâng cao hiệu quả ứng dụng kiểm thử tự động trong doanh nghiệp phần mềm:
- Chuẩn hóa quy trình mô hình hóa nghiệp vụ: Doanh nghiệp cần áp dụng thống nhất chuẩn ký pháp BPMN 2.0 do tổ chức OMG ban hành cho 100% tài liệu phân tích thiết kế hệ thống. Chủ thể thực hiện là đội ngũ chuyên viên phân tích nghiệp vụ (BA) và kiến trúc sư phần mềm, với mục tiêu hoàn thiện chuẩn mô hình hóa trong vòng 3 tháng đầu triển khai dự án nhằm đảm bảo tệp XML đầu ra đạt độ chính xác trên 98%.
- Tích hợp công cụ sinh ca kiểm thử vào quy trình CI/CD: Nhóm kỹ sư kiểm thử tự động (Automation Test) cần xây dựng các module kết nối công cụ sinh test case từ BPMN XML trực tiếp vào đường ống tích hợp liên tục (CI/CD Pipeline). Mục tiêu là giảm 40% lỗi hồi quy trong giai đoạn kiểm thử tích hợp, lộ trình hoàn thành trong thời hạn 6 tháng.
- Tổ chức đào tạo chuyên sâu về kiểm thử dựa trên mô hình: Các công ty công nghệ cần triển khai các khóa đào tạo nâng cao kỹ năng xây dựng mô hình thực thi được và phân tích đồ thị dòng điều khiển cho 100% nhân sự kiểm thử và phát triển phần mềm, thực hiện định kỳ trong 2 quý liên tiếp.
- Mở rộng thuật toán xử lý các luồng quy trình phức tạp: Nhóm nghiên cứu và phát triển (R&D) cần tiếp tục nâng cấp thuật toán chuyển đổi CFG để xử lý tốt các mô hình có vòng lặp vô hạn, xử lý ngoại lệ phức tạp (Exception Flow) và các giao dịch song song phân tán, hướng tới mục tiêu nâng tỷ lệ bao phủ kiểm định lên 99% cho các hệ sinh thái phần mềm lớn trước năm 2028.
Đối tượng nên tham khảo luận văn
Luận văn là tài liệu tham khảo giá trị cho 4 nhóm đối tượng chính trong ngành công nghệ thông tin:
- Kỹ sư kiểm thử tự động (Automation Test Engineers): Giúp nắm vững thuật toán bóc tách tệp BPMN XML và nguyên lý chuyển đổi sang đồ thị CFG để tự động hóa hoàn toàn quá trình tạo kịch bản kiểm thử tích hợp và kiểm thử hệ thống.
- Chuyên viên phân tích nghiệp vụ (Business Analysts) và Kiến trúc sư hệ thống: Cung cấp phương pháp chuẩn hóa mô hình BPMN 2.0, giúp mô hình hóa luồng công việc rõ ràng, dễ hiểu cho khách hàng và đủ chi tiết để làm đầu vào cho các công cụ thực thi tự động.
- Quản lý dự án (Project Managers) và Trưởng bộ phận đảm bảo chất lượng (QA Leads): Giúp hoạch định chiến lược tối ưu hóa ngân sách dự án, cắt giảm từ 30% đến 50% chi phí kiểm thử thủ công và rút ngắn thời gian đưa sản phẩm ra thị trường.
- Giảng viên, học viên cao học và sinh viên chuyên ngành Kỹ thuật phần mềm: Sử dụng làm tài liệu học thuật chuyên sâu phục vụ nghiên cứu và giảng dạy về kỹ nghệ hướng mô hình (MDE) và các giải pháp kiểm thử phần mềm tiên tiến.
Câu hỏi thường gặp
-
Kiểm thử dựa trên mô hình BPMN khác biệt gì so với kiểm thử thủ công truyền thống? Kiểm thử thủ công phụ thuộc lớn vào kinh nghiệm cá nhân, dễ bỏ sót nhánh lỗi và tốn nhiều công sức khi tài liệu thay đổi. Ngược lại, phương pháp sinh tự động từ mô hình BPMN giúp phân tích cấu trúc toán học của luồng nghiệp vụ, tự động tạo 100% các kịch bản kiểm thử với độ bao phủ nhánh tối đa, giúp tiết kiệm hơn 45% thời gian tạo test case.
-
Những công cụ mô hình hóa BPMN nào tương thích với phương pháp trong luận văn? Phương pháp nghiên cứu tiếp nhận đầu vào là các tệp XML chuẩn hóa của BPMN 2.0. Do đó, các công cụ thiết kế quy trình hàng đầu thế giới như Bizagi Modeler, Activiti Designer hay Camunda đều có thể xuất tệp XML tương thích để nạp trực tiếp vào công cụ sinh ca kiểm thử tự động mà không cần tinh chỉnh thủ công.
-
Tệp BPMN XML được thuật toán xử lý như thế nào để tạo ra ca kiểm thử? Chương trình kiểm thử tiến hành phân tích cú pháp tệp XML, bóc tách các thẻ đại diện cho sự kiện (Events), hoạt động (Activities), cổng rẽ nhánh (Gateways) và thông điệp (Messages). Dữ liệu này được chuyển đổi thành cấu trúc đồ thị dòng điều khiển (CFG), sau đó thuật toán duyệt đồ thị sẽ tìm kiếm toàn bộ các đường đi từ nút khởi đầu đến nút kết thúc để tạo kịch bản kiểm thử.
-
Ca kiểm thử sinh ra từ mô hình BPMN áp dụng cho những cấp độ kiểm thử nào? Tập ca kiểm thử sinh tự động phù hợp nhất cho kiểm thử tích hợp (Integration Testing) và kiểm thử toàn hệ thống (System Testing) nhằm xác thực tính đúng đắn của luồng nghiệp vụ giữa các thành phần phần mềm. Ngoài ra, chúng còn được dùng để kiểm tra tính hợp lệ và độ chính xác của chính các công cụ quản lý quy trình nghiệp vụ (BPM).
-
Doanh nghiệp cần chuẩn bị những điều kiện gì để áp dụng giải pháp này? Doanh nghiệp cần xây dựng mô hình quy trình nghiệp vụ đạt độ chuẩn xác cao theo đúng đặc tả BPMN 2.0 của tổ chức OMG. Đội ngũ kiểm thử viên cần được trang bị kiến thức về mô hình hóa hình thức và quy trình bóc tách tệp XML để cấu hình dữ liệu đầu vào và kết quả kỳ vọng tương ứng cho từng ca kiểm thử.
Kết luận
- Luận văn đã giải quyết thành công bài toán tự động hóa quá trình sinh ca kiểm thử từ mô hình quy trình nghiệp vụ BPMN 2.0 dưới dạng tệp XML.
- Đề xuất giải pháp chuyển đổi hình thức từ mô hình BPMN sang đồ thị dòng điều khiển (CFG) giúp tối ưu hóa thuật toán tìm kiếm đường đi kiểm thử.
- Cài đặt thành công công cụ thực nghiệm và chứng minh tính khả thi qua các ca kiểm thử thực tế với độ bao phủ nhánh đạt 100%.
- Mở ra hướng nghiên cứu mở rộng thuật toán cho các quy trình nghiệp vụ phân tán, xử lý ngoại lệ phức tạp và tích hợp sâu vào quy trình CI/CD trong lộ trình 12 đến 24 tháng tới.
- Đóng góp giải pháp công nghệ giá trị giúp các doanh nghiệp phần mềm tối ưu chi phí, nâng cao chất lượng sản phẩm và rút ngắn thời gian bàn giao dự án.
Các tổ chức và doanh nghiệp phát triển phần mềm nên bắt đầu chuẩn hóa hệ thống tài liệu thiết kế bằng BPMN 2.0 ngay hôm nay và áp dụng giải pháp kiểm thử dựa trên mô hình để tối ưu hóa năng lực cạnh tranh trong kỷ nguyên số.